Восстановление конфигурации fuse-битов микроконтроллеров семейства atmega avr (hvpp)

Содержание

Добавление устройств АТмега

Есть один нюанс по работе с эти чипом — нам нужно внести некоторые изменений в один файл, чтобы дальше можно было бы программировать микроконтроллеры Arduino ATmega8.

Вносим следующие изменения в файл hardware/arduino/boards.txt:

atmega8o.name=ATmega8 (optiboot 16MHz ext)
atmega8o.upload.protocol=arduino
atmega8o.upload.maximum_size=7680
atmega8o.upload.speed=115200
atmega8o.bootloader.low_fuses=0xbf
atmega8o.bootloader.high_fuses=0xdc
atmega8o.bootloader.path=optiboot50
atmega8o.bootloader.file=optiboot_atmega8.hex
atmega8o.bootloader.unlock_bits=0x3F
atmega8o.bootloader.lock_bits=0x0F
atmega8o.build.mcu=atmega8
atmega8o.build.f_cpu=16000000L
atmega8o.build.core=arduino:arduino
atmega8o.build.variant=arduino:standard

##############################################################

a8_8MHz.name=ATmega8 (optiboot 8 MHz int)
a8_8MHz.upload.protocol=arduino
a8_8MHz.upload.maximum_size=7680
a8_8MHz.upload.speed=115200
a8_8MHz.bootloader.low_fuses=0xa4
a8_8MHz.bootloader.high_fuses=0xdc
a8_8MHz.bootloader.path=optiboot
a8_8MHz.bootloader.file=a8_8MHz_a4_dc.hex
a8_8MHz.build.mcu=atmega8
a8_8MHz.build.f_cpu=8000000L
a8_8MHz.build.core=arduino
a8_8MHz.build.variant=standard

##############################################################

a8_1MHz.name=ATmega8 (optiboot 1 MHz int) 
a8_1MHz.upload.protocol=arduino 
a8_1MHz.upload.maximum_size=7680 
a8_1MHz.upload.speed=9600 
a8_1MHz.bootloader.low_fuses=0xa1 
a8_1MHz.bootloader.high_fuses=0xdc 
a8_1MHz.bootloader.path=optiboot 
a8_1MHz.bootloader.file=a8_1MHz_a1_dc.hex 
a8_1MHz.build.mcu=atmega8
a8_1MHz.build.f_cpu=1000000L 
a8_1MHz.build.core=arduino 
a8_1MHz.build.variant=standard

##############################################################

a8noboot_8MHz.name=ATmega8 (no boot 8 MHz int)
a8noboot_8MHz.upload.maximum_size=8192
a8noboot_8MHz.bootloader.low_fuses=0xa4
a8noboot_8MHz.bootloader.high_fuses=0xdc
a8noboot_8MHz.build.mcu=atmega8
a8noboot_8MHz.build.f_cpu=8000000L
a8noboot_8MHz.build.core=arduino
a8noboot_8MHz.build.variant=standard

Таким образом, если мы перейдем в меню Сервис → Плата, то увидим устройства:

  • ATmega8 (optiboot 16MHz ext)
  • ATmega8 (optiboot 8 MHz int)
  • ATmega8 (optiboot 1 MHz int)
  • ATmega8 (no boot 8 MHz int)

Ардуино своими руками

Atmega2560 – хоть и мощный и продвинутый контроллер, но проще и быстрее собрать первую плату на atmega8 или 168.

Левая часть схемы – это модуль связи по USB, иначе говоря, USB-UART/TTL конвертер. Его, вместе с обвязкой, можно выбросить из схемы, для экономии места, собрать на отдельной плате и подключать только для прошивки. Он нужен для преобразования уровней сигнала.

DA1 – это стабилизатор напряжения L7805. В качестве основы можно использовать целый ряд avr микросхем, которые вы найдете, например, серии, arduino atmega32 или собрать arduino atmega16. Для этого нужно использовать разные загрузчики, но для каждого из МК нужно найти свой.

Можно поступить еще проще, и собрать всё на беспаечной макетной плате, как это показано здесь, на примере 328-й атмеги.

Микроконтроллеры – это просто и весело – вы можете сделать кучу приятный и интересных вещей или даже стать выдающимся изобретателем, не имея при этом ни образования, ни знаний о низкоуровневых языках. Ардуино – шаг в электронику с нуля, который позволяет перейти к серьезным проектам и изучению сложных языков, типа C avr и других.

Чтение фьюзов в Arduino

• Download Avrdude Version 6.3 Windows-ming32.

После того, как вы скачали эту программу, вы должны извлечь ее из архива и открыть окно команд Windows в этой папке. После этого подключите программатор USBasp к вашему компьютеру, убедитесь в том, что на вашем компьютере установлен правильный драйвер для программатора USBasp. После этого вы получите возможность чтения фьюзов в плате Arduino. Для этого выполните следующую команду:

Если все прошло нормально, эта команда прочитает байты фьюзов (fuse bytes) и поместит их в три раздельных текстовых файла. На следующем рисунке показан общий ход этого процесса.

Как видно из представленного рисунка, программа Avrdude считала фьюзы из платы Arduino Nano и поместила их в три отдельных текстовых файла. Если вы откроете эти файлы, то вы увидите считанные значения фьюзов: EFUSE – 0xFD, HFUSE – 0XDA, LFUSE – 0xFF. Это и  есть значения фьюзов по умолчанию в плате Arduino Nano

Теперь, когда мы знаем значения фьюзов по умолчанию в плате Arduino, мы можем сравнить со значениями фьюзов по умолчанию в в микроконтроллере ATmega328P

Исходное состояние фьюзов в микроконтроллере ATmega328P и в плате Arduino

Сравнение значений конфигурационных байтов микроконтроллера ATmega328P и платы Arduino представлено в трех следующих таблицах.

№ бита Low Fuse Byte Значение по умолчанию в AVR Значение по умолчанию в Arduino
7 CKDIV8 0 (programmed) 1 (unprogrammed)
6 CKOUT 1 (unprogrammed) 1 (unprogrammed)
5 SUT1 1 (unprogrammed) 1 (unprogrammed)
4 SUT0 0 (programmed) 1 (unprogrammed)
3 CKSEL3 0 (programmed) 1 (unprogrammed)
2 CKSEL2 0 (programmed) 1 (unprogrammed)
1 CKSEL1 1 (unprogrammed) 1 (unprogrammed)
CKSEL0 0 (programmed) 1 (unprogrammed)
№ бита High Fuse Byte Значение по умолчанию в AVR Значение по умолчанию в Arduino
7 RSTDISBL 1 (unprogrammed) 1 (unprogrammed)
6 DWEN 1 (unprogrammed) 1 (unprogrammed)
5 SPIEN 0 (programmed) 0 (programmed)
4 WDTON 1 (unprogrammed) 1 (unprogrammed)
3 EESAVE 1 (unprogrammed) 1 (unprogrammed)
2 BOOTSZ1 0 (programmed) 0 (programmed)
1 BOOTSZ0 0 (programmed) 1 (unprogrammed)
BOOTRST 1 (unprogrammed) 0 (programmed)
№ бита Extended Fuse Byte Значение по умолчанию в AVR Значение по умолчанию в Arduino
7 1 1
6 1 1
5 1 1
4 1 1
3 1 1
2 BODLEVEL2 1 (unprogrammed) 1 (unprogrammed)
1 BODLEVEL1 1 (unprogrammed) 0 (programmed)
BODLEVEL0 1 (unprogrammed) 1 (unprogrammed)

Начальное состояние микроконтроллеров ATmega328/P, в котором они поставляются с завода, является следующим: микроконтроллер сконфигурирован на работу с внутренним RC генератором на 8МГц, при этом прошитый бит CKDIV8 обеспечивает деление частоты генератора на 8; внешний сброс (по низкому уровню на выводе Reset) не запрещен; разрешено программирование по интерфейсу SPI; для загрузчика отведена область памяти 2048 слов; стартовый адрес программы 0x0000; схема контроля питания отключена.

В плате Arduino Uno фьюзы микроконтроллера изменены таким образом, чтобы он был настроен на работу с экономичным кварцевым генератором без делителя частоты; для загрузчика отводится 256 слов; прошитый бит BOOTRST назначает стартовым адресом адреса начала секции загрузчика; порог срабатывания схемы BOD составляет 2.7В.

Теперь рассмотрим процесс изменения фьюзов в плате Arduino (микроконтроллере AVR).

Байты конфигурации

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

На этой странице приводится справочная информация для всех фьюзов микроконтроллера. Правда, для части их, к сожалению на английском языке. Также всю информацию на микроконтроллер мы можем найти в Даташите, PDF файле с указанием цоколевки, характеристиками МК, и с подробным описанием для всех фьюз битов. 

Для того чтобы найти Даташит на нужную нам модель МК, достаточно набрать в поиске слово Datasheet и указать модель микроконтроллера, например Tiny-2313. 

Повторим еще раз, выше на рисунке обведены красным те фьюз биты, которые изменять нельзя, иначе МК будет залочен. Автор статьи — AKV.

Originally posted 2019-09-16 16:30:54. Republished by Blog Post Promoter

Обозначения индексов микроконтроллеров

После обозначения базовой версии и серии микроконтроллера, через дефис идет индекс, указывающий вариант исполнения микроконтроллера.Индекс состоит из 1-2 цифр, которые означают максимальную частоту, на которой микроконтроллер может стабильно работать при нормальном для него напряжении питания, и из 1-3 букв, которые обозначают вариант корпуса, температурный диапазон работы, и особенности изготовления.Первая буква (или две буквы) после частоты обозначает тип корпуса:P — корпус DIP (PDIP)A — корпус TQFPM — корпус MLFTS — корпус SOT-23 (ATtiny4/5/9/10)J — корпус PLCCA — корпус UDFN/USONC — корпус CBGACK — корпус LGAS — корпус EIAJ SOICSS — узкий корпус JEDEC SOICT — корпус TSOPX — корпус TSSOP

Следующая буква означает температурный диапазон и особенности изготовления:C — коммерческий температурный диапазон (0 °C — 70 °C)A — температурный диапазон −20 °C — +85 °C, с использованием бессвинцового припояI — индустриальный температурный диапазон (-40 °C — +85 °C)U — индустриальный температурный диапазон (-40 °C — +85 °C), с использованием бессвинцового припояH — индустриальный температурный диапазон (-40 °C — +85 °C), с использованием NiPdAuN — расширенный температурный диапазон (-40 °C — +105 °C), с использованием бессвинцового припояF — расширенный температурный диапазон (-40 °C — +125 °C)Z — автомобильный температурный диапазон (-40 °C — +125 °C)D — расширенный автомобильный температурный диапазон (-40 °C — +150 °C)
Еще в самом конце может быть буква R, которая означает, что микроконтроллеры упакованы в ленты для автоматизированных систем сборки

К примеру:ATmega8L-8AU — максимальная частота — 8 мегагерц, корпус — TQFP, индустриальный температурный диапазон (-40 °C — +85 °C), с использованием бессвинцового припояATmega8-16PN — максимальная частота — 16 мегагерц, корпус — PDIP, расширенный температурный диапазон (-40 °C — +105 °C), с использованием бессвинцового припоя

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

Линейка микроконтроллеров ATmegaЛинейка микроконтроллеров ATtiny

Маркировка микроконтроллеров AVR ATmega и ATtinyМаркировка микроконтроллеров AVR семейства ATmega и ATtiny, базовые версии и версии микроконтроллеров, индекс микроконтроллеров
Published by: Мир микроконтроллеров

Date Published: 04/27/2015

Описание

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

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

ВКопт стал более удобным в своем применении. Если раньше в расширении можно было просматривать видео и слушать музыку, то теперь каждый без исключения может скачивать все те песни и видеоролики, которые понравились современному пользователю.

Еще одно главное преимущество этой программы заключается в том, что пользователю необязательно заходить с компьютера и пользоваться всеми его функциями с него. Разработчики додумались до того, чтобы разработать ВКопт и для мобильных браузеров (Opera Mobile и Firefox Mobile). ВКопт скачать и установить займет у вас 3 минуты.

Основные функции VkOpt

  • Возможность простого и быстрого скачивания музыки и видео.
  • Расширение меню пользователя.
  • Возможность отключение рекламы.
  • Просмотр людей добавивших вас в закладки.
  • Проверка статуса ICQ в профиле.
  • Отображение знака зодиака и возраста в профиле пользователя.
  • Разворачивание списков друзей, заметок, альбомов и видеозаписей.
  • Отображение часов под меню пользователя.
  • Возможность приглашать в группу и приложение всех друзей.
  • Возможность отображения до сотни фотографий на странице.
  • Отключение обрезания аватаров пользователей.
  • Настройка собственного фона непрочитанных сообщений.
  • Удаление дубликатов аудио в поиске.
  • Удаление всех сообщений и историю переписки с конкретным человеком.
  • Настройка звуковых сигналов при новых событиях.
  • Всплывающие формы для написания сообщений.
  • Полная история статусов.
  • И много других полезных инструментов.

Изменения в последних версиях

  • Добавлена опция «Воспроизвести далее» вместо кнопки расшаривания
  • Добавлена опция фиксации левого меню
  • Добавлен показ ссылок на m3u8
  • Добавлено «Склеивание» сегментов из m3u8 в файл
  • Добавлена кнопка подгрузки последних комментариев к постам
  • Добавлена возможность увеличить аватарку на закрытых профилях
  • При переносе комментов под фото, доступна кнопка скрытия блока с комментариями
  • Добавлена кнопка сохранения фотографии в альбом c автоматическим показом выбора альбома для переноса после сохранения
  • Добавлено расширенное левое меню
  • В диалоги добавлены кнопки отключения отчётов о прочтении и наборе сообщений
  • Добавлена кнопка показа заблокированных друзей
  • В меню групп добавлен пункт «Упоминания»
  • В список Wiki-страниц добавлена кнопка перехода к редактированию страницы с возможностью переименования

Установить VkOpt (выберите нужный браузер)

источник

8-разрядный AVR-микроконтроллер с внутрисистемно программируемой флэш-памятью емкостью 128 кбайт

Перевод
технического паспорта ( даташита ) на русский язык.

  1. Общее описание

  2. Ядро центрального процессорного устройства AVR

  3. Память

  4. Интерфейс внешней памяти

  5. Системная синхронизация и тактовые источники

  6. Внешняя синхронизация

  7. Управление энергопотреблением и режимы сна

  8. Системное управление и сброс

  9. Прерывания

  10. Порты ввода-вывода

    Порты в качестве универсального цифрового ввода-вывода

    Альтернативные функции порта

    Описание регистров портов ввода-вывода

  11. Внешние прерывания

  12. Аналоговый компаратор

  13. 16-разр. таймеры-счетчики 1 и 3

    Доступ к 16-разрядным регистрам

    Тактовые источники таймера-счетчика 1/3

    Блок счетчика

    Блок захвата

    Блоки сравнения

    Блок формирования выходного сигнала

    Режимы работы

  14. Временные диаграммы 16-разрядных таймеров-счетчиков

  15. Описание регистров 16-разрядных таймеров-счетчиков

  16. Предделители таймеров-счетчиков 1, 2 и 3

  17. Аналогово-цифровой преобразователь

  18. Интерфейс JTAG и встроенная отладочная система

  19. Модулятор выходов таймеров (OCM1C2)

  20. Последовательный периферийный интерфейс — SPI

    Функционирование вывода SS

  21. 8-разр. таймер-счетчик 0 с функциями ШИМ и асинхронного
    тактирования

    Блок формирования выходного сигнала

    Временные диаграммы таймера-счетчика 0

    Описание регистров 8-разрядного таймера-счетчика 0

    Асинхронная работа таймера-счетчика 0

    Предделитель таймера-счетчика 0

  22. УСАПП

    Генерация тактовых импульсов

    Форматы посылки

    Инициализация УСАПП

    Передача данных — Передатчик УСАПП

    Прием данных — Приемник УСАПП

    Асинхронный прием данных

    Многопроцессорный режим связи

    Описание регистров УСАПП

    Примеры установок скоростей связи

  23. Двухпроводной последовательный интерфейс TWI

    Формат посылки и передаваемых данных

    Системы многомастерных шин, арбитраж и синхронизация

    Обзор модуля TWI

    Описание регистров TWI

    Рекомендации по использованию TWI

    Режимы передачи

  24. Программирование памяти

    Параллельное программирование

    Последовательное программирование

    Программирование через интерфейс JTAG

  25. Электрические характеристики

    Требования к характеристикам внешнего тактового сигнала

    Характеристики двухпроводного последовательного интерфейса

    Характеристики временной диаграммы SPI

    Предварительные данные по характеристикам АЦП

    Временная диаграмма внешней памяти данных

  26. Типовые характеристики ATmega128: предварительные данные

    Типовые характеристики ATmega128: предварительные данные
    (продолжение)

    Типовые характеристики ATmega128: предварительные данные
    (продолжение)

  27. Сводная таблица регистров

  28. Набор инструкций

  29. Информация для заказа

Программирование/изменение фьюзов в микроконтроллере AVR

Откройте Arduino IDE и загрузите в плату Arduino базовый скетч для мигания светодиодом (basic blink sketch).

Вы увидите, что встроенный в плату Arduino светодиод (подключенный к ее контакту 13) начнет мигать. Более подробно все эти процессы вы можете посмотреть в видео, приведенном в конце статьи. Теперь давайте попоробуем изменить фьюзы и посмотрим что произойдет. Как мы уже выяснили ранее, по умолчанию значения фьюзов в плате Arduino следующие: EFUSE – 0XFF, HFUSE – D9, LFUSE – 62. Изменим их с помощью Avrdude, для этого выполним следующую команду:

После выполнения этой команды вы увидите что скорость мигания светодиода станет значительно меньше. Дело в том, что по умолчанию частота мигания светодиода определялась частотой внешнего кварцевого генератора (16 МГц), теперь же, после изменения фьюзов, она определяется частотой внутреннего RC генератора (1 МГц). Поэтому и светодиод теперь будет мигать значительно медленнее.

Но, поскольку мы изменили фьюзы, мы изменили и настройки загрузчика. Вы можете увидеть это на следующем рисунке:

Чтобы исправить это и вернуть плату Arduino в ее исходное состояние, мы должны снова загрузить в нее загрузчик. Для этого выполните Tools -> Programmer- USBasp, после этого снова зайдите в Tools и выберите пункт «burn bootloader». После этого исходная функция загрузчика загрузится в плату Arduino и она снова начнет функционировать как обычно.

После этого светодиод на плате станет снова мигать с прежней частотой.

Проекты на основе Arduino ATmega

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

Пример 1

Можно сделать тестер с 11 функциями на микроконтроллере atmega32.

Устройство имеет крайне простую схему, в которой использовано немногим более дюжины деталей. Однако вы получаете вполне функциональный прибор, которым можно производить измерения. Вот краткий перечень его возможностей:

  1. Прозвонка цепи с возможностью измерять падение напряжения на переходе диода.
  2. Омметр.
  3. Измеритель ёмкости.
  4. Измерение активного сопротивления конденсатора или ESR.
  5. Определение индуктивности.
  6. Возможность счёта импульсов.
  7. Измерение частоты – пригодится в диагностике, например, для проверки ШИМ источника питания.
  8. Генератор импульсов – тоже полезен в ремонте.
  9. Логический анализатор позволит просмотреть содержимое пачек цифровых сигналов.
  10. Тестер стабилитронов.

Пример 2

Для радиолюбителей будет полезно иметь качественное оборудование, но станция стоит дорого. Есть возможность собрать паяльную станцию своими руками, для этого нужна плата Arduino, имеющая в своем составе микроконтроллер atmega328.

https://youtube.com/watch?v=iICWo_Us77g

Пример 3

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

Для этого вам понадобится:

  1. Arduino uno или atmega
  2. Tft дисплей 5 дюйма.
  3. Небольшой набор обвязки.

Или его упрощенный аналог на плате Nano и дисплее от nokia 5110.

https://youtube.com/watch?v=WzzBWPYStcU

Такой осциллографический пробник станет полезным для автоэлектрика и мастера по ремонту радиоэлектронной аппаратуры.

Пример 4

Бывает, что управляемые модули удалены друг от друга или возможностей одной ардуино не хватает – тогда можно собрать целую микроконтроллерную систему. Чтобы обеспечить связь двух микроконтроллеров стоит использовать стандарт RS 485.

На фото приведен пример реализации такой системы и ввода данных с клавиатуры.

Платы Arduino

Ардуино продаётся во множестве вариантов; главное, что объединяет платы, – это концепция готового изделия. Вам не нужно травить плату и паять все её компоненты, вы получаете готовое к работе изделие. Можно собирать любые устройства, не используя паяльник. Все соединения в базовом варианте выполняются с помощью макетной платы и перемычек.

Сердце платы – микроконтроллер семейства AVR. Изначально был применён микроконтроллер atmega8, но его возможности не безграничны, и плата подвергалась модернизации и изменениям. Стандартная плата, которая наиболее распространена у любителей – это плата версии UNO, существует много её вариаций, а её размеры сравнимы с кредитной карточкой.

Плата Arduino Nano –  полный аналог большего собрата, но в гораздо меньших размерах, версия arduino atmega168 была самой популярной и недорогой, но её сменила другая модель – arduino atmega328, стоимость которой аналогична, а возможности больше.

Следующей важной деталью является печатная плата. Разведена и запаяна на заводе, позволяет избежать проблем с её созданием, травлением и пайкой

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

Клеммная колодка – отличный способ сделать надёжное разъёмное соединение и быстро выполнить изменения в схеме прототипов ваших устройств. Для тех, кому не хватает стандартных разъёмов, есть более крупные и мощные платы, например, на atmega2560, у которой доступно полсотни портов для работы с периферией.

На фото изображена плата Arduino Mega 2560. На её основе можно собрать довольно сложного робота, систему умного дома или 3d-принтер на ардуино.

Не стоит думать, что младшие версии слабы, например, микроконтроллер atmega328, на котором построены модели Uno, nano, mini и другие, имеет вдвое больше памяти по сравнению с 168 моделью – 2 кб ОЗУ и 32 кб Flash памяти. Это позволяет записывать более сложные программы в память микроконтроллера.

FUSE BITES

SPIEN. Как быть, если вы не уверены в том, какое в вашей программе оболочке представление Фьюз битов, прямое или инверсное? Ориентироваться в этом случае, нужно всегда по Биту Spien. Этот бит при программировании через последовательный интерфейс будет всегда запрограммирован, а остальные Фьюз биты нужно выставлять уже относительно его. В программах – оболочках, где нет защиты от снятия этого фьюз бита, нужно быть осторожным, если его снять, МК будет залочен, и недоступен для прошивания по SPI.

CKDIV8. Этот фьюз бит при его установке, делит тактовую частоту микроконтроллера на 8. Если мы используем новый, не шитый ранее МК, он будет тактироваться от внутреннего источника, и частота его будет равна 8 МГц. Но по умолчанию этот фьюз бит уже запрограммирован на заводе при изготовлении. После его установки тактовая частота МК равна единице (8\8=1). В случае, если мы задаем частоту от внешнего кварца, скажем на 12 МГц, частота будет равна 1.5 МГц.

EESAVE. При установке этого фьюз бита, мы запрещаем очистку от записанных ранее данных, (стирание) EEPROM памяти микроконтроллера, при выборе в программе — оболочке функции ERASE (очистить память).

RSTDISBL. Reset disable (Отключение Ресета). Отключение пина Reset, и превращение его, в еще один пин порта — ввода вывода микроконтроллера. Эта функция может использоваться при применении Параллельного программатора. Либо если вам больше не нужно прошивать МК, вы заливаете проверенную прошивку, и дальнейшее перепрограммирование не потребуется. После его установки, МК больше не будет доступен для прошивания через последовательный интерфейс (SPI), залочен. Это актуально для МК с небольшим количеством ножек — портов ввода — вывода, например в корпусе Dip 8.

SELFPRGEN Этот бит включает режим самопрограммирования микроконтроллера. Начинающим, без необходимости его изменять не рекомендую.

BOD LEVEL 0 – 2. Этими битами мы устанавливаем порог срабатывания монитора питания МК, для его более стабильной работы. В случае, если напряжение питания опустится ниже заданного нами уровня, произойдет сброс микроконтроллера.

Lock 1-2 биты. С их помощью мы можем защитить записанную нами прошивку в память микроконтроллера от незаконного копирования. Например, если это было какое-либо коммерческое устройство, аналогов которому по функциональности не выпущено.

CKSEL 0 – 3. С помощью этих фьюз битов, мы задаем микроконтроллеру источник тактирования, внешний или внутренний. Также здесь мы указываем частоту источника тактирования. Всего может быть 16 возможных комбинаций этих фьюз битов. Будьте осторожны, в случае неправильного их выставления, МК может залочиться, так как для своей работы он будет “ждать” внешнего источника тактирования (кварца). В таком случае, если вы все же ошиблись с выставлением этих фьюзов, постарайтесь вспомнить какие выставляли значения, и обратитесь к документации в Даташите на этот МК. После подключения кварца на нужную частоту, и двух  конденсаторов, МК снова будет виден.

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

DWEN. С помощью этого фьюз бита мы можем включить режим отладки МК debug WIRE. Без необходимости этот фьюз бит изменять не нужно, так как в этом случае МК перестанет быть виден через последовательный интерфейс (SPI), или по другому будет залочен.

SUT 0 – 1. Устанавливая эти фьюз биты, мы изменяем режимы запуска тактового генератора МК. Выставлять их нужно только с пониманием того, для чего они служат, и без необходимости не изменять, иначе возможна нестабильная работа микроконтроллера.

Сборка устройства

Для сборки нам понадобится:

1. Резисторы: 

10к-1шт.
4,7к-2шт.
1к-19шт.
330 Ом – 1шт.

2. Конденсаторы:

100 мкФ 16в. – 1шт.
10 мкФ 16в. – 1шт.
10 нФ — 1шт.

3. Транзисторы:

BC547 – 1шт.
BC557 – 2шт.

4. Светодиоды – 2 шт. (красный и зеленый)

5. Панели под микроконтроллеры

40 выводов – 1шт.
28 выводов – 2шт.
20 выводов – 1шт.

6. Кнопка 4-х контактная – 1 шт.

7. Терминальный блок на 2 контакта – 1шт.

8. Стабилизатор напряжения 7805 в корпусе ТО-220  – 1 шт.

Вот собственно и все детали. Можно приступать к сборке АВР доктора.

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

Когда все элементы впаяны, нужно еще раз промыть плату. После того как она высохнет, возьмите увеличительное стекло и внимательно осмотрите плату. Я иногда нахожу на плате сопли и непропаянные места. Если вы устраните все найденные дефекты до первого включения платы, вы можете избежать неприятностей. Вот так выглядит готовая плата:

Системные требования

VkOpt — универсальное расширение для браузеров по расширению возможностей ВКонтакт. Разработчики вложили свою душу в это детище, и поэтому постарались добавить в него как больше возможностей. Благодаря своему труду создатели пришли к мнению, что необходимо разработать расширение абсолютно для каждого браузера. Расширение совместимо:

  • с Opera Browser — Mobile;
  • с Google Chrome;
  • с Firefox Browser — Mobile;
  • VkOpt для Яндекс.Браузера
  • Safari и т.д.

К большому счастью, расширение и вправду универсальное

Неважно, какой у вас браузер на компьютере, расширение будет работать без ошибок. Что касается мобильных браузеров, то, к сожалению, оно работает только в Opera и Firefox Mobile

Как удалить

Если вы точно намерены в своем решении и считаете, что нужно удалить VkOpt, то заходите в браузере – Дополнительные настройки – Расширения. И удаляете.

С мобильного телефона чтобы удалить ВКопт расширение необходимо:

  • в меню смартфона найдите данное расширение;
  • в верхнем правом углу найдите три вертикальные точки и кликните по ним;
  • после этого перед вами появится маленькое окно с уведомлениями, вам же необходимо выбрать «Удалить приложение»;
  • на приложении появится минус, для этого нажмите на него и ВКопт удалится с вашего смартфона.

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

Прошивка микроконтроллера

Следующим этапом будет прошивка микроконтроллера. Для этого вам нужно иметь:

  1. Микроконтроллер ATmega 8
  2. Программатор для AVR микроконтроллеров.

Чтобы прошить микроконтроллер нужно иметь программатор и компьютер с соответствующим программатору ПО. Я использую AVR Studio 4. Прошивку оставлю в архиве вместе с печатной платой и принципиальной схемой. 

Фьюз-биты нужно установить следующим образом:

Lock Bits = 0x 3F; High Fuse = 0x D1; Low Fuse = 0x E1; Ext. Fuse = 0x 00

Если микроконтроллер успешно прошит, можно приступать к разблокировке микроконтроллеров. Для этого вставьте прошитую атмегу в панельку возле светодиодов. А «залоченный» мк вставьте в соответствующую ему пустую панельку. Далее нужно подключить питание к плате через терминальный блок, который вы припаяли. Напряжение следует подавать 6-12 вольт, иначе плата не запуститься. Когда питание подключили загорится красный светодиод (если конечно вы все правильно собрали).

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

Теперь несколько слов о джампере, который стоит на плате. Если вы поставите на него перемычку, то при разблокировке МК также очиститься его память, то есть удалиться прошивка. Если же перемычки не будет — прошивка сохраниться.

Если при нажатии на кнопку не произошли действия описанные выше, то что-то пошло не так как нужно. Причина может быть в том, что вы ошиблись при сборке платы или прошивке атмеги. Также причина может быть в том, что микроконтроллер, который вы хотите восстановить, неисправен. Дополнительная информация — на форуме. Всем удачи!