Up to 16 custom boards equipped with i.MX8MQ are connected for RS-485 communication.
We have modified the driver to support the custom baud rate and have successfully communicated at 250000bps.
However, in rare cases, the UART suffers from an overrun error and does not recover.
When this happens, it will not be able to receive at all, but it seems to be able to transmit.
Can anyone tell me what causes the overrun error to occur, or how to recover from it other than rebooting the system when it occurs?
BSP Ver:Linux 5.10.35_2.0.0
imx8mq-evk.dts
/* RS-485 */
&uart3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart3>;
assigned-clocks = <&clk IMX8MQ_CLK_UART3>;
assigned-clock-parents = <&clk IMX8MQ_CLK_25M>;
uart-has-rtscts;
rts-gpios = <&gpio5 8 GPIO_ACTIVE_HIGH>;
linux,rs485-enabled-at-boot-time;
status = "okay";
};
Solved! Go to Solution.
Hi Kentarou,
You can upgrade to a newer BSP.
Regards