Hello
I have an interesting problem regarding the UART peripherals on a C6748 dsp.
Firstly I configure a loop back test such that
UART2-RX is looped to UART1_TX
and
UART1-RX is looped to UART2_TX
Now I stream data into both UART1-RX and UART2-RX at full baud rate. This is a key point, data has to stream into and out of both ports at full speed or the failure many not happen. This is inconclusive, as the fault condition may just take hours rather than minutes to occur.
After approximately 8-15 minutes the UART traffic stops and it is clear that the DSP has frozen.
Next we monitor the DSP using the an emulator (XDS560)
We get an error message
'Device core is hung. The debugger .... etc.
The UARTS are configured to 115k2 operation with no flow control.
It doesn't matter if the core process polls the UARTs, we use an ISR or even configure a complete DMA transaction to transfer the data from one UART to the other we see the same result. Please also notice that the fault occurs with or without the emulator connected so I don't believe this is a JTAG/debugging issue
Okay now we configure a second test
UART0-RX is looped to UART1_TX
and
UART0-RX is looped to UART2_TX
(notice UART0 now not UART2).
Using this configuration we are unable to replicate the failure ..... (at the moment anyway). This second test used an almost identical program, the only change is an adjustment at the lowest possible architectural level of code which adjust the memory mapped pointer to reconfigure which uart is used.
This fault occurs on our hardware platform, running a DSP-BIOS operating system. We have designed a test case that cuts out most of our code and functionality so this seems like a specific problem with a DSP peripheral.
From our hardware point of view UART0,UART1 and UART2 are all configured the same way (ie all more or less direct connections to external level converters.
We are still testing this with different baud rates etc
Can you help us with these questions:
1) Is there any difference between UART2 and UART0 (other than the obvious that the register offsets are different, and the pinout is different)
2) Can you help me explain how this could crash the DSP.
3) Can you think of anything we could do to help isolate this problem, or at least halt the DSP rather than hang it so we can use the emulator to debug the problem.
Thanks,
Paul