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.
Hello,
SCI uses Address-Bit Multiprocessor Mode. In the receive interrupt, RXWAKE bit will be set to 1 and enter the address judgment ,regardless of the check type(mark, space, etc) of received data . In other words ,RXWAKE can be awakened regardless of whether the address bit is 0 or 1.
According to normal logic, mark check can wake up RXWAKE bit and other check cannot . After reading the data, RXWAKE is reset and Sleep is set to 0, RXWAKE bit will not be 1. In addition, the same configuration is used normally in 28035.
SCI configuration code:
ScibRegs.SCICCR.all = 0x0f; //SCICHAR_LENGTH_8, Address-bit mode protocol selected
ScibRegs.SCICTL1.all = 0x0007; // enable TX, RX, SLEEP // Disable RX ERR, TXWAKE
ScibRegs.SCIHBAUD = (((Uint32)SciB_PRD >> 8));
ScibRegs.SCILBAUD = (((Uint32)SciB_PRD & 0x00FF));// 115200 baud @LSPCLK = 37.5MHz.
ScibRegs.SCICTL2.bit.TXINTENA =1;//
ScibRegs.SCICTL2.bit.RXBKINTENA = 1;
//ScibRegs.SCICCR.bit.LOOPBKENA =1; // Enable loop back
ScibRegs.SCIFFTX.all = 0xC040; //SCI Reset,SCIFFENA,TXFFINTFLAG CLEAR//C040
ScibRegs.SCIFFRX.all = 0x0061; //RXFIFO Reset,SCIFFENA,TXFFINTFLAG CLEAR//0061
ScibRegs.SCIFFCT.all = 0x00;
ScibRegs.SCICTL1.all = 0x0027; // Relinquish SCI from Reset
ScibRegs.SCIFFTX.bit.TXFIFOXRESET = 1;
ScibRegs.SCIFFRX.bit.RXFIFORESET = 1;
Thanks and best regards,
Weng
Weng,
Note that in address-bit multiprocessor mode, RXWAKE reflects the value of the address bit for the character contained in SCIRXBUF. In the case for idle-line multiprocessor mode, RXWAKE is set if the SCIRXD data line is detected as idle. RXWAKE is a read-only flag.
I hope this helps. If this answers your question, please click the green "Verified Answer" button. Thanks.
- Ken
Weng,
It's been a while since I have heard from you last. Therefore, I am assuming that my last reply resolved your issue and I will close this thread. If this isn’t the case, please reject this resolution or reply to this thread. If this thread locks, please make a new thread describing the current status of your issue. Thank you.
- Ken
ken,
Sorry, I did not reply to you in time. This failed to solve my problem. I found that the baud rate deviation will affect the address bits. If you follow the manual baud rate calculation formula, there is an error of 1.7% at 115200 baud rate. At this time, an exception occurs when the address bit wakes up. If the baud rate error is corrected and the error is changed to 0.7%, the address bit wake-up will be normal. What causes this phenomenon?
-weng
Weng,
Please see Table 10-3. "Asynchronous Baud Register Values for Common SCI Bit Rates" on page 592 in the F2833x Technical Reference Manual. Notice that as the idea baud rate increases the actual baud rate error increases, as well. At an extremely high baud rate (e.g. 115200) the error will be a very large value and will need to be adjusted.
- Ken