Компаратор (COMP) сравнивает одно входное напряжение (VIN+) с другим входным напряжением (VIN-). VIN+ может быть получено с любого аналогового входа (выводы AIN0 .. AIN7). VIN- может получать уровень из нескольких источников, в зависимости от рабочего режима компаратора.
Примечание: новые термины и сокращения см. в Словарике [2].
Основные функции и возможности компаратора следующие.
• Диапазон входного напряжения от 0V до VDD.
• Не дифференциальный режим (Single-ended mode), гибко настраиваемый гистерезис на основе 64-уровневого делителя.
• Входы опорного напряжения (VREF): - VDD. - Внешнее напряжение, поданное на один из выводов AIN0 .. AIN7 (с уровнем от 0V до VDD). - Внутренние уровни опорного напряжения 1.2V, 1.8V и 2.4V.
• Три режима с разным соотношением скорость/потребление тока: low-power, normal и high-speed.
• Поддержка одноконтактного емкостного датчика.
• Генерация события от изменения на выходе: - Событие UP, когда VIN- > VIN+. - Событие DOWN, когда VIN- < VIN+. - Событие CROSS при пересечении уровней VIN+ и VIN-. - Событие READY на готовности ядра и внутреннего опорного напряжения (если оно используется).
Рис. 1. Общая блок-схема компаратора.
Будучи разрешенным (с помощью регистра ENABLE), компаратор запускается путем активации задачи START, и останавливается активацией задачи STOP. После того, как пройдет время запуска tCOMP,START, компаратор сгенерирует событие READY, чтобы показать свою готовность к работе, и что уровень на его выходе корректен. Когда модуль COMP запущен, события будут генерироваться каждый раз, когда пересекаются изменения уровней VIN+ и VIN-.
[Рабочие режимы компаратора]
Компаратор может быть сконфигурирован для работы в двух основных рабочих режимах, дифференциальный режим и не дифференциальный (single-ended) режим. Для дополнительной информации см. описание регистра MODE. В этих обоих рабочих режимах компаратор может работать на трех разных скоростях, отличающихся соотношением времени реакции и тока потребления (low-power, normal и high-speed). Режим high-speed потребляет больше тока, чем режим low-power, и в режиме low-power компаратор будет срабатывать медленнее, чем в режиме high-speed.
Регистр PSEL используется для выбора любого из выводов AIN0 .. AIN7 в качестве входа VIN+, независимо от выбранного режима работы компаратора. Источник сигнала для VIN- зависит от используемого рабочего режима:
Дифференциальный режим. Сигнал на VIN- поступает поступает непосредственно от одного из выводов AIN0 .. AIN7. Недифференциальный (single-ended) режим. Сигнал для VIN- берется от VREF. VREF может быть получен от уровней VDD, AIN0 .. AIN7, или от внутренних уровней опорного напряжения 1.2V, 1.8V и 2.4V.
Выбранные аналоговые выводы будут захвачены компаратором, как только он разрешен.
Опционально может быть разрешен гистерезис на VIN+ и VIN-, когда модуль COMP используется в дифференциальном режиме. Гистерезис настраивается регистром HYST. В недифференциальном режиме пороги VUP и VDOWN могут быть установлены для реализации гистерезиса, который основан на цепочке эталонных резисторов (см. рис. 4). Этот гистерезис имеет величину порядка 50 mV, и он должен предотвращать шум на сигнале, который может создавать лишние нежелательные события. См. рис. 5, где показана работа гистерезиса на входном сигнале, загрязненном шумом.
Пересечение входных уровней в положительном направлении (когда VIN+ становится больше VIN-) генерирует событие UP и пересечение входных уровней в отрицательном направлении (когда VIN- становится больше VIN+) генерирует событие DOWN. Событие CROSS генерируется всякий раз, когда происходит пересечение входных уровней, независимо от направления.
Немедленное значение на выходе компаратора может быть взято чтением регистра RESULT путем активации задачи SAMPLE.
Дифференциальный режим. В этом режиме на вход VIN- (опорное напряжение) сигнал поступает непосредственно с одной из аналоговых ножек AINx.
Перед разрешением компаратора с помощью регистра ENABLE в дифференциальном режиме должны быть сконфигурированы регистры PSEL, MODE и EXTREFSEL.
Рис. 2. Компаратор в дифференциальном режиме.
Ограничение: в зависимости от устройства, не все аналоговые входы могут быть доступны для каждого MUX. Для дополнительной информации по доступности аналоговых выводов для каждого чипа см. определения для PSEL и EXTREFSEL.
При включении регистра HYST в этом режиме выход компаратора (и соответствующие события) будет менять свой уровень с ABOVE ("выше") на BELOW ("ниже") всякий раз, когда уровень VIN+ становится ниже уровня VIN- на величину (VDIFFHYST / 2). Также уровень на выходе поменяется с BELOW на ABOVE всякий раз, когда уровень на VIN+ станет больше уровня VIN- на величину (VDIFFHYST / 2). Это поведение показано на рис. 3.
Рис. 3. Работа гистерезиса в дифференциальном режиме.
Недифференциальный режим. В этом режиме сигнал VIN- формируется от уровней на внутреннем лестничном делителе из образцовых резисторов.
Перед разрешением компаратора с помощью регистра ENABLE в недифференциальном режиме должны быть сконфигурированы регистры PSEL, MODE, REFSEL, EXTREFSEL, TH.
Лестничный делитель использует опорное напряжение (VREF) для получения двух новых опорных напряжений: VUP и VDOWN. Напряжения VUP и VDOWN конфигурируются полями THUP и THDOWN и соответственно, которые находятся в регистре TH. VREF может быть получено от любого из доступных источников опорного напряжения, что конфигурируется регистрами EXTREFSEL и REFSEL, как показано на рис. 4. Когда в регистре REFSEL выбрано опорное напряжение AREF, регистр EXTREFSEL используется для выбора одного из аналоговых выводов AIN0 .. AIN7 в качестве входа для опорного напряжения. Выбранные аналоговые выводы будут захвачены компаратором, как только он разрешен.
Рис. 4. Компаратор в недифференциальном (single-ended) режиме.
Ограничение: в зависимости от устройства, не все аналоговые входы могут быть доступны для каждого MUX. Для дополнительной информации по доступности аналоговых выводов для каждого чипа см. определения для PSEL и EXTREFSEL.
Когда компаратор детектирует, что VIN+ > VIN-, например уровень на выходе стал выше (ABOVE), чем показывает регистр RESULT, VIN- переключится на VDOWN. Когда уровень VIN+ снова упадет ниже VIN-, VIN- переключится обратно на VUP. Путем указание VUP больше, чем VDOWN, может быть получен гистерезис, как показано на рисунках 5 и 6.
В недифференциальном режиме запись в регистр HYST не дает никакого эффекта, и содержимое этого регистра игнорируется.
Рис. 5. Пример гистерезиса, когда VIN+ начинается с уровня ниже VUP.
Рис. 6. Пример гистерезиса, когда VIN+ начинается с уровня выше VUP.
[Регистры компаратора]
Таблица 1. Экземпляры COMP.
Баз. адрес
Периф. устройство
Экз.
Описание
Конфигурация
0x40013000
COMP
COMP
Компаратор общего назначения
Таблица 2. Обзор регистров COMP.
Регистр
Смещ.
Описание
TASKS_START
0x000
Задача запуска компаратора.
TASKS_STOP
0x004
Задача остановки компаратора.
TASKS_SAMPLE
0x008
Задача выборки состояния компаратора.
EVENTS_READY
0x100
Событие, сигнализирующее о готовности компаратора к работе, и что уровень на выходе достоверный.
EVENTS_DOWN
0x104
Событие пересечения уровней на входе в отрицательном направлении (вниз).
EVENTS_UP
0x108
Событие пересечения уровней на входе в положительном направлении (вверх).
EVENTS_CROSS
0x10C
Событие пересечения уровней на входе в любом направлении.
SHORTS
0x200
Регистр шортката.
INTEN
0x300
Регистр разрешения или запрета прерываний.
INTENSET
0x304
Разрешение прерываний.
INTENCLR
0x308
Запрет прерываний.
RESULT
0x400
Результат сравнения.
ENABLE
0x500
Разрешение компаратора.
PSEL
0x504
Выбор ножки.
REFSEL
0x508
Выбор источника опорного напряжения в недифференциальном режиме.
Смещение адреса: 0x304. Запись 1 разрешает соответствующее прерывание. Запись 0 не оказывает никакого влияния. Чтение показывает текущее состояние прерывания: 0 прерывание запрещено, 1 разрешено.
Биты регистра INTENSET:
№ бита
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
Id
D
C
B
A
Reset 0x00000000
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Назначение бит:
Id
RW
Поле
Описание
A
RW
READY
Разрешение прерывания для события READY. См. EVENTS_READY.
B
RW
DOWN
Разрешение прерывания для события DOWN. См. EVENTS_DOWN.
C
RW
UP
Разрешение прерывания для события UP. См. EVENTS_UP.
D
RW
CROSS
Разрешение прерывания для события CROSS. См. EVENTS_CROSS.
Смещение адреса: 0x308. Запись 1 запрещает соответствующее прерывание. Запись 0 не оказывает никакого влияния. Чтение показывает текущее состояние прерывания: 0 прерывание запрещено, 1 разрешено.
Биты регистра INTENCLR:
№ бита
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
Id
D
C
B
A
Reset 0x00000000
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Назначение бит:
Id
RW
Поле
Описание
A
RW
READY
Запрет прерывания для события READY. См. EVENTS_READY.
B
RW
DOWN
Запрет прерывания для события DOWN. См. EVENTS_DOWN.
C
RW
UP
Запрет прерывания для события UP. См. EVENTS_UP.
D
RW
CROSS
Запрет прерывания для события CROSS. См. EVENTS_CROSS.
Результат последнего сравнения. Точка принятия решения задачи SAMPLE. 0, Below: входное напряжение ниже порога (VIN+ < VIN-). 1, Above: входное напряжение выше порога (VIN+ > VIN-).
Выбор ножки аналогового порта в качестве входа компаратора. 0, AnalogInput0: в качестве входа выбрана ножка AIN0. .. 7, AnalogInput7: в качестве входа выбрана ножка AIN7.
Выбор ножки аналогового порта в качестве входа для опорного напряжения. 0, AnalogInput0: в качестве входа выбрана ножка AIN0. .. 7, AnalogInput7: в качестве входа выбрана ножка AIN7.