реклама на сайте
подробности

 
 
> STM32F103. Взаимное влияние каналов АЦП?
Lost_Viking
сообщение Mar 30 2014, 09:07
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 168
Регистрация: 25-04-08
Пользователь №: 37 091



Камень STM32F103VET6
Отладочная плата , как у автора данной статьи: STM32 и дисплей

Небольшая предыстория:

Была у меня как-то идея из пьезодатчиков сделать датчики пульсирующего давления. А точнее - пульсирующего отрицательного давления относительно атмосферного, иначе говоря датчики пульсирующего разрежения wacko.gif . Где-то на форуме я уже поднимал вопросы по этой теме, но то было все на AVRах. Миграция на STM32 обусловлена некоторыми факторами. Так как времени свободного у меня почти нет, то работа эта растянулась на годы.

С датчиков снимается сигнал в виде производной от давления. Датчики включены так, что при нажатии на них снимается отрицательный сигнал, при отпускании - положительный. То есть при росте разрежения сигнал снимается положительный относительно "земли". Что бы узнать реальное давление необходимо проинтегрировать сигнал. Интегрировать собираюсь каждый период в отдельности, то есть от "нуля" до "нуля". Все это было проведено на собранном мною стенде (показывать не буду, ибо выглядит жутко), и сигналы были все обсчитаны в EXCEL'e . Получилось вот что:

Скриншот 1
Скриншот 2

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

Для всех этих хитростей достаточно одного канала АЦП, одного датчика. Но в дальнейшем у меня в работе будет 4 датчика. И по этому собственно сам вопрос встает следующим образом:

Немного уточню чего хочу сделать. Есть 4 пьезо-датчика, сигналы с них идут сложной периодической формы. Значения снимаемого с них сигналов ниже нуля не интересуют. Частоты сигналов от 6 Гц до 50 Гц. Для более точной оцифровки решил использовать частоту дискретизации с запасом (500Гц, по 10 семплов на период для максимальной частоты). Возможно, что потребуется поднять верхний предел до 70Гц. Амплитуда положительной части сигналов до 10 вольт. Соответственно, будет использован делитель на сопротивлениях, хотя не уверен насколько правильным будет его использование с пьезодатчиками и АЦП. Каждый период сигнала будет интегрироваться (суммированием семплов), потом полученный интеграл (первообразная) будет домножаться на определенный коэффициент, зависящий от длительности сигнала с датчика.

1) Реально ли на данном камне реализовать 4 канала АЦП с частотой дискретизации 500гц каждый ? На AVRе были проблемы с емкостью, что при коммутации каналов АЦП давала эффект влияния каналов друг на друга. Здесь же я наткнулся вот на такую интересную вещь: описание явления. Эффект похожий. На AVRе я просто пропускал несколько семплов после переключения канала. Как быть здесь?

2) STM32F103VET6 имеет 3 канала АЦП. Если пункт 1) реален, то как лучше мне организовать измерение 4 каналов, учитывая, что между измерениями будет выполняться матчасть, и будет организован вывод на 7-сегментный индикатор и будет опрос кнопок? Использовать RTOS ?

3) И еще раз - что делать с влиянием каналов друг на друга? Я так понимаю, что если использовать только 3 датчика, и повесить их на ADC1, ADC2, ADC3 , то это влияние можно минимизировать, может быть даже исключить. Если использовать 4 датчика, то один из каналов придется переназначать в процессе опроса. Алгоритм представляю, но влияние каналов...

В общем, сильно не пинайте. Ну уж хочется мне попробовать тарировать пьезоэлементы для использования в некоторых гаражных целях, заодно изучить тонкости STM32 =))

Сообщение отредактировал Lost_Viking - Mar 30 2014, 09:58
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Mar 30 2014, 16:03
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Lost_Viking @ Mar 30 2014, 11:07) *
На AVRе были проблемы с емкостью, что при коммутации каналов АЦП давала эффект влияния каналов друг на друга.
Нету такого эффекта у AVR. Есть несоблюдение разработчиком требований документации. Обеспечьте выходное сопротивление источника сигнала для AVR менее 10Ком (как этого требует документация) и никакого влияния не будет. Как угодно обеспечивайте, хоть ОУ повторителем включите. Здесь абсолютно то же самое. Влияния каналов друг на друга у STM32 при соблюдении требований доументации нет. Каково выходное сопротивление вашего датчика?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 12:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01397 секунд с 7
ELECTRONIX ©2004-2016