АЦП в микроконтроллерах STM32: периферия решает многое

3 апреля 2011

Как вы думаете, в чем отличие между микропроцессорами различных производителей с одним и тем же ARM-ядром? Правильно — разница в периферии! Ведь, по сути, ядро — только лишь вычислитель, замкнутый сам на себя, а общаться с внешним миром ему помогают периферийные устройства: порты ввода/вывода, АЦП, счетчики и т.п. Следовательно, разнообразие этих устройств и качество их исполнения во многом определяют применяемость данного МК при решении тех или иных задач. Давайте посмотрим, что же может нам предложить семейство микроконтроллеров STM32.

Основные параметры АЦП различных семейств микроконтроллеров STM32 представлены в таблице 1.

Таблица 1. Параметры АЦП в различных семействах МК STM32  

Серия МК Количество АЦП в одном МК Разрядность, бит Частота дискретизации, Мвыб/сек Количество входных каналов Время
преобразования, мкс
Погрешность преобразования, МЗР
STM32F100 1 12 1 16 1,17…21 2…5
STM32F101 1 1…18
STM32F102 1 1,2…18
STM32F103 2…3 16…21 1…18
STM32F105/107 2 16 1…18
STM32F2xx 3 2 24 0,5…16,4
STM32L 1 1 24 1…25 2…4
STM32W 1 0,1 9 5

Как следует из таблицы, разброс параметров незначителен. Все АЦП имеют разрядность 12 бит, частоту дискретизации до 2 Msps в одиночном режиме и количество входных каналов до 24 (в зависимости от линейки). Выделяется лишь серия STM32W, предназначенная для радиочастотных применений и потому имеющая менее совершенный АЦП. Что касается приборов, в которых присутствует два или три независимых АЦП, то существует возможность увеличить частоту дискретизации путем их настройки на попеременную выборку значений.

Необходимо отметить, что в линейках STM32F1xx и STM32F2xx в парных режимах работы существует возможность увеличения скорости преобразования до 2 Msps и 6 Msps, соответственно. В STM32L АЦП разработан для максимальной экономии энергии без ухудшения параметров (аппаратное отключение между двумя последовательными измерениями).

Рассмотрим более подробно АЦП в линейке STM32F10x.

Каналы АЦП микроконтроллеров STM32 делятся на две группы: регулярные каналы (regular) и инжектированные (injected). Количество регулярных каналов для одного АЦП равняется 18, среди них 16 внешних и два внутренних — опорное напряжение и температурный датчик. Количество приоритетных каналов равняется четырем. Регулярные каналы подразумевают сохранение результатов преобразования через DMA-контроллер в памяти микроконтроллера, а инжектированные каналы имеют собственные регистры для хранения результата. Существует возможность настраивать работу каналов АЦП в произвольном порядке, несколько раз преобразовывать подряд одни и те же каналы, использовать внешние и программные события для старта преобразования.

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

Немаловажная часть — задание времени преобразования для каждого канала. Всего можно задать восемь значений времени для каждого канала в диапазоне 1,5…239,5 циклов тактирования модуля АЦП.

 

Независимая работа

Этот режим имеет место, когда в составе МК имеется только один АЦП, или когда несколько АЦП настроены на работу без взаимодействия друг с другом. В этом случае возможны следующие режимы работы.

 

1. Одноканальный (Single-channel)

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

 

2. Многоканальный (Scan)

В этом режиме возможно сконфигурировать АЦП для выполнения определенного количества (например, 16) последовательных преобразований значений из различных каналов в любой последовательности (например, Канал1-Канал7-Канал12-Канал12-Канал5…). Делается это с помощью записи в специальный регистр последовательности номеров каналов в том порядке, в котором мы желаем осуществить преобразование. Время преобразования также настраивается отдельно для каждого канала. После обработки указанного числа каналов (от 1 до 16) АЦП останавливается. Этот режим может быть полезен, например, при периодическом оценивании среды или обстановки с помощью нескольких датчиков.

 

3. Одноканальный продолжительный (Single continuous)

Этот режим аналогичен первому, за тем исключением, что после окончания однократного преобразования АЦП не останавливается, а продолжает выбирать отсчеты из одного определенного канала. Широко применяется при непрерывном мониторинге аналоговых сигналов. Для хранения результатов всех обычных каналов выделен один и тот же регистр. Поэтому перед получением следующего значения необходимо позаботиться о сохранении в памяти предыдущего (например, с помощью контроллера DMA).

 

4. Многоканальный продолжительный (Scan continuous)

То же самое что многоканальный (Scan), только АЦП не останавливается после опроса всех каналов, а снова продолжает выбирать отсчеты, начиная с первого.

 

5. Прерывистый (Discontinuous)

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

 

Парная работа

Необходимо отметить, что парный режим работы возможен, если в составе МК имеются два или более АЦП. Это значительно расширяет возможности по оцифровке сигналов и добавляет несколько более сложных режимов работы.

 

1. Одновременный для обычных и приоритетных каналов
(Regular/Injected simultaneous)

При наступлении внешнего события первый АЦП будет сканировать каналы начиная с 0 до 15 для регулярных каналов или с 0 до 3 для инжектированных, а второй — наоборот, с 15 до 0 или с 3 до 0. Таким образом, каждый канал за тот же период времени будет обработан дважды. Необходимо обеспечить, чтобы период между событиями, запускающими преобразование, был как минимум в два раза больше, чем время, необходимое на само преобразование. Нужно вовремя извлекать результаты из регистра данных АЦП в оперативную память. Причем результат преобразования для АЦП2 будет содержаться в старшем полуслове регистра данных, а для АЦП1 — в младшем.

 

2. Быстрый попеременный
(Fast interleaved)

Доступен только для одного выбранного регулярного канала. При наступлении внешнего события АЦП2 стартует немедленно, а АЦП1 — с задержкой в семь тактов. Если установлен продолжительный (continuous) режим, то такая последовательность будет повторяться далее, что дает возможность удвоить частоту семплирования входного сигнала.

 

3. Медленный попеременный
(Slow interleaved)

Все как в предыдущем режиме, только АЦП1 стартует с задержкой в 14 тактов, а после окончания первого преобразования АЦП2 тоже выдержит задержку 14 тактов перед повторным стартом.

 

4. Переменный по триггеру
(Alternate trigger)

Доступен только для инжектированных каналов. При наступлении внешнего события АЦП1 начинает последовательно преобразовывать все инжектированные каналы. При наступлении следующего внешнего события АЦП2 начинает делать то же самое. Если установлен прерывистый (discontinuous) режим, то будет преобразован только один следующий канал на каждое наступившее событие. Этот режим позволяет получить два значения выборки, максимально близкие друг к другу (вплоть до 1…1,5 такта).

 

5. Комбинированный одновременный режим для регулярных/инжектированных каналов (combined regular/injected simultaneous mode)

Происходит преобразование обоих групп каналов. Но особенность заключается в том, что инжектированная группа каналов может прервать регулярную группу (рис. 1).

 

Комбинированный одновременный режим

 

Рис. 1. Комбинированный одновременный режим

 

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

 

6. Комбинированные одновременный регулярный и переменный по триггеру режимы (combined regular simultaneous + alternate trigger mode)

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

 

Комбинированные одновременный и переменный по триггеру режимы

 

Рис. 2. Комбинированные одновременный и переменный по триггеру режимы

 

7. Комбинированные инжектированный одновременный режим и режим со смещением каналов (combined regular simultaneous + alternate trigger mode)

Преобразование регулярных каналов осуществляется со смещением по времени и происходит одновременное преобразование двух групп инжектированных каналов (рис. 3).

 

Комбинированные инжектированный одновременный режим и режим со смещением каналов

 

Рис. 3. Комбинированные инжектированный одновременный режим и режим со смещением каналов

 

Заключение

Несомненно, множество режимов работы совместно с высокими собственными параметрами обеспечивают отличную перспективу применения 32-битных микроконтроллеров компании ST. Причем с каждой следующей серией заметна тенденция к дальнейшему повышению как частот семплирования, так и разрядности встроенных в МК АЦП. По предварительным данным, в новых линейках STM32 на ядре ARM Cortex-M4 будет доступен 16-битный сигма-дельта АЦП с дифференциальными входами. Это делает его не просто дополнением для приблизительной оценки каких-либо параметров, но и полноценным измерительным инструментом. Там где ранее при построении устройства необходимо было делать выбор в сторону внешнего стороннего АЦП, теперь есть возможность упростить схемотехническое, алгоритмическое решение и в результате получить более простое, дешевое, ремонтопригодное, а следовательно — более конкурентоспособное конечное изделие.

Получение технической информации, заказ образцов, поставка — e-mail: mcu.vesti@compel.ru

 

 

•••

Наши информационные каналы

О компании ST Microelectronics

Компания STMicroelectronics является №1 производителем электроники в Европе. Компоненты ST широко представлены в окружающих нас потребительских товарах – от iPhone до автомобилей разных марок. Лидеры индустриального рынка выбирают компоненты ST за их надежность и выдающиеся технические параметры. В компании ST работает 48 000 сотрудников в 35 странах. Производственные мощности расположены в 12 странах мира. Более 11 тысяч сотрудников заняты исследованиями и разработками – инновационное лидерство ...читать далее