Фьюзы для ATmega32 автоматизация процесса прошивки
Так как мне лень пересчитывать фьюзы для ATmega32 каждый раз перед прошивкой кристалла, то я сделал подборочку фьюзов для моих целей. Собственно набор необходимых мне параметров не шибко большой.
И так, самый распространённый: -U lfuse:w:0xf4:m -U hfuse:w:0xdc:m.
Внутренняя RC-цепь на 8 МГц, бутлоадер 512 байт и выключенный JTAG.
Подходит для подавляющего большинства проектов. Использование внутренней RC-цепи
позволяет избавиться от дополнительных элементов тактирования микроконтроллера.
Бутлоадер ускоряет процесс прошивки и избавляет от необходимости иметь программатор,
достаточно COM-порта или виртуального COM-порта. Далее RS232 конвертируется в UART
и подключается к микроконтроллеру.
Следующий по распространённости: -U lfuse:w:0xff:m -U hfuse:w:0xd9:m.
Внешний кварц без бутлоадера и без JTAG. Подходит для конечного продукта. Внешний
кварцевый резонатор отличается высокой стабильностью. А так же с его помощью можно
работать на больших частотах. Например, максимальная частота RC-цепи ATmega16 и ATmega32
составляет всего 8 МГц, а максимальная частота внешнего кварцевого резонатора 16 МГц.
Кстати, ради эксперимента пробовали подключать кварц до 25 МГц. В результате при
20 МГц был хороший результат, а вот на 25 МГц микроконтроллер вёл себя не стабильно
и сильно грелся.
И третий по распространённости, но не по назначению: -U lfuse:w:0xe4:m -U hfuse:w:0xdb:m.
Внутренняя RC-цепь на 8 МГц без бутлоадера и без JTAG. Используется в финишных
устройствах передаваемых заказчику. Кстати, из-за того, что с устройством передаются
исходники программы управления, фьюзбиты защиты не устанавливаются.
У меня часто бывают случаи когда необходимо запрограммировать несколько микроконтроллеров одновременно. И необходимо прошить не пару микроконтроллеров, а пару десятков и даже сотню. В этом случае подходит программатор с ZIF-панелькой и небольшой скрипт для прошивки. Программатор может выглядеть следующим образом.
Ранее использовался программатор на основе AVR910 от Prottos и всё было замечательно, пока я не перешёл на Windows Se7en 64 бита. И вот тогда встал вопрос о смене программатора или о работе в «Test mode». К счастью, товарищ Ink с форума EASY ELECTRONICS.
@echo off :loop color 1B cls echo Starting burn ATmega32(A) on ORCINUSBOARD . . . echo ATmega32(A), JTAG OFF, EXT Int. Crystal (16 MHz), No boot. echo. echo. avrdude.exe -p m32 -c usbasp -B 4800 -U lfuse:w:0xff:m -U hfuse:w:0xd9:m avrdude.exe -p m32 -c usbasp -U flash:w:flash.hex:a echo. echo. echo Remount ATmega32(A) and Press any key for repeat burn ATmega32(A) . . . echo Замените микроконтроллер и Нажмите любую клавишу для повтора прошивки . . . echo. echo Press CTRL+BREAK for exit . . . echo. pause goto :loop
Логика действий простая.
- Вставляем микроконтроллер в ZIF-панельку, зажимаем,
- подаём питание на микроконтроллер,
- жмём любую кнопку,
- ждём когда зальются фьюзы и прошивка,
- извлекаем микроконтроллер,
- переходим к первому пункту.
И так, до тех пор, пока не закончатся микроконтроллеры необходимые для прошивки. Потом они передаются на тестирование и установку в устройства.
Успехов в автоматизации процесса.
Тэги: микроконтроллеры
Отредактировано:2020-09-10 19:30:41