UART Q&A

Q1:  UART工作不正常时,怎么确认问题?

  1. 确认硬件使用的pin脚

  2. 确认对应pin脚的padmux是否设定正确

    xxx_HW CheckList_xxxx.xlsx找到相应的Pad_Name,第一行为对应的reg以及bit位,图中标记处为需要设定的数值。

  3. reg的数值是否匹配

    如果不匹配,请确认:

    1. uart pin使用的/dev/ttySx

      可通过查看dts确认uart对应的serialx,serialx对应的就是/dev/ttySx

    2. pioneer3-xxx-padmux.dtsi确认相应pin脚是否被挪做他用。

    3. 确认芯片内部的Uart controller和对应的padmux是否匹配

      0x101e 0x53(16bit) (在rom code里面已经设定完成)

Q2: uart能否支持1.5M或3M的波特率?

可以,但kernel这边需做如下两点修改:

  1. 将需要使用的uart的dts节点中增加或修改 tolerance = <3>; 如

  2. 修改 “kernel/drivers/sstar/serial/ms_uart.c”文件,将“ms_uart_set_termios”函数中的 115200*14 改成 115200*30 即可

...