Полная версия этой страницы:
USART на SAM4E16
Cruz21
Apr 13 2015, 09:59
Имеется плата sam4e-ek, где на USART находится два интерфейса, это RS-232 и RS-485. Как переключить эти интерфейсы написано в даташите так:
"The Universal Synchronous/Asynchronous Receiver Transmitter (USART) provides one full duplex universal
synchronous/asynchronous serial link. The data frame format is extensively configurable (data length, parity, number of
stop bits) to support a broad range of serial communication standards. The USART is also associated with PDC
channels for TX/RX data access.
To avoid any electrical conflict, the RS232 and RS485 transceiver are isolated from the receiving line PA21.
• Chose RS485 channel: Close 1-2 pins on JP11 and set PA23 to high level
• Chose RS232 channel: Close 2-3 pins on JP11 and set PA23 to low level"
Мне нужен RS-485. Есть пример для отправки символа и получение эхо. Он работает на RS-232, а мне этот пример нужно переделать на RS-485.
Я джампером настроил плату " Close 1-2 pins on JP11", а вот "set PA23 to high level" что то не понимаю, что тут программно нужно дописать для порта PA23, чтобы именно RS-485 заработал.
Что нужно тут сделать?
_4afc_
Apr 13 2015, 11:06
Цитата(Cruz21 @ Apr 13 2015, 12:59)

Я джампером настроил плату " Close 1-2 pins on JP11", а вот "set PA23 to high level" что то не понимаю, что тут программно нужно дописать для порта PA23, чтобы именно RS-485 заработал.
Что нужно тут сделать?
1. Перенести тему в ARM.
2. Найти где в коде PA23 устанавливается по умолчанию в 0 и переписать в единицу.
Или написать что-то типо PIOA->PIO_SODR=(1<<23);
Cruz21
Apr 13 2015, 11:52
Цитата(_4afc_ @ Apr 13 2015, 14:06)

1. Перенести тему в ARM.
2. Найти где в коде PA23 устанавливается по умолчанию в 0 и переписать в единицу.
Или написать что-то типо PIOA->PIO_SODR=(1<<23);
да так тоже попытался,
PIOA->PIO_SODR= PIO_PA23;
Golikov A.
Apr 13 2015, 13:17
А меня одного смущается что RS485 в отличии от RS232 half duplex. И потому эхо на нем без доп устройства - несколько странная штука?
RS485 от RS232 с программной точки зрения отличается только тем что надо еще рулить направлением. Потому по настройке должен быть таким же, максимум где - то режим работы задают чтобы появился железный бит. Но в большинстве случаев направлением рулят руками через GPIO бит.
Очень подозреваю что ваш РА23 - это как раз бит направления. Надо схему человеческую выкладывать, а не красивую. И естественно чтобы ногой махать, надо ее на выход настроить и тактирование включить и прочее...
Cruz21
Apr 14 2015, 04:19
Цитата(Golikov A. @ Apr 13 2015, 16:17)

А меня одного смущается что RS485 в отличии от RS232 half duplex. И потому эхо на нем без доп устройства - несколько странная штука?
RS485 от RS232 с программной точки зрения отличается только тем что надо еще рулить направлением. Потому по настройке должен быть таким же, максимум где - то режим работы задают чтобы появился железный бит. Но в большинстве случаев направлением рулят руками через GPIO бит.
Очень подозреваю что ваш РА23 - это как раз бит направления. Надо схему человеческую выкладывать, а не красивую. И естественно чтобы ногой махать, надо ее на выход настроить и тактирование включить и прочее...
Да вы правы, поэтому не только схему ну сам даташит выложу.
Golikov A.
Apr 14 2015, 05:43
ну все просто...
PA23 - это ножка которая выключает микросхему ADM3312, это необходимо чтобы освободить сигнал CTS
дальше жампер jp11 выбирает что приходить на ногу RX с 485 или с 232.
Вы настраиваете все как UART, подаете на ногу PA23 логическую 1, для этого порт надо сконфигурить на выход, переключаете жампер jp11 на 485,
дальше ножками RTS - CTS управляете направлением передачи RS485, это наверное логичнее делать явно задавая им уровень 0 и 1 как ножкам GPIO, автоматике я бы не доверял, на первый взгляд у нее нет подходящего режима, если только специально не сделали... вот
DmitryM
Apr 14 2015, 06:17
Цитата(Golikov A. @ Apr 14 2015, 09:43)

дальше ножками RTS - CTS управляете направлением передачи RS485, это наверное логичнее делать явно задавая им уровень 0 и 1 как ножкам GPIO, автоматике я бы не доверял, на первый взгляд у нее нет подходящего режима, если только специально не сделали... вот
Как это атоматики нет? Классически на sam'ах управление передатчиком RS-485 идет выводом RTS.
Golikov A.
Apr 14 2015, 08:10
по схеме там еще cts участвует
DmitryM
Apr 14 2015, 09:22
Цитата(Golikov A. @ Apr 14 2015, 12:10)

по схеме там еще cts участвует
Ну это ж кит, предусмотрели на всякий случай отключаемый прием (в режиме PIO), а так достаточно завести RTS на оба входа nRE и DE, если не требуется принимать во время собственной передачи.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.