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

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

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

     

    ATMega8A. #20

    AVR Fuse Bit Doctor

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


    Описание

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

    В моём случае и покупка неисправных (вернее поддельных) микроконтроллеров ATTiny44A на Алиэкспрессе и Ремонт тестера LCR-T4-H (Mega-328) подтолкнуло меня на изготовление такого AVR FuseBit доктора.

    Конечно, перед тем, чтобы повторять чью-то конструкцию, обычно смотрю с разных сторон, ищу преимущества в разных конструкциях на заданную тему и потом всё лучшее вкладываю уже в свою разработку. Так и в данном устройстве. Изучив на разных сайтах и у разных людей этого доктора, пришёл к мнению, что мне больше всего подходит сделать устройство на планарной Atmega8, т.к. она у меня уже была и оставалось лишь запрограммировать. Программирование прошло успешно при проверке купленного USBasp-программатора. Оставалось разработать плату, собрать её и уже полностью доделать устройство как законченную конструкцию, готовую к использованию.

    В моей разработке подход такой: к плате подводится питание +5В, а для стирания и высоковольтного программирования напряжение +12В получается через DC-DC преобразователь на основе микросхемы MT3608. Это высокое напряжение кратковременно подаётся лишь когда происходит работа по перепрограммированию пациента.

    Ещё обращу ваше внимание на то, что вначале моей разработки не придавал значение UART выводам (TX и RX), но позже убедился, что это очень даже нужно. Поэтому немного модернизировал уже изготовленную плату, добавив выводы UART. С помощью Arduino IDE через монитор порта возможно контролировать процесс лечения неисправных микроконтроллеров и смотреть их сигнатуру, что сразу позволило понять, что купленные микроконтроллеры ATTiny44A фактически являются ATTiny24A.


    Схема

    Схема подобна существующим, которые можно посмотреть в интернете. Но есть и некоторое отличие. Так, вся схема запитывается от источника +5В, а высокое напряжение в +12В получается с помощью DC-DC преобразователя.

    При установленной перемычке JP1 доктор будет стирать микроконтроллер. Перемычка JP2 позволяет настроить выход преобразователя без подачи напряжения на схему. Контакты JP3 для подключения UART (TX,RX), чтобы видеть, что делает доктор, и посмотреть какую сигнатуру он определил у подключенного микроконтроллера.

    Микроконтроллеры подключаются с помощью переходников к 20 штырьковому разъёму. В интернете много всяких разных адаптеров, но я разработал несколько своих. Их особенность, что на плате адаптера выведена контактная колодка стандартного 6-и контактного SPI разъёма. Удобно не снимая микроконтроллер с адаптера через этот разъём запрограммировать или считать калибровочные ячейки и установленные фьюзы программой AVRDUDE_PROG_v3.3.

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

    Программирование мк для FuseBitDoctor-а

    У меня в проекте используется ATMega8 (была у меня такая), соответственно её нужно и запрограммировать. Перед этим необходимо выставить фьюзы.

    Ниже на картинке указаны все настройки для ATMega8.

    ATMega8, фьюзы
    Pic 2. ATMega8, фьюзы

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

    Для индикации работы устройство имеет два светодиода – красный и зелёный.

    Если горит зеленый – пациент успешно вылечен, фьюз биты восстановлены до заводских.

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

    Если зеленый мигает – сигнатура в порядке, фьюз биты с ошибкой, но исправить их невозможно, так как микроконтроллер «залочен» (LockBits включены), необходимо полное стирание микроконтроллера (нужно установить перемычку для стирания – «ALLOW ERASE»).

    Если мигает красный – сигнатура в порядке, микроконтроллер «не залочен», но, по какой-то причине, невозможно восстановить фьюз биты.

    Если Вы хотите получить более подробную информацию о процессе «лечения» на плате есть выход UART. Отправьте этот сигнал на терминал и получите «распечатку» того, что было сделано. Делал это с помощью среды Arduino IDE при открытии окна с Serial.begin(4800). В последовательный порт так же выводится меню, по которому можно выбирать действия с микроконтроллером.


    Перечень элементов

    Ниже на фото перечень используемых компонентов.

    Перечень элементов. Часть 1
    Pic 3. Перечень элементов. Часть 1
    Перечень элементов. Часть 2
    Pic 4. Перечень элементов. Часть 2

    Конструкция

    После составления схемы, была разработана печатная плата. Для фьюз-бит-доктора применил планарную ATMega8 в корпусе TQFP32. Новое в моей плате то, что вывел стандартный 6-и контактный разъём для перепрограммирования самой ATMega8 через SPI (MOSI, MISO, RESET, VCC, GND).

    Для подключения микроконтроллеров выведена 20-и контактная розетка, в которую втыкаются переходные платы (адаптеры), с установленным микроконтроллером подлежащим лечению. Размеры платы получились 59.5 * 61.5 мм.

    Печатная плата. Проект
    Pic 5. Печатная плата. Проект

    Плату изготавливал методом ЛУТ. Вполне себе получилась нормальная. Раньше дорожки рисовал с помощью медицинской иголки краской, но на нынешнем этапе проектирования тонкие дорожки уже таким старым методом сделать довольно проблематично. Можно заказывать изготовление платы и на специализированных сайтах, однако мне ради одной единственной платы что-то не захотелось туда обращаться. Поэтому получилось так, как получилось. Плата рабочая.

    Печатная плата. Изготовлена по методу ЛУТ
    Pic 6. Печатная плата. Изготовлена по методу ЛУТ

    Сборка платы не представляет каких-то затруднений.

    Печатная плата. Сборка платы. Сторона SMD компонентов
    Pic 7. Печатная плата. Сборка платы. Сторона SMD компонентов

    Вначале установил преобразователь с разъёмом minicroUSB, но оказалось, что микросхема MT3608 на его плате неисправна, пришлось общую плату переделывать под другой преобразователь и устанавливать дополнительно плату с разъёмом microUSB.

    Печатная плата. Сборка платы. Навесные компоненты
    Pic 8. Печатная плата. Сборка платы. Навесные компоненты

    На фото ниже видны эти изменения.

    Печатная плата. Сборка платы. Установка другого преобразователя
    Pic 9. Печатная плата. Сборка платы. Установка другого преобразователя

    Корпус устройства сделан в стиле Ардуино. Снизу и сверху пластины из оргстекла. Они закреплены на плате с помощью пластиковых стоек винтами М3 с потайными головками. Верхнюю пластину сделал фигурной, чтобы был доступ к контактам разъёмов и кнопке START. Снизу нижней пластины подклеены небольшие ножки, напечатанные из пластика PLA.

    Печатная плата. Сборка корпуса. Разные виды
    Pic 10. Печатная плата. Сборка корпуса. Разные виды
    Печатная плата. Сборка корпуса. Разные виды
    Pic 11. Печатная плата. Сборка корпуса. Разные виды
    Печатная плата. Сборка корпуса. Разные виды
    Pic 12. Печатная плата. Сборка корпуса. Разные виды

    На виде снизу можно рассмотреть проводки от ATMega8 к разъёму UART, который добавил уже потом по необходимости смотреть за процессом лечения. Плата же была доработана и теперь нет необходимости допаивать проводки к разъёму UART.

    Печатная плата. Сборка корпуса. Разные виды
    Pic 13. Печатная плата. Сборка корпуса. Разные виды

    Просмотр процесса лечения микроконтроллера через последовательный порт Serial.begin(4800).

    Сигнатура <i>ATTiny24</i>
    Pic 14. Сигнатура ATTiny24


    Приложение

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

    В заключение можно добавить, что пытаясь прочитать присланные ATTiny44A, собрал попутно ещё и высоковольтный программатор именно для AVR ATTiny. Этот проект опубликую несколько позже на следующих страницах. Чем он хорош? Тем, что прост и не хуже сложного в изготовлении AVRFuseBitDoctor восстанавливает фьюзы любых AVR ATTiny до заводских значений. Построен высоковольтный программатор на основе Arduino Uno R3 (можно любую Arduino).

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

    . Mr.ALB

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