We used a logic analyzer to automatically obtain the baud rate corresponding to the data sent via the serial port. We found that the baud rate was incorrect. The actual setting was 115200, but the recognized value was 24330.
Use the data sent via cutecom.
The following are the modification information related to the serial port:
dts file:
bus@0 {
/*
* serial10 = "/bus@0/serial@810c540000" UART2
* serial5 = "/bus@0/serial@810c510000"; UART5
* serial8 = "/bus@0/serial@a808800000";
* serial4 = "/bus@0/serial@810c500000";
* serial0 = "/bus@0/serial@c5f0000"; UART3(DEBUG)
* serial9 = "/bus@0/serial@810c530000"; UART1
*/
serial@810c530000 { /* UART1 -> SOC_UART9 */
status = "okay";
};
serial@810c540000 { /* UART2 -> SOC_UART10 */
status = "okay";
};
serial@810c510000 { /* UART5 -> SOC_UART5 */
status = "okay";
};
pinmux file:
uart5_tx_pj3 {
nvidia,pins = "uart5_tx_pj3";
nvidia,function = "uartf_txd";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
nvidia,enable-input = <TEGRA_PIN_DISABLE>;
nvidia,drv-type = <TEGRA_PIN_1X_DRIVER>;
nvidia,e-io-od = <TEGRA_PIN_DISABLE>;
nvidia,e-lpbk = <TEGRA_PIN_DISABLE>;
};
uart5_rx_pj4 {
nvidia,pins = "uart5_rx_pj4";
nvidia,function = "uartf_rxd";
nvidia,pull = <TEGRA_PIN_PULL_UP>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
nvidia,enable-input = <TEGRA_PIN_ENABLE>;
nvidia,drv-type = <TEGRA_PIN_1X_DRIVER>;
nvidia,e-io-od = <TEGRA_PIN_DISABLE>;
nvidia,e-lpbk = <TEGRA_PIN_DISABLE>;
};
uart9_tx_pm2 {
nvidia,pins = "uart9_tx_pm2";
nvidia,function = "uartj_txd";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
nvidia,enable-input = <TEGRA_PIN_DISABLE>;
nvidia,drv-type = <TEGRA_PIN_1X_DRIVER>;
nvidia,e-io-od = <TEGRA_PIN_DISABLE>;
nvidia,e-lpbk = <TEGRA_PIN_DISABLE>;
};
uart9_rx_pm3 {
nvidia,pins = "uart9_rx_pm3";
nvidia,function = "uartj_rxd";
//nvidia,pull = <TEGRA_PIN_PULL_UP>;
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
nvidia,enable-input = <TEGRA_PIN_ENABLE>;
nvidia,drv-type = <TEGRA_PIN_1X_DRIVER>;
nvidia,e-io-od = <TEGRA_PIN_DISABLE>;
nvidia,e-lpbk = <TEGRA_PIN_DISABLE>;
};
uart10_tx_ph2 {
nvidia,pins = "uart10_tx_ph2";
nvidia,function = "uartk_txd";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
nvidia,enable-input = <TEGRA_PIN_DISABLE>;
nvidia,drv-type = <TEGRA_PIN_1X_DRIVER>;
nvidia,e-io-od = <TEGRA_PIN_DISABLE>;
nvidia,e-lpbk = <TEGRA_PIN_DISABLE>;
};
uart10_rx_ph3 {
nvidia,pins = "uart10_rx_ph3";
nvidia,function = "uartk_rxd";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
nvidia,enable-input = <TEGRA_PIN_ENABLE>;
nvidia,drv-type = <TEGRA_PIN_1X_DRIVER>;
nvidia,e-io-od = <TEGRA_PIN_DISABLE>;
nvidia,e-lpbk = <TEGRA_PIN_DISABLE>;
};
We have found that currently only the debug serial port is functioning properly. UART1, UART2 and UART5 all have this problem.
May I ask if there is any good solution?
