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.

TMS320F28377D: how many time of sci swreset

Part Number: TMS320F28377D

hi

in my application, i encounter an problem of sci swreset 

because some interference signal, sci generate an BRKDT error, then in my program i checek this error and reset the sci moduel like this

after  the Break error occured if i didn't reset the sci, this sci moduel will not reveived the data  until i repower the system. But if the error is FE,OE the sci will received the data again.

but after i reset this moduel, the sci moduel will reveived the data again after about 9ms, this time is too long,as below figure

my question is 

1, after the break error  occured, we must reset the sci moduel?

2,why this reset time is so long,?

3,is there any another method to reset the sci moduel?

thank you!

  • Hi Shook,

    (1) Yes, resetting the SCI state machine is the only way to clear some of the error conditions
    (2) I'm not sure what the expected reset time is; I'll have to look into this. Can you describe in a little more detail what the communication flow is like in the scope capture above? The SCI is receiving data until a BRKDT error is encountered, then how exactly do you measure the time until the module is restarted? Is the module sending or receiving? Is there a break in the incoming data?
    (3) It is probably possible to completely reset the module using bits in the SOFTPRES7 register, but I don't have any reason to believe this would lead to a faster turn-around since you would have to re-initialize all the SCI registers.
  • hi! devin
    my sci is used to communicate with motor encoder (485 bus).
    my communication flow is per 100us i will send the massage to motor encoder(befor i send the massage i will enable the 485 send ),
    then after send the massage ,the program will get into the sci tx isr ,in the sci tx isr i will enable the 485 receive. after the sci receive 11 byte datas will trige the sic rxisr (i set theSciaRegs.SCIFFRX.bit.RXFFIL=11).
    The break error is encountered when i start burst of pulses interference,after i check the break error i reset the sci module.after reset the sci module i find that the program can't get into the tx isr , so the 485 enble signal is still keep in the send state , the sci can't receive any data until after 9ms latter.
    Is there any suggestion about my communication flow?
    thank you!
  • Hi Shook,

    Can you actually try resetting the module via toggling the appropriate bit in the SOFTPRES7 register? This should completely reset all the registers in the SCI module, so you would then have to re-run the SCI initialization code. Executing the extra instructions will take a little longer, but it shouldn't be anywhere near 9ms.

    If that doesn't work, it would seem that having to stop and reset the SCI module is disrupting the program somewhere else. Is the RS-485 transceiver able to automatically control direction, or do you have to use a GPIO to tell the transceiver to send or receive? If you have to use a GPIO, are you sure it is set in the correct direction?
  • Hi Shook,

    It's been a few weeks since the last post; were you able to resolve this issue? If not, feel free to reject the resolution or just reply on this thread.