Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Current »

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.

Controller Board 3

Updated May 4, 2020

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.

Current State

Now the board uploads properly and has flashing LEDs thanks to the blinking LEDs board validation test!

One of the MCU pads got bent underneath the chip while replacing the MCU, but still appears to make contact with the pin, and does not cause any shorts, so we should be good.

Controller Board 6

Updated May 4, 2020

Initial State

This board is labelled number 6, 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

Starting Out:

  • The solder joints all look very good

  • The board looks very clean (no solder balls or extra flux anywhere)

  • There are no shorts anywhere on the board from what I can see

  • 3V3 output is great when connected to the programmer (measured across C23)

  • 3V3 output is good when connected to the Tutorial board (measured across C22)

  • All the capacitors appear to be the correct size for their values (I will not check them all individually

  • All diodes and LEDs are on the correct way (though this should not affect programming)

  • I don’t see any ripped or cut traces on the board

Testing

I’m at a bit of a loss for where to start on this one.

Tried reflowing again with the hot air gun and fixing a few of the worse solder joints, still no luck (I didn’t really expect this to be the problem given that the board looked really good.

The only things that will prevent programming are (assuming the MCU is good):

  1. Board not getting power

  2. MCU not getting a clock signal (bad crystal/capacitors)

  3. Programming pins not connected properly

All of these seem to be fine, so I’ll order some more MCUs and see what I find by replacing it.

  • No labels