Я пишу драйвер RS485 для платы ARM AT91SAM9260 на Linux.Инициализация UART: предотвращение UART для вытягивания RTS high
Когда я инициализирую UART, сигнальная линия RTS становится высокой (1). Я предполагаю, что это будет и должно быть стандартным поведением в режиме работы RS232. Однако в режиме RS485 это не требуется.
Я использую стандартные функции, предусмотренные секцией арматурной арки для инициализации UART. Поэтому значительные шаги:
at91_register_uart(AT91SAM9260_ID_US2, 3, ATMEL_UART_CTS | ATMEL_UART_RTS);
//consisting of:
// >> configure/mux the pins
at91_set_A_periph(AT91_PIN_PB10, 1); /* TXD */
at91_set_A_periph(AT91_PIN_PB11, 0); /* RXD */
if (pins & ATMEL_UART_RTS)
at91_set_B_periph(AT91_PIN_PC8, 0); /* RTS */
if (pins & ATMEL_UART_CTS)
at91_set_B_periph(AT91_PIN_PC10, 0); /* CTS */
// >> associate the clock
axm_clock_associate("usart3_clk", &pdev->dev, "usart");
// >> et voilà
Как вы можете видеть
at91_set_B_periph (AT91_PIN_PC8, 0);
Подтяжка на контакте RTS не активирована.
Почему UART установил RTS высоко? Просто потому, что это будет стандартное поведение в режиме RS232?
Не было бы лучше стандарт для УАПП молчать, пока режим работы
явно установлена?