аналоговый сторож в АЦП

AG123
Солнце 07 января 2018 8:21
https: // jeelabs.org/article/1619b/
Изображение
Казалось, это было в STM32F103 (я.эн. Весь BP & Мм и т. Д.), кто -нибудь играл с этим?
это казалось недооцениваемым полезным материалом
: D

ZMEMW16
Солнце 07 января 2018 13:41
Любой получил 4 -е на английский переводчик : D
SRP

Дэнниф
Солнце 07 января 2018 г. 15:09
Вы должны просто думать об этом как аналоговый компаратор с высоким разрешением с программируемым порогом.

Mrburnette
Солнце 07 января 2018 г., 15:14
[AG123 - Солнце 07 января 2018 8:21] - <...>
Казалось, это было в STM32F103 (я.эн. Весь BP & Мм и т. Д.), кто -нибудь играл с этим?
это казалось недооцениваемым полезным материалом
: D
Я видел упоминание о возможностях в ST PDF AN2834

Тем не менее, я лично не реализовал это на скамейке. Звучит многообещающе.

Луча

AG123
Солнце 07 января 2018 8:28 вечера
На самом деле я ищу компаратора, а в STM32F103, простого аналогового компаратора нет. Вместо этого ST заменил компаратора двумя цифровыми пороговыми компараторами скрыть его в ADC и назвал его «аналоговым сторожевым псом», это тоже звучит хорошо :ржу не могу:

Обычная схема метра LC, основанная на NE555, использует 2 аналоговых компаратора в качестве детекторов триггера и перепада и настроен в качестве пристального многовибратора и имеет CPU 8051, подсчитывая импульсы, чтобы вывести частоту определить частоту
https: // www.Электронный отчет.org/lc-meter ... 555-timer/

Я думаю, что эти цифровые пороги / триггеры могут работать так же хорошо, как и эти обычные аналоговые, и я сохраняю проблемы с необходимостью дополнительного компаратора и т. Д
Но я думаю, что, возможно, есть и другие / лучшие способы, такие как установление таймера для запуска / запуска АЦП для образца после фиксированного интервала
Возьмите пару образцов, и я смог бы выработать индуктивность или емкость

Но я думаю, что этот «аналоговый сторожевой пейзаж» будет иметь гораздо больше вариантов использования, чем простой вариант использования измерителей LC, он может быть использован в качестве сенсорных триггеров от емкостных или индуктивных датчиков, или, например, это можно сделать для запуска при температуре Из датчика настройки температуры достигает определенной температуры
: D

Арпрос
Вторник 23 января 2018 г., 4:30
[AG123 - Sun 07 января 2018 8:21 утра] - кто -нибудь играл с ним?
Я только что использовал аналоговый сторож для реализации адаптера, который захватывает данные, форматированные IRDA, на беспроводной клавиатуре Palmon Palmon. Было довольно трудно понять, как его использовать, но, похоже, это работает. Входящие данные имеют высокий уровень около 1.53V, поэтому я использую АЦП, а не GPIO, чтобы захватить его. (Интересно, что данные также имеют реверсированные уровни из стандартной IRDA из -за того, где я собираю данные.)

Код действительно грязный, но, возможно, он поможет кому -то использовать аналоговый сторож:
https: // github.com/arpruss/palmirkeyboard_stm32f1

AG123
Вт 23 января 2018 г. 7:22 утра
интересный ! : D

Я нашел несколько лучших кодов для использования STM32ADC, на самом деле он является частью распределения ядра Libmaple для F1
https: // github.com/rogerclarkmelbourne/ ... S/STM32ADC
Похоже, что коды, возможно, были внесены в Stevestrong и т. д.
Я видел некоторые коды, которые помогают использовать аналоговый сторож, я не использовал его лично, хотя

Арпрос
Вторник 23 января 2018 г. 14:05
Я начал с использования этой библиотеки, но она выглядит незаконченной, поэтому я просто закончил делать что -то напрямую с основными функциями.

Стивестронг
Вторник 23 января 2018 г. 15:34
[Арпрос - Вторник 23 января 2018 г. 14:05] - Я начал с использования этой библиотеки, но она выглядит незаконченной, поэтому я просто закончил делать что -то напрямую с основными функциями.
Сообщество было бы очень рады видеть ваше развитие, это будет минимальный вклад с вашей стороны. :)

Арпрос
Ср 24 января 2018 г., 5:02
[Стивестронг - Вторник 23 января 2018 г. 15:34] -
[Арпрос - Вторник 23 января 2018 г. 14:05] - Я начал с использования этой библиотеки, но она выглядит незаконченной, поэтому я просто закончил делать что -то напрямую с основными функциями.
Сообщество было бы очень рады видеть ваше развитие, это будет минимальный вклад с вашей стороны. :)
Может быть, в конце концов. Я все еще полирую свою библиотеку USBHID, чтобы сделать ее более дружелюбным для разработчиков. (Это уже довольно дружелюбно для разработчиков, если вы просто хотите использовать контроллер клавиатуры/мышь/джойстик/x360, но это не очень дружелюбно, если вы хотите реализовать новые устройства HID. И поддержка отчета о функциях/выводе по -прежнему немного беспорядочно.)

Арпрос
Чт 15 февраля 2018 г., 19:50
Кто -нибудь знает, смогу ли я иметь два аналоговых сторожевых пса, по одному на каждом АЦП, каждый смотрит на другое состояние на разных канала?

Стивестронг
Пт 16 февраля 2018 г. 8:12
Поскольку у ADC есть разные регистры, вы можете настроить разные WDS.
Но имейте в виду, что прерывания ADC1 и ADC2 отображаются на один и тот же вектор прерывания.

Арпрос
Пт 16 февраля 2018 г. 14:11
Могу ли я сказать в обработчике, какой из них был вызван?

Стивестронг
Пт 16 февраля 2018 г. 14:20
Похоже, текущая версия поддерживает только прерывания ADC1.
ADC2 даже не имеет таблицы обработчиков ISR.
https: // github.com/rogerclarkmelbourne/ ... E/ADC_F1.в

Арпрос
Пт 16 февраля 2018 г., 18:13
[Стивестронг - Пт 16 февраля 2018 г., 14:20] - Похоже, текущая версия поддерживает только прерывания ADC1.
ADC2 даже не имеет таблицы обработчиков ISR.
https: // github.com/rogerclarkmelbourne/ ... E/ADC_F1.в
Я предполагаю, что вы имеете в виду текущую версию ядра, но все еще можно сделать это путем прямых манипуляций с регистрацией?

Арпрос
Пт 16 февраля 2018 г., 20:19
Глядя на код ядра, нужно было бы переопределить вектор обработчика IRQ, и, к сожалению, ядро ​​определяет __IRQ_ADC () как сильный символ.

Я полагаю, что я мог бы просто сделать вторую копию векторов прерывания где -то в ОЗУ (чтобы я мог обеспечить необходимое выравнивание) и вызвать nvic_set_vector_table ()?

Rogerclark
Пт 16 февраля 2018 г., 21:15
Возможно, ядро ​​можно изменить, чтобы сделать этот IRQ слабым.

Стивестронг
Сб 17 февраля 2018 г. 8:54
Определение ISR в порядке, только код должен быть расширен для обработки регистров ADC2.

Обработчики должны быть определены для ADC2, аналогично ADC1: void setup() { Serial.begin(115200); } void loop() { delay(1000); Serial.println("holaq"); }