Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: USART на SAM4E16
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Cruz21
Имеется плата 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_
Цитата(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
Цитата(_4afc_ @ Apr 13 2015, 14:06) *
1. Перенести тему в ARM.
2. Найти где в коде PA23 устанавливается по умолчанию в 0 и переписать в единицу.

Или написать что-то типо PIOA->PIO_SODR=(1<<23);


да так тоже попытался,
PIOA->PIO_SODR= PIO_PA23;
Golikov A.
А меня одного смущается что RS485 в отличии от RS232 half duplex. И потому эхо на нем без доп устройства - несколько странная штука?

RS485 от RS232 с программной точки зрения отличается только тем что надо еще рулить направлением. Потому по настройке должен быть таким же, максимум где - то режим работы задают чтобы появился железный бит. Но в большинстве случаев направлением рулят руками через GPIO бит.

Очень подозреваю что ваш РА23 - это как раз бит направления. Надо схему человеческую выкладывать, а не красивую. И естественно чтобы ногой махать, надо ее на выход настроить и тактирование включить и прочее...
Cruz21
Цитата(Golikov A. @ Apr 13 2015, 16:17) *
А меня одного смущается что RS485 в отличии от RS232 half duplex. И потому эхо на нем без доп устройства - несколько странная штука?

RS485 от RS232 с программной точки зрения отличается только тем что надо еще рулить направлением. Потому по настройке должен быть таким же, максимум где - то режим работы задают чтобы появился железный бит. Но в большинстве случаев направлением рулят руками через GPIO бит.

Очень подозреваю что ваш РА23 - это как раз бит направления. Надо схему человеческую выкладывать, а не красивую. И естественно чтобы ногой махать, надо ее на выход настроить и тактирование включить и прочее...

Да вы правы, поэтому не только схему ну сам даташит выложу.
Golikov A.
ну все просто...
PA23 - это ножка которая выключает микросхему ADM3312, это необходимо чтобы освободить сигнал CTS

дальше жампер jp11 выбирает что приходить на ногу RX с 485 или с 232.

Вы настраиваете все как UART, подаете на ногу PA23 логическую 1, для этого порт надо сконфигурить на выход, переключаете жампер jp11 на 485,
дальше ножками RTS - CTS управляете направлением передачи RS485, это наверное логичнее делать явно задавая им уровень 0 и 1 как ножкам GPIO, автоматике я бы не доверял, на первый взгляд у нее нет подходящего режима, если только специально не сделали... вот
DmitryM
Цитата(Golikov A. @ Apr 14 2015, 09:43) *
дальше ножками RTS - CTS управляете направлением передачи RS485, это наверное логичнее делать явно задавая им уровень 0 и 1 как ножкам GPIO, автоматике я бы не доверял, на первый взгляд у нее нет подходящего режима, если только специально не сделали... вот


Как это атоматики нет? Классически на sam'ах управление передатчиком RS-485 идет выводом RTS.
Golikov A.
по схеме там еще cts участвует
DmitryM
Цитата(Golikov A. @ Apr 14 2015, 12:10) *
по схеме там еще cts участвует


Ну это ж кит, предусмотрели на всякий случай отключаемый прием (в режиме PIO), а так достаточно завести RTS на оба входа nRE и DE, если не требуется принимать во время собственной передачи.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.