Hello,
i'm using an nRF52832 as a Bluetooth to UART bridge, similar to the APP UART example. Another controller (Cortex M7) is connected to the UART. I'm using UARTE with EasyDma and, because i have telegrams with variable length, TIMER1 to generate timeouts. For this i have made the following connections via PPI:
-
UARTE RXDRDY event to TIMER1 CLEAR task
-
UARTE RXDRDY event to TIMER1 START task
-
TIMER1 COMPARE0 event to UARTE STOPRX task
Flow control is not enabled. I use SDK14.0.0.
This works so far except that at temperatures below -30 °C i'm sometimes getting framing errors from the UARTE althought the signal looks good. The baudrate of the sender is correct and the nRF52 is using a 32 MHz crystal to generate the HFCLK.
Are there any problems known with UARTE at low temperatures?
Is my usage of UARTE together with TIMER1 ok?
The Cortex M7 is a Microchip ATSAMS70Q21-CN with an operating teperature range of -40 to 105 °C. Connected is a 20 MHz crystal with a frequency stability of +-20 ppm at -40 to 85 °C.
The 32 MHz crystal at the nRF52 has a frequency stability of +-10 ppm at -40 to 85 °C. I also have no problems with Bluetooth LE communication at low temperatures.
Edit: The problem is not independent of the Baudrate. I see the framing errors at -35 °C with 1Mbps (I don't know yet where they start). At lower baudrates the framing errors start at lower temperatures, i have to check, where exactly.
Attached is a oscilloscope screenshot, showing the Problem. Channel 2 is the serial data, channel 4 is the UARTE RXDRDY Event and channel 3 is the UARTE ERROR Event, where the events toggle io-ports via GPIOTE.