
Views: 3177
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 на выходе будет постоянно высокий уровень!
Это может быть интересно
ESP32-первое знакомство
Views: 6991 Музыкальная тема к статье, слушаем: Настало время познакомиться c ESP32 и для меня, для этого я приобрел в ГАММЕ отладочную плату с модулем ESP-WROOM-32 (ESP32-DevKitC). Первая задача, как …Проект с использованием MCC часть 11
Views: 942 Можно несколько облагородить программу вынести наши процедуры обработки нажатия кнопок в отдельные функции. Но вы должны понимать, что это хоть и не значительно, но будет тормозить общую скорость …LATINO – открытый проект ch-светомузыки
Views: 1702 Проект построенный на некоторых принципах ch-светомузыка. Проект ознакомительный предназначен, для самостоятельного построения простого и эффективного светосинтезатора. Вывод осуществляется на ВОУ собранной на драйверах HL1606. Для этого была …NeoPixel LED and PIC24
Views: 699 Популярность однопроводной шины для управления светодиода типа WS2812 не ослабевает, а новые типы светодиодов в корпусах 3,5*3,5мм, 2,0*2,0мм становяться все больше привлекательными. Построение дисплеев для анимации требуют все …Стабилизатор тока на SN3350, часть 2
Views: 1259 Если вам необходимо разработать устройство с применением мощных светодиодов, то никак не обойтись без применения стабилизатора тока. На настоящий момент стабилизаторы тока являются самым эффективным механизмом, для питания светодиода в течение всего …Часы-кухонный таймер
Views: 2846 Каждая кухня должна иметь кухонный таймер, который позволяет напоминать хозяйке когда проходить определенный промежуток времени. Например, печем пирог, варим яйца… , чтобы не смотреть постоянно на часы, установим таймер и …LCD индикаторы на драйвере ML1001
Views: 1968 ML1001 – статический LCD GOG (чип в стекле) драйвер для 40-сегментного LCD в позолоченном противоударном исполнении. На них можно каскадно строить цельные из 80 или 120 сегментов LCD индикаторы. …Проект с использованием MCC часть 15
Views: 1666 EUSART – Универсальный асинхронный приёмопередатчик (УАПП, англ. Universal Asynchronous Receiver-Transmitter, UART) — узел вычислительных устройств, предназначенный для организации связи с другими цифровыми устройствами. … читать на вики. Внесем изменения в нашу схему, …Сенсорный выключатель света
Views: 14011 Хотя в настоящий момент актуальны системы управления освещением с передачей данных по электросети, но я думаю, что проекты такого рода тоже имеют право на жизнь. Анонс Три вида …Гаджеты для домашней автоматики – Емкостной сенсор
Views: 1783 Управление светодиодным освещением – Сенсор емкостной. Данный гаджет предназначен для управления освещением где необходимо включением освещение сенсорным прикосновением. Датчик позволяет управлять светодиодной нагрузкой в виде модулей или светодиодных лент …