Компаратор STM32F0x1 (COMP) и АЦП на одном выводе одновременно?

8

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

Могу ли я использовать один вывод, скажем PA1, в качестве входа и настроить его как вход для оконного компаратора и как вход ADC на ADC_IN1?

Есть ли какие-либо ошибки с такой конфигурацией, такие как дополнительный шум, который я должен рассмотреть?

Лист данных (стр. 19)

Справочное руководство (стр. 295)

Интересная ссылка, предполагающая, что это должно быть возможно: введите описание изображения здесь взято из AN4232: Начало работы с аналоговыми компараторами для серии STM32F3

Даниил
источник
1
Не могли бы вы дать ссылку на соответствующую документацию? В таблице данных, которую я нашел, не упоминаются компараторы, но это интересный вопрос
David
Конечно, я хотел сказать STM32F0 * 5 * 1 ...
Даниэль
Из моего опыта это должно быть выполнимо, но я не могу сказать наверняка, и я сомневаюсь, что вы найдете эту информацию в официальных источниках. Лучшее, что вы можете сделать в IMO, - это поэкспериментировать - получить ядерную плату STM32F07x, которая стоит довольно дешево (~ 10 долларов США), и протестировать ее. Или приобретите плату F051, они не намного дороже. ST использует одни и те же периферийные IP-ядра в разных MCU, поэтому можно ожидать, что между F07x и F051 он будет вести себя одинаково.
Ян Дорняк
@JanDorniak Да, это был бы лучший способ. К сожалению, мне понадобится много времени (несколько дней бездельничать), чтобы понять это наверняка, и мне нужно потратить это время на подготовку печатной платы для производства прототипа. Если никто не вернется ни с чем, я в конечном итоге сделаю это.
Даниил
1
@Daniel Одна проблема, которую я могу вам точно сказать, заключается в том, что некоторые периферийные устройства подключены через контакты - у меня были проблемы при подключении ЦАП к входу COMP, потому что они были подключены через вывод, который я пытался использовать в качестве цифрового выхода. Не сработало, к счастью, у меня были свободные булавки на MCU. Если вы хотите посмотреть на это, это был PA4 на L053
Ян Дорняк

Ответы:

4

Это работает, вы получите номера обратно, а также прерывания. Я проверил это, скачать с .

Точность и сбой пока не определены. Но это хорошо описано в Appnotes, как указано @Bence Kaulics в этой теме (дополнительные результаты AppNotes см. В results.txt)

Я верю, что он будет стабильным по следующим причинам.

a) The circuit diagram in RM0091 shows a direct connection from comparator to pin. i.e. it is indicated that the comparator cannot be disconnected with a switch or MUX, and will thus work as soon as the pin is assigned 'analog in'.

b) The comparator is NOT dependent on a 'Clock' to enable it (it is alow power device).

c) ST would not be able to make this level of change without assigning a new part number.


The good news is that one can continue to use the comparator for high-speed events such as over current and emergency stop etc whilst still using the ADC analog window events for other software control.

Это также работает с ЦАП, то есть вы можете настроить все это внутренне с ЦАП или внешне с ЦАП и несколькими резисторами.

Просто глядя на схему, вы будете использовать АЦП параллельно с компаратором, по сути, усилитель. Как мы знаем, это устройства с очень высоким импедансом и большим усилением. Глюки не наш друг.

Теперь мы собираемся надевать на этот штырь разряженную крышку, чтобы питать АЦП.

Как мы все знаем, нам нужно перепроверять АЦП и предпочтительно отклонять первое чтение после события переключения мультиплексора, чтобы устранить перекос от соседних каналов и к ним.

АЦП на STM имеют входной импеданс несколько <50 кОм / 5 пФ в зависимости от того, как они используются. (DM00039193.pdf pg 76ff)

Таблица 53 дает 400-> 50 кОм, что, как я обнаружил, было некоторое время назад, когда я калибровал свой АЦП F373.

На стр. 79 показана схема АЦП.

На стр. 82 дано краткое описание выводов компаратора, прочитанное вместе с общим описанием аналоговых выводов выше (pg73ff).

Поместите это параллельно с вашим входом компаратора и ADC MUX и смоделируйте его в специях. Не забывайте регулярно заряжать крышку АЦП от случайного напряжения.

Что бы ни случилось в схеме и программном обеспечении, вы получите довольно разумные сбои на входе компаратора. ПЛОХАЯ ИДЕЯ, даже если вы подключите контактный штырек к низкоомному импедансу и разъединяющему колпачку (на линии перемещения входа компаратора ????).

Крышка, используемая АЦП, является убийцей. Будем надеяться, что будущие устройства будут производить выборку с использованием внутренних последователей / изоляторов как на АЦП, так и на компараторе. Они могут уже присутствовать в качестве недокументированных функций (маловероятно из-за перекрестных помех мультиплексора).

Как и я, я думаю, что мы настолько вовлечены в цифровую сторону вещей, что, переходя на аналоговую и гибридную, мы забываем об основах.

Как измерить малые токи с помощью преобразователя тока в напряжение? это обсуждение, которое я имел с кем-то еще вчера. Я знал ответ, потому что я сам его испортил. Даже при лучших 3В на 50К мы получаем AVO 16К / вольт. Когда в последний раз я использовал такой AVO / мультиметр?

Все это говорит о том, что анализ схемы F373 показывает, что ST и ARM, по-видимому, намеревались получить работоспособные результаты как от компаратора, так и от АЦП, используемых одновременно в смешанном устройстве. Добавление операционных усилителей в сериях 150 и 300 дает представление о требованиях к изоляции полного сопротивления.

Я уверен, что кто-то более умный, чем я, сможет перестроить среду, для которой были разработаны эти внутренние соединения. Я бы подумал, автомобильный или ОВК .... инверторы и ВОК. Библиотека FOC может предоставить ценную информацию.

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

Решение здесь .

Похоже, библиотека HAL ADC немного сломана для многоканального DMA. Я разместил на сайте STM, чтобы получить ответ. Обходные пути: -

а) IRQ обоих АЦП

б) опросить оба АЦП

в) DMA один канал и опрос другого

г) Инициализируйте регистры низкого уровня вручную

Это еще одна оговорка к решению, в котором используются оба компаратора, пока не будет найдено лучшее решение.

ChrisR
источник
На STM32F4Discovery ADC2 и ADC3 просто отлично работают с HAL. Я использую DMA2 Stream1 с ADC3 и DMA2 Stream2 с ADC2, на обоих ADC есть два настроенных канала. Режим DMA является круговым. Также с HAL на STM32F3 я использую четыре разных АЦП вместе с DMA, 3 канала на DMA2 и 1 один DMA1. Что не так, когда вы пытаетесь использовать мультиканальный DMA?
Бенс Кауликс
@Bence - я работал с F1, F3 и F4 в многоканальной конфигурации ADC-DMA - они используют другой механизм для добавления каналов в DMA. Каналы можно сканировать в любой последовательности. Серия STM32L0 имеет другую внутреннюю структуру, каналы автоматически назначаются по номеру канала. Существуют различные структуры и вызовы для его настройки. Каждый канал может появляться только один раз при сканировании.
ChrisR
Понятно, а этот порядок приоритетов исправлен?
Бенс Кауликс
Спасибо за ваш ответ и приложенные усилия, чтобы непосредственно подтвердить, что это работает, а также найти поддержку исследований. Очень признателен!
Даниил
1
@Bence - Да, приоритет и порядок фиксированы - переходите по номеру канала. Одна замечательная вещь - вы можете перепроверять и усреднять результаты сканирования. см. ссылку выше, стоит прочитать. Как и многим, мне немного грустно, что библиотеки HAL не прозрачны (и не могут быть) на всех устройствах ARM.
ChrisR
4

Наиболее подходящая настройка, которую я смог найти, приведена в разделе Использование аналоговых компараторов STM32F05xx в случаях применения ( AN4112 ), стр. 4:

введите описание изображения здесь

Это говорит:

На рисунке 1 показано, как подключить выход датчика (датчик температуры, датчик давления, пироэлектрический инфракрасный детектор, фотодиодный датчик) к устройству STM32F05xx в приложении для контроля аналогового напряжения с использованием компаратора 2 (COMP2). COMP2 контролирует аналоговое напряжение в режиме останова, в то время как АЦП измеряет его в режиме работы.

Здесь АЦП и КОМП работают поочередно, но я думаю, что оба настроены одновременно. Если мы продолжим в документе, есть блок-схема о конфигурации COMP.

введите описание изображения здесь

Основываясь на этом изображении, я думаю, что ADC и COMP совместно используют один и тот же канал ADC, единственное различие заключается в количестве включенных аналоговых пороговых источников .

Текст под рисунком 5 в вопросе гласит, что

вход компаратора является каналом АЦП

возможно, такой же, как ADC_IN1.

Целью всей этой конфигурации является экономия энергии, COMP запускает изменения состояния MCU (STOP <-> RUN). Поэтому, когда вход ниже определенного порогового значения, MCU и АЦП отключены, и работает только компаратор, а когда вход превышает пороговое значение, MCU и АЦП активизируются, АЦП измеряет входное напряжение. Но если вход снова падает ниже порогового значения, COMP отправляет MCU в состояние STOP.

введите описание изображения здесь

Это один из способов их совместного использования, надеюсь, это продвинет вопрос вперед.

Бенс Кауликс
источник
Спасибо за ваш ответ. Это добавило довольно много к обсуждению. В конце концов я решил наградить кого-то, кто мог бы подтвердить ответ напрямую, но это имеет мое одобрение и очень ценится!
Даниил
Это был очень интересный вопрос, я был рад участвовать. Кроме того, я согласен с тем, что Крис получил награду :). Он проделал большую работу, не жалея сил и времени.
Бенс Кауликс
3

Я думаю, вы должны спросить на форуме STM. Также есть (STM32F1) UART RX и TIMx на одном и том же выводе, оба входа, но вы не можете использовать их вместе, например, обнаружение прерывания таймера окончания передачи. Вместо этого параллельно должен быть подключен другой вывод TIMx, чтобы иметь функцию UART RX и прерывание таймера. Я полагаю, что одновременно может быть активна только одна функция.
Попробуйте скачать MxCube и посмотреть, какую конфигурацию можно построить.

Марко Буршич
источник
Это достойный момент. У меня есть это, я должен видеть, позволяет ли это это. Но даже если это не так, это не обязательно означает, что вы не можете: /
Даниэль
То есть я хотел бы, чтобы документация была лучше и более полной, и я мог бы быть уверен в любом другом ответе, кроме «Я попробовал один раз, и это не сработало»
Даниэль
@Daniel Вы правы, я думаю, что окончательный ответ даст вам сам MCU, когда вы попробуете.
Марко Буршич