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.

CCS/EM1402EVM: EM1402EVM

Part Number: EM1402EVM
Other Parts Discussed in Thread: TMS570LS0432, HALCOGEN

Tool/software: Code Composer Studio

I am using the TMS570ls0432 launchpad to communicate with the EM1402EVM. Now I met a problem about the communication between the TMS570ls0432 launchpad and the 1402EVM.

I can detect the wave from the RX pin and the sampling voltage data is right on the RX pin. However, when debugging, the data can not be read from the RX pin by the TMS570ls0432 launchapad via UART.

while (length > 0U)
{
/*SAFETYMCUSW 28 D MR:NA <APPROVED> "Potentially infinite loop found - Hardware Status check for execution sequence" */
while ((sci->FLR & (uint32)SCI_TX_INT) == 0U)
{
} /* Wait */
/*SAFETYMCUSW 45 D MR:21.1 <APPROVED> "Valid non NULL input parameters are only allowed in this driver" */
txdata = *data;
sci->TD = (uint32)(txdata);
/*SAFETYMCUSW 45 D MR:21.1 <APPROVED> "Valid non NULL input parameters are only allowed in this driver" */
/*SAFETYMCUSW 567 S MR:17.1,17.4 <APPROVED> "Pointer increment needed" */
data++;
length--;

I think this part is related to the receive process, however the code can not run this part.

Can you download the file I uploaded and try to find some problems about the process of receiving data.6327.test-rx voltage.zip 

  • Part Number: EM1402EVM

    Tool/software: Code Composer Studio

    I found that the SCIFLG register would not change its value when the code was running.

    I have tried many demo codes including EM1402EVM, TMS570_BMS , even the example code of Hercules. However, they have the same problem and the code would be stuck in the while() as below shown.

    I uploaded my hercules code and can you try to find some mistakes about mine code?

    4645.sci.zip

  • Hello,
    sciReceiveByte uses polling method to receive byte. This is done by polling RXRDY flag. The receiver sets this flag to indicate that the SCIRD contains new data and is ready to be read by the CPU.
    while ((sci->FLR & (uint32)SCI_RX_INT) == 0U) is where this check is performed.


    Regarding your first post, this part of code sends data in polling mode.

    Please, check whether transceiver and receiver are using the same settings for serial communication.

    Best regards,
    Miro
  • Hello,
    I am a little bit confused because in another thread posted by you, it is mentioned that needed HW modifications are made (R8 and R9 are removed). Are you using another Launchpat for this test or you have restored the initial state of LaunchPad?

    Best regards,
    Miro
  • Hello Lei,

    The SCI/LIN module can be configured to operate in either SCI (UART) or LIN mode. The core of the module is an SCI. The SCI’s hardware features are augmented to achieve LIN compatibility. SCI mode is selected by clearing LIN MODE bit in SCIGCR1 register.

    I checked you HALCoGen settings, the module is configured as LIN mode (picture attached). Please select SCI instead.