О тактовой частоте микроконтроллеров

О тактовой частоте микроконтроллеров

Одним из первых вопросов, возникших у меня при знакомстве с микроконтроллерами семейства AVR, был вопрос о тактовой частоте, на которой они работают. В прайслистах — а первым делом, конечно же, я попробовал поискать в интернет-магазинах радиодеталей стоимость микроконтроллеров — стояли такие характеристики, как «0 — 16 MHz».

Такая неоднозначность, указание диапазона вместо конкретного значения частоты вынудили почитать о том, что и как происходит с тактовой частотой микроконтроллеров.

Оказалось, производителем в микроконтроллер встроен стандартный осциллятор. В ATmega8 стандартный внутренний осциллятор на 1 МГц. Но этой частоты порой недостаточно для некоторых областей применения микроконтроллеров (например, для UART). По этой причине разработчики применяют внешние осцилляторы, задающие такт микроконтроллера. В пособии по программированию микроконтроллеров AVR используется осциллятор на 4 МГц.

Чтобы использовать внешний генератор такта, нужно настроить т.н. фьюзы или fuse-биты (fuse-bits). Это можно легко сделать с помощью программы yaap. После запуска программы, когда Ваш ATmega8 правильно распознался, выбираете в меню пункт «Lock Bits & Fuses» и нажимаете на «Read Fuses». В результате должно появиться такое окошко:

Read fuses

Чтение выставленных фьюзов с помощью yaap

Теперь меняете значения фьюзов в соответствии с изображением ниже и нажимаете «Write Fuses»:

Write fuse-bits

Новые значения фьюзов

Внимание! Будьте осторожны: при неправильно выставленных значениях фьюзов может случиться так, что микроконтроллер уже невозможно будет запрограммировать с помощью ISP-программатора. После стирания памяти микроконтроллера фьюзы остаются неизменными, поэтому их стоит изменять очень внимательно и осторожно. Подробнее про фьюзы можно прочитать на русском и на немецком языках.