Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру

Глава 5. Подготовка к программированию МКАVR 1 1 1 его можно заменить на КМОП-версию I CM7555 или КР1 441 ВИ 1 ) . Эта схема сложнее и требует больше деталей, но сам таймер по неведомой мне причине жутко популярен у радиолюбителей и вполне может оказаться у вас под рукой . +5 В к выводу 14 , GNO к выводу 7 з 2 001 .1 001 561ЛА7, 561ЛЕ5 CD401 1 , CD400 1 5 6 4 001.2 тт R1 1 -1 00 кОм Рис. 5.6. Простейшие генераторы тт 1 0-1 00 нФ При указанных на схемах величинах резисторов и конденсаторов частота окажется в пределах от десятков герц до десятков килогерц. Никто не мешает раздвинуть гра­ ницы указанных предельных значений , только следите, чтобы п р оизведение R (в омах) на С (в фарадах) не выходило за границы примерно 1 0· 2 -1 0· , иначе частота окажется либо слишком маленькой , либо слишком большой для нормальной работы классических серий КМОП 561 или CD4000. На трех иллюстрациях, приведенных далее (рис . 5 . 7-5 .9), в окне установки fusе­ битов программы ASISP показано состояние по умолчанию конфигурационных ячеек трех «наших» типов контроллеров, упомянутых в конце главы 4. Как видите, перепутать тут что-либо достаточно сложно: отжатая кнопка означает единичное состояние ячейки, нажатая - нулевое, а для ясности с «запрограммированным» состоянием разработчики программы специально предусмотрели соответствующую памятку. Конфигурационные ячейки делятся на три группы размером в один байт каждая, называемые Fuse Low Byte, Fuse High Byte и Fuse Extended Byte . В программе ASISP эти названия не приведены (одна из мелких недоработок программы), и группы выделены только их расположением: на рис. 5 . 7-5 .9 в секции под заголов­ ком Fuse биты слева размещается Fuse Low, посередине - Fuse Нigh и справа - Fuse Extended. Группа Extended, как видите, из трех представленных контроллеров присутствует только в ATtiny23 1 3 , в остальных хватило и двух байтов. Нумерация битов каждого байта идет сверху вниз (в таблицах, которые вы можете найти в «да­ ташитах» на каждый контроллер, в разделе Memory Programming - наоборот! ), т. е. во всех трех примерах бит по названием CKSELO - младший бит группы Fuse Low. ПОДРОБНОСТИ В упомянутой ранее задаче по ручной загрузке Bootloader'a в контроллеры Arduiпo значения «фьюзов» придется извлекать из hardware\arduino\avr\Ьoards. txt , где они запи­ саны в шестнадцатеричной форме для каждой из групп Low, Hi gh , а также Extended , если она имеется . Исходя из сказанного, интерпретировать такую запись очень про-

RkJQdWJsaXNoZXIy MTExODQxMg==