CCP – модуль в режиме Compare на примере PIC18

Visits: 3055


CCP – модуль можно использовать в трех режимах:

Capture – позволяет захватывать входной сигнал и определять его параметры (длительность или частоту). Дополнительно управлять внутренними модулями.

Compare –  позволяет формировать импульсы любой полярности, формирование частоты. Так же управлять внутреними модулями.

PWM – формирование сигналом ШИМ.

В режимах Compare и PWM  модуль работает совместно со встроенными таймерами.


Тут речь пойдет о использовании CCP модуля в режиме Compare для формировании частоты.

Как выполнить настройку модуля в этом режиме.

В проекте запускаем MCC, в окне Ресурсы устройства

Выбираем в разделе CCP любой модуль (CCP1….CPPn) и делаем двойной клик. MCC добавит модуль в раздел Ресурсы проекта.

Сделаем клик для окна открытия быстрой настройки модуля, в нем укажем с каким таймером ему предстоит работать

Я выбрал из доступных вариантов таймер 5. Далее необходимо выбрать режим Pulse output, clear TMRx этот режим позволяет формировать на выходе модуля непрерывный поток заданной частоты.

После этого добавим выбранный таймер 5. Перейдем в окно Ресурсы устройства и откроем раздел таймеры и сделаем двойной клик на нашем таймере, он исчезнет в разделе Ресурсы устройства

 и появиться в разделе Ресурсы проекта. Вызовем свойства таймера и выполним его настройку, в принципе то, навастривать нечего. Главное, что бы тактовая была настроена FOSC/4, хотя можно выбрать и любое другой источник. Настройку  предделителя можно оставить 1:1, от него будет зависеть шаг генерируемой частоты при изменении настроек регистра CCPR.

Как это работает:

Таймер тактируется от тактовой частоты в нашем случает от FOSC/4, при совпадении значения записного в регистр CCPR со значением в таймере TMR будет формироваться импульс для выходной логики модуля который управляет RS-триггером. После это выполняется сброс таймера и его отсчет будет начат заново. По достижении сравнения выходная логика переключит триггер в противоположное состояние. Таким образом при задании значения в регистр CCPR мы формируем период который будет задавать выходную частоту на выходе модуля.

Подключит выход модуля к заданному нами порту микроконтроллера, например, мы его желаем подключить RB2, откроем окно Менеджера вводов и зададим подключение модуля к порту RB2.

Дополнительно в разделе Ресурсы проекта выберем ресурс Модуль выводов

и проверим конфигурацию нашего вывода, он должен быть настроен на выход и все остальные опции должны быть отключены

Теперь самое главное как рассчитать частоту которую мы можем получить на выход нашего модуля.

Наша тактовая частота FOSC = 64 000 000 Гц (в моем случае), сразу делиться на 4 (так выбрано в конфигуратора), т.е на входе таймера мы имеем 8 000 000 Гц. Далее идет предделитель у меня настроен на 1 , т.е после него все те же 8 МГц, таймер с связке с модулем может иметь период от 1 до 65536. Т.е. если период 1, то на выходе формируются управляющие импульсы для выходной логики с частотой 8Мгц, после каждого импульса состояние RS-триггера меняется на противоположное, это еще деление на 2 и мы будем иметь выходную частоту 4 Мгц.

Расчет выходной частоты для нашей настройки буде иметь вид

Foun = ((((FOSC/4) /Prescaler)/CCPR)/2);

Минимальная частота будет составлять если CCPR = 0xFFFF  ~  122 Гц.

Отсюда модно получить значение которое Нам необходимо записать в модуль CCPR  для получения заданной частоты.

CCPR  = ((((FOSC/4 )/Prescaler)/Foun)/2);

Если значение  CCPR  установлено в 0 на выходе будет постоянно высокий уровень! 



Это может быть интересно


  • VU Meter Tower ARTVU Meter Tower ART
    Visits: 1576 Стерео индикатор уровня аудио сигнала. Компактность и удобство проектирования устройств на светодиодах WS2812B, а также легкость реализации алгоритма родило идею созданию своей конструкции. В этом проекте я предоставлю …
  • ch-светомузыка и AK4113ch-светомузыка и AK4113
    Visits: 1250 Пришло время вернуться к светомузыке. На сегодня использование аналогового входа стало непрактичным, на сегодня необходимо использовать S/PDIF и Toslink. С этим надо было как то разобрать, что это …
  • Самый простой индикатор уровня звукового сигналаСамый простой индикатор уровня звукового сигнала
    Visits: 6189 Демонстрационный проект создания индикаторов уровня с использованием WS2812B. Изучив этот проект вы сможете  самостоятельно изготавливать и конструировать свои индикаторы уровня звукового сигнала. Дополнительно читайте статью Бегущие огни на …
  • Сумеречное релеСумеречное реле
    Visits: 1413 Реле управления освещением, датчик день-ночь – одним словом фотореле для управления освещением или формирования сигнала для системы умный дом о понижении или повышении освещенности относительно заданного уровня. Реле выполнено по классической схеме, конденсаторный блок питания, от сети переменного тока …
  • Гаджеты для домашней автоматики – Емкостной сенсорГаджеты для домашней автоматики – Емкостной сенсор
    Visits: 1556 Управление светодиодным освещением – Сенсор емкостной. Данный гаджет предназначен для управления освещением где необходимо включением освещение сенсорным прикосновением. Датчик позволяет управлять светодиодной нагрузкой в виде модулей или светодиодных лент …
  • Toyota Auto Fader – Модуль включения усилителяToyota Auto Fader – Модуль включения усилителя
    Visits: 1899 Toyota Auto Fader – Модуль включения усилителя. Часто автолюбители прибегают к замене штатного головного устройства на универсальное мультимедийное, в котором значительно расширены функциональные возможности. Если возникает желание оставить …
  • Audio-bluetooth modules F-6188 (BK8000L)Audio-bluetooth modules F-6188 (BK8000L)
    Visits: 2240Следующий модуль на чипе BK8000L. Заводское обозначение F-6188 также основным производителем не выпускается и отдан на тиражирование. с нижней стороны имеет маркировку В этом варианте мне попалась вроде полноценная …
  • MPLAB® Code ConfiguratorMPLAB® Code Configurator
    Visits: 1768 MPLAB ® Code конфигуратор (MCC) является свободно распространяемым плагином, это графическая среда программирования, которая генерирует бесшовный, легкий для понимания кода на Cи, чтобы вставить его в свой проект. …
  • OLED RET012864E/REX012864JOLED RET012864E/REX012864J
    Visits: 1431 RET012864E/REX012864J ОЛЕД индикатор производитель Raystar-Optronics приобретался в http://www.microchip.ua/ к сожалению никакой информации на сайте поставщика нет. Поэтому решил работу с этой версией индикатора на драйвере SSD1305 предоставить на своем сайте. Так как …
  • NS108-5050-16bit от NewstarNS108-5050-16bit от Newstar
    Visits: 561 Кто уже использует в своих проектах адресуемые светодиоды хорошо знакомы с такими как WS2812 и им подобные. Эти светодиоды для управления используют однопроводную шину. Из-за этого пропускная способность …



 

Поделись этим!

Catcatcat

catcatcat

Development of embedded systems based on Microchip microcontrollers.

Метки

Продолжайте читать

НазадДалее