Высокий сигнал RTS после инициализации представляется стандартным поведением на многих платформах.Это зависит от того, какой последовательный режим работы ожидает интерфейс запуска.
Чтобы предотвратить RTS-high на плате ATMEL AT91SAM9260 под управлением Linux, необходимо перевести UART в правильный режим ПЕРЕД муксингом at91_set_X_periph () контактов и зарегистрировать устройство.
Начиная с версии ядра Linux 2.6.35, последовательный драйвер ATMEL поддерживает режим RS485.В этом драйвере UART правильно настроен перед установкой роли Pins (GPIO).
Для моего встраиваемого устройства, которое работает под управлением более старой версии Linux, я решил проблему с помощью следующей строки кодов:
/* write control flags */
control |= ATMEL_US_RTSEN;
mode |= ATMEL_US_USMODE_RS485;
UART_PUT(uartbaseaddr, ATMEL_US_CR, control);
UART_PUT(uartbaseaddr, ATMEL_US_MR,mode);
Теперь контакты можно мультиплексировать по их роли
at91_set_X_periph (RTS_PIN, 0);