024-Что такое Fuse bits AVR микроконтроллеров.

Автор: | 28.03.2010

титл FuseВ посте про тестовые прошивки, рядом с самой прошивкой для микроконтроллера лежит картинка с названием «Фьюзы для тестовой прошивки ATMega48/88/168». Зачем эта картинка нужна? Что обозначают галочки в чекбоксах?

Fuse bits называют область (4 байта) в AVR микроконтроллерах отвечающую за начальную (глобальную) конфигурацию. Этими битами мы указываем микроконтроллеру, с каким задающим генератором ему работать (внешним|внутренним), делить частоту генератора на коэффициент или не нужно, использовать ножку сброса как сброс или как дополнительный порт ввода-вывода, количество памяти для загрузчика и другое. У каждого контроллера свой набор фьюзов.

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

Например:
SPIEN
— разрешить использование SPI — интефейса. Должно быть без галочки иначе станет невозможным последовательное программирование;
RSTDISBL
— запретить использование сброса. Ножка сброса станет еще одним портом ввода-вывода. Должно быть с галочкой, иначе станет невозможным последовательное программирование.
DWEN
— разрешить использование debugWIRE. Ножка сброса используется как канал для отладки. Должно быть с галочкой, иначе станет невозможным последовательное программирование.

Важно!Возможно, Вы прошиваете микроконтроллер программой у которой эти галочки ставятся инверсно, не как в даташите. Если это так, то гдето рядом с галочками есть сноска об этом сообщающая.
Если Вы неуверены как в программе ставятся фьюзы, просто прочитайте фьюзы с контроллера и посмотрите как установлены SPIEN, RSTDISBL.

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

Почему так? Объясню. Сейчас конфигурационные байты записываются во флеш памяти и поменять их можно сколько угодно раз. Раньше, в суровые времена, когда флеш памяти еще не было, для конфигурации какого-либо чипа в его архитектуре имелись специальные перемычки (fuse) которые разово физически сжигались. Вот поэтому, по старинке, если перемычка цела-«1» значит эта функция не задействована и наоборот – перемычку спалили-«0» значит функция задействована.

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

P.S. У меня скопилось несколько микроконтроллеров с неработающим последовательным программированием (неправильно прошиты фьюзы), поэтому, в скором времени, займусь сборкой несложного паралельного программатора. Получиться — отпишусь.

(Visited 16 276 times, 2 visits today)