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