Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Микроконтроллеры PIC фирмы Microchip для начинающих выпуск №27


РАССЫЛКА Микроконтроллеры PIC фирмы Microchip для начинающих
Ведущий: Алексей (pont_a@mail.ru)


Доброго времени суток, дамы и господа!!

Сегодня начинаем рассматривать модуль захвата/сравнения CCP микроконтроллера PIC18F452! Этот выпуск будет посвящен общим вопросам и описанию регистров.

Открываем datasheet и находим раздел «14.0 CAPTURE/COMPARE/PWM (CCP) MODULES». В этом разделе описан наш периферийный модуль. Как мы видим, что данный микроконтроллер имеет 2 модуля захвата/сравнения: CCP1 и CCP2. Данные модули работают только в паре с одним из таймеров. Сами по себе они функционировать не могут! Настройка модулей на таймеры осуществляется двумя битами регистра T3CON: T3CCP1 и T3CCP0.

Биты регистра T3CON

Описание

T3CCP1- T3CCP0

00

Таймер 1 используется для обоих модулей CCP.

01

Таймер 1 - для CCP1.  Таймер 3 - для CCP2.

10

Таймер 3 используется для обоих модулей CCP.

11

 Данная таблица действительна для модулей CCP1-2, если они работают в режиме захвата или сравнения. В режиме широтноимпульсной модуляции (ШИМ/ PWM) для любого из модулей CCP используется только таймер 2.      
Опишу, вкратце, каждый из режимов:

  • Режим захвата – в данном режиме текущее значение таймера, на который настроен модуль CCP, сохраняется в регистры данных модуля CCP. Значение сохраняется в регистры, при каком либо внешнем воздействии. Например, нарастающий импульс на дискретный вход  модуля захвата/сравнения.  Такой режим, например, используется для подсчета периода или частоты импульсов.
  • Режим сравнения – в данном режиме в регистры данных CCP записывается программой значение, достижение таймером которого будет приводить какое либо действия, например изменение состояния дискретного выхода модуля CCP.
  • Режим ШИМ – в данном режиме модуль CCP управляет длительностью единичного импульса и периодом в сигнале, который генерируется на выход.

Все эти режимы мы подробно рассмотрим!

А сейчас разберем табличку 14-2, в которой приводятся взаимодействия режимов работы двух модулей CCP.

Режим CCP1

Режим CCP2

Взаимодействие

захват

захват

Можно использовать в таком сочетании и таймер 1, и таймер 3. Самое важное, чтобы для каждого модуля в таком режиме были назначены разные таймера. 

захват

сравнение

Режим сравнения должен быть сконфигурирован на установку триггера специального события, который будет очищать таймер 1 или таймер 3.   

сравнение

сравнение

Режим(ы) сравнения должен быть сконфигурирован(ы) на установку триггера специального события, который будет очищать таймер 1 или таймер 3.

ШИМ

ШИМ

Оба ШИМ’а должны иметь одинаковую частоту и фазу.

ШИМ

захват

не взаимодействуют

ШИМ

сравнение

не взаимодействуют

А теперь рассмотрим назначение регистров модулей захвата/сравнения. У обоих модулей имеется 2 регистра данных: младший – CCPRxL  и старший – CCPRxH, где x – 1 или 2. Оба регистра используются в каждом из режимов по-разному.
У каждого модуля захвата/сравнения, также, есть регистр управления – CCPxCON. Описание битов этого регистра приведено в таблице:

№ бита

Название

Описание

7

-

Не используются

6

-

5

DCxB1

Данные биты используются только в режиме ШИМ, и являются младшими битами  b1 и b0  10-ти разрядной скважности ШИМ. Старшие биты скважности b9 – b2  находятся в регистре CCPRxL. (что такое скважность, разберем в выпуске рассылки, где будем рассматривать режим ШИМ).

4

DCxB0

3

CCPxM3-CCPxM0

0000 – модуль CCPx отключен;
0001 – данная комбинация не используется;
0010 – режим сравнения. Инвертируется состояние выхода при возникновении условия сравнения;
0011 – данная комбинация не используется;
0100 – режим захвата. Захват по приходу каждого спадающего фронта;
0101 – режим захвата. Захват по приходу каждого нарастающего фронта;
0110 – режим захвата. Захват по приходу каждого 4-го нарастающего фронта;
0111 – режим захвата. Захват по приходу каждого 16-го нарастающего фронта;
1000 – режим сравнения. При возникновении условия сравнения на выходе формируется нарастающий фронт;
1001 – режим сравнения. При возникновении условия сравнения на выходе формируется спадающий фронт;
1010 – режим сравнения. Генерация прерывания, при этом, выход CCPx не используется;
1011 – режим сравнения. Установка триггера специального события;
11xx – режим ШИМ.

 2

1

0

В следующем выпуске продолжим рассматривать модуль захвата/сравнения микроконтроллера PIC18F452.  Будем рассматривать режим захвата!

Полный архив рассылки Вы можете прочитать на нашем сайте!  При любом опубликовании текстов данной рассылки ссылка на сайт http://www.2aplusa.ru обязательна!

Желаю Вам удачи! До скорой встречи!


С уважением, Алексей pont_a@mail.ru
Cайт разработчиков 2AplusA http://2aplusa.ru


В избранное