Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F103 - analog watchdog
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
toweroff
Добрый день

Есть вход, который нужно контролировать по нижней границе. Тут все вроде понятно - настроил и лови прерывание
Но нужно еще и знать текущее напряжение на этом входе. Как?
Я так понимаю, что содержимое регистра данных валидно только в определенный момент - при окончании оцифровки, простым чтением оттуда ничего не добьешься, а прерывание настроено на нижнюю границу
В принципе, одна ножка контроллера свободна и находится в аккурат с нужной, можно их просто закоротить и использовать дополнительный канал ADC, но как-то не комильфо, возможно есть программное решение?
ViKo
А разве Analog Watchdog без АЦП работает?
toweroff
Цитата(ViKo @ Aug 17 2016, 22:21) *
А разве Analog Watchdog без АЦП работает?

ну конечно с АЦП, весь вопрос в том, что в этом режиме прерывание генерится при выходе за границы окна, а не по окончании оцифровки. Или я что-то не так понял
ViKo
Я думаю, регистр данных всегда содержит правильное значение. Читайте, когда хотите.
toweroff
Цитата(ViKo @ Aug 18 2016, 08:25) *
Я думаю, регистр данных всегда содержит правильное значение. Читайте, когда хотите.

полазил по тырнетам... действительно, люди ждут первого преобразования, а потом читают регистр данных по мере необходимости не дожидаясь флага окончания преобразования
Сергей Борщ
QUOTE (toweroff @ Aug 19 2016, 10:53) *
действительно, люди ждут первого преобразования, а потом читают регистр данных по мере необходимости не дожидаясь флага окончания преобразования
Вот за такое интернет и называют "всемирной помойкой". У АЦП один регистр данных на все каналы,если вы настроили преобразование хотя бы двух каналов - данные какого из каналов вы считаете из регистра "не дожидаясь флага"?
ViKo
Цитата(Сергей Борщ @ Aug 19 2016, 11:06) *
Вот за такое интернет и называют "всемирной помойкой". У АЦП один регистр данных на все каналы,если вы настроили преобразование хотя бы двух каналов - данные какого из каналов вы считаете из регистра "не дожидаясь флага"?

Надо думать, источник у топикстартера один. Если больше, инжектированные каналы рулят. Если еще больше, вот тогда хуже.
toweroff
Цитата(ViKo @ Aug 19 2016, 11:35) *
Надо думать, источник у топикстартера один. Если больше, инжектированные каналы рулят. Если еще больше, вот тогда хуже.

Источников 4
Используются 2 ADC - один для AWDT для одного канала, второй с инжектированными каналами - просто для мониторинга

Тут проблема тоже с этими инжектированными каналами - в прерывание влетает только 1 раз для каждого ADC, хотя флаг CONT выставлен... никак не пойму почему
Может потому, что что-то не так сделал, а может потому, что проверяется пока, ввиду отсутствия железки, в симуляторе Keil

Сергей Борщ
QUOTE (ViKo @ Aug 19 2016, 11:35) *
Если больше, инжектированные каналы рулят.
Далеко не всегда. Мне, например, в некоторых устройствах удобнее настроить серию запросов и пусть себе АЦП их по таймеру обрабатывает, а ПДП складывает в отведенные места в памяти. Когда набирается достаточно (половина буфера ПДП) - все сразу и обрабатываю. И это никак не мешает аналоговой собаке следить за одним из этих каналов и давать прерывание при выходе значения за заданные границы.


QUOTE (toweroff @ Aug 19 2016, 13:05) *
а может потому, что проверяется пока, ввиду отсутствия железки, в симуляторе Keil
Ну это вообще не показатель при всем уважении к Кейлу. Симулятор 8051 у них работал идеально, как и у Микрочипа симулятор PIC16C84. Но те времена ушли - сейчас и моделируемые контроллеры сложнее и программисты симуляторов уже не те.
ViKo
Не помню, можно ли настроить размер памяти, куда будет DMA будет записывать данные с АЦП, кратным или равным последовательности каналов в АЦП. И чтобы писал непрерывно по кругу. Тогда данные для каждого канала будут на своем фиксированном месте.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.