Hi
I have a problem with the new MSP-EXP432P401R (hardware unchanged, out-of-the-box). It worked at the beginning, but has now stopped working, i.e. the debugger (XDS110 USB Debug Probe) is 'unable to connect to the target'. The exact error message is:
Error connecting to the target:
(Error -1170 @ 0x0)
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 5.1.641.0)
I have tried to switch to SWD mode, but without success. The error message in SWD mode is as follows:
CORTEX_M4_0: JTAG Communication Error: (Error -615 @ 0x0) The target failed to see a correctly formatted SWD header. The connection to the target may be unreliable. Try lowering the TCLK setting before trying again. (Emulation package 5.1.641.0)
The output of the 'Test Connection' tool for the JTAG mode in the CCS is as follows:
This error is generated by TI's USCIF driver or utilities.
The value is '-233' (0xffffff17).
The title is 'SC_ERR_PATH_BROKEN'.
The explanation is:
The JTAG IR and DR scan-paths cannot circulate bits, they may be broken.
An attempt to scan the JTAG scan-path has failed.
The target's JTAG scan-path appears to be broken
with a stuck-at-ones or stuck-at-zero fault.
The connection test for SWD mode gives the following output:
This test will read the IDCODE register 100 times.
The IDCODE register value is 0x2ba01477.
The SWD Mode Integrity test has succeeded.
The green LED101 is on as soon as a USB cable is connected. The JTAG switch is in the correct position and the jumpers for 3 and 5V are mounted. I have also verified the voltages. I have also tried a factory reset as described in the MSP432 FAQ.
Luckily, I have ordered two MSP432 LaunchPads. So I plugged in a brand new board and tried to download a program onto the flash memory. I was able to flash the program once, but got the same error message when I tried to re-flash the program!
I have also changed the USB cable, the USB port and even the computer, but without success.
The code I used is the following (although I find it strange that the software has any impact on the debugger):
#include <driverlib.h> #include <rom.h> // comment to disable the ROM version of the driver library #include <rom_map.h> void main(void) { MAP_WDT_A_holdTimer(); MAP_Interrupt_disableMaster(); P1DIR = 0xff; P1OUT = 0; P1SEL0 = 0; P1SEL1 = 0; P2DIR = 0xff; P2OUT = 0; P2SEL0 = 0; P2SEL1 = 0; P3DIR = 0xff; P3OUT = 0; P3SEL0 = 0; P3SEL1 = 0; P4DIR = 0xff; P4OUT = 0; P4SEL0 = 0; P4SEL1 = 0; P5DIR = 0xff; P5OUT = 0; P5SEL0 = 0; P5SEL1 = 0; P6DIR = 0xff; P6OUT = 0; P6SEL0 = 0; P6SEL1 = 0; P7DIR = 0xff; P7OUT = 0; P7SEL0 = 0; P7SEL1 = 0; P8DIR = 0xff; P8OUT = 0; P8SEL0 = 0; P8SEL1 = 0; P9DIR = 0xff; P9OUT = 0; P9SEL0 = 0; P9SEL1 = 0; P10DIR = 0xff; P10OUT = 0; P10SEL0 = 0; P10SEL1 = 0; PJDIR = 0xff; PJOUT = 0; PJSEL0 = 0; PJSEL1 = 0; MAP_GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1, GPIO_PIN1 | GPIO_PIN4); MAP_GPIO_interruptEdgeSelect(GPIO_PORT_P1, GPIO_PIN1 | GPIO_PIN4, GPIO_HIGH_TO_LOW_TRANSITION); MAP_GPIO_clearInterruptFlag(GPIO_PORT_P1, GPIO_PIN1 | GPIO_PIN4); MAP_GPIO_enableInterrupt(GPIO_PORT_P1, GPIO_PIN1 | GPIO_PIN4); MAP_PCM_setCoreVoltageLevel(PCM_VCORE0); MAP_CS_setDCOFrequency(1000000); MAP_CS_initClockSignal(CS_MCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_1); MAP_CS_initClockSignal(CS_HSMCLK, CS_REFOCLK_SELECT, CS_CLOCK_DIVIDER_1); MAP_CS_initClockSignal(CS_SMCLK, CS_REFOCLK_SELECT, CS_CLOCK_DIVIDER_1); MAP_CS_initClockSignal(CS_ACLK, CS_REFOCLK_SELECT, CS_CLOCK_DIVIDER_1); MAP_CS_initClockSignal(CS_BCLK, CS_REFOCLK_SELECT, CS_CLOCK_DIVIDER_1); MAP_Interrupt_enableMaster(); MAP_PCM_gotoLPM3(); while (1); }
The problem seems to be related to LPM3 since my problems only started when I began to experiment with LPM3.
I am using CCS 6.1.0.00104 on Linux. I have also tried it on Windows.
Any ideas??