We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

Showing results for 
Search instead for 
Did you mean: 
Observer zdicklin
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

Re: Microblaze UART ISR hangs on even-numbered characters

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



0 Kudos