TMS320F28035PNT Common Booting Issues and How to Resolve Them
The TMS320F28035PNT, part of the Texas Instruments C2000 family, is a Power ful microcontroller used in Embedded systems, particularly in motor control and other real-time applications. However, when booting this device, users may encounter some common issues. Below, we analyze these issues, identify their root causes, and provide detailed, step-by-step solutions.
1. No Boot: Device Fails to Start UpCause:
Incorrect Boot Mode Configuration: The TMS320F28035PNT has several boot modes (e.g., SCI, SPI, I2C, or Flash). If the boot mode is misconfigured, the device might fail to boot properly. Faulty Power Supply: Insufficient or unstable power supply can prevent the device from booting. Incorrect Clock Source: The microcontroller may not start up if the external clock or PLL configuration is incorrect.Solution:
Step 1: Verify Boot Mode Settings Ensure the device is configured to boot from the correct source (e.g., Flash, SCI, or SPI). This can be checked by examining the GPIO pin settings that determine the boot mode. Refer to the TMS320F28035PNT datasheet for the correct pin configurations. Step 2: Check Power Supply Measure the voltage at the power supply pins to ensure they match the specified voltage levels. Use a multimeter or oscilloscope to verify stability. Step 3: Verify Clock Configuration Check that the external clock (if used) is working correctly. Ensure PLL settings are configured to generate the correct system clock. 2. Boot Failure After Flashing FirmwareCause:
Corrupted Flash Memory : Flash memory might get corrupted during the firmware programming process, causing the device to fail during boot. Incorrect Firmware Version: Flashing an incompatible firmware version can prevent the device from booting correctly. Faulty Bootloader: If the bootloader is not correctly programmed or is damaged, the boot process can fail.Solution:
Step 1: Reflash the Firmware Use a programmer (e.g., XDS100v2 or a similar JTAG tool) to reflash the firmware onto the Flash memory. Ensure you are using the correct version of the firmware and that it is built for the specific TMS320F28035PNT. Step 2: Check Bootloader Integrity If your application uses a custom bootloader, ensure it is correctly written and located in the appropriate Flash memory region. Re-flash the bootloader if necessary, or try to boot from another source to check the integrity of the bootloader. 3. Stuck in Bootloader ModeCause:
Bootloader Lock: Sometimes, the microcontroller might be stuck in bootloader mode due to improper termination of the boot process, or the device was unable to detect a valid application to run. GPIO Configuration Issues: Some GPIO pins may be incorrectly configured to hold the device in a bootloader state.Solution:
Step 1: Verify GPIO Pin Settings Check the configuration of the boot mode select pins (GPIO) to make sure they are correctly set for normal boot, not bootloader mode. Ensure no external devices are holding the device in bootloader mode. Step 2: Force Boot into Application If the device is stuck in bootloader mode, use a JTAG programmer to force the device to run the application by writing the appropriate memory locations. 4. Device Boots but Application Fails to RunCause:
Incorrect Memory Allocation: If the application code is loaded into incorrect memory sections (e.g., the wrong Flash sector), the device may boot but fail to execute the program correctly. Stack Overflow/Memory Corruption: If there is a memory issue such as stack overflow or data corruption, the application might fail to run as expected.Solution:
Step 1: Verify Memory Allocation Use a debugger to check the memory regions where your application code and data are loaded. Confirm that the program code is placed in the correct Flash sections, and that the linker file (.cmd) correctly defines the memory map. Step 2: Debug and Monitor Stack Monitor the stack pointer and heap to ensure there’s no stack overflow or memory corruption. Use debugging tools (like Code Composer Studio or IAR Embedded Workbench) to step through the application and identify any issues with memory allocation or program flow. 5. Watchdog Timer Preventing BootCause:
Watchdog Timer Timeout: The TMS320F28035PNT has a built-in watchdog timer, which can reset the device if it detects a system hang or failure to respond within a specific period.Solution:
Step 1: Disable the Watchdog Timer During Boot Ensure the watchdog timer is either disabled during boot or correctly configured to prevent unnecessary resets. This can be done by checking the Watchdog Timer control registers during initialization. Step 2: Implement Proper Watchdog Handling If using the watchdog timer, ensure that it is regularly fed during the application runtime to prevent it from resetting the device. You can implement a "kick the dog" function in your main application loop. ConclusionIn summary, boot issues with the TMS320F28035PNT can stem from various sources, including incorrect boot mode settings, power supply issues, corrupted firmware, and improper memory configurations. The key to resolving these problems lies in carefully verifying each step of the boot process, from power and clock settings to firmware integrity and boot mode configuration. By following these steps methodically, you can troubleshoot and resolve most boot-related issues on the TMS320F28035PNT with confidence.