PRU Hardware UART

I’m learning how to use the BBB’s PRU’s, and I’m writing some assembly to utilize the PRU’s integrated UART. I read through the PRU reference manual and used it to write my assembly code, but after running the code in a debugger, I’m getting almost no output. The only reaction from the PRU I could see with my logic analyzer is a small spike when the PRU writes a value to the UART output address, but it is not a valid UART communication.

Here’s my assembly code and cape manager overlay

Any thoughts as to what might be going on?


It looks to me like you're immediately disabling the UART without waiting for the data you wrote to get transmitted (which will take a *LONG* time, at least from the PRU's 5 ns/clk perspective). Try either not shutting down the UART, or polling the UART to make sure the Tx side is idle before disabling it.

Thanks for the tip. It turns out I was setting my baud rate incorrectly on the PRU. After reconfiguring that, there was no issue.