Радиолоцман Электроника en
расширенный поиск +
  

14-01-2010

В АЦП на основе ПЛИС используется один конденсатор

Использование времени заряда и разряда конденсатора для считывания пользовательского ввода.

Многим электронным приборам, для установки свойств приложения, требуется пользовательский ввод. Типичные устройства ввода состоят из кнопок, потенциометров и сенсорных панелей. Возможно, что для минимизации общей стоимости проекта были выбраны низко производительные микроконтроллеры, FPGA (массивы программируемых вентилей) или ПЛИС (программируемые логические микросхемы). Эти устройства не содержат большого объема периферийных устройств и часто могут не содержать даже аналого-цифровые преобразователи, которые можно использовать для организации пользовательского ввода.

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

Перед каждым измерением, конденсатор разряжается до 0 В. С помощью одной и той же линии ввода/вывода можно выполнить как разряд конденсатора, так и временные измерения. Для FPGA или PLD, разрядку конденсатора можно выполнить, сконфигурировав линию ввода/вывода как выход и установив на ней уровень логического нуля.

Для зарядки конденсатора линию ввода/вывода нужно сконфигурировать как вход, что переведет ее в состояние с высоким импедансом. Конденсатор заряжается через потенциометр (рис.1). Тем временем, запускается счетчик и CPLD начинает следить за входным напряжением. Как только напряжение на конденсаторе достигнет порогового значения, счетчик останавливается и в нем оказывается записанной величина, пропорциональная времени заряда конденсатора. Время заряда или значение счетчика зависят от тактовой частоты, tсопротивления резистора, емкости конденсатора и величины порогового напряжения:

Если предположить, что значение емкости, пороговое напряжение и частота синхронизации остаются примерно постоянными в процессе измерения, то время заряда будет линейно зависеть от величины сопротивления. Если постоянный резистор заменить потенциометром, то показания счетчика будут зависеть от положения движка потенциометра. В приложении используется микросхема CPLD XC9500XL компании Xilinx (рис.2).

Линия ввода/вывода, которая на языке VHDL (язык описания узлов быстродействующих ИС) описывается как тристабильный буфер, в первый момент времени накоротко замыкает конденсатор. Аппаратно ток короткого замыкания линий ввода/вывода ограничивается на уровне ±10 mA, поэтому для полного разряда конденсатор должен оставаться закороченным в течение довольно большого промежутка времени. Минимальное время разряда можно вычислить, зная емкость конденсатора, ток короткого замыкания и напряжения на конденсаторе, которое можно принять равным пороговому напряжению:

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

В данном приложении, конденсатор, емкостью 22 нФ, заряжается через последовательно включенные потенциометр, сопротивлением 10 кОм, и постоянный резистор, сопротивлением 1 кОм. Входная тактовая частота PLD составляет 1.8432 МГц. Входное пороговое напряжение равно 1.5 В при напряжении питания 3.3 В. Эти параметры позволяют проводить измерения в диапазоне значений показаний счетчика между 25 и 270, что эквивалентно разрешению в 8 Бит. На рис.3 показаны эпюры напряжения при зарядке и разрядке конденсатора.

Эпюры напряжения при зарядке и разрядке конденсатора

Каждая линия ввода/вывода ИС имеет некоторый входящий или исходящий ток смещения, который вызывает падение напряжения на резисторе, используемом для заряда конденсатора. Это вносит ограничение на напряжение заряда конденсатора значением VDD – RCHARGE×IBIAS. Другими словами, если времязадающий резистор имеет слишком большое сопротивление, конденсатор может совсем не зарядиться до порогового напряжения, препятствуя нормальной работе схемы. Подобные приложения для микроконтроллеров или PLD включают дополнительные входы для одной линии ввода/вывода и используют различные значения подтягивающих резисторов для каждого входа. Определяя время зарядки для каждого резистора, микросхема PLD может определить какой резистор или комбинацию резисторов привел в действие пользователь.

Другим применением описанной методики может быть измерение температуры. Заменив подтягивающий потенциометр терморезистором с положительным (PTC) или отрицательным (NTC) температурным коэффициентом, после калибровки, можно измерять температуру исходя из времени заряда конденсатора. Кроме того это устройство можно использовать и для настоящего аналого-цифрового преобразования. После замены подтягивающего резистора на управляемый напряжением источник тока (ИТУН), входное напряжение будет вызывать линейное изменение времени заряда конденсатора, обеспечивая настоящее аналого-цифровое преобразование.

Срезы ↓
Датчики влажности и температуры ДВТ-03
Цена: от 3 168 руб.
Доставка: Россия и страны СНГ
DIY настольный 3D принтер
Цена: 163 $ (9500 руб.)
Промо-акция, последняя скидка
Очки с подсветкой и сменными окулярами
Цена: от 8 $ (477 руб.)
Бесплатная доставка: Весь мир
радиолоцман вконтакте радиолоцман одноклассники радиолоцман facebook радиолоцман twitter радиолоцман google плюс