Views: 3089
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 на выходе будет постоянно высокий уровень!
Это может быть интересно
- Оптосимистор и его применениеViews: 19523 Эрве Кадино “Цветомузыкальные установки” Ответ на вопрос – управление мощным тиристором или симистором, от терморегулятора. Статья в pdf[wpdm_file id=129 template=”link-template-calltoaction3.php”] Оптосимистор принадлежат к классу оптронов и обеспечивают очень хорошую …
- Проект с использованием MCC часть 12-2Views: 1040 Настало время для изучения шины I2C. Изучать будем на примере работы с индикатором RET012864E. Что изменили со старой схемы: В прошлой теме я затупил и не добавил подтягивающие резисторы …
- Модуль CAN в микроконтроллерах PIC18Views: 5732 Введение CAN последовательный интерфейс связи, который эффективно поддерживает распределенное управление в реальном масштабе времени с высокой помехозащищенностью. Протокол связи полностью определен Robert Bosch GmbH, в спецификации требований …
- Проект с использованием MCC часть 06Views: 1273 Изменим схему следующим образом добавим две тактовые кнопки BT1 и BT2. Теперь переключимся на конфигурацию выводов, для этого сделаем двойной клик в окне Ресурсы проекта на Pin Module. …
- My libraries for Altium DesignerViews: 3907 Attention, this version of the database is outdated today. See updates in articles https://catcatcat.d-lan.dp.ua/altium-designer-my-setup-system-and-project-structure and https://catcatcat.d-lan.dp.ua/altium-designer-my-setup-system-and-project-structure-v23-2/ My libraries for Altium designer (Updated V – 29/05/2022) (c) 2021 …
- USB K-L-line адаптерViews: 5977 USB K-L-line адаптер предназначен для связи персонального компьютера с диагностической шиной автомобиля – интерфейс ISO-9141. Этот проект предназначен для сборки недорого устройства с использованием специально для этой цели …
- ch-4060 – регулятор температуры и влажности на датчике DHT11/DHT22/AM2302Views: 2430 На плате ch-4000 очень легко собрать устройство регулятора температуры и влажности. Датчик DHT11 самый недорогой вариант для создания такого устройства, правда точность его не велика, но для бытовых устройств …
- Проект с использованием MCC часть 14Views: 828 С выводом данных на дисплей мы справились (но могу сразу сказать библиотеку графики к этой статьи пришлось доработать, поэтому в этом проекте она обновлена). У нас на текущем …
- PIC18F25K42 – v. A001 – выявленные баги.Views: 606 Модуль I2C Не работает при использовании в стандартной конфигурации MCC. Требует особой нестандартной конфигурации и управления для нормальной работы. Обойти Обход проблемы возможен библиотека см статью. Модуль ADC2 На …
- PIC18 – модуль DMAViews: 1172 Введение Модуль прямого доступа к памяти (DMA) предназначен для обслуживания передачи данных непосредственно между различными областями памяти без вмешательства процессора. Исключив при этом необходимость в интенсивной обработки …