This page will go over the process of me (Micah Black) debugging a controller board - I brought 3 home to be able to work remotely on hardware validation, and it turns out that none of them work. I am making this page partly to keep track of what I test, as well as give others an idea of how to debug boards.
Initial State
This board is labelled number 3, and is a REV 7 controller board.
The board will not program - the programmer does not detect the board when attempting to upload the blinking LEDs sketch.
Debugging
There is only a handful of things that can go wrong with these boards, or that could have to be replaced.
Crystal Capacitors
The first thing I noticed was that the 2 loading capacitors on the crystal were different colors. While they could be the same value from different manufacturers, I figured it would be good to check. So I removed one of them and verified that it was 5nF instead of the proper 15pf. I replaced it with the proper value.
Programming Test
I plugged the board back in to the programmer and tried to program, same result → device not found.
I also noticed that the LED on the SWD adapter board turns off when I plug the controller board in, leading me to believe that the controller board is drawing too much current. Measuring the resistance between 3V3 and GND (across C23) we get a resistance of 2 Ohms, so we have likely found a short circuit. But which component is causing it? None of the solder joints seem to be bridged.
A few other things I checked:
3V3 is not shorted before the load switch (measuring across C22)
When powered through a tutorial board, It draws 60mA from 12V (as opposed to 10mA for the other ones I have here), and the voltage across C22 is just over 1V. So this points to potentially a bad DC-DC converter (U2) or the same shorts identified earlier
There is 1 pin on the mezzanine that I noticed is loose - this turns out to be pin 12, which is not connected so this is not an issue.
I noticed some solder balls around the edge of the DC-DC converter, so there may be some shorts underneath the chip.
The diode D3 conducts properly, tested with the multimeter diode test
ICs are typically the first to fail due to ESD which might be the cause of failure, so I will remove them one by one and check the short.
I’m going to remove the load switch (U4) to attempt to isolate which side it is on - is it an issue with DC-DC, the load switch, or the MCU side?
There is still 2Ohms of resistance across 3V3 and GND on the MCU side (measured across C23)
Powering from the tutorial board again, we measure 3.339V across C22, so our DC-DC converter seems to be working fine
At this point, I will remove U1 (the CAN transceiver) to see if the chip was blown and was causing the short (it was not visibly blown).
Still 2Ohms across C23
Now we’ll remove the last IC, the MCU
We now measure extremely high resistance (10s of Mega Ohms) across C23, so we have found the culprit.
Replacing the MCU, we now have high resistance on the 3V3. So we should be able to program it, powering the board from the programmer.
Now the board uploads properly and has flashing LEDs thanks to the blinking LEDs board validation test!