В данной статье описан простой частотомер на микроконтроллере Atmega16, который может измерять частоту с точностью до 1% , максимальное значение измеряемой частоты 40 МГц. Данного предела измерения вполне достаточно для настройки и отладки некоторых самодельных устройств.
Основой частотомера, так сказать его сердцем является микроконтроллер Atmega16, тактирование осуществляется с частотой 8 МГц от внутреннего RC генератора. О тактировании микроконтроллера было сказано раннее. Перед подачей измеряемой частоты в микроконтроллер она проходит через делитель на 16, собраного на 4-х битном счетчике 74HC191. Как видно из схемы задействован только Q3 вывод счетчика, в этом случае входная частота будет делится на 16.
Измерение осуществляется при помощи "щупа" W1 который подключается к входу микроконтроллер PB0 и через счетчик-делитель на вход PB1.
Вывод измеренной микроконтроллером частоты осуществляется на дисплей, который состоит из 4-х семисегментных индикатора, с общим выводом - анодом.
Выводы с E1 по E4 включают разряды, вывод E1 включает младший разряд (крайний справа).
Согласно описанию микроконтроллера Atmega16 ток на выходе микроконтроллера составляет 40 мА, по этой причине нет необходимости использовать ключи на выходе микроконтроллера, а можно напрямую подключить их индикатору.
На схеме указан внутрисхемный коннектор J1. Который позволяет загружать ПО (прошивку или программу) в микроконтроллер и тем самым корректирую работу прибора и редактируя некоотрорые переменные отвечающие за яркость дисплея, мерцания дисплея и д.р.
Как известно частота - это количество колебаний совершаемых за единицу времени. Максимальную частоту которую может измерить Atmega16 не модет быть больше тактовой поделенной на 2.5. У нас микроконтроллер с тактовой частотой в 8 МГц, если мы напрямую будем подключать то мы сможем измерять частоту до 3.2 МГц. Для того чтобы увеличить максимальное значение измеряемой частоты неоюходимо на входе установить счетчик который выполняет функцию делителя, при помощи которого можем измерить частоту до 40 МГц.
Алгоритм микроконтроллера, измеряет исходную частоту которая напрямую поступае на вход (Fo) и частоту которая идет с делителя (Fd).
в программе есть константа и именем factor, они инициализируется в начале программы и ее присваивается значение 31.78581, она калибруется путем измерения эталонной частоты которая вычисляется по формуле:
factor=Fcpu/(1024*256)=8e6(1024*256)=30.51757
По умолчанию микроконтроллер Atmega16 настроен на работу от внутреннего генератора с частотой 1 МГц. Для нормальной работы программы нам необходимо установить частоту в 8 МГц, делается ето при помоши последовательного программатора путем устанвоки Fuse битов CKSEL3..0 в значение 0100. Выставив биты таким образом мы тем самым изменяем частоту тактирования микроконтроллера на 8 МГц.