Verdin AM62 - RS-485 multi-point/multi-drop

Hi, I’m the Toradex AI Assistant.

I might make mistakes or occasionally get you wrong. Our support team will step in if needed.


RS485 Multi-Drop Addressing Support

The issue you’re encountering with the SER_RS485_ADDRB flag returning EINVAL is likely related to kernel driver support for 9-bit addressing mode on the TI AM62 platform.

Understanding the Problem

The SER_RS485_ADDRB flag is used to enable 9-bit addressing mode for RS485 multi-drop communication, but this feature requires specific kernel driver support that may not be fully implemented or enabled in the current BSP for TI AM62 platforms.

Device Tree Configuration

Your device tree overlay configuration looks correct for basic RS485 operation (1):

&main_uart2 {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_sodimm_uart2_pins>;
    uart-has-rtscts;
    linux,rs485-enabled-at-boot-time;
    rs485-rts-active-low;
    status = "okay";
};

(1)

Hardware Requirements

For RS485 communication, you need a proper transceiver. The RS-485 standard relies on differential signaling, which standard TTL UART cannot support (2). You must incorporate a transceiver compatible with the voltage levels of your platform (2).

Alternative Approaches

Since the kernel driver may not support the SER_RS485_ADDRB flag, consider these alternatives:

  1. Manual 9-bit Implementation: Handle the address/data distinction in your application layer by managing the parity bit manually
  2. Protocol-Level Addressing: Implement addressing at the application protocol level rather than relying on hardware 9-bit support
  3. Custom Driver Modification: Modify the UART driver to support the specific 9-bit addressing requirements

Troubleshooting Steps

  1. Verify Driver Support: Check if your kernel version and BSP include full support for 9-bit addressing
  2. Test Without ADDRB: Confirm basic RS485 operation works without the SER_RS485_ADDRB flag
  3. Check Kernel Logs: Review dmesg output for any driver-specific error messages

The UART interfaces on Toradex modules provide standard TTY device access under /dev with family-specific naming conventions (3). For TI AM62 platforms, ensure you’re using the correct device paths and that the underlying hardware supports the advanced RS485 features you’re trying to implement.

Best regards, Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.