30 октября 2013 г.

Как настроить Фьюзы на AVR и для чего они нужны

Фьюзы или fuse-биты, с их помощью можно настраивать некоторые параметры микроконтроллеров, как частота, зашита от копирования прошивки и т.д. Их 2 байта старший и младший.

Фьюзы различаются от МК к МК. Самое лучшее описание нужно всегда искать в даташите на определённый микроконтроллер.

В Atmel AVR принято что за состояние ВКЛЮЧЕНО отвечает 0 а ОТКЛЮЧЕНО 1. Что не много раздражает, т.к. привычнее наоборот. Это нужно учитывать при чтении документации и при записи фьюзов, так как разные прошивальщики используют разные нотации, у некоторых как в Atmel, у некоторых наоборот.



Перед изменением Фьюзов, ВСЕГДА нужно сначала прочитать какие биты уже выставлены, проверить бит SPIEN, он всегда активен иначе программатор не определит МК. По нему можно узнать какая нотация используется в программе. Если там нет галочки или 0 то нотация Атмеловская и можно копировать с даташита, иначе инверсная.

Биты

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

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

RESERVED —  этот бит зарезервирован фирмой Atmel. Ни при каких условиях не рекомендуется менять его состояние (т. е. надо оставлять его таким, как он установлен при изготовлении МК).

OCDEN — Позволяет читать программу из МК (On Chip Debug ENable). Используют когда  не хотят чтобы кто-то использовал прошивку в другом МК.

JTAGEN — Разрешает подключение отладчика к JTAG, можно видеть что происходит в МК. Когда активен МК потребляет больше тока и нельзя использовать выводы отвечающие за JTAG.

SELFPRGEN — бит, разрешающей программе МК производить запись в память программ, т. е. производить самопрограммирование.

DWEN — Разрешающий работу DebugWire - это интерфейс отладки по одному проводу.

EESAVE — Позволяет сохранять данные в EEPROM после перепрошивки.

SPIEN —Бит разрешающий работу интерфейса внутрисхемного программирования МК по SPI. Если его отключить перепрошить МК простым способом будет невозможно.

WDTON — fuse бит, после установки которого сторожевой таймер Watch Dog включается сразу после подачи питания и не может быть отключен программно. Если бит не установлен, то включением и отключением WDT можно управлять программно. Этот таймер перезагружает процессор если его периодически не сбрасывать – профилактика зависаний.

Группа fuse битов BODLEVEL. Перезагружает МК если напряжение упадёт ниже уровня прописанного в этих битах.

BODEN — Включает BODLEVEL.

RSTDISBL — Превращает ножку RESET в обычный порт ввода/вывода, но пропадает возможность программировать МК.

CKDIV8 — fuse бит, включающий предварительное деление частоты тактового генератора на 8. То есть при включенном бите и применении кварца на 8 МГц реальная тактовая частота МК составит 1 МГц.

CKOUT — fuse бит, разрешающий вывод тактовой частоты на один из выводов МК (для тактирования других устройств).

SUT1 и SUT0 — Определяет скорость старта МК после рестарта или при подаче питания, от 4 до 65 мс.

PLLCK — fuse бит, разрешающий использование встроенного синтезатора частоты для тактирования ядра МК.

BOOTRST — fuse бит, определяющий адрес, с которого будет начато исполнение программы после сброса — если бит установлен, то начало программы будет не с адреса 0000h (как обычно), а с адреса области загрузчика (Boot Loader).

Группа fuse битов BOOTSZ — два fuse бита, определяющие размер области памяти программ, выделяемой для загрузчика (Boot Loader). Комбинация этих битов, в частности, определяет точку начала исполнения программы после сброса, если установлен бит BOOTRST.

Инфа отсюда:
easyelectronics.ru
cxem.net
avrfuse.narod.ru

Комментариев нет :

Отправить комментарий