How to use uart better?

Hello, Thanks for pynq commmunity , some kind engineers and my effort. I sucessully use uart on pynq-Z1/Z2 in ardunio.
The uart on ardunio of pynq could send and receive data.
I user uart.read to read the data received by pynq.
However ,my sensor send 125 recond each seconds. When I use the uart with my bluetooth, I find I will miss some data.
I write a uart in Artix before,which receive data when there is data in the communicate line.But when I use pynq’uart ,I write software to read it,It is not tthat stable like the real asynchronous communication.

1 Like

We all know uart is asynchronous communication.But when I use the uart in pynq, I need to write a python command, It seems not asynchronous communication any more.

It sounds like you want to read the Uart directly from Python on the PS. You can do this, but it is going to be relatively inefficient which I think is what you are noticing. If you need all the UART data back to the PS, you don’t have many options. If possible, you should try to offload as much processing as you can to the PL.
For example, if you don’t need all the Uart data, you can use an IOP to capture the UART (or your own custom design). It can pre-process the data if necessary, and only write back useful information to the PS. The IOP could also act independently of the PS and take decisions based on the data it reads from the Uart. Think of the IOP like a slave processor.

Cathal

Thank you for your answer. It remind me that I would better usr PL to recveive and process data.
And I notice that IOP you said. I search it is IO processsor for short. I think Ardunio in Pynq is an IOP. Is it right?
But considering I already usr uart in ardunio to get data from uart. It must be something different. Right?
Could I ask you more about IOP :slight_smile:
Thank you.