Part Number: TMS320F280038C-Q1
Other Parts Discussed in Thread: C2000WARE
Hi,
Background information: I'm controlling a powerstage and also implemented CAN and UART communication on my C2000 at my application board. My system work as expected at normal operation. I have background tasks that is called at each 1msec,10msec and 100msec. I inited my watchdog and feed it after the end of each task.
I found a case that my MCU gets stucks and stops sending CAN msgs. I debugged and found some findings. It some times achieve to get WD reset, but sometimes no reset occurs as I explained below.
FAILURE MODE Instant: Disconnecting USB (RS485-to-USB converter). It is connected to my UART pins of MCU. Imagine that I have a PC and use USB port. RS485-to-USB converter and I have board that converters RS485-to-RS422. I use RS422 lines to communicate with my UART TX-RX pins on my MCU.
When I debugged, I found following register set.
Normal operation mode:
FAILURE CASE:
My MCU goes to an undefined mode. My CAN communication gets lost. I cannot no more communcation with my PC if I re-insert converter to USB port.
XRSN pin doesn't get LOW at this failure mode... That means, it doesn't go to Watchdog reset mode. It moves on counting.
WDCNTR: increases and decreases again and again, but my software doesn't work as expected.
The below one , when my WD can achieve to go reset.
My Watchdog inits is as below.; I feed my watch dog at my tasks.
void InitWDT(void)
{
SysCtl_setWatchdogMode(SYSCTL_WD_MODE_RESET);
// 10us*4096*8*256=419ms
SysCtl_setWatchdogPredivider(SYSCTL_WD_PREDIV_2048);
SysCtl_setWatchdogPrescaler(SYSCTL_WD_PRESCALE_8);
SysCtl_serviceWatchdog();
SysCtl_enableWatchdog();
SysCtl_setWatchdogMode(SYSCTL_WD_MODE_RESET);
}
Can you help me to identify what is happening to my application?
Can you help me to find the root cause?


