Showing results for 
Show  only  | Search instead for 
Did you mean: 
Registered: ‎05-13-2018

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.

0 Kudos
1 Reply
Xilinx Employee
Xilinx Employee
Registered: ‎09-04-2012

Have you tried setting a breakpoint in your ISR then stepping through it to see what is happening?



0 Kudos