You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Originally posted by msmttchr October 15, 2024
We are having trouble using some of the lower-end MCUs (STM32F0, G0 and C0) for some of our end-devices.
The MCUs in these devices must support a UART interface at sustained 500Kbps with no flow control.
We've noticed data loss when using Zephyr v3.7.0 UART driver with UART_ASYNC_API.
Using this configuration we have seen data loss when the DMA interrupts and attempts to restart the DMA with a new buffer.
We believe the cause of the data loss is because the current driver implementation doesn’t process data quickly enough.
Normally, STM32 supports circular dma buffer management with ability to have half full irq and full irq, so that software can read previous half while current half is being filled. In this case, no dma buffer setup is needed during reception, but I believe Zephyr drivers model does not support circular buffer.
Could you please suggest how to handle this use case?
The text was updated successfully, but these errors were encountered:
Discussed in #79831
Originally posted by msmttchr October 15, 2024
We are having trouble using some of the lower-end MCUs (STM32F0, G0 and C0) for some of our end-devices.
The MCUs in these devices must support a UART interface at sustained 500Kbps with no flow control.
We've noticed data loss when using Zephyr v3.7.0 UART driver with UART_ASYNC_API.
Using this configuration we have seen data loss when the DMA interrupts and attempts to restart the DMA with a new buffer.
We believe the cause of the data loss is because the current driver implementation doesn’t process data quickly enough.
Normally, STM32 supports circular dma buffer management with ability to have half full irq and full irq, so that software can read previous half while current half is being filled. In this case, no dma buffer setup is needed during reception, but I believe Zephyr drivers model does not support circular buffer.
Could you please suggest how to handle this use case?
The text was updated successfully, but these errors were encountered: