2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Конфигурационнные слова (fuses) в ATmega
Сообщение09.05.2025, 11:10 
Заслуженный участник


21/08/10
2647
Прошу помощи. Замучился рыться по документации и по сети. И все без толку. Не могу найти ответы на крайне простые вопросы:

1. Конфигурационные слова (в atmega они называются fuses) являются программно доступными (отдельно по записи и чтению) или нет?
2. Есть ли у них адреса в общем адресном пространстве? Какие это адреса?
3. Как они прошиваются? Стандартным образом (программатором, естественно, не через резидентный загрузчик) только указать их адрес (если он есть) или каким-то специальным образом? Только без всяких там "возьмите программатор и такую-то программу". Как это происходит на уровне сигналов на ногах процессора? Даже на уровне hex-файла достаточно. Вот, например, хочу я все писать в шестнацатеричном виде, без всяких там трансляторов и т.п. (я иногда так развлекаюсь). Что я должен (руками, явно, просто текстовым редактором!) написать в hex-фйл чтобы прошить конфигурацию?

Аналогичные вопросы для PIC мне знакомы. В документации на PIC все вполне толково написано. Но ATmega.... Поубивал бы того, кто документацию на atmega писал... Впрочем, возможно я просто не нашел нужный документ. Но уж на счет адресации этих регистров и даташите должно быть. Если бы по-уму. Но нету.

 Профиль  
                  
 
 Re: Конфигурационнные слова (fuses) в ATmega
Сообщение09.05.2025, 14:22 


05/05/20
38
...Давно это было, и не правда... Если не изменяет склероз, то:
1. Нет.
2. Нет.
3. В хексе фьюзов нет. "Плавкие вставки" просто прописывались в командной строке "загрузчика" как параметры с соответствующими значениями. Под "загрузчиком" понимается программа для заливки проекта по ISP (простенькая DOS-овская программа, работает из командной строки, название я не помню, возможно avrprog.exe). "Программатор" - К555АП5 с Centronics-а на соотв. ноги AVR (MOSI,MISO,SCk,RESET), +5В от программируемой схемы. Фьюзы можно менять абсолютно независимо, совершенно не затрагивая уже залитый проект.
Главное, RESET в запарке не вырубить (на mega-х он, вроде, отдельный, но на каких-то avr-ах он с выводом порта совмещен; tiny, скорее всего).
Как это происходит на уровне сигналов на ногах, в литературе мне не попадалось, да и не искал специально, за ненадобностью. Кстати, насколько помню, при программировании можно засинхронизироваться очень низкой частотой (несколько килогерц или десятков килогерц), и, если очень надо, снять три сигнала на записывающий осциллограф. При таких частотах даже моя автомобильная приставка к компьютерному ящику справится (12 каналов, 500 кГц).
...Вот как-то так, немного сумбурно... Если очень надо, подниму литературу и программатор найду с программами, но слишком скоро не обещаю. По памяти, можно полистать М.Предко "Руководство по микроконтроллерам", т.2. Ещё была очень толковая брошюрка "Микроконтроллеры ATME семейства AVR" (автора не помню).

 Профиль  
                  
 
 Re: Конфигурационнные слова (fuses) в ATmega
Сообщение09.05.2025, 15:07 


27/08/16
11896
nongma
nongma в сообщении #1685458 писал(а):
В хексе фьюзов нет. "Плавкие вставки" просто прописывались в командной строке "загрузчика" как параметры с соответствующими значениями. Под "загрузчиком" понимается программа для заливки проекта по ISP (простенькая DOS-овская программа, работает из командной строки, название я не помню, возможно avrprog.exe). "Программатор" - К555АП5 с Centronics-а на соотв. ноги AVR (MOSI,MISO,SCk,RESET), +5В от программируемой схемы. Фьюзы можно менять абсолютно независимо, совершенно не затрагивая уже залитый проект.
Человек просил рассказать ему, как писать хекс без этого омерзительного программатора. Возможно, у его пальца, которым он собрался его прошивать, фьюзы отмаппированы в отдельный сегмент хекса. Кто знает?

Я в 90-e игрался написанием своего программатора для AVR. И да, есть возможность прошить в него отдельный загрузчик для ISP. Только глупости всё это по нынешним временам. Как и сами AVR.

 Профиль  
                  
 
 Re: Конфигурационнные слова (fuses) в ATmega
Сообщение09.05.2025, 15:59 
Заслуженный участник


21/08/10
2647
nongma в сообщении #1685458 писал(а):
1. Нет.
2. Нет.
3. В хексе фьюзов нет.


1,2. Может, оно и к лучшему, что программно недоступны. Надежнее. А область загрузчика (если она указана в фьюзах) тоже недоступна и по записи и по чтению? Опасения на счет того, как бы не потереть загрузчик при ошибках программы.

3. В PIC у конфигурационного слова есть и адрес и эти слова достаточно просто прописать в хексе. И программируются они совершенно так же, как остальные адреса. Но программно недоступны. Здесь, как вы говорите, не так. Но хотелось бы знать абсолютно точно.

-- Пт май 09, 2025 20:00:53 --

realeugene, убедительная просьба ничего не писать в моих ветках. Мне ваши комментарии как-то ни к чему. Во избежание (мне на баны наплевать, можно и еще раз).

-- Пт май 09, 2025 20:01:53 --

nongma в сообщении #1685458 писал(а):
Если очень надо, подниму литературу


В принципе достаточно ссылок. Хотелось бы все же все это прочитать в документации.

-- Пт май 09, 2025 20:03:44 --

nongma в сообщении #1685458 писал(а):
просто прописывались в командной строке "загрузчика" как параметры с соответствующими значениями.


Ну так в PIC тоже можно. Отдельно. Но можно и в хекс прописать. Вопрос все же не про то, как работает программатор (можно программу обслуживания программатора написать и так и эдак), а про то, как работает процессор.

 Профиль  
                  
 
 Re: Конфигурационнные слова (fuses) в ATmega
Сообщение12.05.2025, 01:00 
Заслуженный участник


20/08/14
12181
Россия, Москва
Alex-Yu в сообщении #1685439 писал(а):
1. Конфигурационные слова (в atmega они называются fuses) являются программно доступными (отдельно по записи и чтению) или нет?
Надо уточнять по конкретному кристаллу. У поддерживающих Self programming - есть подраздел с название типа "Reading the Fuse and Lock Bits from Software" (или как-то похоже), там описано как их прочитать. Насчёт записи не нашёл.

Alex-Yu в сообщении #1685439 писал(а):
2. Есть ли у них адреса в общем адресном пространстве? Какие это адреса?
Нет.

Alex-Yu в сообщении #1685439 писал(а):
3. Как они прошиваются? Стандартным образом (программатором, естественно, не через резидентный загрузчик) только указать их адрес (если он есть) или каким-то специальным образом? Только без всяких там "возьмите программатор и такую-то программу". Как это происходит на уровне сигналов на ногах процессора? Даже на уровне hex-файла достаточно. Вот, например, хочу я все писать в шестнацатеричном виде, без всяких там трансляторов и т.п. (я иногда так развлекаюсь). Что я должен (руками, явно, просто текстовым редактором!) написать в hex-фйл чтобы прошить конфигурацию?
Из отдельного hex, хотя это зависит от программатора и его оболочки/интерфейса, бывает по разному (и из hex, и просто значение байтов, и перечисление по именам). Распределение битов по байтам есть в доке в разделе "Memory programming", как именно их прошивать - далее в разделах про параллельную ищи ISP прошивку, там отдельными командами. Если прошиваете сами, то можно положить их и вместе с основным кодом, где-нибудь под 2^32 (2^24), столько памяти в мегах пока не бывает.

Alex-Yu в сообщении #1685461 писал(а):
А область загрузчика (если она указана в фьюзах) тоже недоступна и по записи и по чтению? Опасения на счет того, как бы не потереть загрузчик при ошибках программы.
Это регулируется fuses BLBxx, смотрите доку на конкретный кристалл, раздел "Boot Loader Support".

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group