LP-AM13E230: Debugger stopped working

Part Number: LP-AM13E230
Other Parts Discussed in Thread: UNIFLASH, AM13E23019, AM13E2X-SDK

Hi,

My LP-AM13E230 board was working normally and suddenly, after loading a firmware, the IDE failed to load the firmware and displayed the following messages:

CS_DAP_0: Error connecting to the target: (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 20.5.0.3920) 

Texas Instruments XDS110 USB Debug Probe/CS_DAP_0 Error connecting to the target: (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 20.5.0.3920)

I tested it on another computer, with another project, and the failure persisted. I connected an external XDS110 to connector J7, and it continued to display the same error message.

The firmware that was loaded last continued to work, so the microcontroller should not be damaged.

What could be causing this failure and is there a way to fix it without replacing the microcontroller?

Ari

  • Hi Ari,

    Based on your error message and troubleshooting steps, this appears to be a SWD (Serial Wire Debug) interface communication failure. The good news is that your firmware is still running, which indicates the MCU itself is functional. Since the issue persists with an external XDS110 and on multiple computers, this suggests a target-side configuration issue rather than hardware damage.

    Problem Analysis

    Error -615 indicates the debugger cannot establish proper SWD communication with the target. The most likely cause is that your last firmware load reconfigured the SWD pins (SWDIO/SWCLK) for another function, preventing debugger access.

    Recommended Solutions

    1. Lower the TCLK Speed

      • Open your IDE's debug configuration
      • Reduce the JTAG/SWD clock frequency to 100 kHz
      • In CCS: Right-click project > Properties > Debug > Connection > Advanced
    2. Connect Under Reset

      • Enable "Connect on target connect" or "Reset on connect" in your IDE
      • Hold the RESET button on the board
      • Start the debug session
      • Release RESET when the debugger attempts connection
      • This may allow you to halt the CPU before pin initialization code runs
    3. Use TI Uniflash for Mass Erase

      • Download TI Uniflash (if not already installed)
      • Select your LP-AM13E230 board
      • Perform a "Mass Erase" operation
      • This should restore debug access by erasing the problematic firmware
    4. Check for SWD Pin Conflicts

      • Review your firmware code for any GPIO configuration that affects the debug pins
      • Verify no peripherals are using the SWD pins
      • Ensure your code does not disable the debug interface
    5. Update Debug Probe Firmware

      • In CCS: Help > Check for Updates > XDS Firmware Updates
      • Ensure you have the latest emulation package

    Additional Troubleshooting Steps

    • Power cycle the board completely (disconnect USB, wait 10 seconds, reconnect)
    • Verify 3.3V power supply is stable
    • Check J7 connector for any physical damage or poor connections
    • Try switching from SWD to JTAG mode if your board supports it

    Prevention

    For future development, ensure your firmware initialization code does not reconfigure the SWDIO and SWCLK pins. Preserving debug functionality during development will prevent this issue from recurring.

    If these steps do not resolve the issue, please let me know and I can help you explore additional recovery methods or escalate to appropriate support resources.

    Best Regards,
    Zackary Fleenor

  • Hi Zackary,

     I couldn't find the "Connect Under Reset" option in the IDE or in the project settings.

     Uniflash only has the option to program the AM13E23019 using its own Jtag, and when I try, the same error code occurs.

    Is there any software that allows loading firmware using boot via the serial port?

    Ari

  • Hi Ari,

    The AM13E230x does support UART boot mode, which can be used to recover the device without an active debug connection. Here is how to proceed.


    Boot Mode Configuration

    The AM13E230 samples its BOOTMODE pins at reset to determine the boot source. On the LP-AM13E230, boot mode is controlled by switch S1 on the board. To enable UART boot, set the switch configuration according to the following table from the AM13E230 datasheet:

    BOOTMODE
    BOOTMODE
    BOOTMODE
    Boot Source
    0
    0
    0
    UART
    0
    0
    1
    SPI Flash
    0
    1
    0
    eMMC/SD
    1
    0
    0
    OSPI Flash (default)

    Set S1 to select UART boot, then power cycle the board before proceeding.


    UART Boot Recovery Procedure

    TI provides a Python-based UART bootloader utility as part of the MCU+ SDK. It is located at:

    <MCU_PLUS_SDK_INSTALL_DIR>/tools/boot/uart_bootloader.py

    You will also need the SysConfig-generated bootloader image for your device. A prebuilt minimal bootloader binary for the AM13E230 is available in the MCU+ SDK at:

    <MCU_PLUS_SDK_INSTALL_DIR>/examples/drivers/boot/sbl_uart/am13x-evm/r5fss0-0_nortos/ti-arm-clang/sbl_uart.release.tiimage

    To send the image over UART, run the following from a command prompt, replacing COM3 with your actual port:

    python uart_bootloader.py -p COM3 --bootloader=sbl_uart.release.tiimage --file=your_app.appimage

    The UART boot port on the LP-AM13E230 is exposed through the onboard XDS110 USB connection on the secondary UART channel, which typically enumerates as the second COM port when the board is connected.


    Restoring Debug Access

    Once you have successfully flashed a clean firmware image through UART boot, do the following:

    1. Return S1 to its original OSPI flash boot configuration
    2. Power cycle the board
    3. In CCS, open your debug configuration and reduce the TCLK frequency to 100 kHz under Target Configuration > Advanced Settings
    4. Attempt the debug connection again

    If the debug connection is restored, the root cause was almost certainly that the previous firmware reconfigured the SWD pins (SWDIO/SWCLK) as GPIO or assigned them to another peripheral. Before resuming development, review your pin mux configuration and ensure those pins are not reassigned during initialization.


    Reference Documents

    Let me know if you run into any issues during the recovery process.

    Best Regards,
    Zackary Fleenor

  • Zackary,

    Unfortunately, I don't have that SDK_PLUS_MCU, only the AM13E2X-SDK available at this link: www.ti.com/.../AM13E2X-SDK, and that one doesn't have the file: <MCU_PLUS_SDK_INSTALL_DIR>/tools/boot/uart_bootloader.py
    nor the folder:
    <MCU_PLUS_SDK_INSTALL_DIR>/examples/drivers/boot/

    Ari

      

  • Hi Ari,

    Thank you for that clarification, and I apologize for the confusion. You are correct that the UART bootloader tools are not yet available in the AM13E2X-SDK release. Let me provide you with alternative recovery methods that will work with your current setup.


    Recovery Method 1: Mass Erase with Reduced Clock Speed

    The most likely solution is to reduce the debug interface clock speed significantly to establish connection before your firmware initializes:

    1. Open TI Uniflash
    2. Select your LP-AM13E230 device
    3. Navigate to Settings or Advanced Connection Settings
    4. Set the TCLK/JTAG clock frequency to 50 kHz (or the lowest available setting)
    5. Enable any "Reset on Connect" options if available
    6. Power cycle the board completely (disconnect USB, wait 10 seconds, reconnect)
    7. Attempt the Mass Erase operation

    If Uniflash shows the same Error -615, try reducing the clock even further to 10 kHz.


    Recovery Method 2: Hardware-Assisted Debug Connection

    This method uses the RESET button to halt the CPU before your problematic firmware executes:

    1. In CCS, configure your debug settings:

      • Right-click project → Properties → Debug
      • Set TCLK/JTAG frequency to 100 kHz or lower
      • Enable "Reset the target on a connect" if available
    2. Prepare a clean firmware image to load (a simple blinky example or minimal application)

    3. Execute the connection sequence:

      • Press and hold the RESET button on the LP-AM13E230
      • Click Debug in CCS to initiate the connection
      • Continue holding RESET for 2-3 seconds after clicking Debug
      • Release RESET when CCS attempts to connect
    4. If the connection succeeds, immediately load and flash your clean firmware to overwrite the problematic application


    Recovery Method 3: JTAG Mode (If Supported)

    Since you have an external XDS110 debugger, try creating a new target configuration with different settings:

    1. In CCS: Window → Show View → Target Configurations
    2. Right-click → New Target Configuration
    3. Select your external XDS110 debugger
    4. If available, change the connection protocol from SWD to JTAG
    5. Set TCLK to 50 kHz
    6. Save and launch this configuration
    7. Attempt to connect


    Recovery Method 4: Boot Mode Configuration

    Check your LP-AM13E230 boot mode switches (labeled S1) that can force the device into an alternate boot mode:

    1. Locate switch S1 on your board (refer to LP-AM13E230 User's Guide Section 2.3)
    2. Try different switch configurations to change the boot source
    3. Power cycle after each change
    4. Attempt debug connection with each configuration

    Even if alternate boot sources are not populated on your board, the device may halt waiting for boot data, which could provide an opportunity for the debugger to connect.


    Additional Troubleshooting

    Before proceeding, please verify:

    • Your XDS110 firmware is up to date (CCS: Help → Check for Updates → XDS Firmware Updates)
    • The USB cable and port are providing adequate power (try a different port or cable)
    • J7 connector pins are not damaged or bent


    If Recovery Methods Fail

    If none of these methods restore debug access, the device may require factory recovery tools that are not publicly available. In that case, please:

    1. Create a support ticket at support.ti.com
    2. Reference this E2E thread
    3. Provide your board serial number and CCS/Uniflash versions
    4. Our support team can provide additional recovery options or arrange board replacement if necessary


    Preventing Future Occurrences

    Once you recover debug access, implement these safeguards in your firmware:

    • Add a 2-5 second startup delay before GPIO initialization
    • Never reconfigure the SWDIO/SWCLK pins in your application code
    • Use conditional compilation to disable debug pin reconfiguration during development builds
    • Test pin configuration changes on a secondary board first


    Please try Method 1 first and let me know what clock speed options are available in your Uniflash settings and what results you see. We will work through this step by step.

    Best Regards,
    Zackary Fleenor

  • Hi Nilabh,

    The solution corresponding to the link you sent depends on the DSSM script in the "Scripts" menu of CCS.

    My CCS installation doesn't have anything in the "Scripts" menu. Does this need to be installed later?

    Ari