Jump to content

    
Sign in to follow this  
ser

перенос проекта с xmega256a3 на xmega256a3u

Recommended Posts

Доброго времени суток!

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Цитата from Atmel AVR1020: Migration from ATxmega256A3/192A3/128A3/64A3 to ATxmega256A3U/192A3U/128A3U/64A3U

 

к сожалению в даташитах не было найдено ответа на данный вопрос, адреса у регистров не менялись, модули атмел на данный порт не добавлял, на нем возможен выход двух модулей TCD0.OC0D и USARTD0, и это не объясняет почему не работает управление именно PD3, а остальные 50 выводов работают, в том числе и другие модули и без особенностей

Share this post


Link to post
Share on other sites
Цитата 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 заремапился в другое место? По умолчанию ремап выключен.

 

Share this post


Link to post
Share on other sites

да, по умолчанию все ремапы выключены

 

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 регистр тоже не делает если бы он влиял половина бы не работала

Share this post


Link to post
Share on other sites
но мне кажется что это проблема не модуля, по какой то причине не работает сам порт на который должен выйти усарт.

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

 

различий REMAP регистр тоже не делает если бы он влиял половина бы не работала

Почему половина? У каждого порта свой ремап.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
... говорят, что просто записывайте проект даже без перекомпиляции под a3u и все должно работать, хотя и с перекомпиляцей не работает.

C A3 не работал (сразу с A3U начну), а на A1-A1U у меня всё работает и с перекомпиляцией и без оной.

 

Эта програмища формирует на всех пинах порта D моей Xmega256A3U-AU меандр частотой 250kHz.

;begin
    ser    R16
    sts    (1632),R16
    sts    (1639),R16
    rjmp    PC-2
;end

Share this post


Link to post
Share on other sites

Проблема решена, все дело оказалось в маленьком различии 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.

 

всем спасибо

Share this post


Link to post
Share on other sites
Проблема решена, все дело оказалось в маленьком различии USART A3 и A3U, ну и невнимательности конечно...

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

 

Обьясни по русски, пожалуйста.

 

Share this post


Link to post
Share on other sites
Холосо получилось. Класиво. Я с жирного шрифта начал , Вы им и закончили.

а я вот ничего холосего и класивого не вижу, если продолжить цитировать тот документ, что Вы начали:

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

 

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

 

Обьясни по русски, пожалуйста.

т.к. программа писалась относительно давно, то немного подзабылось, что она еще и сама управляет этим передатчиком USART, соответственно когда я отключал USART на PD3 при конфигурировании, в остальной программе ничего не менялось... она так же выключала уже выключенный при конфигурировании UART, при этом даже если PD3 был сконфигурирован на выход он становился на вход, со всеми вытекающими... небольшая особенность a3u...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this