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.

Trouble w/UART interrupt on TMS320f2812

Other Parts Discussed in Thread: TMS320F2812

Hey all, I'm trying to get the SCI B interrupt working on the TMS320f2812. First I got the Timer 2 interrupt working, because that doesn't go through the PIE, just to convince myself that the core interrupts are working. Then I got the Timer 0 interrupt working, to convince myself that I know how to use the PIE. Then I shut that off and started on the UART B interrupt.

When I send a character from a terminal program, I can see the character turn up in the SCIRXBUF B, and none of the error bits are set, so I know  the UART is receiving the character. However, SCIRXST B = 2. Bit 6 is not set, which is the flag that says there's a character waiting. (If I poll for it, sometimes I get it & sometimes I don't, but I never see it with the debugger).  SCICTL2 B = 0xC3. Bit 1 is set, so the UART should generate an interrupt when it receives a character. But PIEIFR9 = 0, so it looks like the UART is not setting an interrupt flag bit in the PIE.

Anyone have any suggestions as to what I should look for? BTW, baud rate is set to 9600 as follows:

SCIHBAUD/SCILBAUD B = 0x100e7 = (LSPCLK / (8.0 * 9600)) -1.0)

Where:

#define XCLKIN   30.0e6   // external clock
#define SYSCLKOUT  (XCLKIN*5.0) // cpu clock
#define HSPCLK   (SYSCLKOUT/2.0) // high speed peripheral clock
#define LSPCLK   (SYSCLKOUT/4.0) // low speed peripheral clock