Проблема с прошивкой ATmega168p

Вячеслав21
Offline
Зарегистрирован: 29.05.2015


Здравствуйте, 

купил в китае Arduino Pro Mini 168p

Столкнулся с проблемой его прошивки, поменял в boots.txt 

diecimila.build.mcu=atmega168 на diecimila.build.mcu=atmega168p

Через SPI контроллер прошивается нормально, НО через USB-TTL конвертер не хочет и выдает ошибку сингатур, характерную для МК ATmega168.

Как я понимаю, через SPI я прошил в 168p бутлоадер от 168. Как можно изменить бутлоадер, подправив сигнатуры? И вообще, где можно почитать (желательно на русском) про то, как написать свой бутлоадер.

 

 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Вячеслав21, какое отношение диакимала имеет к про мини?

Вячеслав21
Offline
Зарегистрирован: 29.05.2015

Никакаого, кроме того, что в тех платах используется тот же МК atmega168p. Это взято с темы на форуме, у меня данное изменение сделано в pro.menu.cpu.8MHzatmega168.build.mcu=atmega168p

 
trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Там в логе идёт расшифровка ошибки типа:

expected  signature ........

И что там написано?

http://arduino.ru/forum/programmirovanie/oshibka-podpisi-atmega168pa-au#comment-164814
http://arduino.ru/forum/programmirovanie/oshibka-podpisi-atmega168pa-au?page=1#comment-164894

 

Вячеслав21
Offline
Зарегистрирован: 29.05.2015

На работе не могу дословно написать код ошибки, но через SPI шьется без проблем, а через ttl выскакивает та же ошибка, что и до изменения 168 на 168р. 

наверное avrdude: Expected signature for ATMEGA168p is 1E 94 0B

Именно эту тему я изучил полностью

 

Вячеслав21
Offline
Зарегистрирован: 29.05.2015

Кроме того, меня смущает 

pro.menu.cpu.8MHzatmega168.bootloader.file=atmega/ATmegaBOOT_168_pro_8MHz.hex

То есть он заливает бутлоадер от 168 МК

Как платы приехали, прошивалось все нормально, значит правильный бутлоадер где-то есть.

Родилась идея прошить в МК бутлоадер от 168 через SPI и поменять отбратно на

pro.menu.cpu.8MHzatmega168.build.mcu=atmega168

вдруг заработает

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Вы сначала с сигнатурой разберитесь. А только потом дальше топайте....

Ну а  "вдруг"  - обычно не работает!

Вячеслав21
Offline
Зарегистрирован: 29.05.2015

Если не сложно, не могли бы вы пояснить, что определяет сигнатуру микроконтроллера? Она зависит от бутлоадера?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Вячеслав21 пишет:
где можно почитать (желательно на русском) про то, как написать свой бутлоадер

Если хотите почитать - это пожалуйста, а вот писать ... Вы системный программист? Если да (или готовы стать таковым), то нет проблем. Если нет, то подумайте пять раз о трудоёмкости задачи. Дело в том, что прежде, чем у Вас получится надежно работающий бутлоадер, Вы должны будете таковым стать - т.е. выучиться на системного программиста. Никакие ссылки на непинайтеяновичёк не прокатят. Не та задача. Все непинайтеяновички идут лесом.

Вячеслав21
Offline
Зарегистрирован: 29.05.2015

Спасибо за статью

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Вячеслав21 пишет:

Если не сложно, не могли бы вы пояснить, что определяет сигнатуру микроконтроллера? Она зависит от бутлоадера?

Сигнатура микроконтроллера жестко зашита на заводе в сам микроконтроллер, изменить её нельзя. Arduino IDE (а точнее Avrdude) перед прошивкой считывает и проверяет эту сигнатуру с той, которая указана в файле avrdude.conf (_папка_arduino_ide_\hardware\tools\avr\etc\avrdude.conf). Если сигнатура не совпадает - прошивать откажется.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Сюда посмотрели ?

http://arduino.ru/forum/programmirovanie/oshibka-podpisi-atmega168pa-au?...

Допишите вашу сигнатуру, ту, которую он скушает, ведь процессор тот-же....

Вячеслав21
Offline
Зарегистрирован: 29.05.2015

Спасибо, вечером попробую, отпишусь

Вячеслав21
Offline
Зарегистрирован: 29.05.2015

И еще вопрос, купил одновременно 2 Pro Mini, у одной из них нулевая сигнатура. Это  можно вылечить?

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Это значит что она просто не считалась.
Считайте её сначала SPI программатором.
Проверяйте проводкИ....
Проводки- это значит от ног процессора ( а не платы) до ног программатора.
И главное - "ресет" должен работать ( и  его кондёр)

Вячеслав21
Offline
Зарегистрирован: 29.05.2015

Хорошо, внимательно все посмотрю

Вячеслав21
Offline
Зарегистрирован: 29.05.2015

Может быть Вы мне тогда и подскажите еще кое что.

В планах хотелось бы реализовать возможность загрузки во флеш память микроконтроллера программ через i2c. Для этого я как понимаю нужен специфический бутлоадер.  Его нужно либо делать, либо искать готовый. Можете подсказать в каком направлении копать?

А именно:

1. Где можно найти бутлоадер, который согласится прошивать по i2c, 

2. Какие функции должен выполнять прошивающий микроконтроллер, с учетом того, что hex файл находится на sd карте,

3. Возможно ли прошивать несколько контроллеров, подцепленных к шине i2c.

Огромное спасибо за помощь.

 

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Вы с места в карьер полетели. 

3. Возможно.

1,2. Сложно.

Вячеслав21
Offline
Зарегистрирован: 29.05.2015

Что с места в карьер согласен. Но по крайней мере пока есть желание этим заняться. Может быть у Вас  есть информация, где можно достать небходимую информацию?