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.

TMS320F2800135: BRKDT will be trigger sometime in SCI communication

Part Number: TMS320F2800135
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

customer report BRKDT will be trigger sometime in SCI communication, we capture the RX waveform and confirm it have not continue low signal over 9.5bit, also confirm the waveform that both side device band-rate is exactly 9600. May we get advice if any other things maybe trigger BRKDT?

below capture Green color is RX signal and Pink color is BRKDT signal.

  • Hi Terry,

    A couple followup questions:

    1. How is their code checking for a break detect condition? Did they enable the RXERROR interrupt and toggle a GPIO inside the ISR? Or are they checking the flag somewhere in their main loop?
    2. Are any other error flags being raised at the same time (framing error, parity error etc.)?
    3. With a baud rate of 9600bps, the BRKDT flag should go high if the line is low for ~1.0026ms or more (see calculations below). Can you have them verify with the scope measurement feature that the low time is less than this?
      1. 1/9600 bits/second = 0.000104 seconds/bit
      2. (0.000104 seconds/bit)*(9.625 bits) = 0.0010026 seconds = 1.0026ms

    Best Regards,

    Delaney

  • Hi Delaney

    Thanks your advice, I reply your question as below:

    1, Yes, we toggle GPIO inside the ISR for break detect condition

    2, Also observe FE error flags raised in same time

    3, we do not see low level > 1.0026ms (9.265bit) , and my understand is that BRKDT should detect 9.625bit low level after missing stop bit, am I right? however below waveform show the stop bit is happen but still trigger BRKDT, we are confuse the trigger reason.

  • Hi Terry,

    If the FE is also being raised, I suspect this is a synchronization issue between the transmitting and receiving devices. Even if the stop bit is present, the SCI receiver could be looking for it too early or too late and the majority vote could be resulting in low - meaning the stop bit is considered missing. The same could go for the BRKDT, if the timing of when the receiver begins looking for a low signal for 1.0026ms is too early/late it could be raising the flag. Also note that if there are other interrupts enabled, the timing of the green signal (BRKDT ISR is being executed) could be inaccurate if the SCI RX ISR is being blocked. Overall, if there are synchronization issues, the error flags could be raised inaccurately. 

    A few things they can do to fix the synchronization:

    1. Make sure they reduce the noise on the SCI pins as much as possible
    2. What is there LSPCLK frequency and baud rate? Check the Sysconfig SCI module to use a combination of these values with the least amount of error possible.
    3. Make sure they are not doing a SWRESET in every RX ISR - this sometimes is done by mistake by calling the SCI_clearInterruptStatus() driverlib function with error flags passed in within every ISR and can mess with timing.

    Best Regards,

    Delaney