Microblaze UART ISR hangs on even-numbered characters
I've been setting up an application that reads data from the UART with ISR. I wrote a simple echo application, but it behaved a little weird and inconsistent. Like, sometimes it would work great, others just kind of hang. To dumb it down further for troubleshooting and make sure it's not an issue of the ISR handing, I removed the echo and just have a bank of LEDs counting up each time the ISR is called.
With a bit of research, I found it hangs consistently on keys with even-numbered ASCII values. For example, if I hold down the 'A' key, the ISR is called repeatedly as expected. If I jam on the 'B' key, it might get called a few times but then eventually hang. Sometimes it won't receive at all.
I found all these letters with even-numbered ASCII values all jam eventually:
b 62 d 64 f 66 h 68 j 6a l 6c n 6e p 70 r 72 t 74 v 76 x 78 z 7a
All of their odd-numbered counterparts work great.
This is only an issue when using the interrupt. I have no issue receiving data if I do it in my main loop.
Any thoughts? I've tried messing with connection settings (flow control, etc), the UART AXI clock, etc, but no luck.