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.

TMS570: SCI Rx interrupt problem

Other Parts Discussed in Thread: HALCOGEN, TMS570LS1227, TMS570LS20216

HI Team TI,

In my design I have confgured SCI2 Rx as interrupt(code taken from halcogen).

Whenever i receive the interrupt the Intvec register is updated with 0x0000000B, which is receive interrupt index(correct one).
But the code will to address 0x00000004 and hangs there.

The baud, data length, stop, parity all are correct.

Please could any one explain why it goes to the address 0x00000004(i think its pantom interrupt address) and hangs there?


Thanks in Advance.

  • Jaggu,

    Address 0x4 is the location of "undefined instruction" interrupt. It means that instruction CPU fetches is not a valid instruction. Normally, it caused by software error. You may want to first check if the stack is corrupted. How do you serve the interrupts?

    Thanks and regards,

    Zhaohong

  • Jaggu,

    Do you have the checkbox "Enable IRQ Handling via VIC Controller" checked in the Processor tab, under the R4-MPU-PMU tab?

    If so,  what is the name of your interrupt handler and does this match what is listed in the tab "VIM RAM" under the Processor tab.

    Now if that's looking good, did you compiler that interrupt handler using the ARM instruction set, or did you compile it for Thumb2?

    The exception entry on this processor is tied to ARM mode, so you have to make sure you handler is using the ARM instruction set, not the Thumb2 set.

    -Anthony

  • Hi Zhaohong,

    I have defined stack size as 0x1000, i think its quite large enough.

    My Application will recieve Rx interrupt data and send hardcore data to TX line.(we are testing Rx interrupt functionality).

    Let me know what constrains might be corrupting the stack.

  • Jaggu,

    I would suggest you following the example in TI  HDK software. You can find it in the following link.

    http://processors.wiki.ti.com/index.php/RM48_HDK_Kit

    Thanks and regards,

    Zhaohong

  • am facing problem in sci1 Rx interrupt . when i send some characters from pc interrupt is not generated, along with it i need some info regaring the settings in sys_startup.c .pls let me know 

  • Hello Jaggu,

    I have also a problem with data reception on SCI2 port. Data transmission and reception are required for my project. Data transmission is performed normally in both polling and interrupt modes. But data is not received neither in polling nor interrupt modes. RX RDY flag is never set. Therefore no data is received. Is RX RDY flag set in your example when byte is received? I guess our issues are identical.

    I will be grateful for any information that can help me to solve the problem. My project is attached in the "SCI2 does not receive data in UART mode" post. You may take a look on it. SCI2 is configured in HalCoGen.

    Best regards,

    Vitalij

  • Hi Stepin /Jaggu,

    I'm developing the application for the TMS570LS1227.In my application also transmission and reception is required.

    I can transmit the data successfully in the application.But i can't receive the data in all the methods.My RX RDY flag will never set.

    Please kindly help me where i need to check in code.If you are ready to check my code i will attach it in the next post.

    Thanks and regards,

    Silpa M

  • Hi Silpa M,

    I also had similar problem with SCI RX interrupt. TMS570LS20216 is used in our application.  RX RDY flag was also never set. The problem disappered after installation of the latest version of HalCoGen from TI web site. We still don't know what was the source of this problem. Perhaps, previous version of HalCoGen was incorrectly installed. Several warnings were ignored during installation of the previous version. 

    Now we use simultaneously 2 SCI ports with RX and TX interrupts. All works perfectly.

    Regards,

    Vitalij

  • Hello Stepin,

    Thanks for your quick reply.

    My question is how installing the HalcoGen new version changed your executable?Are you flashing the directly the .out(executable) generated by the HalcoGen into the MCU?

    Is any code changes in the SCI intialization with the latest version?

    Regards,

    Silpa Muppalla

  • All,

    I think this problem is related to SCI able to synchronize after initialization.  I did look the latest version of Halcogen (03.05.00) and nothing is changed on SCI_INIT.

    I recommend to follow this link and implement a wait loop on IDLE after SCI is release from reset.

    http://e2e.ti.com/support/microcontrollers/hercules/f/312/p/165256/623019.aspx#623019

  • Hi Jean_Marc,

    I did the setting as suggested in the our post.

    But, whenever i receive the interrupt, the Intvec register is updated with 0x0000000B, which is receive interrupt index...But the code will to address 0x00000004(illegal instruction) and hangs there.

    Pls help to solve the same.

  • Hi Jean,

    I did the setting as sugessted my you.

    But, whenever i receive the interrupt the Intvec register is updated with 0x0000000B, which is receive interrupt index, but the code will go to address 0x00000004 and hangs there.

    Pls help me in solving this.