AnsweredAssumed Answered

STM32L0xx UART overrun error

Question asked by Aman Kumar on Mar 7, 2018
Latest reply on Mar 7, 2018 by Clive One

We are using the STM32L0 HAL implementation of the UART driver. The UART (115200,8-N-1) is used in interrupt mode and we have configured the interrupt to occur for every character. This is done so that we can implement a CLI at the application level. The target controller is STM32L071KB (32 MHz). 

 

The issue is that we run into a UART overrun error if the CLI is used by an automated test script such as TeraTerms TTL running at the set baud rate i.e. 115200. The only way to get it to work properly is by adding a 10 ms inter-character delay on the sender side.

 

We confirmed the error by looking at the UART ISR register where the ORE bit gets set. 

 

We have tried different baud rates , Oscillator clock frequencies as well but to no avail.

 

Interestingly running the same code on an STM32F4xx (180 MHz) series controller has no issues at all.

 

We have patched the HAL_UART_IRQ_Handler() routine with the latest updates from STM32 HAL V1.10.0. The HAL driver package we are using is V1.8.1. The implementation of the interrupt based driver in our software  is as per the reference application :UART_TwoBoards_ComIT

Outcomes