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.

TMS570LS1224: RXWAKE SCI Flag Set & Not Cleared (SLEEP MODE DISABLED)

Part Number: TMS570LS1224

We have implemented a simple serial loopback (called every 20ms) to test the interface.

Note: Sleep Mode is Disabled

A GetChar function receives a character and then transmits the character using a PutChar function.

Prior to calling the GetChar function (at the end of the loop) we check the expected bit state of some of the SCI Flags, one of which is RXWAKE.

When the application is first started (no serial activity) the RXWAKE flag has a value of 0 its 'value after reset'.

When the first character is sent from a terminal emulator, the check of the value of RXWAKE fails because it is now set to a value of 1.

Even after the character has been read from the buffer and loaded to the transmitter, the RXWAKE flag remains set.

This behaviour does not seem to correspond to the description in the Technical Reference Manual (SPNU515C), for instance the description for RXWAKE states that RXWAKE is cleared upon receipt of a data frame.

  • Hi Paulo,

    When you're using a standard terminal emulator for simple serial loopback communication, you're likely NOT in a multiprocessor environment. The documentation explicitly states: "When the SCI is not used in a multiprocessor environment, software can consider all frames as data frames. In this case, the only distinction between the idle-line and address-bit modes is the presence of an extra bit (the address bit) in each frame sent with the address-bit protocol."

    Why RXWAKE is Set to 1

    If your SCI is configured in Address-Bit Mode (SCICCR.3 = 1):

    • Each character frame includes an extra address bit
    • Your terminal emulator is sending standard RS-232 frames (8N1, for example)
    • The SCI interprets what should be the stop bit or the bit following the data as the "address bit"
    • If this bit happens to be '1', RXWAKE will be set to 1
    • (1, 2, 4, 5, 0, 3)RXWAKE will remain 1 until a frame is received where the address bit is 0

    Solution

    Configure the SCI for Idle-Line Mode for standard serial communication:

    1. Set COMM MODE bit (SCICCR.3) = 0 to select Idle-Line Mode
    2. This mode is compatible with standard RS-232 communications
    3. In this mode, RXWAKE behavior will be different - it will only be set when an idle line condition is detected

    Note: This response is generated from TI internal AI tool, i verified the correctness.

    --
    Thanks & regards,
    Jagadish.