|
|
  |
перенос проекта с xmega256a3 на xmega256a3u, проблемы с портом |
|
|
|
Feb 11 2013, 16:10
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 22-12-05
Пользователь №: 12 566

|
Доброго времени суток! Возникла следующая проблема готовый проект написаный и отлаженный под xmega256a3 понадобилось перенести на xmega256a3u. При этом перестал работать USARTD0, используется только на выход, порт PD3. Отключив USART было выяснено, что прямое управление портом вообще не работает, он глухо в лог.0, единственное на что он реагирует это инвертирование выходного сигнала. Есть подозрение что это может быть из-за модуля USB, но он пока не нужен... В еррате вообще тишина, все документы атмела говорят, что просто записывайте проект даже без перекомпиляции под a3u и все должно работать, хотя и с перекомпиляцей не работает.
|
|
|
|
|
Feb 11 2013, 18:25
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 22-12-05
Пользователь №: 12 566

|
Цитата(ILYAUL @ Feb 11 2013, 20:30)  Цитата from Atmel AVR1020: Migration from ATxmega256A3/192A3/128A3/64A3 to ATxmega256A3U/192A3U/128A3U/64A3U к сожалению в даташитах не было найдено ответа на данный вопрос, адреса у регистров не менялись, модули атмел на данный порт не добавлял, на нем возможен выход двух модулей TCD0.OC0D и USARTD0, и это не объясняет почему не работает управление именно PD3, а остальные 50 выводов работают, в том числе и другие модули и без особенностей
|
|
|
|
|
Feb 11 2013, 18:29
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(ILYAUL @ Feb 11 2013, 19:30)  Цитата from Atmel AVR1020: Migration from ATxmega256A3/192A3/128A3/64A3 to ATxmega256A3U/192A3U/128A3U/64A3U Кроме опции: Цитата Pin mapping of all USART0 can optionally be moved to high nibble of port. различий для usart-ов не видно. Но с чего бы usart0 заремапился в другое место? По умолчанию ремап выключен.
|
|
|
|
|
Feb 11 2013, 18:43
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 22-12-05
Пользователь №: 12 566

|
да, по умолчанию все ремапы выключены Цитата 13.13.14 REMAP – Pin Remap register The pin remap functionality is available for PORTC - PORTF only.
Bit 4 – USART0: USART0 Remap Setting this bit to one will move the pin location of USART0 from Px[3:0] to Px[7:4]. но мне кажется что это проблема не модуля, по какой то причине не работает сам порт на который должен выйти усарт. различий REMAP регистр тоже не делает если бы он влиял половина бы не работала
|
|
|
|
|
Feb 11 2013, 19:09
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(eleco @ Feb 11 2013, 20:43)  но мне кажется что это проблема не модуля, по какой то причине не работает сам порт на который должен выйти усарт. Может проблема не в xmega, а в плате? Например порт не может 1 выставить на выходе. Цитата(eleco @ Feb 11 2013, 20:43)  различий REMAP регистр тоже не делает если бы он влиял половина бы не работала Почему половина? У каждого порта свой ремап.
|
|
|
|
|
Feb 11 2013, 19:33
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 22-12-05
Пользователь №: 12 566

|
собрано две платы макетных результат на обоих одинаковый, замыканий на землю и на соседние проводники нет, да и лог.1 на порту можно выставить Код PORTD_PIN3CTRL = PORT_INVEN_bm; но прямая запись в порт значения не работает Цитата Почему половина? У каждого порта свой ремап. имею ввиду если бы дефолтное значение влияло на работу то не работал бы еще один уарт например если же рассматривать структурную схему порта то выходная защелка отделена от элемента инвертирующего выход еще одним элементом на который приходит сигнал "OUT Override Enable" он видимо и не дает работать порту Цитата 13.8 Alternate Port Functions Most port pins have alternate pin functions in addition to being a general purpose I/O pin. When an alternate function is enabled, it might override the normal port pin function or pin value. This happens when other peripherals that require pins are enabled or configured to use pins. If and how a peripheral will override and use pins is described in the section for that peripheral. но модулей которые могут выйти на это пин всего два и оба отключены, да и структурная схема портов у 256a3 и 256a3u абсолютно одинаковая, как впринципе и основная часть даташита
|
|
|
|
|
Feb 11 2013, 22:32
|

Гуру
     
Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106

|
Цитата(eleco @ Feb 11 2013, 19:10)  ... говорят, что просто записывайте проект даже без перекомпиляции под a3u и все должно работать, хотя и с перекомпиляцей не работает. C A3 не работал (сразу с A3U начну), а на A1-A1U у меня всё работает и с перекомпиляцией и без оной. Эта програмища формирует на всех пинах порта D моей Xmega256A3U-AU меандр частотой 250kHz. Код ;begin ser R16 sts (1632),R16 sts (1639),R16 rjmp PC-2 ;end
|
|
|
|
|
Feb 13 2013, 19:38
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 22-12-05
Пользователь №: 12 566

|
Проблема решена, все дело оказалось в маленьком различии USART A3 и A3U, ну и невнимательности конечно... XMEGA A MANUAL Цитата 21.6.2 Disabling the Transmitter A disabling of the Transmitter will not become effective until ongoing and pending transmissionsare completed, i.e. when the Transmit Shift Register and Transmit Buffer Register do not contain data to be transmitted. When Transmitter is disabled it will no longer override the TxDn pin and the pin direction is set as input. XMEGA AU MANUAL Цитата 23.6.2 Disabling the Transmitter A disabling of the transmitter will not become effective until ongoing and pending transmissions are completed; i.e., when the transmit shift register and transmit buffer register do not contain data to be transmitted. When the transmitter is disabled, it will no longer override the TxDn pin, and the pin direction is set as input automatically by hardware, even if it was configured as output by the user. всем спасибо
|
|
|
|
|
Feb 14 2013, 14:06
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 22-12-05
Пользователь №: 12 566

|
Цитата(ILYAUL @ Feb 14 2013, 00:07)  Холосо получилось. Класиво. Я с жирного шрифта начал , Вы им и закончили. а я вот ничего холосего и класивого не вижу, если продолжить цитировать тот документ, что Вы начали: Цитата from Atmel AVR1020: Migration from ATxmega256A3/192A3/128A3/64A3 to ATxmega256A3U/192A3U/128A3U/64A3UЦитата ATxmega256A3U/192A3U/128A3U/64A3U also includes new configuration options and functions. As far as possible these are implemented as a superset of existing ATxmega256A3/192A3/128A3/64A3 functions, so existing code for these devices will work on the new devices without changing existing configuration or enabling new functions. The new options and functions are listed in the application note for customers who in addition to a pure migration also wish to see an overview to consider use of the new functions. Цитата(zombi @ Feb 14 2013, 03:35)  Дык чего PD3 не работал ???
Обьясни по русски, пожалуйста. т.к. программа писалась относительно давно, то немного подзабылось, что она еще и сама управляет этим передатчиком USART, соответственно когда я отключал USART на PD3 при конфигурировании, в остальной программе ничего не менялось... она так же выключала уже выключенный при конфигурировании UART, при этом даже если PD3 был сконфигурирован на выход он становился на вход, со всеми вытекающими... небольшая особенность a3u...
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|