Аналого-цифровое преобразование, основанное на классической комбинации преобразователя напряжения в частоту (ПНЧ) со счетчиком, существует уже много десятилетий, главным образом потому, что оно имеет ряд проверенных временем преимуществ. Дискретизация с помощью ПНЧ основана на интегрировании, поэтому она естественным образом обеспечивает хорошее подавление шумов, как и программируемое разрешение (если вам нужно больше битов, просто считайте дольше). К сожалению, о высокой скорости преобразования этого сказать нельзя.
Полезное разрешение (8 или более бит) при времени преобразования ПНЧ в десятки микросекунд требует выходных частот в десятки мегагерц. Конструкции ПНЧ, способные работать с такой скоростью, существуют, например, потрясающий 100-мегагерцовый Кинг-Конг Джима Уильямса [1] и мой собственный «20-мегагерцовый ПНЧ с зарядовым насосом» [2]. Однако эти возможные решения лишь создают еще одну потенциально досадную проблему. Что использовать в качестве счетчика?
Часто (без каламбура) идеальным и наиболее экономичным цифровым партнером для ПНЧ является встроенный периферийный модуль счетчика-таймера (counter-timer peripheral, CTP) микроконтроллера (МК), обычно обеспечивающий разрешение 16 бит при нулевой стоимости дополнительных компонентов. К сожалению, необходимость взятия нескольких (например, четырех) выборок каждого периода входящих импульсов с помощью встроенной логики CTP ограничивает максимальную скорость счета до доли (обычно ¼) частоты внутреннего тактового генератора МК.
Таким образом, для 20-мегагерцового внутреннего тактового генератора 5 МГц – это самая высокая достижимая скорость счета CTP. Прости, Конг.
Конечно, можно использовать внешний аппаратный счетчик, который легко поддержит быстрые ПНЧ (ладно, может быть, Конг не так уж и прост), но стоимость, количество деталей и площадь платы делают этот вариант довольно непривлекательным.
На Рисунке 1 показана компромиссная топология, которая сочетает в себе CTP, делающий то, что он делает лучше всего (предоставляет много битов), с одной внешней 4-разрядной микросхемой двоичного счетчика, выполняющей функцию предварительного делителя и аккумулятора. Это увеличивает скорость работы периферийного устройства до 16 раз (следовательно, до 80 МГц при верхней частоте CTP, равной 5 МГц) за счет (максимум) четырех дополнительных выводов входов/выходов общего назначения (GPIO).
![]() |
|
Рисунок 1. | 100-мегагерцовый счетчик предварительно делит и накапливает младшие биты ПНЧ, чтобы неуклюжий CTP мог справиться с преобразованием. |
Вот как это работает.
- Пять выводов GPIO запрограммированы для обмена с делителем/аккумулятором:
а. Четыре как входы (от IN1 до IN4);
б. Один как выход (OUT). - IN4 также запрограммирован на ввод в выбранный CTP, настроенный на 16-битное накопление.
Каждый цикл интегрирования ПНЧ состоит из следующих этапов:
- OUT = 0 для запрета счета.
- 20-битное начальное значение (X1) формируется путем конкатенации состояний битов INx (как 4 младших битов) с 16 битами CTP (как 16 старших битов), т. е. X1 = [CCCC CCCC CCCC CCCC IIII].
- OUT = 1 для желаемого интервала интегрирования. Практический максимум составляет отношение 220 к максимальной выходной частоте ПНЧ, который может быть короче, если требуется более низкое разрешение и/или более высокая скорость преобразования.
- OUT = 0 для замораживания счета.
- 20-битное конечное значение (X2) формируется путем конкатенации INx с CTP.
- Результат 20-битного преобразования равен X2 – X1 по модулю 220.
Обратите внимание, что если отношение максимальной частоты ПНЧ к максимальной скорости счета CTP меньше 8x, то для интерфейса необходимо выделить только три вывода INx (Xx = [CCC CCCC CCCC CIII]), при этом IN3 запрограммирован как вход CTP. Если же меньше 4x, то только два вывода (Xx = [CC CCCC CCCC CCII]). И так далее.
Если простота арифметики важнее экономии выводов GPIO, то шестой выходной вывод можно подключить к /LOAD и в начале преобразования подавать импульс низкого уровня для сброса битов INx в ноль, а также выполнять аналогичную предварительную загрузку битов CTP. Это позволит исключить из последовательности преобразования некоторые шаги.
Ссылки
- Williams, Jim. "Designs for High Performance Voltage-to-Frequency Converters."
- Stephen Woodward. 20-мегагерцовый ПНЧ с зарядовым насосом