Сегодня забавлялся с платой, которую сделал уже довольно давно под attiny12. Она мне сейчас уже не сильно актуальна, так как я собрал этот замечательный девайс на другом МК - attiny13. Ввиду этого ставил над этой платой эксперименты. Вернее, даже не с платой а с тинькой12. Как известно, прошить ее не представляется возможным в том случае, если нет высоковольтного программатора. Вернее, не то чтобы нельзя прошить у нее flash - это как раз без проблем шъется обычным последовательным программатором в режиме ISP, хоть вот
этим вариантом для бедных/безруких/ленивых/прочее. Неудача будет на следующем шаге, прошивка fuse bits`ов. Ведь именно для прошивки fuse bits нужен режим High Voltage. Во всяком случае, у меня так и случилось, когда я первый раз не смог прошить тиньку. Выходов несколько. Навскидку:
1. Найти друга с высоковольтным программером.
2. Собрать высоковольтный программер.
3. Собрать
устройство "Аtmega fuse bit doctors" .
С первым пунктом все ясно. Такой друг либо есть, либо нет. В моем случае такого не оказалось.
Второй пункт слишком заморочен. Та схема ВВ-проггера (HVPROG от Der Hammer - кому надо нагуглит - широко известный в узких кругах программатор), которая мне показалась привлекательной, оказалась довольна специфична по требованию к программатору для того, чтобы прошить микроконтроллер (mega8535). Для этой конструкции нужен AVR910. Две редакции этого проггера (AVR910) у меня не завелись по разным причинам. Здесь не буду их описывать. Т.е, проблема "курица и яйца" встала для меня в полный рост. И тут на сцену совершенно случайно, что характерно, вышел третий пункт.
Этот девайс собирался для других целей, конечно.
В последних версиях прошивок для АтмегаДоктора появилась весьма примечательная способность общаться с ним посредством компа по интерфейсу UART. А в этом режиме можно прошить необходимые фузы (что нам и нужно!!!). Захотелось проверить.
Итак, первое: В МК прошивается Flash, EEPROM обычными "пятью проводками" для LPT-порта с помощью лошади (PonyProg). Ну или любой другой программой, которая нравится
Второе: Затем микросхемка вытаскивается из LPT порта и ставится в FuseBit Doctor. Доктор подключается к компу по UART, и в терминале видим примерно такое:
Welcome
AVR Atmega fusebit doctor (HVPP+HVSP) version 2.11
http://diy.elektroda.eu/atmega-fusebit-doctor-hvpp
Usage in commercial/profit purposes not allowed
MANUAL HVSP MODE
Init programming... DONE
Read signature... 1E 90 05
Searching chip... no names in 8kB ver
Read fusebits... L:52 H:00 E:00
Should be... L:52 H:00 E:00
Lockbits... ENABLED (86)
What to do?...
1 - write fusebits
2 - modify fusebits
3 - set lockbits
4 - chip erase
5 - end
Нужно выбрать пункт 2 - модификация фузов. И после предложения ввести фузы вписать "02". Это будут те самые фузы, которые в ReadMe от
gnomon, только в шестнадцатиричном виде.
Type fuse LOW: 02
Writing 02 00 00... DONE
Verifying... L:02 H:00 E:00 - OK!
1 fixed chips
Третье, и оно же последнее: Микросхемка вытаскивается из этого устройства и втыкается на панельку удлиннителя поворотов. Если все сделано правильно, то получаем работающее устройство. Благодарим авторов всех этих проектов.
Ну а что же это за UART такой, спросите вы и как его реализовать? Очень просто. Берется любой (хоть COM, хоть USB) дата-кабель от старой мобилки, соединяется к Доктору (передача от дата-кабеля на прием платки, прием дата-кабеля на передачу платы доктора) и все
Если где-то ошиблись, то не беда. Чипу можно восстановить (это же Доктор!) возможность видимости для ISP-программатора. В терминале нужно будет выбрать пункт "1", и страшный бит, отвечающий за RSTDSBL будет сброшен. Можно прожить его дальше )
Краткое резюме этого большого количества букв.
1. Прошить EEPROM, Flash обычным-дешевым программатором ISP.
2. Прошить фузы вторым устройством, которое умеет некий функционал HVPP/HVSP.