Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: xmega128A1U vs xmega128A1
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
zombi
Разбираюсь с xmega128A1U . Несколько вопросов возникло.

1. Как процессор может узнать что он именно AU а не просто A ?

2. В докуменьте Atmel AVR1019: Migration from ATxmega128A1/64A1 to ATxmega1281U/64A1U
п. 7.1 Removed registers and bits сноска 1 : "Note: 1. BODACT fuses are now located in FUSEBYTE5 for all devices."
что они имеют ввиду ???
Xenia
Оказывается, у них и сигнатуры одинаковые. Офигеть!
Это ReAl'а надо на помощь звать.
prottoss
Цитата(Xenia @ Jan 18 2013, 00:10) *
Оказывается, у них и сигнатуры одинаковые. Офигеть!
Так и есть! Сейчас в окне программатора (AVRStudio 4.19) вместо ATxmega64A3U выставил ATxmega64A3. Нажал кнопочку "Read signature" - программатор прочитал и весело сообщил что "Signature matches selected device"! Гы-гы. Атмел жжет.
Есть еще, правда, надежда на REVID регистр. Но не уверен, что у AU и А нет одинаковых ревизий.
zombi
Цитата(prottoss @ Jan 17 2013, 21:51) *
Есть еще, правда, надежда на REVID регистр. Но не уверен, что у AU и А нет одинаковых ревизий.

Думаю что можно и по калибровочным константам добавленных к U серии новых фукций орентироваться (USB, RC48 и т.д.) но всё это похоже на ...
Хотелось бы гарантированной идентификации
prottoss
Цитата(zombi @ Jan 18 2013, 01:11) *
Хотелось бы гарантированной идентификации
Я думаю, что можно определять по регистру USBCTRL в модуле Clock. У A серии он отсутсвует, и запись туда не возможна. Т.е. с этого адреса будет всегда считываться 0.
ReAl
Цитата(Xenia @ Jan 17 2013, 20:10) *
Оказывается, у них и сигнатуры одинаковые. Офигеть!
Это ReAl'а надо на помощь звать.
А что Косой, всегда Косой!

Подумаешь, новость -- одинаковые сигнатуры.
Да их не одна линейка:
90usb646 == 90usb647
90usb1286 == 90usb1287
90pwm2 == 90pwm3
90pwm1 == 90pwm2B == 90pwm3B
90pwm216 == 90pwm316
Зато у mega324P и mega324PA разные.

Изнутри по регистрам можно пробовать, правильно народ говорит.
Главное, чтобы не оказалось, что регистр есть, пишется и читается но не работает :-)
Только я в x-меги не сильно заглядывал и тут врядли помогу.
prottoss
Цитата(ReAl @ Jan 18 2013, 02:09) *
Изнутри по регистрам можно пробовать, правильно народ говорит.
Главное, чтобы не оказалось, что регистр есть, пишется и читается но не работает :-)
Только я в x-меги не сильно заглядывал и тут врядли помогу.
Вроде как ТС обладает экземпляром без буковки U - проверить - минутное дело. Ему и карты в руки.
zombi
Цитата(prottoss @ Jan 17 2013, 23:29) *
Вроде как ТС обладает экземпляром без буковки U - проверить - минутное дело. Ему и карты в руки.

Да, обладаю 128A1 и 128A1U.
Проверить регист на rd/wr конечно могу.
Но это попахивает какимто шаманством biggrin.gif

Проверил регистр 0х0044 (CLK_USBSCTRL)

на AU пишутся и читаются 6 мл.бит
на A читаем всегда 0

Кстати атмел не перестаёт радовать нас качественной документацией biggrin.gif
Atmel AVR XMEGA AU Manual
смотрю 7.9.5 USBSCTRL – USB Control register и 7.12 Register summary – Clock
ArtemKAD
А как на счет прочитать каллибровочные байты USB в сигнатуре? У обычной xMega там все 4-е значения 0xFF.
zombi
Еще один косяк атмела нашел.
Пробывал на 128A1U выдыть на PE.7 частоту с разных делителей.
С CLKPER и CLKPER2 всё нормально, а с CLKPER4 частота вообще не выводится и выход всегда в нуле !
zombi
Правильно ли я понял из DS на AU серию что CRC32 считется за один единственный такт ?
prottoss
Цитата(zombi @ Jan 18 2013, 02:42) *
Да, обладаю 128A1 и 128A1U.
Проверить регист на rd/wr конечно могу.
Но это попахивает какимто шаманством biggrin.gif

Проверил регистр 0х0044 (CLK_USBSCTRL)

на AU пишутся и читаются 6 мл.бит
на A читаем всегда 0
Это не шаманство а нормальная практика, потому как неиспользуемые регистры/биты всегда Read Only. Вот ведь если бы сигнатуры отличались у A и AU Вы бы читали ID регистры и сравнивали результат чтения. Тут практически тоже самое.

Цитата(zombi @ Jan 18 2013, 06:09) *
Еще один косяк атмела нашел.
Пробывал на 128A1U выдыть на PE.7 частоту с разных делителей.
С CLKPER и CLKPER2 всё нормально, а с CLKPER4 частота вообще не выводится и выход всегда в нуле !
Давно пора занть, что у ATMEL все порты ввода-вывода синхронизированы с частотой ядра, по этому, если особо не оговорено, частоту выше CLKper (Оно же CLKcpu) получить не возможно.
zombi
Цитата(prottoss @ Jan 18 2013, 15:14) *
Вот ведь если бы сигнатуры отличались у A и AU Вы бы читали ID регистры и сравнивали результат чтения.

Да, но я бы не пробывал туда чегото писать!
prottoss
Цитата(zombi @ Jan 18 2013, 18:08) *
Правильно ли я понял из DS на AU серию что CRC32 считется за один единственный такт ?
Интересно, где же это Вы вычитали sm.gif
zombi
Цитата(prottoss @ Jan 18 2013, 15:14) *
Давно пора занть, что у ATMEL все порты ввода-вывода синхронизированы с частотой ядра, по этому, если особо не оговорено, частоту выше CLKper (Оно же CLKcpu) получить не возможно.

Я уж не знаю чего у них там синхронизировано, но при частоте ядра CLKPER=32MHz на пине я чудно получаю CLKPER2=64MHz.
prottoss
Цитата(zombi @ Jan 18 2013, 18:18) *
Да, но я бы не пробывал туда чегото писать!
В ID регистры не нужно конечно ничего писать, но проверить пишется что то в CLK_USBSCTRL ведь ни кто не запрещает. Но если программа считает из него нули она явно может определить какой префикс у микроконтроллера, или, по крайней мере, будет знать что блок USB в системе отсутствует. Вам ведь нужно именно это?
zombi
Цитата(prottoss @ Jan 18 2013, 15:19) *
Интересно, где же это Вы вычитали sm.gif

XMEGA-AU_Manual
п. 26.7.3
prottoss
Цитата(zombi @ Jan 18 2013, 18:21) *
Я уж не знаю чего у них там синхронизировано, но при частоте ядра CLKPER=32MHz на пине я чудно получаю CLKPER2=64MHz.
Вообще Вами обозначенный пин должен выдавать именно CLKper, т.е можно сделать вывод, что у Вас именно ядро тактируется на 64 МГц. Хотя, не исключаю, что это очередная ошибка в документации и на пин выдается именно CLKper2...

Можете код показать? Каким образом это получается?
zombi
Цитата(prottoss @ Jan 18 2013, 15:22) *
Вам ведь нужно именно это?

Ну да.
Только я думал атмел как то позаботится о пользователях и не заставит их искать всякие хитрые и недокументированные пути решения простейшего вопроса.
Но видать нет, всё как обычно biggrin.gif
prottoss
Цитата(zombi @ Jan 18 2013, 18:25) *
XMEGA-AU_Manual
п. 26.7.3
Ну да. Записываете байт данных, получаете очередной CRC.
zombi
Цитата(prottoss @ Jan 18 2013, 15:34) *
Можете код показать? Каким образом это получается?

Да какой код то? пару строк ?
Может вы спутали? Я спрашиваю про AU !
XMEGA-AU_Manual
п. 13.14.4 CLKEVOUT – Clock and Event Out register
prottoss
Цитата(zombi @ Jan 18 2013, 18:34) *
Ну да.
Только я думал атмел как то позаботится о пользователях и не заставит их искать всякие хитрые и недокументированные пути решения простейшего вопроса.
Но видать нет, всё как обычно biggrin.gif
А что тут не документировано? Не используемые регистры/биты в регистрах всегда Read Only. Это задокументировано. Т.е. записывая байт в определенный регистр всегда можно выявить подсемейство... Да, криво и не нормально.... Согласен. Тем не менее Ваш топик начинался с того, как выяснить? Ответ вроде бы Вами получен.
zombi
Цитата(prottoss @ Jan 18 2013, 15:36) *
Ну да. Записываете байт данных, получаете очередной CRC.

И Вы так спокойно об этом говорите? CRC32 всего за 1 такт!
Да для меня это просто подарок от атмела yeah.gif

Цитата(prottoss @ Jan 18 2013, 15:39) *
Ответ вроде бы Вами получен.

Ну да, и получен и проверен.
prottoss
Цитата(zombi @ Jan 18 2013, 18:39) *
Да какой код то? пару строк ?
Может вы спутали? Я спрашиваю про AU !
XMEGA-AU_Manual
п. 13.14.4 CLKEVOUT – Clock and Event Out register
Да, точно! Можно запрограммить на выход CLKper/per2/per4.
И что? CLKper4 не генерируется?

Цитата(zombi @ Jan 18 2013, 18:45) *
И Вы так спокойно об этом говорите? CRC32 всего за 1 такт!
Да для меня это просто подарок от атмела yeah.gif
Ну так всего один байт обрабатывается за один такт sm.gif
zombi
Цитата(prottoss @ Jan 18 2013, 15:48) *
И что? CLKper4 не генерируется?

Неа.
Цитата(prottoss @ Jan 18 2013, 15:48) *
Ну так всего один байт обрабатывается за один такт sm.gif

Мне хватит biggrin.gif
zombi
Вот ещё что думаю:
У моей xmega128A1U Revid=0x0B ('L') и вроде как судя по DS c ревизии 'L' всё и начинается.
а могут ли xmega128A1 быть ревизии выше 'K' ?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.