Blues, Zephyr, using all {LP}u{s}arts

I’m porting a zephyr application from STM32F405 feather over to swan stm32l4. One of the selling points for the swan was 4 hardware serial ports routing via the castellated pinout plus USB CDC. These are lpuart1 (RX0/TX0), usart1(RX/TX), usart2 (RX2/TX2), usart3(RX3/TX3)

USART2 and USART3 work exactly as expected.

It seems that LPUART1 is routed both to RX0/TX0 and to T_VCP_RX/T_VCP_TX pins on the debug header. When the debug connector is connected, this makes this UART is not usable, which means that it is not possible to use the debugger to debug code which uses LPUART1. I’m curious if there’s a way to float the pins on the stlinkv3 so as to remove this interference.

USART1 RX seems to not work. Using the same test fixture to identify that LPUART1 (without debug connector), USART2 and USART3 are working, USART1 happily transmits data out via serial, but fails to receive. Scoping the RX line while transmitting characters, I see what appears to be a well formed pulse train, but nothing is received. Reviewing the schematic for the board it does not appear that there are any other connections on USART1{RX/TX} lines.
Tried to explicity call out pull down on the pin

 51 &usart1_rx_pa10{                                                                
 52     bias-pull-down;                                                             
 53 };  

but this made no difference.

Curious if anyone has insight.


1 Like

Hey @jshapiro,

And welcome to the Blues community! Sorry this took a while to get to, but our resident Zephyr experts are traveling so I haven’t been able to reach out to them.

I did get an answer about LPUART1 though. The only way to use LPUART1 is to get sharp cutters and to clip the pins from the cortex debug connector on the swan. The standard method is to just clip the four outer pins on the connector - two on left and two on right - turning it into a 10-pin connector with no VCOM support.