Issues with half-duplex single wire 8E2 inverted logic uart receive and frame errors
I have some custom STM32G43KB boards that don’t always behave. The firmware starts with the UART in receive mode, 9600 baud, 9B (8 + parity) 2 stop bits, TX and RX inverted to interface with the host device. The device UART line idles low (ground) as expected for inverted logic, and sends a 17-byte poll message that my board will reply to.
Out of 25 boards that have been programmed with the same firmware, about 60 percent of them work, the other 40% show a frame error and do not decode the first byte of the message properly.
I have been using alternate function push pull for PA9 configuration, with a 10K pull down resistor to create the idle low condition when in receive mode. Some boards work, some don’t.
The same boards, when programmed with other versions of the firmware for interface to different external systems are working fine with AF Push/Pull, 8N1, not inverted, baud rates of 100K, 115.2K and 250K with no issues.
When configured for 9600 baud 8E2 inverted, some of the boards work, some don’t.
Suggestions?
