Встроенный аналоговый компаратор
Функция comp_init () осуществляет начальную настройку компаратора: подачу тактовой частоты на компаратор (PER_CLOCK, линия 19), включение компаратора (ON), выбор источника внутреннего опорного напряжения IVREF (биты 9 и 10), установку битов CVREN и CVREF (биты 3 и 8), сброс битов CVRR и CVRSS (биты 1 и 2). После ожидания установки флага готовности «Ready» (бит 12) происходит вызов функции… Читать ещё >
Встроенный аналоговый компаратор (реферат, курсовая, диплом, контрольная)
В микроконтроллере реализована схема компаратора (рис. 3.19), обеспечивающая следующие режимы работы:
- — сравнение двух сигналов с трех различных выводов микросхемы;
- — сравнение сигнала с трех различных выводов с внутренней шкалой напряжений;
- — сравнение сигнала с вывода IN1 с внутренним источником опорного напряжения;
- — формирование внутренней шкалы напряжений от питания микроконтроллера и от внешних выводов.
Рис. 3.19. Схема подключения встроенного компаратора
Спецификация регистров настройки контроллера компаратора: MDR_COMP. базовый адрес 0×4009_8000 — контроллер аналогового компаратора;
MDR_COMP->CFG [31:0], смещение 0×00 — регистр управления аналогового компаратора.
Назначение битов регистра:
[31:14] - не используются;
[13] (CMP IE) — флаг разрешения генерации прерывания по событию Rst_lch (0 — запрещено. 1 — разрешено);
[12] (Ready) — сигнал готовности аналогового компаратора при включении: (0 — компаратор не включен или не готов к работе, 1 — компаратор готов к работе);
[11] (1NV) — инверсия выхода компаратора (1 — инверсный);
[10:9] (ССН) — биты управления мультиплексором канала:
- 00 — на вход компаратора сигнал подается с IN2;
- 01 — на вход компаратора сигнал подается с IN1;
- 10 — на вход компаратора сигнал подается с IN3;
- 11 — на вход компаратора сигнал подается с выхода внутреннего источника опорного напряжения 1.2 В (1VREF);
[8] (CREF) — бит управления мультиплексором канала:
- 0 — на вход компаратора «+» сигнал подается с IN 1;
- 1 — на вход компаратора «+» сигнал подается с CVREF;
[7:4] (CVR) — биты управления мультиплексором выбора CVREF при формировании внутренней шкалы напряжений;
[3] (CVREN) — разрешение работы CVREF (0 — запрет; 1 — разрешение);
[2] (CVRSS) — база CVREF (0-AUcc: AGND, 1 — Vref+: Vrcf-);
[1] (CVRR) — выбор диапазона CVREF (0 — верхний, 1 — нижний);
[0] (ON) — включение компаратора (0 — выключен, 1 — включен). MDR_COMP->RESULT, смещение 0×04 — регистр результата:
[31:3] — не используются;
[2] (Rstjch) — результат работы компаратора хранится до момента считывания из регистра MDR_COMP->RESULT_LATCH, затем сбрасывается. Взводится по переднему фронту сигнала с аналогового компаратора;
[1] - результат работы компаратора получают непосредственно из аналогового компаратора;
[0] - результат работы компаратора синхронизирован с частотой HCLK.
MDR_COMP->RESULT_LATCH, смещение 0×08-регистр-защелка для фиксирования результата работы аналогового компаратора; [31:1] — не используются;
[0] (Rstjch) — результат работы компаратора хранится до момента считывания из регистра MDR_COMP->RESULT_LATCH, затем сбрасывается. Взводится по переднему фронту сигнала с компаратора.
Внутренняя шкала напряжений формируется на резистивном делителе (рис. 3.20), который включается битом CVREN = 1. При этом в качестве опорного напряжения делителя может выступать питание микросхемы AUcc (CVRSS = «0») или напряжение «COMP_VREF+» .
Рис. 3.20. Структура блока формирования CVREF.
Таблица 3.3
Формирование внутренней шкалы напряжений CVREF
CVR[3:0]. | CVRR=0. | CVRR=1. | ||
Отношение резисторов. | U (CVREF), В при Ucc = 3.3 В. | Отношение резисторов. | U (CVREF), В при Ucc = 3.3B. | |
8/32. | 0.83. | 0/24. | 0.00. | |
9/32. | 0.93. | 1/24. | 0.14. | |
10/32. | 1.03. | 2/24. | 0.28. | |
ООП. | 11/32. | 1.13. | 3/24. | 0.41. |
12/32. | 1.24. | 4/24. | 0.55. | |
13/32. | 1.34. | 5/24. | 0.69. | |
ОНО. | 14/32. | 1.44. | 6/24. | 0.83. |
15/32. | 1.55. | 7/24. | 0.96. | |
16/32. | 1.65. | 8/24. | 1.10. | |
17/32. | 1.75. | 9/24. | 1.24. | |
18/32. | 1.86. | 10/24. | 1.38. | |
19/32. | 1.96. | 11/24. | 1.51. | |
20/32. | 2.06. | 12/24. | 1.65. | |
21/32. | 2.17. | 13/24. | 1.79. | |
22/32. | 2.27. | 14/24. | 1.93. | |
23/32. | 2.37. | 15/24. | 2.06. |
Примечание. Значения напряжения U (CVREF) приведены для справки, реальные значения напряжений в конкретном кристалле могут отличаться за счет технологического разброса параметров.
(CVRSS = «1»). Нижнее опорное напряжение компаратора задается на выводе «COMP_VREF-». Напряжение на выводе CVREF задается комбинацией битов CVRR и CVR (табл. 3.3).
Результат работы компаратора (сигнал Out) может быть проинвертирован с помощью бита INV и выдан на вывод микросхемы OUT_COMP. Также результат сравнения доступен внутри микроконтроллера. Комбинационный сигнал с компаратора отображается в бите Rslt_As (при чтении может быть считан как" 1″, но сигнал прерывания при этом может отсутствовать). Зафиксированный в триггере по тактовой частоте HCLK сигнал сравнения отображается в бите Rslt_Sy. Флаг Rstjch фиксирует событие появления положительного сигнала сравнения и устанавливается в «1» до тех пор, пока не будет считан регистр COMP_RESULT_LATCH.
Отметим, что не все микроконтроллеры серии 198бВЕхх имеют полный набор внешних выводов, приведенный в спецификации [4]. В частности, микроконтроллер 1986ВЕ92У не имеет выводов «IN3», «Vref+» и «Vref-», поскольку корпус содержит всего 64 вывода.
Программа 10. На рис. 3.21 приведена программа, демонстрирующая работу встроенного компаратора. На вход компаратора подается напряжение IVREF от встроенного источника опорного напряжения 1.2 В (см. рис. 3.19). Напряжение на входе «+» компаратора формируется схемой CVREF (см. рис. 3.20), которая настроена на два уровня напряжения (U < t/(IREF) и Ui > t/(IREF)) с возможностью программного выбора одного из них с помощью кнопок джойстика «LEFT» и «RIGHT» (см. рис. 3.9 и 3.10). Результат работы компаратора отображается с помощью двух светодиодных индикаторов, а сигнал COMP_OUT выводится на внешний разъем Х26 (ножка 21) для наблюдения с помощью осциллографа.
Рассмотрим более детально организацию программы (см. рис. 3.21). Секция Include содержит дополнительный файл МРТ_сошр. h, который включает определения констант и прототипов функций, подробно обсуждавшихся ранее, а их исходные тексты не присутствуют на рис. 3.21.
Секция Define содержит новую константу COMP_OUT, соответствующую линии РВ8 микроконтроллера, через которую осуществляется выдача выходного сигнала компаратора. Константы RIGHT и LEFT используются для программирования кнопок джойстика, они обсуждались ранее (см. рис. 3.9 и 3.10).
В начале секции main осуществляется инициализация используемого оборудования: тактовый генератор (frqjnit), клавиши джойстика и светодиодные индикаторы (joystick_init), встроенный компаратор
Рис. 3.21. Программа, демонстрирующая работу встроенного компаратора.
(compjnit), линия порта РВ8 для вывода сигнала с выхода компаратора на внешний разъем Х26 (ножка 21), а также выключение светодиодных индикаторов.
Основной бесконечный цикл while формирует и поддерживает переменную cvref, соответствующую параметру компаратора CVREF. В начале каждой итерации цикла while переменная cvref принимает нулевое значение, которое далее может быть изменено нажатием клавиши RIGHT (U < t/(IREF)) или LEFT ((Л > C (IREF)). Каждая итерация цикла while завершается программной проверкой компаратора и отображением результата работы на светодиодных индикаторах.
Функция comp_init () осуществляет начальную настройку компаратора: подачу тактовой частоты на компаратор (PER_CLOCK, линия 19), включение компаратора (ON), выбор источника внутреннего опорного напряжения IVREF (биты 9 и 10), установку битов CVREN и CVREF (биты 3 и 8), сброс битов CVRR и CVRSS (биты 1 и 2). После ожидания установки флага готовности «Ready» (бит 12) происходит вызов функции comp_osc_init ().
Функция comp_osc_init () осуществляет начальную настройку линий порта РВ8 для вывода выходного сигнала компаратора на внешний разъем Х26 (ножка 21). Линия РВ8 программируется для цифрового вывода в режиме медленных фронтов (до 100 нс). Особенностью является выбор альтернативной функции порта, соответствующей выходному сигналу COMP_OUT компаратора.