fuseВопрос, который давно требует пояснений — что же такое fuse bit (далее фьюзы) и как их использовать. Для простоты понимания, назовем их настройкой для микроконтроллера, которую можно изменить только при прошивке.

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

f1

CKSEL0-3 - отвечают за выбор источника тактирования микроконтроллера. В даташите есть таблица из нее прикинуть конфигурацию битов. f2

Например, хотим работать от внешнего кварца на 8МГц, выставляем смело CKSEL0-3 в 0000. Схема для подключения кварца. Конденсаторы 12-22 пФ.

f4

Или хотим работать от внутреннего генератора на 8МГц, видим диапазон значений для CKSEL, крутим вниз даташит и видим подробное описание:

f3

Т.е. в нашем случае подойдет последний вариант, смело заносим в CKEL0-3=0010 и радуемся супер скорости.

Если вы случайно установили тактирование от внешнего источника, а у вас его нет, то — увы микроконтроллер становится не доступным для чтения и программирования. Но расстраиваться не стоит, стоит подцепить внешний кварц и atmega снова оживет.

CKOPT — используется только совместно с битами CKSEL, позволяет включить «режим усиления». Микроконтроллер в таком режиме имеет повышенное энергопотребление, однако более помехозащищен. Установка данного бита позволяет работать на частотах выше 8МГц, если сам микроконтроллер поддерживает такие частоты.

SUT0-SUT1 — эти биты отвечают за задержку, перед началом работы микроконтроллера. Насколько я понял из даташита, рекомендации в отношении этих битов касаются в основном питания и в том числе бита BODEN

BODEN — при установке бита, микроконтроллер контролирует напряжение питания. При снижении напряжения ниже определенного уровня, микроконтроллер сбрасывается.

BODLEVEL — определяет тот самый уровень напряжения, если фьюз установлен, то нижний предел питания 4В, если не установлен 2,6В.

BOOTRST — позволяет начать выполнение программы не с начала, а с определенной области BOOTLOADER.

BOOTSZ0-BOOTSZ1 — также относятся к бутлоадеру, определяют размер памяти отведенный загрузчика.

EESAVE — если бит установлен, то во время выполнения команды Erase Chip, EEProm память не будет стерта.

WDTON — позволяет использовать сторожевой таймер.

RSTDISBL — отвечает за назначение вывода reset. Если он установлен, то ножка  reset становится обычным портом ввода-вывода. В следствие чего становится не возможным использовать ее при последовательном программировании, т.е. микроконтроллер не возможно прошить без специального программатора.

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

Настоятельно рекомендую перед изменением фьюзов, прочитать уже установленные фьзы: Tools-Chip Programmer-Read-Fuse Bit, так меньше шанс ошибиться.

Для внешнего кварца на 8МГц
fuses 8mhz

Для внешнего кварца 8-16МГц
16mhz

Для внутреннего на 8МГц
8internal

50 комментариев: Fuse bit в AVR микроконтроллерах

  • Другого нет контроллера подкинуть?

  • проверяйте схему еще раз, чудес не бывает, конденсаторы ставьте керамику

  • Все, уф, разобрался. С такой конфигурацией фьюзов на атмеге 128 нужен был внешний RC. Собрал, рассчитал, перепрошил. Виноват был калькулятор фьюзо — зря я ему поверил. Надо курить даташиты. Сори за беспокойство))

  • Кто подскажет, как и где найти специалиста по переводу прошивки с Атмега88 в ATxmega16A4U ?

  • можете на electronix поспрашать, там большой форум

  • Спасибо.

  • здравствуйте. ув админ у меня программа AVRDUDEPROG. я сделал так, как «Для внешнего кварца на 8МГц». убил 2 мега32, 1 мега16 и 4 мега8 :sad: вопрос: почему они сдохли? заранее спасибо!

  • да там есть лажа. дело в том, что в CAVR фьюзы инверсные, т.е. 0 = галка стоит = это прошито, т.е. 000 на самом деле = 111, т.е. по факту вы прошили скорее всего на внешний генератор. в общем то это не проблема, подключите генератор вместо кварца, восстановите фьюзы.

  • спасибо за внимание. а что за генератор? я просто новичек. и какую прогу советуете, avrdude или khazama?

  • у вас скорее всего USBASP, я уже писал, что у меня нет этого программатора, поэтому не могу проверить как шьет avrdude или khazama, я шью AVRISP из под avr studio.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Последние комментарии
  • Загрузка...
Архивы
Счетчик
Яндекс.Метрика