Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: перенос проекта с xmega256a3 на xmega256a3u
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
eleco
Доброго времени суток!
Возникла следующая проблема готовый проект написаный и отлаженный под xmega256a3 понадобилось перенести на xmega256a3u. При этом перестал работать USARTD0, используется только на выход, порт PD3. Отключив USART было выяснено, что прямое управление портом вообще не работает, он глухо в лог.0, единственное на что он реагирует это инвертирование выходного сигнала. Есть подозрение что это может быть из-за модуля USB, но он пока не нужен... В еррате вообще тишина, все документы атмела говорят, что просто записывайте проект даже без перекомпиляции под a3u и все должно работать, хотя и с перекомпиляцей не работает.
ILYAUL
Цитата from Atmel AVR1020: Migration from ATxmega256A3/192A3/128A3/64A3 to ATxmega256A3U/192A3U/128A3U/64A3U
Цитата
Introduction
This application note is a guide to assist users of Atmel
ATxmega256A3/192A3/128A3/64A3 in converting designs to Atmel
ATxmega256A3U/192A3U/128A3U/64A3U. For complete device details, always
refer to the most recent version of the ATxmega256A3U/192A3U/128A3U/64A3U
datasheet and the Atmel® AVR® XMEGA® AU manual. Errata differences between
ATxmega256A3/192A3/128A3/64A3 and
ATxmega256A3U/192A3U/128A3U/64A3U are not listed in this document, only in
the device datasheet.
In addition to the differences described in this document, other typical
characteristics could be different. Please check the latest datasheet for details.
eleco
Цитата(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 выводов работают, в том числе и другие модули и без особенностей
_Артём_
Цитата(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 заремапился в другое место? По умолчанию ремап выключен.
eleco
да, по умолчанию все ремапы выключены

Цитата
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 регистр тоже не делает если бы он влиял половина бы не работала
_Артём_
Цитата(eleco @ Feb 11 2013, 20:43) *
но мне кажется что это проблема не модуля, по какой то причине не работает сам порт на который должен выйти усарт.

Может проблема не в xmega, а в плате? Например порт не может 1 выставить на выходе.

Цитата(eleco @ Feb 11 2013, 20:43) *
различий REMAP регистр тоже не делает если бы он влиял половина бы не работала

Почему половина? У каждого порта свой ремап.
eleco
собрано две платы макетных результат на обоих одинаковый, замыканий на землю и на соседние проводники нет, да и лог.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 абсолютно одинаковая, как впринципе и основная часть даташита
zombi
Цитата(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
eleco
Проблема решена, все дело оказалось в маленьком различии 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.


всем спасибо
ILYAUL
Холосо получилось. Класиво. Я с жирного шрифта начал , Вы им и закончили.
zombi
Цитата(eleco @ Feb 13 2013, 22:38) *
Проблема решена, все дело оказалось в маленьком различии USART A3 и A3U, ну и невнимательности конечно...

Дык чего PD3 не работал ???

Обьясни по русски, пожалуйста.
eleco
Цитата(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...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.