UART Q&A
Q1: UART工作不正常时,怎么确认问题?
-
确认硬件使用的pin脚
-
确认对应pin脚的padmux是否设定正确
在
xxx_HW CheckList_xxxx.xlsx
找到相应的Pad_Name,第一行为对应的reg以及bit位,图中标记处为需要设定的数值。 -
reg的数值是否匹配
如果不匹配,请确认:
-
uart pin使用的
/dev/ttySx
可通过查看dts确认uart对应的serialx,serialx对应的就是
/dev/ttySx
。 -
在
pioneer3-xxx-padmux.dtsi
确认相应pin脚是否被挪做他用。 -
确认芯片内部的Uart controller和对应的padmux是否匹配
0x101e 0x53(16bit) (在rom code里面已经设定完成)
-
Q2: uart能否支持1.5M或3M的波特率?
可以,但kernel这边需做如下两点修改:
-
将需要使用的uart的dts节点中增加或修改 tolerance = <3>; 如
-
修改 “kernel/drivers/sstar/serial/ms_uart.c”文件,将“ms_uart_set_termios”函数中的 115200*14 改成 115200*30 即可