STM8L–Аналоговый компаратор
Хотел испытать АЦП с ПДП контроллером, но случайно вывел из строя ЖКИ индикатор от сотового Nokia 1100, так что пока придет новый решил посмотреть что же такое компаратор.
В состав микроконтроллера входит два аналоговых компаратора.
Аналоговый компаратор 1 (COMP1)
В начале посмотрим на функциональную схему модуля:
Как видим данный компаратор имеет один фиксированный пороговый уровень, значение которого равно опорному напряжению (V_ref = 1,225 Вольт). Данное напряжение подается на инверсный вход компаратора.
Не инверсный вход компаратора может быть подключен к одной из 25-ти линий ввода-вывода, выбор нужно линии производится в блоке коммутации аналоговых сигналов (Routing interface). А так же совместно со вторым компаратором работать в «оконном» режиме.
Примечание. Одновременно использовать компаратор и АЦП не получается, так как вход модуля АЦП подключается к линиям ввода-вывода посредством тех же линий. АЦП переключает входа «сам», а биты CHxE и ASx должны быть сброшены. Однако возможно использовать одновременно АЦП и компаратор при подключении обоих к одной линии, далее я этим воспользуюсь.
Выход компаратора подключен к детектору фронтов. Детектор позволяет «выделять» нарастающий или спадающий фронт, или сразу оба и генерировать соответствующее прерывание (или пробуждать микроконтроллер из «спячки»).
Для использования компаратор нам нужно:
- подключить опорное напряжение к инверсному входу компаратора
- выбрать входную линию
- при необходимости разрешить прерывания
- настроить детектор фронтов
Пример
Так как модуль АЦП мы уже рассмотрели, попробуем использовать его совместно с компаратором.
Первым делом настроим компаратор.
Разрешим тактирование:
CLK->PCKENR2 |= CLK_PCKENR2_COMP;
Подключаем опорное напряжение к инверсному входу компаратора:
COMP->CSR3 = COMP_CSR3_VREFEN;
Делитель напряжения подключен у меня к линии PA6:
RI->ASCR2 |= BIT(6);
RI->ASCR1 |= BIT(1);
RI->IOSR1 |= BIT(0);
Прерывания использовать пока не будем.
Настроим детектор фронтов:
COMP->CSR1 = 3;
Настройки АЦП смотрим в предыдущей записи.
Пример целиком:
Уровень “срабатывания” компаратора приблизительно равен опорному напряжению (1,225 Вольт), опорное напряжение АЦП 3,3 Вольта следовательно переключение будет происходить при значении АЦП равном (1,225/3,3)*256 = 95, реально так и получилось. Однако стоит отметить что я не сбросил биты CHxE и ASx, как было рекомендовано в документации.
На этом пока все.
Второй компаратор, возможно рассмотрю в следующий раз.
comments powered by Disqus