Thread 中讨论的其他器件: ISO1176
工具与软件:
尊敬的 TI 团队:
我们有一款基于 AM3352的产品、有2个 RS485端口。
使用旧 SDK [内核4.9.XX]时、RS485端口运行正常、但升级到 SDK 9.01.0后、RS485端口仅在 Rx 模式下工作。
根据 AM335x-evm/kernel-source/arch/arm/boot/dts/ti 中的 dts 文件尝试了多种配置和器件树设置、但 RS485端口使用8250串行驱动程序在 RX 模式下工作。
使用旧的 OMAP 串行驱动器、RS485 Tx 可以正常工作、但 Rx 无法正常工作。
针对特定端口的 DTS 文件更改如下:
uart2_pins:pinmux_uart2_pins{
PINCTL-SINGLE、PINS =<
AM33XX_IOPAD (0x92C、PIN_INPUT | MUX_MODE1)/*(N19) gmii1_txclk.uart2_RxD */
AM33XX_IOPAD (0x930、PIN_OUTPUT | MUX_MODE1)/*(M19) gmii1_rxclk.uart2_txD */
>;
};
RS485_RTS_PINS:pinmux_gpio_pins{
PINCTL-SINGLE、PINS =<
AM33XX_IOPAD (0x95C、PIN_OUTPUT | MUX_MODE7)/*(A17) spi0_cs0.gpio0_5 */
>;
};
uart2{\f151。}
pinctrl-names ="默认值";
pinctrl-0 =<\uart2_pins>;
RTS-GPIO =<&GPIO0 5 GPIO_ACTIVE_HIGH>;
RS485-RTS -高电平有效;
RS485-RTS-DELAY =<0 0>;
启动时启用 Linux、RS485;
状态="正常";
};
内核配置如下:
#
#串行驱动程序
#
CONFIG_SERIAL_EARLYCON=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
CONFIG_SERIAL_8250_16550A_variants=y
# CONFIG_SERIAL_8250_FINTEK 未设置
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_DMA=y
CONFIG_SERIAL_8250_NR_UARTS=10
CONFIG_SERIAL_8250_RUNTIME_UARTS=10
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_AND_PORTES=y
CONFIG_SERIAL_8250_SHART_IRQ=y
# CONFIG_SERIAL_8250_DETECT_IRQ 未设置
# CONFIG_SERIAL_8250_RSA 未设置
CONFIG_SERIAL_8250_DWLIB=y
CONFIG_SERIAL_8250_FSL = y
CONFIG_SERIAL_8250_DW=y
未设置# CONFIG_SERIAL_8250_RT288X
CONFIG_SERIAL_8250_OMAP=y
CONFIG_SERIAL_8250_OMAP_TTYO_FIXUP=y
CONFIG_SERIAL_OF_PLATFORM=y
#
#非8250串行端口支持
#
# CONFIG_SERIAL_EARLYCON_SEMIHOST 未设置
# CONFIG_SERIAL_MAX3100未设置
# CONFIG_SERIAL_MAX310X 未设置
# config_serial_UARTLITE 未设置
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_SIFIVE 未置位
# CONFIG_SERIAL_SCCNXP is not set (未设置 CONFIG_SERIAL_SCCNXP)
# CONFIG_SERIAL_SC16IS7XX NOT SET (未设置 CONFIG_SERIAL_SC16IS7XX)
# CONFIG_SERIAL_Altera_JTAGUART 未设置
# CONFIG_SERIAL_Altera_UART 未设置
CONFIG_SERIAL_XILINX_PS_UART=y
CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
# CONFIG_SERIAL_ARC 未设置
CONFIG_SERIAL_FSL_LPUART=y
CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
# CONFIG_SERIAL_FSL_LINFLEXUART 未设置
CONFIG_SERIAL_CONEXANT_DIGICOLOR=y
CONFIG_SERIAL_CONEXANT_DIGICOLOR_CONSOLET=y
CONFIG_SERIAL_ST_ASC=y
CONFIG_SERIAL_ST_ASC_CONSOLE=y
# CONFIG_SERIAL_SPRD not set (未设置 CONFIG_SERIAL_SPRD)
#串行驱动程序结束
进行上述更改后、AM3352正在通过 RS485端口正确接收数据、但传输无法正常工作。
RTS 引脚(GPIO0_5)似乎没有正确切换、因此数据不来自 ISO1176。
您能否回顾并指出端口配置中存在的任何问题?
提前感谢。