Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Абсолютные адреса регистров в ATXmega64A3U
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Diusha
Давно работаю с мегами. Решил вот на хмеги перейти. Смотрю в ДШ – спагетти. Явно писали не те писатели, что для мег нормальные портянки писали. Ну да ладно, сейчас не об этом.

По существу.
Вот дурацкая система (извините, опять эмоции) адреса регистров писать +0х00, +0х01, ... . А вот к чему это приплюсовывать-то? Ну для некоторых регистров нашел. А вот, в частности, для RCOSC2M не могу найти в ДШ ни на XMEGA-AU ни на конкретно ATXmega64A3U.
Подскажите, пожалуйста, где такое искать?
prottoss
Цитата(Diusha @ Oct 10 2017, 20:19) *
Давно работаю с мегами. Решил вот на хмеги перейти. Смотрю в ДШ – спагетти. Явно писали не те писатели, что для мег нормальные портянки писали. Ну да ладно, сейчас не об этом.

По существу.
Вот дурацкая система (извините, опять эмоции) адреса регистров писать +0х00, +0х01, ... . А вот к чему это приплюсовывать-то? Ну для некоторых регистров нашел. А вот, в частности, для RCOSC2M не могу найти в ДШ ни на XMEGA-AU ни на конкретно ATXmega64A3U.
Подскажите, пожалуйста, где такое искать?

4.23 Register Summary - Production Signature Row

Система не дурацкая, а приспособленная для того, чтобы удобно было создавать программы на С/С++. Сейчас практически у всех МК, в документации такая система отсчета.
Чтобы не выглядеть дураком, обзывая систему дурацкой, курите внимательно мануалы.
Diusha
Цитата(prottoss @ Oct 10 2017, 19:27) *
4.23 Register Summary - Production Signature Row

И? Адрес-то где?
Чтобы не выглядеть дураком, обзывая других дураками, курите внимательно вопрос, на который пытаетесь ответить.
А система была бы не дурацкой, если бы было написано, напимер,
ABC+0x01
и эту ABC можно было бы легко найти.

VladislavS
Они не отображаются на память. Их надо вычитывать через NVM Controller.

Цитата
33.11.2.14 Read User Signature Row / Production Signature Row
The read user signature row and read production signature (calibration) row commands are used to read one byte from
the user signature row or production signature (calibration) row.
1. Load the Z-pointer with the byte address to read.
2. Load the NVM CMD register with the read user signature row / production signature (calibration) row command
3. Execute the LPM instruction.
The destination register will be loaded during the execution of the LPM instruction.
Diusha
Спасибо, VladislavS
Но еще требуется уточнение.
Я правильно понимаю, что для чтения RCOSC32K («+0х02», п. 4.17.3) нужно
ZH=0x00
ZL=0x02
?
А доступ к CMD = +0x0A (4.15.7) это обращение к памяти (LDS/STS в случае ассемлера) по адресу NVM (=0x01C0) плюс это смещение, т.е. 0x01CA?

И вот кто же догадается, что для того чтобы прочитать калибровочный байт, нужно читать раздел «Self-programming and Boot Loader Support»?
Последний вопрос, конечно, риторический )
VladislavS
Вам больше заняться не чем, кроме как адреса и смещения высчитывать? Производители чипов и компиляторов специально для вас написали хидеры с символьными определениями всех регистров - пользуйтесь!

О риторическом. Эмбеддерский скилл на половину состоит из умения правильно контролэфать. К слову, я никогда в жизни не программировал XMega, но скачать даташит и найти в нём RCOSC и вторым проходом Production Signature Row это что-то около 5 минут.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.