PIC Урок 26. Модуль компараторов. Часть 1

 

 

 

В данном занятии мы познакомимся с ещё одним очень интересным модулем — модулем компараторов.

Модуль компараторов — это периферия контроллера PIC16, в которой находится два аналоговых компаратора, выводы которых мультиплицированы с выводами ввода-вывода. Данные компараторы в зависимости от ряда настроек могут быть подключены по-разному, с этим мы обязательно также познакомимся.

Что такое аналоговый компаратор, я думаю, ни для кого ни секрет. О них написано очень много всего интересного, так как они используются в области электроники повсюду. Применяются они в различных электронных устройствах, ЦАП и АЦП, устройствах сигнализации, допускового контроля, при выявлении изменения электрического сигнала и его перехода через определённый важный порог и в прочих других случаях.

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

Но тем не менее принцип работы компаратора аналоговых сигналов мы знать обязаны, поэтому кратко я всё же о нём расскажу.

Аналоговый компаратор (или компаратор аналоговых сигналов) основан на значении латинского слова compareсравнивать. Это электронная схема, которая оценивает величину напряжения на двух своих входах, один из которых неинвертирующий+«), а второй инвертирующий«). И, если сигнал на неинвертирующем входе больше, чем сигнал на входе инвертирующем, то на выходе компаратор выдаёт сигнал высокого уровня. И, наоборот, если сигнал больше на инвертирующем входе, чем на неинвертирующем, то на выходе будет ноль (низкий уровень).

Как правило одно из этих напряжений называют опорным (или пороговым) напряжением.

В схемах аналоговые компараторы, как правило, обозначают вот таким образом

 

 

Теперь нам надо будет познакомиться с тем, как именно работают компараторы в нашем контроллере, и, как водится, ощутить это обязательно на практике.

Как было указано выше, модуль компараторов микроконтроллера PIC16 содержит два компаратора. Источник опорного напряжения может быть подключен к любому входу компараторов, а также может использоваться и внутренний, в зависимости от настроек тех или иных битов. Поэтому структурная схема подключения компараторов тоже будет в зависимости от состояния данных битов различна.

Поэтому сразу перейдём к управляющему регистру модуля компараторов

Рассмотрим значения битов данного регистра:

C2OUT (Comparator 2 Output bit): Выход компаратора 2

Если значение бита C2INV=0

1 — C2 VIN+ > C2 VIN

0 — C2 VIN+ < C2 VIN

Если C2INV = 1:

1 — C2 VIN+ < C2 VIN

0 — C2 VIN+ > C2 VIN

Бит доступен только для чтения.

C1OUT (Comparator 1 Output bit): Выход компаратора 1

Если значение бита C1INV=0

1 — C1 VIN+ > C1 VIN

0 — C1 VIN+ < C1 VIN

Если C1INV = 1:

1 — C1 VIN+ < C1 VIN

0 — C1 VIN+ > C1 VIN

Бит доступен только для чтения.

C2INV (Comparator 2 Output Inversion bit): Инверсия выхода компаратора 2

1 — C2 выход инверсный

0 — C2 выход неинверсный

C1INV (Comparator 1 Output Inversion bit): Инверсия выхода компаратора 1

1 — C1 выход инверсный

0 — C1 выход неинверсный

CIS (Comparator Input Switch bit): Подключение входов компараторов

Если CM2:CM0 = 110:

1 — C1 VIN— подключен к RA3/AN3

C2 VIN— подключен к RA2/AN2

0 — C1 VIN— подключен к RA0/AN0

C2 VIN— подключен к RA1/AN1

CM2:CM0 (Comparator Mode bits): режим работы компараторов.

В случае комбинации данных битов структурная схема подключения компараторов будет меняться.

CM2:CM0 = 000 — режим сброса компараторов (после сброса POR)

CM2:CM0 = 111 — компараторы отключены (POR по умолчанию)

CM2:CM0 = 010 — два независимых компаратора

CM2:CM0 = 011 — два независимых компаратора с внешними выходами

CM2:CM0 = 100 — два компаратора с общим опорным (неинверсным) входом

CM2:CM0 = 101 — два компаратора с общим опорным (неинверсным) входом с внешними выходами

CM2:CM0 = 001 — один компаратор с внешним выходом

CM2:CM0 = 110 — два компаратора общим опорным (неинверсным) входом и мультиплицированными инверсными входами

Вот такие вот режимы работы.

 

 

Состояние каждого выхода компаратора мы можем оценить с помощью состояния двух старших битов регистра CMCON.

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

Какой именно компаратор вызвал прерывание и в какую сторону перейдён порог напряжения, мы также отслеживаем в обработчике прерывания по состоянию битов C1OUT и C2OUT.

Для настройки работы модуля компараторов с прерываниями нам необходимо сначала сбросить флаг CMIF, затем включить прерывания с помощью установки бита CMIE регистра PIE2. Также необходимо включить глобальные прерывания с помощью установки битов PEIE и GIE.

Так как мы будем использовать для простоты схемы именно внутреннее опорное напряжение, то стоит познакомиться также с его настройкой, так как для этого в контроллерах PIC16 существует отдельный модуль — источник опорного напряжения.

Источник опорного напряжения имеет следующую структуру

Данный модуль представляет собой обычный резистивный делитель напряжения, величина одного из резисторов которого регулируется с помощью битов управляющего регистра. Данная регулировка содержит 16 ступеней. Также можно использовать смещение напряжения, которое включается отдельным битом. Это обеспечивает более гибкую регулировку напряжения модуля опорного напряжения.

Так как данный модуль, как правило, используется именно с компараторами, которые имеют очень высокое входное сопротивление на своих входах, то схема модуля опорного напряжения имеет такой упрощённый вид, ибо высокая нагрузочная способность модуля не требуется.

Тем не менее, существует также и внешний выход модуля для использования в каких-то других целях. Данный выход включается также определённым битом управляющего регистра.

Познакомимся с управляющим регистром модуля источника опорного напряжения поближе

Рассмотрим отдельные биты данного регистра:

CVREN (Comparator Voltage Reference Enable bit): бит включения источника опорного напряжения

1 — Модуль включен

0 — Модуль выключен

CVROE (Comparator VREF Output Enable bit): включение внешнего выхода источника напряжения

1 — Выход VREF подключен к выводу микроконтроллера

0 — Выход VREF отключен от вывода микроконтроллера

CVRR (Comparator VREF Range Selection bit): диапазон напряжений источника

1 — от 0 до 0.75*CVRSRC, с CVRSRC/24 размером шага

0 — от 0.25*CVRSRC до 0.75*CVRSRC, с CVRSRC/32 размером шага

CVR3:CVR0 (Comparator VREF Value Selection bits): выбор множителя выходного напряжения.

Диапазон множителя — от 0 до 15.

Если CVRR = 1:

CVREF = (VR<3:0>/ 24)*CVRSRC

Если CVRR = 0:

CVREF = 1/4*(CVRSRC) + (VR3:VR0/ 32)*CVRSRC

Вот такой вот нехитрый расчёт, которым мы и будем пользоваться, устанавливая порог напряжения срабатывания компаратора.

 

В следующей части занятия мы мы напишем код и проверим его работу на практике.

 

Предыдущий урок Программирование МК PIC Следующая часть

 

 

Купить программатор (неоригинальный) можно здесь: PICKit3

Купить программатор (оригинальный) можно здесь: PICKit3 original

Отладочную плату PIC Open18F4520-16F877A можно приобрести здесь: PIC Open18F4520-16F877A

 

 

Смотреть ВИДЕОУРОК (нажмите на картинку)

 

PIC Модуль компараторов

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*