Electronic – MSP432 Programming and boundary scan issues (4-Wire, 2-Wire and SWD)

boundary-scanjtagmsp430

I have reached a predicament.

I have a production board with an MSP432 that will not program. To provide some context, I am using the XDS110 that is supplied with the MSP432 launchpad and am simply running jumper wires (approx 10cm) to the target. After some basic troubleshooting, I have come to a conclusion that the MSP432 would have to be factory reset.

I have followed the factory reset procedure outlined by TI but the process fails when running the GEL file, giving me an error of:

CS_DAP_0: Trouble Writing Register DP_RESET: (Error -1170 @ 0x2) Unable to access the DAP. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 7.0.48.0)

No connection possible. This could be caused by the device having gone to low power mode and disabling JTAG PINs. You have the option to either toggle reset or try to use SWD instead.

MSP432_Factory_Reset() cannot be evaluated.
Target failed to write register DP_RESET
at DP_RESET=1 [msp432_factory_reset.gel:44]
at MSP432_Factory_Reset()

This test was performed with identical settings to the MSP launchpad defaults with the only exception of a lowered JTAG clock speed on 100kHz.

This leads me to my other findings when performing a boundary scan test on all different debugging modes, the only mode that fails is 2-Wire mode with an error of '-233' (0xffffff17). One would think that if the 4-Wire mode was to pass, the 2-Wire mode would pass as well.

Question: Could this be a hardware issue? Is it a case of missing pull up/down resistors? (from my understanding the MSP432 datasheet instructs only a pull down on SWO)

I have attached an image of the MSP432 and its layout, it is of note that R11 (DCOR) and L3 are not populated.

Image of MSP432 and its vicinity:

I have hit a wall in terms of debugging, and am not sure what to do next as the official TI procedure fails. Any advice would be appreciated, thank you.

UPDATE: I decided to probe around a bit more and found that Vcore is reading around 240mV, when other sources indicate that it should be ~1.2V.
I believe that a low Vcore is leading to this issue, however I do not see anything on the board that would cause it to attain such a low value. I am operating the device in LDO mode.

Best Answer

The 4 wire (JTAG) mode is slightly more reliable from an electrical point of view, each wire is driven as either input or output (and never high impedance). SWD mode has a clock, and a bi-directional data signal. It is also designed to rely on the pull-up being present on SWDIO (this is not SWO, that is a different, but similarly named function).

You might get some (or unreliable) communication if the pull-up is missing, but I think this is data dependant (regardless of clock speed). It could be enough to complicate your observations though.

However, if the JTAG pins have been re-claimed for functional use, modern tools should have no problems connecting over SWD (in the early days, tool support was sometimes better in JTAG mode).