0
\$\begingroup\$

I am facing a weird issue where value of resistance (0402 package SMD) is changing randomly. I have a fully functioning board design and have multiple boards where this issue is happening on same resistor. It has happened 3 times now.

It is a pullup resistor on RX line which is connected to 3.3 V bus on one side and RX trace on other side.

I have 20 boards out of which this problem has happened 3 boards. I have used the same reel of the resistors in other places as well and have no issues with resistance changing as such. Also one other thing to note is the board was working fine for a few days after firmware being flashed and it suddenly stopped working in the middle after 2-3 weeks give or take.

I know this pull up is not mandatory but want to get to the root cause of the problem.

Specifically this is a 10 kΩ pull up which randomly changed to a very low value in the range of 50~300 Ω rendering it to be a strong pull up making the IC which was trying to communicate to MCU not able to pull it down to proper low logic level and MCU not able to understand the bits being conveyed by the IC over RX line. I have checked this with a logic analyser and observed that the voltage that it could pull the RX line to was around 2.3 V from 3.3 V. Due to this the functionality of the IC got hampered and the board was rendered useless. There is a series resistor of 10 Ω from MCU pin to the IC pin to limit current as well.

enter image description here

I have attached a picture for reference.

I have done a series of tests to rule out any soldering issues that may have caused this.

Board 1.

  1. Initial reading of resistance - 35 Ω
  2. After removing the transceiver IC - still 35 Ω
  3. Removing series resistor - 54 Ω
  4. After a retouch with soldering tip on both ends of resistor - 122 Ω
  5. After soldering it with flux - 420 Ω
  6. With hot air re-alignment - 700 Ω
  7. After a while (2 hours or so) - Back to 168 Ω

This is one board.

Board 2.

On other board I conducted similar steps and have observed similar results. But after removing it from the board and measuring resistance of resistor alone (No PCB involved) - I saw the resistance of the resistor was 10 kΩ.

This was a week back. Now I took measurement again after a week, The resistance is now 55 Ω on board 1 which was around 168 Ω before and I just retouched it with solder iron and it now shows 10 kΩ now.

This is a very strange behavior that I am observing. Has anyone observed this kind of behavior? Does anyone know any reason this might be happening?

\$\endgroup\$
5
  • 2
    \$\begingroup\$ You can't measure resistor values accurately in circuit because other stuff is in parallel with them. I suspect your UARTs are faulty. Did you buy them from a reputable source (and I'm not talking about ebay or amazon here). \$\endgroup\$
    – Andy aka
    Aug 2, 2023 at 13:37
  • \$\begingroup\$ What power supply voltage is used for the MCU and what voltage for the UART? Part numbers & datasheet links? \$\endgroup\$ Aug 2, 2023 at 13:51
  • \$\begingroup\$ The fact that when you removed the resistor from the board and measured it independently you got 10kΩ tells you that the problem is not with the resistor. You've measuring something else on the board which is effectively in parallel with that resistor. That something could be a combination of other resistors, ICs, etc, as well as parasitic effects like contaminated flux, corrosion, etc. The actual problem might not be anywhere physically near that resistor and could be in or under your MCU or UART IC for example. \$\endgroup\$
    – brhans
    Aug 2, 2023 at 16:40
  • 1
    \$\begingroup\$ A while ago I had such a ghost resistor on a series of PCBs. In an area of around one square inch the copper was not fully removed during production. It was not enough copper to produce a short circuit, the values were similar to those you see. Some seconds longer in the acid and these PCBs would have been good. \$\endgroup\$
    – Jens
    Aug 2, 2023 at 19:54
  • \$\begingroup\$ Just to clarify, we buy all components fro reputed sources like digikey and mouser. IC is THVD1400DR - RS485 transceiver. Supply voltage to IC is 3.3V \$\endgroup\$ Aug 4, 2023 at 7:13

1 Answer 1

5
\$\begingroup\$

Your measurements are invalid because an ohm meter generates either a known voltage or current and measures the current or voltage. By Ohm's Law it finds the resistance. This only works if all devices are passive. Whenever you have an IC in the circuit (either a diode or transistor) this technique won't work since the voltage is no longer directly proportional to the current.

Furthermore, measuring on a solder board can be tricky due to soldering residue. If you are really worried about the resistor value, you must remove it completely from the circuit and measure it. Another approach is to measure a few resistors of the same reel and confirm their values. If I can put your mind at ease, I never found a single bad resistor from a reel. So I wouldn't invest too much time confirming its resistance.

If you want to explain what is your root issue (why are you measuring its resistance in the first place), we might be able to help!

\$\endgroup\$
4
  • \$\begingroup\$ Its not about measuring accurate resistance. Just that the resistance of the pullup is changing (specifically reducing) which is causing a weak pull up to become strong pull up (stronger than drive strength of the IC) causing the IC RX line to not go fully below logic low voltage and MCU not understanding the digital signals. Main concern is this does not happen until a few days and suddenly after a few days (2 weeks or so) the IC stops working and the functionality of the board is hampered. \$\endgroup\$ Aug 4, 2023 at 7:08
  • \$\begingroup\$ Specifically it is a RS485 transceiver (THVD1400DR) used in a IoT device to fetch data from other device and send it to cloud. Because of this issue the whole functionality of the of the board is getting hampered. I know we cannot measure the resistance of the resistor accurately in a soldered circuit But I have 20 boards on which I am cross referencing this value of resistor and on 17 boards (other than 3 that have issues) show 10k resistance. But on only these 3 boards, the issue is happening (which I mentioned above in the question) \$\endgroup\$ Aug 4, 2023 at 7:08
  • \$\begingroup\$ Using an ohm meter to perform this measurement is invalid. You are not measuring the resistance. What is the resistance of a diode? It will vary depending of your source voltage because the current is not proportional to the voltage. Alinear devices, such as diode, transistor and by extension, chip, can't be measured with a ohm meter. \$\endgroup\$
    – Julien
    Aug 4, 2023 at 12:41
  • \$\begingroup\$ To measure the "resistance " of your pull ups, the only way is to do a thevenin equivalent. This technique suggest that any constant voltage source is followed by a series resistor and will be constant gor any loads applied to it. The first step is to measure the voltage open. This is the source voltage. Then place a resisor as a load. Using ohm law, it will create a voltage divider. This will allow you to figure the source impedance. If that measurement is done properly, you will measure that pull up. \$\endgroup\$
    – Julien
    Aug 4, 2023 at 12:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.