Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема с USRT у AT91SAM7S256
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
subver
Добрый день.

Такая проблема: неправильно принимаются данные по USART, причем если передаваемые байты лежат в диапазоне 0x00-0x80 - то все окей.
если больше 0x80, то принимается какая-то ерунда, чаще всего вида 0xFF. Что такое может быть?
Проверено на нескольких платах. Осциллографом - сигнал корректный.

Процедура инициализации

AT91F_PIO_CfgPeriph(AT91C_BASE_PIOA,RS485_RX|RS485_TX|RS485_TR,0);
AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC,1<<AT91C_ID_US1);
AT91C_BASE_US1->US_BRGR =(5<<16)|326;
AT91C_BASE_US1->US_RTOR = 65534;
AT91C_BASE_US1->US_TTGR = 4;
AT91C_BASE_US1->US_IDR = 0xFFFFFFFF;
AT91C_BASE_US1->US_MR = AT91C_US_CHRL_8_BITS | AT91C_US_PAR_NONE | AT91C_US_OVER | AT91C_US_USMODE_RS485;
AT91C_BASE_US1->US_CR = AT91C_US_RXEN | AT91C_US_TXEN;
AT91F_AIC_ConfigureIt(AT91C_BASE_AIC,AT91C_ID_US1,RS485INTPRIOR,AT91C_AIC_SRCTYP
E_INT_LEVEL_SENSITIVE, RS485Irq);
AT91C_BASE_US1->US_IER = AT91C_US_ENDRX;
AT91F_AIC_EnableIt(AT91C_BASE_AIC,AT91C_ID_US1);
VAI
точно в диаппазоне 0x00..0x80 или может быть 0x00..0x7f ?
Что-то подозрительно похоже на какие-то преобразования signed-unsigned...
хотя может я не прав...
subver
все проще - не совпадал контроль четности у приемника и передатчика smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.