
Views: 759
HVLD модуль представляет собой простое устройство, для контроля напряжения питания микроконтроллера или внешнего напряжения (через делитель). Его задача при “выходе” напряжения за заданные пределы сформировать сообщение микроконтроллеру, что необходимо выполнить соответствующие действия. Часто этот модуль необходим, чтобы выполнить обработку аварийных ситуаций при пропадании напряжения питания.
В микроконтроллере PIC24FJ128GA204 есть возможность получения аналогового сигнала с внешнего делителя, но есть микроконтроллеры, в котором этот вход отсутствует, и возможен контроль только самого напряжения питания микроконтроллера. Внешний вход позволяет значительно расширить контроль напряжения питания, можно вывести контроль на входное напряжение до стабилизатора и на раннем этапе обнаружить понижение напряжения и раньше начать выполнять процедуру остановки системы.
Модуль имеет один регистр управления HLVDCON. Назначение бит следующее:
HLVDCON: HIGH/LOW-VOLTAGE DETECT CONTROL REGISTER | |||||||
R/W-0 | U-0 | R/W-0 | U-0 | U-0 | U-0 | U-0 | U-0 |
HLVDEN | LSIDL | ||||||
bit 15 | bit 14 | bit 13 | bit 12 | bit 11 | bit 10 | bit 9 | bit 8 |
R/W-0 | R/W-0 | R/W-0 | U-0 | R/W-0 | R/W-0 | R/W-0 | R/W-0 |
VDIR | BGVST | IRVST | HLVDL3 | HLVDL2 | HLVDL1 | HLVDL0 | |
bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 |
bit 15 HLVDEN: бит включения питания модуля
1 = HLVD включен
0 = HLVD отключен
bit 14 Не реализовано: чтение дает ‘0’
bit 13 LIDL: бит работы модуля в режиме ожидания
1 = модуль отключен, когда устройство переходит в режим ожидания
0 = модуль продолжит работу в режиме ожидания
bit 12-8 Не реализовано: чтение дает ‘0’
bit 7 VDIR: Выбор направления изменения напряжения для формирования события
1 = Событие возникает, когда напряжение равно или превышает точку отключения (HLVDL <3: 0>)
0 = Событие возникает, когда напряжение равно или падает ниже точки отключения (HLVDL <3: 0>)
bit 6 BGVST: бит флага стабильности напряжения запрещенной зоны
1 = Указывает, что напряжение запрещенной зоны является стабильным
0 = Указывает, что напряжение запрещенной зоны является неустойчивым
bit 5 IRVST: бит флага стабильности внутренего источника опорного напряжения
1 = Внутреннее опорное напряжение является стабильным; логика High-Voltage Detect генерирует флаг прерывания на
заданный диапазон напряжения
0 = Внутреннее опорное напряжение неустойчиво; логика обнаружения высокого напряжения не приведет к прерыванию флаг в указанном диапазоне напряжений и прерывание HLVD не должно быть включено
bit 4 Не реализовано: чтение дает ‘0’
bit 3-0 HLVDL <3: 0>: бит ограничения обнаружения высокого / низкого напряжения
1111 = используется внешний аналоговый вход (вход поступает от выводов HLVDIN)
1110 = Точка отключения 1 (1)
1101 = точка отключения 2 (1)
*
*
*
1100 = точка срабатывания 3 (1)
0100 = Точка отключения 11 (1)
00xx = состояние не используется
HIGH/LOW-VOLTAGE DETECT CHARACTERISTICS | ||||||
Symbol | Characteristic | Min | Typ | Max | Units | |
VHLVD | HLVD Voltage on VDD Transition |
HLVDL<3:0> = 0100 | 3.45 | 3.59 | 3.74 | V |
HLVDL<3:0> = 0101 | 3.33 | 3.45 | 3.58 | V | ||
HLVDL<3:0> = 0110 | 3.0 | 3.125 | 3.25 | V | ||
HLVDL<3:0> = 0111 | 2.8 | 2.92 | 3.04 | V | ||
HLVDL<3:0> = 1000 | 2.7 | 2.81 | 2.93 | V | ||
HLVDL<3:0> = 1001 | 2.50 | 2.6 | 2.70 | V | ||
HLVDL<3:0> = 1010 | 2.40 | 2.52 | 2.64 | V | ||
HLVDL<3:0> = 1011 | 2.30 | 2.40 | 2.50 | V | ||
HLVDL<3:0> = 1100 | 2.20 | 2.29 | 2.39 | V | ||
HLVDL<3:0> = 1101 | 2.10 | 2.19 | 2.28 | V | ||
HLVDL<3:0> = 1110 | 2.00 | 2.08 | 2.17 | V | ||
VTHL | HLVD Voltage on HLVDIN Pin Transition |
HLVDL<3:0> = 1111 | – | 1.2 | – | V |
Настройка модуля для работы с внешним напряжение, для контроля понижение ниже порога в MCC, выглядит таким образом:
Добавим модуль в ресурсы проекта
Выполним настройку:
Включим модуль (Enable HLVD), активируем прерывания от модуля, в последствии в прерывания включим процедуру, в которой будет необходимо выполнить требуемые операции при пропадании напряжения питания. Выберем внешний вход HLVD для контроля напряжения.
Настроим логику работы прерывания (Voltage Change Direction) Выбор направления изменения напряжения для формирования события:
Exceeds Trip Point – Событие возникает, когда напряжение равно или превышает точку отключения.
Falls Below Trip Point – Событие возникает, когда напряжение равно или падает ниже точки отключения.
Нас интересует вариант когда напряжение упадет ниже значения на входе 1,2 вольта (та как мы используем контроль по внешнему входу). Для контроля более высокого порога нам необходимо применить делитель на резисторах.
Например, нам надо контролировать порог 25 вольт. В качестве резистора “на землю” выберем 10 кОм, рассчитаем “верхний” резистор. Вспоминаем закон Ома.
На резисторе 10 кОм мы должны получить напряжение 1,2 вольта когда входное 25 вольт. Находим ток в цепи:
I= U/R = 1.2 V /10000 Ohm = 0.00012 A.
Падение напряжение на вернем резисторе:
Vv = Vin – 1.2 V = 25 – 1.2 = 23.8 V.
Зная ток в цепи и напряжение на резисторе найдем его сопротивление:
R = U/I = 23.8 V / 0.00012 A = 198333 Ohm.
Это приблизительно 200 kOhm.
Выполним обратный расчет, при напряжении 25 вольт на выходе делителя мы будем иметь 1.1904761904762 вольта. Но учитывая возможную погрешность на применяемом делителе, это все, вполне приемлемо.
Проверим настройку входа для HLVD модуля:
Выберем Pin Module
и проверим настройку входа
Запустим генерацию файлов в MCC
По окончанию генерации MCC предоставит нам несколько функций:
void HLVD_Initialize (void) – инициализация и настройка модуля под наши параметры, это функция будут включена в процедуру запуска микроконтроллера. Это мы можем убедиться просмотрев функцию void SYSTEM_Initialize (void) в файле systems.c
void SYSTEM_Initialize(void) { PIN_MANAGER_Initialize(); CLOCK_Initialize(); INTERRUPT_Initialize(); HLVD_Initialize(); TMR3_Initialize(); }
bool HLVD_IsReferenceVoltageStable(void) – возвращает состояние стабильно или не стабильно опорное напряжение.
bool HLVD_IsBandGapVoltageStable(void) – возвращает состояние стабильно ли контролируемое напряжение.
void HLVD_Enable(void) – предоставляет возможность пользователю включать модуль в процессе работы программы.
void HLVD_Disable(void) – отключать модуль.
void HLVD_TripPointSetup(HLVD_TRIP_DIRECTION direction, HLVD_TRIP_POINTS trip_points) – изменять настройки контроля напряжения.
и сама функция выполнения прерывания от события:
void __attribute__ (( interrupt, no_auto_psv )) _ISR _LVDInterrupt( void ) { if(IFS4bits.HLVDIF) { /* TODO : Add interrupt handling code */ IFS4bits.HLVDIF = 0; } }
В нее надо встроить нашу функцию, которая будет обязана выполнить наши задания, если напряжение питания становиться ниже нормы.
Это может быть интересно
CAN – Controller Area Network
Views: 1208 Controller Area Network (CAN) первоначально был создан немецким поставщиком автомобильных систем Робертом Бош в середины 1980-х для автомобильной промышленности как метод для обеспечения возможности надежной последовательной связи. Целью было сделать автомобили более надежными, …Arduino LCD + STONE STVI056WT-01 + Strain gauge
Views: 575 Author li grey email: greyli1987@outlook.com The strain assessment instrument is used to assess the degree of corresponding muscle strain by obtaining the muscle surface action potential through silver …Интерактивные Led
Views: 556 Тема проекта продолжение следует…. Это может быть интересноLCD индикаторы на драйвере ML1001
Views: 1965 ML1001 – статический LCD GOG (чип в стекле) драйвер для 40-сегментного LCD в позолоченном противоударном исполнении. На них можно каскадно строить цельные из 80 или 120 сегментов LCD индикаторы. …Светодиоды со встроенным драйвером WS2812B
Views: 1016 Производитель http://www.world-semi.com Краткое описание продукции фирмы Каталог продукции” catcatcat_ws_19 catcatcat_ws_15 catcatcat_ws_11 catcatcat_ws_07 catcatcat_ws_03 catcatcat_ws_18 catcatcat_ws_14 catcatcat_ws_10 catcatcat_ws_06 catcatcat_ws_02 catcatcat_ws_05 catcatcat_ws_09 catcatcat_ws_13 catcatcat_ws_17 catcatcat_ws_16 catcatcat_ws_12 catcatcat_ws_08 catcatcat_ws_04 catcatcat_ws_01 This jQuery …Audio-bluetooth modules F-6188 (BK8000L)
Views: 2391Следующий модуль на чипе BK8000L. Заводское обозначение F-6188 также основным производителем не выпускается и отдан на тиражирование. с нижней стороны имеет маркировку В этом варианте мне попалась вроде полноценная …Altium Designer my Libraries, Project templates, System settings by Catcatcat V24.0 PRO
Views: 447 Назвемо цей варіант поновлення для професіоналів і не тільки. Що нового? 1. Повністю змінено структуру параметрів бази даних компонента. Це дозволило повноцінної роботи Актив ВОМ. Ви відразу отримуєте …Ссылки на интересные источники
Views: 922 Сбор 3D моделей от André L’Hérault конденсаторы, резисторы, индуктивности dropbox IPC-SM-782 Surface Mount Design and Land Pattern Standard Видео уроки по Altium designer Alexey Sabunin https://www.youtube.com/channel/UCG7N5CqXpyK8nQjr1EmMgng Сергей Булавинов https://www.youtube.com/channel/UCISAMXRnN_Qw9UTjUwZI1Jw Robert Feranec https://www.youtube.com/user/matarofe …Регулятор влажности ch-3800
Views: 1530 И еще один проект на плате ch-c3xxx – универсальный регулятор влажности ch-3800. Регулятор позволяет работать как в режиме индикатора влажности, так и в режиме регулятора. Рабочий диапазон …Самый простой диммер для светодиодного освещения
Views: 3158 Светодиоды все больше входят в нашу жизнь как источники освещения и как само собой разумеющееся, это вопрос регулировки яркости. Существует множество схемных решений, но в нашем варианте мы …