Что такое аналоговый Watchdog?

Цитирую из Википедии:

Сторожевой таймер (WDT; иногда его называют компьютером, работающим должным образом, или COP-таймером, или просто сторожевым таймером) — это электронный таймер, который используется для обнаружения и устранения сбоев в работе компьютера.

При использовании STM32F429I-Discovery я наткнулся на термин [в "stm32f4xx.h"], который использует регистр для отключения Watchdog:

#define  ADC_CR1_AWDIE    ((uint32_t)0x00000040)    //Analog Watchdog interrupt enable

Здесь я не могу понять Аналоговый сторожевой таймер

И если можно,

#define  ADC_CR1_JAWDEN    ((uint32_t)0x00400000)    //Analog watchdog enable on injected channels

Что такое внедренный канал?


person user263210    schedule 06.08.2014    source источник


Ответы (2)


Сторожевой таймер можно рассматривать как две отдельные схемы: схему таймера и схему сторожевого таймера. Схема таймера просто считает прошедшее время. Схема сторожевого таймера активно контролирует таймер, чтобы определить, прошло ли определенное количество времени без сброса программным обеспечением. Если это так, программное обеспечение больше не работает, и сторожевой таймер обычно выполняет автоматизированную функцию, например, сброс процессора. При инициализации сторожевому таймеру нужно только сообщить, сколько времени нужно отслеживать, и он выполняет остальную часть своей работы без дополнительного взаимодействия с программным обеспечением.

Аналоговый сторожевой таймер работает аналогичным образом. Только вместо контроля таймера он контролирует аналоговый входной канал. При инициализации вы сообщаете сторожевому таймеру, какие аналоговые пороги отслеживать. Если преобразованное значение на аналоговом входе превышает одно из этих пороговых значений, оно вызовет прерывание для обработки выборки сигнала. Это означает, что вам не нужно писать код для непрерывного опроса аналоговых входов и проверки их уровней. Все это обрабатывается автономно в фоновом режиме аналоговой сторожевой схемой.

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

Вот примечание по применению (которое по какой-то странной причине недоступно на веб-сайте ST), в котором приводится несколько примеров использования различных функций ADC. А вот еще одно объяснение двух функций, на которые был задан ваш вопрос о.

person embedded.kyle    schedule 06.08.2014
comment
1. Так что WatchDog нужен не только для проверки не отвечающего процессора и его сброса. Существуют и другие WatchDog, которые можно использовать для наблюдения за различными действиями, происходящими с процессором (например, для проверки порога аналогового входа). 2. Внедренный канал предоставляет WatchDog (или какой-либо другой функции процессора того же типа) необходимый ему канал преобразования в реальном времени. Я прав? - person user263210; 06.08.2014
comment
@embedded.kyle: аналоговый сторожевой таймер не запускает преобразование, а сам запускается преобразованием, превышающим пороговые условия. - person Clifford; 06.08.2014
comment
@ user263210 : На данный момент вы должны прочитать Справочник Руководство (в частности, раздел 13). ТАК - это не руководство. Также будет полезна Стандартная периферийная библиотека STM32F4xx — в ней есть примеры для все периферийные устройства. В качестве альтернативы вы можете попробовать инструмент STM32Cube (та же ссылка), который включает в себя библиотеку и многое другое. Сторожевой таймер может работать как с добавленными, так и с обычными каналами — обычно вы должны использовать режим непрерывного преобразования. - person Clifford; 06.08.2014
comment
@ user263210 1. Сторожевой таймер — это общий термин для типа схемы, которая контролирует другую схему. Это может быть внешний чип или схема. Многие процессоры имеют встроенные сторожевые таймеры. STM32F01xxx имеет сторожевые часы, аналоговый сторожевой таймер, независимый сторожевой таймер и оконный сторожевой таймер. Информацию о том, что мониторит каждый, можно найти в справочном руководстве, на которое ссылается Клиффорд. 2. Инжектированные каналы не обеспечивают сторожевой таймер. Схема сторожевого таймера может отслеживать любое преобразование обычных или инжектированных каналов и запускать прерывание на основе запрограммированных порогов. - person embedded.kyle; 07.08.2014
comment
@embedded.kyle: я искал регистр отключения Watchdog. Все, что я знал, что WatchDog следит за состоянием процессора. Так что Analog WatchDog был для меня новым термином. В любом случае спасибо и +1. - person user263210; 07.08.2014
comment
Я пока не понимаю Injected Channels. Я думаю, мне будет ясно, когда я могу столкнуться с ним в будущем или использовать его где-то. - person user263210; 07.08.2014
comment
@user263210 user263210 Есть несколько аналоговых входных каналов, но только одна схема преобразования. Если вы настроили АЦП в режиме непрерывного преобразования, каждый канал должен ждать своей очереди, чтобы использовать схему преобразования для преобразования аналогового напряжения в цифровое значение, которое может быть считано процессором. Инжектированные каналы в основном такие же, как и обычные каналы, за исключением того, что они могут обрезаться перед линией. Они понадобятся вам только в том случае, если ваша программа должна очень, очень быстро реагировать на конкретное изменение аналогового сигнала. - person embedded.kyle; 07.08.2014
comment
Спасибо, теперь я понял. - person user263210; 07.08.2014

Термин «сторожевой таймер» в данном контексте относится к тому факту, что канал АЦП постоянно контролируется.

В данном контексте этот термин не имеет отношения к сторожевому таймеру работы процессора, который следит за работой процессора. Хотя вы можете использовать его для обнаружения отключения или обнаружения отказа источника питания, если ваш источник питания в качестве конденсатора резервуара или резервного аккумулятора способен поддерживать работу процессора достаточно долго после отключения питания.

Аналоговый сторожевой таймер на STM32 — это просто средство генерации прерывания, когда какое-то внешнее напряжение падает ниже или превышает программируемый пороговый уровень. Это делается без вмешательства программного обеспечения, когда преобразование АЦП настроено на автономную работу, поэтому, если приложению нужно реагировать только на пороговые значения, это можно реализовать с нулевыми программными издержками для опроса АЦП.

Вы можете использовать эту функцию, например, для обнаружения несущей в радиочастотном приложении, используя ее для мониторинга сигнала RSSI от FM-демодулятора. Или он может быть использован в контроллере типа «бах-бах», например, в термостате котла. AWD имеет верхний и нижний пороги, поэтому его можно использовать для реализации гистерезиса, и вы можете динамически изменять пороги, например, для создания нескольких событий на кривой.

person Clifford    schedule 06.08.2014