Теперь самый ответственный момент!
Нужно сконфигурировать так называемые "фьюзы".
Фьюзами определяется, как будет тактироваться контроллер, какие интерфейсы будут использоваться, с какого адреса начнет контроллер считывать инструкции после сброса и т.д.
С фьюзами надо работать очень осторожно и внимательно, иначе контроллер может стать "аутистом" и до него потом ни чем не "достучишся"...
Или залочите прошивку, и больше её не поменяешь потом.
Для начала считаем фьюзы с контроллера.
В пункте меню Command нажимаем вкладку Security and Configuration Bits
Откроется вот такое окошко
Прежде чем приступить к каким-либо манипуляциям с битами, сначала нужно считать их значение из контроллера
Жмем кнопку Read
Фьюзы в самой верхней строке (которые содержат в себе Lock) - вообще не трогаем!
Хрен знает почему, но когда считываю фьюзы с зеленой платки (версия 3), то они у меня все отключены, а если с синей (версия 3.1) - то все установлены.
Не знаю, почему так!
Короче их не касаемся!
Теперь, для зелёной платы (версия 3) фьюзы выглядят, как на выше приведенном рисунке.
Код:
OCDEN — fuse разрешает работу схемы внутреннего отладчика (On Chip Debug ENable).
Выставляем этот бит - может дебажть придется, да и прошивку не считать из контроллера без него.
Код:
JTAGEN — fuse бит разрешает работу интерфейса программирования-отладки JTAG. По сравнению с SPI-интерфейсом, JTAG обладает расширенными возможностями, но при его использовании потребляемый МК ток возрастает.
На зеленой плате JTAG используется, поэтому для неё тот фьюз выставляем.
На синей JTAG не используется - для неё отключаем.
Код:
CKOUT — fuse бит, разрешающий вывод тактовой частоты на один из выводов МК (для тактирования других устройств).
Нам ничего внешнего тактировать не надо, отрубаем.
Код:
EESAVE — fuse бит, после установки которого при стирании памяти МК содержимое EEPROM данных будет сохраняться нетронутым, т. е. не будет стерто.
Пусть eeprom тоже очищается, сбрасываем этот фьюз.
Код:
Группа fuse битов BOOTSZ — два fuse бита, определяющие размер области памяти программ, выделяемой для загрузчика (Boot Loader). Комбинация этих битов, в частности, определяет точку начала исполнения программы после сброса, если установлен бит BOOTRST.
Если хотим пользоваться бутлоадером, то выставляем все три этих фьюза, если нет - сбрасываем BOOTRST (в таком случае состояние двух остальных - по хрен).
Код:
Группа fuse битов BODLEVEL. Может быть либо один такой бит, либо несколько, тогда они нумеруются, начиная с нуля. Значение этих fuse битов определяет порог срабатывания схемы BOD — детектора уровня питающего напряжения, при снижении напряжения питания ниже этого уровня произойдет "сброс" МК.
BODEN — fuse бит, включающий схему аппаратного детектора недопустимого уровня
питающего напряжения, т.е. схему BOD.
отрубаем эту хрень - сбрасываем все эти фьюзы.
Код:
SUT1 и SUT0 — fuse биты, управляющие режимом запуска тактовых генераторов МК. Связаны с нижеописываемыми битами, определяющими тип и частоту тактового генератора, причем связь весьма хитрая и запутанная. При ошибочной их установки возможны ситуации неустойчивого запуска генератора или неодногратного сброса МК в процессе подачи на него питания.
CKOPT — бит, определяющий режим работы встроенного генератора тактовой частоты для работы с кварцевыми резонаторами. Реально изменяет коэффициент усиления встроенного инвертора в схеме генератора и значит выходное напряжение на ножке XTAL2. Ошибочная установка может приводить к неустойчивому запуску кварцевого генератора, вплоть до возбуждения его не на той гармонике, что надо (из-за этого бита кварц запускался или только при питании МК напряжением не выше 3,6В, или только после прикосновения к выводу XTAL1 пинцетом)
Группа битов CKSEL0…CKSEL3 — fuse биты, комбинация которых определяет тип и частоту работающего тактового генератора. Всего возможно до 16 комбинаций, однако не все определены для всех типов МК. Ошибочная установка комбинации этих битов может сделать МК «мертвым» — он не будет работать в схеме без подачи тактового сигнала на ножку XTAL1.
Выставляем как на скриншоте - все CKSEL сброшены, SUT1 сброшен, SUT0 установлен.
Все!
Для синей платы (версия 3.1) при использовании бутлоадера фьюзы выглядят так
Если не будете использовать бутлоадер, а заливаете сразу прошивку, то так
Для особо одаренных ещё раз повторю -
Фьюзы в самой верхней строке (которые содержат в себе Lock) - вообще не трогаем!Как они у вас считались с контроллера, так их и оставьте! Не зависимо от того, как они выставлены на приведенных скриншотах! Ну все, записываем фьюзы - жмем кнопку Write
Всё - дело сделано!
Выключаем комп, отключаем программатор.
Подаем на плату "Аскета" питание, и если Вы заливали прошивку, она должна заработать.
Если бутлоадер - читайте в следующих выпусках, как пользоваться бутлоадером.