Прошивка ATMEGA16 Arduino ISP

Прошивка ATMEGA16

Создав на CVAVR прошивку и протестировав на Proteus, возникает необходимость залить прошивку уже на реальный МК. Не имея под рукой ни один программатор кроме ARDUINO, приходится использовать этот. Хотя в общем со своими обязанности он вполне справляется.

В этой статье я прошиваю ATMEGA16 используя возможность ARDUINO быть программатором ISP.

Прошивка ATMEGA16 Arduino ISP

Для прошивки необходимо к ARDUINO подключить МК используя эту распиновку.

Мне необходимо было изменить внутреннюю частоту с 1МГц на 8МГц, для этого необходимо прошить фьюзы. Чтобы не убить камень, перед прошивкой ОБЯЗАТЕЛЬНО необходимо прочитать биты.
Прочитать можно с помощью AVRDUDE командой avrdude -P COM1 -b 19200 -c avrisp -p m16 -v
Посмотреть фьюзы в калькуляторе можно на сайте говорят самый нормальный.
Чтение фьюзов до прошивки
После прочтения фьюзов, можно проверить их в калькуляторе, таким образом мы можем гарантировать, что ничего, кроме нужного не поменяли,
Далее можно их записать обратно командами
avrdude -P COM1 -b 19200 -c avrisp -p m16 -U lfuse:w:0xe4:m -U hfuse:w:0x99:m
младшие биты lfuse 0xe4 и старшие hfuse 0x99 взяты из калькулятора. Калькулятор на лету генерирует avrdude параметры, можно использовать их.
Фьюзы пишутся всем скопом, поэтому относиться к этому нужно крайне аккуратно.

Проверим ещё раз
Чтение фьюзов после их прошивки
Вроде все нормально. Можно шить hex
Hex шьем тем же avrdude командой

avrdude -p m16 -P COM5 -c avrisp -b 19200 -U flash:w:heat_room.hex

файл heat_room.hex должен лежать в той же папке что и avrdude


Все ОК.

Осталось протестировать на деле.

One Reply to “Прошивка ATMEGA16”

  • Leave a comment

    Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.