11
МИКРОКОНТРОЛЛЕРЫ
11
другие режимы работы. Для каждого типа микроконт-
роллера количество и назначение этих битов отличает-
ся, поэтому более подробно мы их разберем при рас-
смотрении конкретных микроконтроллеров. Сразу необ-
ходимо сказать об одной неприятной особенности мик-
роконтроллеров АТМЕЬ - настройка битов-предохрани-
телей, касающаяся режима работы задающего генера-
тора, действует в них не только на режим работы, но и
на режим программирования. Если в микроконтролле-
ре КР1878ВЕ1 при переходе в режим программирова-
ния в качестве задающего генератора в любом случае
используется встроенный тактовый генератор, то в мик-
роконтроллерах АТМЕ!_ в качестве него будет использо- «
ван тот источник, который указан в битах-предохрани-
телях! Если вы с умыслом или по ошибке запрограмми-
руете биты-предохранители микроконтроллера на источ-
ник, отличный от встроенного тактового генератора, пе-
репрограммировать его после этого без внешнего ис-
точника импульсов будет невозможно. В силу этой осо-
бенности схемотехника программаторов для микрокон-
троллеров АТМЕ1. получается более сложной, нежели
для микроконтроллеров КР1878ВЕ1, и в силу этой же
особенности при пользовании программаторам^, опи-
санными выше, не следует отказываться от “услуг” встро-
енного тактового генератора до тех пор, пока ваша про-
грамма не будет полностью отлажена.
Калибровочные байты микроконтроллеров АТМЕ1.
предназначены для точной настройки частоты задаю-
щего генератора. Как и микроконтроллер КР1878ВЕ1,
микроконтроллеры АТМЕЬ могут работать без кварце-
вого резонатора, от внутреннего генератора тактовых
импульсов. Но если для микроконтроллера КР1878ВЕ1
частота внутреннего генератора, как сказано в доку-
ментации, “около 50 кГц”, то для микроконтроллеров
АТМЕ1. значение этой частоты указано с гораздо боль-
шей точностью (это бывает важно при формировании
временных интервалов и измерении частоты внешних
импульсов). Для обеспечения столь высокой точности
можно было бы подгонять частоту внутреннего генера-
тора каждого экземпляра микроконтроллера с помо-
щью специальных технологий (например, с примене-
нием лазера), но такое решение привело бы к суще-
ственному подорожанию микроконтроллера - вспомни-
те, как высоки цены на микросхемы ЦАП, в которых
таким способом подгоняется прецизионная матрица
резисторов! Поэтому разработчики микроконтроллеров
АТМЕЬ пошли другим путем. В состав задающего ге-
нератора микроконтроллера входит т.н. корректирую-
щий регистр. При занесении в него того или иного зна-
чения, часть импульсов задающего генератора будет
при работе микроконтроллера пропускаться - это рав-
носильно снижению его частоты (подобным образом
работает, например, управляемый делитель частоты
К155ИЕ8). При проверке микроконтроллера на заводе
производится измерение фактической частоты генера-
тора, и по нему вычисляется значение, которое необ-
ходимо занести в.корректирующий регистр, чтобы га-
рантировать заданную частоту работы генератора. Это
вычисленное значение и называется калибровочным
байтом (одним или несколькими, если встроенный так-
товый генератор может работать на нескольких часто-
тах). Значение калибровочного байта (байтов) индиви-
дуально для каждого экземпляра микроконтроллера (по
крайне мере, в теории). Если для данной конструкции
требуется высокая точность частоты задающего гене-
ратора (например, при измерении временных интерва-
лов), необходимо при программировании считать зна-
чение калибровочногб байта из микроконтроллера и
занести его в память программ, чтобы затем программ-
ным путем подстроить частоты генератора. В подавля-
ющем большинстве применений столь высокой точно-
сти частоты не требуется, поэтому в 95% случаев про
калибровочный байт можно спокойно забыть.
В отличие от КР1878ВЕ1, для программирования па-
мяти микроконтроллеров ATMEL существует весьма
развитая внутренняя система команд. Длина каждой ко-
манды программирования микроконтроллера - 32 бита,
состав команд описан в документации к соответствую-
щим микроконтроллерам. Обычно никому, кроме раз-
работчиков программаторов, с этими командами стал-
киваться не приходится. Если же кому-нибудь из, чита-
телей все-таки доведется с этим столкнуться, хочется
предупредить - программирование микроконтроллеров
ATTiny необходимо начинать с команды Chip Erase, при-
чем все якобы незначащие биты в этой команде долж-
ны быть установлены в Дог. 1 - тут документация ATMEL,
мягко говоря, лукавит. Связано это с тем, что в микро-
контроллерах ATTiny команды программирования мо-
гут сбрасывать биты в программируемых байтах с лог.1
на лог.О, а вот обратную операцию “умеет” делать толь-
ко Chip Erase.
Программирование микроконтроллеров ATMEL мо-
жет вестись не только на языке Ассемблера, но и на язы-
ках высокого уровня, наиболее популярным из которых,
наверное, можно назвать язык С. Существует некая гра-
ница возможностей аппаратуры, при превышении кото-
рой лучше пользоваться языком высокого уровня. По
личному мнению автора, эта граница проходит в районе
4..8 кбайт памяти программ: если в микроконтроллере
память программ больше указанного размера, следует
пользоваться, языком С (или Чем-либо другим), если
меньше - Ассемблером. В качестве средства разработ-
ки для микроконтроллеров ATTiny удобно пользоваться
системой AVR Studio (ее можно скачать с сайта [2], дос-
таточной будет версия 3.56), для микроконтроллеров
ATMegal28 автор предпочитает пользоваться AVR GCC
компилятором (набрать в любом поисковом сервере
“WinAVR download”) - GCC строит весьма оптимальный
код и почти лишен ошибок. Для дальнейшей работы чи-
тателю рекомендуется найти оба этих программных про-
дукта и установить их на компьютер.
Литература
,
1. А. Черномырдин. Простейший программатор для
микроконтроллеров ATTiny. - Радиолюбитель, №5, с. 39.
2. www,atmel.com
Радиолюбитель - 0 4 /2 0 0 7
У
43
предыдущая страница 43 Радиолюбитель 2007-04 читать онлайн следующая страница 45 Радиолюбитель 2007-04 читать онлайн Домой Выключить/включить текст