Перейти к содержанию
    

STM32 и ADC

Наверное что-то не заметил, но как быть в такой ситуации. Например, запущена группа каналов в циклическом режиме с прерыванием от аналогового вотчдога. Если такое прерывание происходит, то как выяснить от какого именно входа АЦП он пришел? Должен же быть регистр, где хранится номер текущего или последнего канала?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Наверное что-то не заметил, но как быть в такой ситуации. Например, запущена группа каналов в циклическом режиме с прерыванием от аналогового вотчдога. Если такое прерывание происходит, то как выяснить от какого именно входа АЦП он пришел? Должен же быть регистр, где хранится номер текущего или последнего канала?

Похоже, что никак. Прерывание "окончание преобразования" вызывается когда заканчивается преобразование по всем каналам (а зачем чаще?), а вот аналоговый ватчдог один на все каналы, и наиболее логично может применяться для какого-то одного канала. Хотя, имхо, это может иметь смысл только при высоких скоростях преобразования, иначе удобнее это сделать программно. Отдельного же регистра, где можно узнать номер текущего канала, я не нашел. Да и с учетом времени входа в прерывание вероятность переключиться на "следующий" канал за это время довольно высока, т.е. этот способ не гарантировал бы правильность определения номера канала.

 

Сам я стм32 еще не применял (работал с ихним стр911, впечатления положительные), но уже заложил в один проект и примеряюсь к другому. Имеется встречный вопрос: насколько хорош АЦП у стм32? Интересуют шумовые характеристики в первую очередь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо. Значит я не ошибся.

Насчет АЦП могу высказать только личные впечатления (специалисты, возможно, поправят и дополнят). Сравнивая с AVR, очень важным оказалось правильная разводка, как можно больше конденсаторов на своих местах и фильтрация входных сигналов, т.к. шумы цифровой части, особенно на высоких частотах, легко ловятся АЦП. В принципе, удалось добиться, что шумы не превышали +-2-3 уровня квантования. Правда рядом работала мощная силовая схема (в идеальных условиях можно и +-1LSB получить)). В общем если расчитывать, что АЦП берется с небольшим запасом, то вполне приемлемо. Правда, если важно быстродействие, то ядро для такого потока данных все-таки слабовато (в AVR в таких случаях можно было уйти в ассемблер)).

Изменено пользователем gregory812

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что мешает в стм32 уйти в асемблер ?

 

Во-первых, еще не освоенность этой области, а во-вторых, как мне кажется, более запутанный код ассемблера АRM в купе с конвеерами и т.п. может привести к непредсказуемым ошибкам. Хотя здесь все зависит от опыта. Да и была надежда, что на такой мощи можно будет забыть про низкоуровневое программирование )).

Изменено пользователем gregory812

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всё же интересует чуть более подробная информация об АЦП, если можно. Какую частоту выборки использовали, что было источником сигнала, что опорой, и какой шум был получен. Сравнение с AVR только запутало ситуацию: там АЦП 10-разрядный, здесь 12-разрядный. Так шум, указанный Вами, исходя из 10 или 12 разрядов? И "+-2-3 уровня квантования" - это значит 4-6 ед. от пика до пика? А каков характер этого шума? И спектр случайно не анализировали?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всё же интересует чуть более подробная информация об АЦП, если можно. Какую частоту выборки использовали, что было источником сигнала, что опорой, и какой шум был получен. Сравнение с AVR только запутало ситуацию: там АЦП 10-разрядный, здесь 12-разрядный. Так шум, указанный Вами, исходя из 10 или 12 разрядов? И "+-2-3 уровня квантования" - это значит 4-6 ед. от пика до пика? А каков характер этого шума? И спектр случайно не анализировали?

 

Для простой проверки АЦП (скорость 1МГц) подавал на один из входов постоянное напряжение взятое с 10кОм потенциометра от 3.3В полученное со стабилизатора IRU1117-3.3. Это же напряжение использовал как опорное. От отсчета к отсчету увидел перепады до 2ед., иногда 3 ед. Форма шума характеризовалась именно тем, что каждое следущее преобразование давало полный размах отклонения.

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

Изменено пользователем gregory812

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ни как не могу понять, каким образом выбираются опорные напряжения для ADC ?

У меня STM32L151 в 48 пиновом корпуса, соответственно ног Vref+ Vref- нет . Но куда они подключенны

внутри и как ими управлять ? Прочитал про ADC в документации , но том ни слова про то что бы опортное напряжение выбиралось в каком-то регистре.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

из CD00277537.pdf

 

VREF+ can be internally connected to VDDA and VREF- can be internally connected to VSSA, depending on the package.

Refer to Section 4: Pin descriptions for further details.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...