This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

UART Mode in PPMODE1

Other Parts Discussed in Thread: TMS320C5535

We are working with a TMS320C5535 DSP on a custom board that is laid out to use the SPI, UART and GPIO on the parallel port pins. This requires us to select PPMODE1 in the EBSR register. However, when doing this we are unable to trigger receive interrupts on the UART peripheral. When placing the parallel port pins in either mux mode 5 or 6 these interrupts work as expected. I've noticed a similar issue here: https://e2e.ti.com/support/dsp/c5000/f/109/t/152927 (however, I am able to send data).

When in Mux Mode 1 I see that the registers are being set correctly (e.g., IFR bit 6 is 1, IIR sees a receive line status interrupt and there is data on the receive register) however it appears the processor never jumps to the interrupt vector. These same registers are set when in Mux Mode 5 or 6, and the PC jumps to the appropriate interrupt vector.

Is there any known issues or oddities that are known with running UART in that EBSR configuration? I was unable to find any hints in the datasheet, TRM or errata. The forums also do not seem to give any solutions (although the do mention the issue in a couple threads).

  • As a note, I based my code off of the example from CSL 3.05 CSL_UART_IntExample. This code uses PPMODE 1, and it does not work for interrupts either in its default state. If I switch this example to PPMODE5 or 6 it also will work correctly.
  • Hi,

    Thanks for sharing additional information.

    Will look at this further and get back to you, but have you observed this issue with any of C55xx (C5515/35) hardware platform ? 

    Also, with respect to your response  - " If I switch this example to PPMODE5 or 6 it also will work correctly" I believe here you meant PPMODE4 and PPMODE5.

    Regards

     Vasanth

  • PPMODE4 and PPMODE5 is correct. My apologies. Thank you for looking in to this for me.
  • Hi,

    I did try to run the UART interrupt CSL example on two different platform C5515 and C5535 and the example works fine, the PPMODE is set to '1' in EBSR register. The interrupts are received as expected.

    I have few questions:

    • Have you had tried this example in TI platform ?
    • Hope the baud rate etc set correctly on PC side application.  which application is run on PC side ? What is the system clock frequency ? 

    Let us know.

    Regards

     Vasanth

  • Thank you for your help Vasantha. I've come to a solution for our application. It turns out that due to our hardware configuration (uart -> rs485 half duplex) and the characteristics of the 485 transceiver we were entering a state wherein receive interrupts were not being handled appropriately.

    I edited the main uart interrupt function to include some error handling and to ignore erroneous signals that were being generated from the 485 transceiver. Although this isn't an ideal solution, it does work for us.
  • Hi Jacob,

    Glad to know that solution has been identified.

    Regards
    Vasanth