РадиоКот :: Делитель частоты на PIC
Например TDA7294

РадиоКот >Конкурсы >Поздравь Кота по-человечески 2017! >

Теги статьи: Добавить тег

Делитель частоты на PIC

Автор: mig958
Опубликовано 12.09.2017
Создано при помощи КотоРед.
Участник Конкурса "Поздравь Кота по-человечески 2017!"

  

   Очень часто бывает необходим делитель частоты. Собирать его на счетчиках? А если разделить нужно например на 1000000? или на что-то не стандартное. 6 корпусов десятичных счетчиков - это уже целое устройство. Если частота не превышает 20 - 25 МГц и разделить нужно не менее чем на 12 (к сожалению кратно четырем из-за формирователя команд) - отличный выход - применение микропроцессора. У Микрочип есть недорогие малогабаритные микропроцессоры, например 6 выводные  PIC10F222T, или 8 выводные PIC12F629 и так далее. Разнообразие их очень велико. Они обладают очень низким энергопотреблением, большой нагрузочной способностью и они полностью статические. То есть их можно тактировать очень низкой частотой. Недавно мне потребовался делитель на 8000. Я долго ломал голову, уж очень не хотелось паять кучу счетчиков. И тут меня осенило ... "Эврика" воскликнул я и попробовал симулировать это в Proteus. Хочу поделиться полученным результатом. Вот программа на ассемблере для PIC12F629 деление на 2000. Кстати бесплатно получается еще на 8000 и на 16000.

    

     В чем суть программы: микропроцессор тактируется внешним сигналом, выбираем нужный порт на выход и в цикле производим инкремент порта и нужную задержка и опять в цикл. Таким образом на выводах порта у нас получается несколько частот кратных двум. Сложность только в том как найти задержку. В этом нам поможет программа: PIC_Delay.

 

    В ней уже учитывается деление на 4 формирователя тактов команды. Например рассчитаем делитель на 2000. Для удобства примем входную частоту 1МГц. Тогда нам нужна задержка на 1000мкс на половину периода. Учтем что у нас есть две команды не входящие в задержку: incf GPIO, GOTO Cikl0. Причем первая занимает один машинный такт а вторая два, с учетом делителя формирователя тактов: нужно вычесть из задержки 12мкс. Результат программы вставляем между инкрементом и циклом.

В Proteus собираем схему:

И любуемся:

   Наличие же на борту схемы генератора, позволяет сделать кварцевый генератор очень маленького размера. Например на частоту 1МГц и ниже найти приличный малогабаритный кварцевый резонатор или генератор очень трудно. Используя входы можно легко сделать управляемый делитель. А так как на борту у многих присутствуют компараторы, АЦП, таймеры, то вариантов применения становится ну очень много...

 

 

 


Файлы:
Исходник, прошивка, файл Proteus
Программа PIC_Delay


Все вопросы в Форум.




Как вам эта статья?

Заработало ли это устройство у вас?

15 15 26