реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> перенос проекта с xmega256a3 на xmega256a3u, проблемы с портом
eleco
сообщение Feb 11 2013, 16:10
Сообщение #1


Участник
*

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



Доброго времени суток!
Возникла следующая проблема готовый проект написаный и отлаженный под xmega256a3 понадобилось перенести на xmega256a3u. При этом перестал работать USARTD0, используется только на выход, порт PD3. Отключив USART было выяснено, что прямое управление портом вообще не работает, он глухо в лог.0, единственное на что он реагирует это инвертирование выходного сигнала. Есть подозрение что это может быть из-за модуля USB, но он пока не нужен... В еррате вообще тишина, все документы атмела говорят, что просто записывайте проект даже без перекомпиляции под a3u и все должно работать, хотя и с перекомпиляцей не работает.
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Feb 11 2013, 17:30
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата 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.


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
eleco
сообщение Feb 11 2013, 18:25
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 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 выводов работают, в том числе и другие модули и без особенностей
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Feb 11 2013, 18:29
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 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 заремапился в другое место? По умолчанию ремап выключен.
Go to the top of the page
 
+Quote Post
eleco
сообщение Feb 11 2013, 18:43
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 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 регистр тоже не делает если бы он влиял половина бы не работала
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Feb 11 2013, 19:09
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(eleco @ Feb 11 2013, 20:43) *
но мне кажется что это проблема не модуля, по какой то причине не работает сам порт на который должен выйти усарт.

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

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

Почему половина? У каждого порта свой ремап.
Go to the top of the page
 
+Quote Post
eleco
сообщение Feb 11 2013, 19:33
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 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 абсолютно одинаковая, как впринципе и основная часть даташита
Go to the top of the page
 
+Quote Post
zombi
сообщение Feb 11 2013, 22:32
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
eleco
сообщение Feb 13 2013, 19:38
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 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.


всем спасибо
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Feb 13 2013, 20:07
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Холосо получилось. Класиво. Я с жирного шрифта начал , Вы им и закончили.


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
zombi
сообщение Feb 13 2013, 23:35
Сообщение #11


Гуру
******

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



Цитата(eleco @ Feb 13 2013, 22:38) *
Проблема решена, все дело оказалось в маленьком различии USART A3 и A3U, ну и невнимательности конечно...

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

Обьясни по русски, пожалуйста.
Go to the top of the page
 
+Quote Post
eleco
сообщение Feb 14 2013, 14:06
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 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...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 6th July 2025 - 15:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.01482 секунд с 7
ELECTRONIX ©2004-2016