Фьюзы AVR

Когда вы купили микроконтроллер в радиомагазине, достаточно подать питание и можно его использовать. Для многих задач заводских настроек бывает достаточно, но если от МК необходима максимальная производительность, придется использовать внешний тактовый генератор, или кварц. Для того чтобы микроконтроллер узнал, как ему работать – от внутреннего тактового генератора с определенной частотой, или от кварца, необходимо с помощью программатора его настроить. При настройке как раз и изменяются FUSE биты, каждый из которых отвечает за определенные режимы работы микроконтроллера. Можно, например, запретить прошивку микроконтроллера в целом, запретить стирание EEPROM, включать и отключать таймеры. На первый взгляд всё просто – посмотрел даташит, выставил нужные фьюзы и всё – можно работать. На деле всё оказывается немного сложнее.

 

В зависимости от используемого программного обеспечения – FUSE биты могут быть инвертированы. Подходить к их установке нужно очень внимательно, т.к. можно, например, настроить МК на работу от внешнего тактового генератора, и если такого под рукой не окажется, заставить работать его будет очень затруднительно. Для настройки фьюзов я использую AVRDUDEPROG:

 

Для определения что и где включить пользуюсь этим сайтом : http://fusecalc.mirmk.net/

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

siteFuses

 

В программе AVRDUDEPROG и на сайте биты отмечены с точностью до наоборот, но значения в шестнадцатиричном виде всегда должны сходиться, т.к. в конечном итоге именно эти цифры записываются в МК (обычно утилитой AVRDUDE, строка с аргументами которой автоматически формируется на том же сайте). На скриншоте настройки (фьюзы) для микроконтроллера atmega328p, режим работы от внешнего кварца (какой поставим такая будет и частота). Часто по умолчанию включен делитель на 8 (CLKDIV8) если этот бит установлен, то микроконтроллер будет работатать на частоте 2МГц, если установлен кварц на 16МГц. В принципе информации с сайта для подбора фьюзов достаточно для настройки большинства микроконтроллеров, здесь главное внимательность.

Posted in AVR

Leave a Reply

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

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>