Блок с датойБлок с временемБлок с возрастом сайта
Mr.ALB

    Анатолий Беляев (aka Mr.ALB). Персональный сайт

    Да пребудут с вами Силы СВЕТА!

     

    AVR ATTinyFuseBitRepair

    AVR ATTinyFuseBitRepair

    Давно хотел опубликовать, но так как это устройство не так часто нужно, то про всё это и забылось, а тут вроде как бы каникулы, можно и сайтом позаниматься. Предыдущее устройство из этой темы по восстановлению фьюзов AVR FuseBit доктор. Все эти дела вышли из того события когда китайцы прислали мне купленные ATTiny44A, но они никак не хотели вообще определяться и работать. Собрав доктора смог их вылечить. Оказалось, что китайцы мне подсунули в корпусах ATTiny44A микроконтроллеры ATTiny24A. Тогда же у меня была мысль сделать не общий FuseBit доктор, а именно для ATTiny, и найдя в интернете подходящую основу - переделал всё под себя.


    Описание

    Если вы занимаетесь исключительно с разными готовыми платами Arduino, то данное устройство вероятнее всего вам не понадобится, но если вы пытаетесь создавать свои устройства на чистых микроконтроллерах AVR ATTiny, то такое устройство вам может пригодиться.

    У меня есть несколько микроконтроллеров класса ATTiny, на которых делал даже свою "Ардуино" Arduino на ATTiny24/44/84.


    Схема

    Оригинальная схема, которую увидел в интернете: AVR High-voltage Serial Fuse Reprogrammer Adapted from code and design by Paul Willoughby 03/20/2010
    http://www.rickety.us/2010/03/arduino-avr-high-voltage-serial-programmer/

    Более свежая ссылка: Как восстановить неправильно выставленные фьюзы в ATtiny https://habr.com/ru/articles/249967/

    Общий принцип тут такой: На МК подаётся напряжение с вывода D8, а высоковольтное напряжение поступает с источника 12В хитрым образом. Оно сразу всегда подаётся через резистор R5 на вывод !RESET, но если на транзистор Q1 подать с вывода D13 через резистор R6 напряжение логической единицы, то транзистор откроется и просадит напряжение на выводе !RESET, при этом источник высокого напряжения 12В так и продолжает работать. Поизучал я такой метод и пришёл к мнению, что так сделано для скорости управления, что потом и воплотил уже в моей схеме.

    Схема электрическая принципиальная
    Pic 1. Схема электрическая принципиальная

    В оригинальной схеме вижу недостаток: вывод D8 запитывает напрямую целевой МК, а у вывода выходной ток не более 20 мА. Так мне не нравится. Далее в моих схемах делаю подачу напряжения 5В на целевой МК через ключ, которым управляю с того же вывода D8. Ещё мне легче подавать 5В и уже из него, с помощью преобразователя, сделать 12В. Так я делал в AVR FuseBit докторе.

    Схема запитывается от источника +5В (USB), а высокое напряжение в +12В получается с помощью DC-DC преобразователя. Весь контроль за восстановлением смотрим через последовательный порт Serial, который можно включить в Arduino IDE.

    Микроконтроллеры подключаются с помощью переходников или в предназначенные для них панельки DIP-8, DIP-14.

    В 2021 году схема собиралась на макетке под ATTiny24/44/84, но она работает и для семейства ATTiny13/25/45/85, поэтому в одном устройстве реализована комбинированная схема, хотя далее показываю схемы разделённые для каждого типа ATTiny.

    Ниже схема для ATTiny13/25/45/85, так как у них одинаковое количество выводов и одинаковая цоколёвка.

    Схема электрическая принципиальная v1.0<br>ATTiny13/25/45/85
    Pic 2. Схема электрическая принципиальная v1.0
    ATTiny13/25/45/85

    Ниже схема для ATTiny24/44/84, она подобна предыдущей схеме.

    Схема электрическая принципиальная v1.0<br>ATTiny24/44/84
    Pic 3. Схема электрическая принципиальная v1.0
    ATTiny24/44/84

    Выше были схемы первой версии, в 2025 году поднял эту тему и, критически посмотрев, схемы улучшил. Принципиальное отличие: добавлен диод VD1, который не даёт включиться преобразователю, если МК подключить через разъём ISP от программатора USBasp. Кроме светодиодов HL1, HL2 установил на саму плату преобразователя U0 ещё красный светодиод. Теперь световая индикация позволяет контролировать все ключевые узлы устройства.

    HL1 - зелёный, указывает на подачу +5В на целевой МК U1.

    HL2 - красный, указывает на подачу +12В на вывод !RESET целевого МК U1.

    HL3 - красный, на плате U0, указывает, что преобразователь работает и выдаёт +12В на выходе, до резисторов R6(pic 4), R4(pic 5).

    Схема электрическая принципиальная v2.0<br>ATTiny13/25/45/85
    Pic 4. Схема электрическая принципиальная v2.0
    ATTiny13/25/45/85
    Схема электрическая принципиальная<br>ATTiny24/44/84
    Pic 5. Схема электрическая принципиальная
    ATTiny24/44/84

    Описание программы

    При включении программы вначале идёт режим ОТЛАДКИ. В этом режиме выводится информация по возможности управления. Управлять можно как кнопками, если они подключены, или через передачу команд в Serial. Можно включать +5В на целевой МК, подавать +12 В на вывод !RESET. При выключении +5В напряжение +12В тоже снимается. Ниже на фото видны сообщения сделанных включений.

    Работа программы
    Pic 6. Работа программы

    При подаче команды на выключение +5В, целевой МК обезточивается, его можно снимать, менять и т.д. Режим ОТЛАДКИ предназначен для предварительной проверки работы и настройки устройства. Можно подключить измеритель напряжения к контрольным точкам устройства и проверить установленные напряжения без наличия целевого микроконтроллера или с ним.

    Работа программы
    Pic 7. Работа программы

    При нажатии на кнопку [BTN_START] или при передаче в порт ключевого слова [work], программа переходит к работе с целевым МК.

    Работа программы
    Pic 8. Работа программы

    Выводится титульное сообщение и примечание по управлению. Напряжение вначале не подано и можно так же менять МК, снимать или ставить другой. После передачи в порт символа [r], программа пытается прочитать сигнатуру установленного МК. Если сигнатура прочитана, то выводится её значение, соответствующее этому значению название ATTiny. Далее читаются и выводятся фьюзы МК.

    Работа программы
    Pic 9. Работа программы

    Если в порт передать значение [w], то программа вначале читает сигнатуру и фьюзы микроконтроллера, а потом автоматически записывает заводские фьюзы соответствующие определённому МК. В моём случае в МК уже записаны заводские фьюзы, поэтому запись их заново никак не отразится на МК. Если фьюзы были бы иные, не заводские, то программа бы их переписала на заводские, что и требуется от программы.

    Работа программы
    Pic 10. Работа программы

    Улучшенная программа. В монитор порта выводится время и дата, а так же версия оболочки. Это может пригодится, если делать архив. Сигнатура теперь выводится полностью, все три байта. Дополнительно выводится размер флэш памяти опознанного микроконтроллера. Была попытка прочитать сигнатуру других микроконтроллеров AVR семейства ATMega через подключение по ISP, но пока неудачно.

    Работа программы v2.1b
    Pic 11. Работа программы v2.1b

    Привожу сигнатуры из описаний на МК тех типов, у которых можно восстанавливать фьюзы до заводских с помощью разработанного устройства.

    Сигнатура ATTiny13
    Pic 12. Сигнатура ATTiny13
    Сигнатура семейства ATTiny84
    Pic 13. Сигнатура семейства ATTiny84
    Сигнатура семейства ATTiny85
    Pic 14. Сигнатура семейства ATTiny85

    Конструкция

    Конструкция задумывалась как шилд, который бы устанавливался на плату Arduino UNO R3. Так как данное устройство используется не часто, то делать какую-то иную конструкцию, с моей точки зрения, не разумно. Ниже представлен первый вариант 2025 года, напомню, что в 2021 году всю схему собирал на макетке. На плате установлены панельки DIP-8, DIP-14 и ещё контакты для переходных плат, на которые с помощью струбцины или методом припаивания устанавливаются целевые микроконтроллеры. В первом варианте на плате преобразователя нет светодиода и сам преобразователь установлен на плате шилда вертикально.

    Шилд ATTinyFuseBitRepair v1.0
    Pic 15. Шилд ATTinyFuseBitRepair v1.0

    Монтаж выполнен объёмными проводками, для единичного устройства так всегда.

    Шилд ATTinyFuseBitRepair v1.0<br>Оборотная сторона
    Pic 16. Шилд ATTinyFuseBitRepair v1.0
    Оборотная сторона

    Во второй версии 2025 года преобразователь установлен горизонтально. У меня плата самодельного преобразователя на микросхеме MT3608. Расположение компонентов на шилде несколько другое, более оптимальное.

    Шилд ATTinyFuseBitRepair v2.0
    Pic 17. Шилд ATTinyFuseBitRepair v2.0
    Шилд ATTinyFuseBitRepair v2.0<br>Оборотная сторона
    Pic 18. Шилд ATTinyFuseBitRepair v2.0
    Оборотная сторона
    Шилд ATTinyFuseBitRepair v2.0 рядом с<br>Arduino UNO R3
    Pic 19. Шилд ATTinyFuseBitRepair v2.0 рядом с
    Arduino UNO R3

    Шилд установлен сверху на плату Arduino UNO R3.

    Шилд ATTinyFuseBitRepair v2.0 на Arduino UNO R3
    Pic 20. Шилд ATTinyFuseBitRepair v2.0 на Arduino UNO R3

    Сделал струбцину из дуба для прижатия к переходной плате планарных микросхем ATTiny24/44/84.

    Струбцина, переходная плата и ATTiny24
    Pic 21. Струбцина, переходная плата и ATTiny24

    Установил ATTiny24 на переходную плату плату и прижал струбциной. Подключил Arduino UNO R3 к компу. На шилде светодиоды не светятся, так как в режиме ОТЛАДКИ ещё не поданы напряжения на ATTiny24.

    ATTiny24 на шилде ATTinyFuseBitRepair_v2.0
    Pic 22. ATTiny24 на шилде ATTinyFuseBitRepair_v2.0

    На шилде светится зелёный светодиод - подано напряжение +5В на VCC ATTiny24, соответственно светится красный светодиод на преобразователе, так как напряжение подано одновременно и на него.

    ATTiny24 на шилде ATTinyFuseBitRepair_v2.0
    Pic 23. ATTiny24 на шилде ATTinyFuseBitRepair_v2.0

    Подано напряжение +12В на вывод !RESET ATTiny24 – светится красный светодиод на шилде (рядом с зелёным). Статичные напряжения можно подавать только в режиме ОТЛАДКА. В режиме работы по чтению/восстановлению фьюзов напряжения устанавливаются кратковременно, на миллисекунды.

    ATTiny24 на шилде ATTinyFuseBitRepair_v2.0
    Pic 24. ATTiny24 на шилде ATTinyFuseBitRepair_v2.0

    В заключение могу отметить, что это устройство мне больше нравится, так как программа вся открыта и можно что-то изменять и улучшать, полный контроль над кодом, чего не могу сказать про AVR FuseBitDoctor, там я так и не смог найти исходник кода, а то бы переделал программу, добавил бы больше сообщений по ходу лечения, да и скорость обмена порта выставил бы под 9600.



    Приложение

    Все, что необходимо для повторения конструкции, можно скачать по ссылкам:

    Спасибо за внимание!
    Анатолий Беляев

    . Mr.ALB

    . Mr.ALB
    Предыдущая страница Страница 42 Далее