Оглавление:

Как сделать АЦП текущим значением: 5 шагов
Как сделать АЦП текущим значением: 5 шагов

Видео: Как сделать АЦП текущим значением: 5 шагов

Видео: Как сделать АЦП текущим значением: 5 шагов
Видео: Аналоговые входы АЦП, Принцип работы, АЦП своими руками на микроконтроллере 2024, Ноябрь
Anonim
Как сделать АЦП актуальным
Как сделать АЦП актуальным

В этом руководстве мы опишем, как реализовать 8-битный аналого-цифровой преобразователь (АЦП) в SLG46855V, который может определять ток нагрузки и взаимодействовать с MCU через I2C. Эта конструкция может использоваться для различных приложений измерения тока, таких как амперметры, системы обнаружения неисправностей и датчики уровня топлива.

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

Шаг 1: Архитектура АЦП

Архитектура АЦП
Архитектура АЦП

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

В нашей реализации мы создаем ЦАП, используя резисторную цепь с управляемой широтно-импульсной модуляцией (ШИМ). Используя GreenPAK, мы можем легко создать точный ШИМ-выход с цифровым управлением. После фильтрации ШИМ становится нашим аналоговым напряжением и, таким образом, служит эффективным ЦАП. Явным преимуществом этого подхода является то, что легко установить напряжения, которые соответствуют нулевому коду и полной шкале (эквивалентно смещению и усилению), просто регулируя значения резистора. Например, пользователь хочет в идеале считывать нулевой код с датчика температуры при отсутствии тока (0 мкА), соответствующий 4,3 В, и полномасштабный код при 1000 мкА, соответствующий 3,9 В (Таблица 1). Это легко реализовать, просто установив несколько значений резистора. Благодаря тому, что диапазон АЦП соответствует диапазону интересующего датчика, мы максимально используем разрешение АЦП.

При проектировании этой архитектуры необходимо учитывать, что внутренняя частота ШИМ должна быть намного выше, чем частота обновления АЦП, чтобы предотвратить недостаточное демпфирование его контура управления. По крайней мере, он должен быть больше, чем тактовая частота счетчика данных АЦП, деленная на 256. В этой схеме период обновления АЦП установлен на 1,3312 мс.

Шаг 2: Внутренний контур

Внутренний контур
Внутренний контур

Гибкий АЦП основан на конструкции, представленной в Dialog Semiconductor AN-1177. Тактовая частота увеличена с 1 МГц до 12,5 МГц, чтобы синхронизировать счетчик АЦП, поскольку SLG46855 имеет тактовую частоту 25 МГц. Это обеспечивает гораздо более высокую частоту обновления для более точного разрешения выборки. LUT, синхронизирующий тактовую частоту данных АЦП, изменяется так, что он будет проходить через сигнал 12,5 МГц, когда PWM DFF низкий.

Шаг 3: Внешний контур

Внешний контур
Внешний контур

Внешний резистор и конденсаторная сеть используются для преобразования ШИМ в аналоговое напряжение, как показано на принципиальной схеме на Рисунке 1. Значения рассчитаны для максимального разрешения для максимального тока, который будет воспринимать устройство. Чтобы добиться такой гибкости, мы добавляем резисторы R1 и R2 параллельно VDD и земле. Резисторный делитель делит VBAT до нижней части диапазона напряжения. Коэффициент делителя для ожидаемого минимального VBAT может быть решен с помощью уравнения 1.

Шаг 4: I2C Прочтите инструкции

I2C Прочтите инструкции
I2C Прочтите инструкции

В таблице 1 описана структура команды I2C для обратного чтения данных, хранящихся в CNT0. Для команд I2C требуются стартовый бит, управляющий байт, адрес слова, бит чтения и стоповый бит.

Ниже приведен пример команды I2C для считывания подсчитанного значения CNT0:

[0x10 0xA5] [0x11 R]

Считываемое значение, которое считывается обратно, будет значением кода АЦП. Например, код Arduino включен в ZIP-файл этой заметки по применению на веб-сайте Dialog.

Шаг 5: результаты

Полученные результаты
Полученные результаты
Полученные результаты
Полученные результаты
Полученные результаты
Полученные результаты

Чтобы проверить точность конструкции датчика тока АЦП, измеренные значения при заданном токе нагрузки и уровне VDD сравнивались с теоретическим значением. Теоретические значения АЦП были рассчитаны по уравнению 2.

ILOAD, который коррелирует со значением ADC, находится с помощью уравнения 3.

Для следующих результатов я использовал значения компонентов, показанные в таблице 3.

Разрешение преобразования значения АЦП в ILOAD можно рассчитать с помощью уравнения 3 с измеренными значениями в таблице 2 и значением АЦП, установленным на 1. При VBAT 3,9 В разрешение составляет 4,96 мкА / дел.

Чтобы оптимизировать схему измерения тока АЦП до минимального уровня VDD 3,6 В с максимальным током 1100 мкА и резистором считывания 381 Ом, идеальный коэффициент делителя будет равен 0,884 на основе уравнения 1. Со значениями, приведенными в таблице 2 фактический делитель имеет коэффициент делителя 0,876. Поскольку это немного меньше, это позволит немного увеличить диапазон тока нагрузки, чтобы значения АЦП были близки к полному диапазону, но не переполнялись. Фактическое значение делителя рассчитывается по формуле 4.

Выше (рисунки 2-6, таблицы 4-6) приведены измерения схемы на трех уровнях напряжения: 4,3 В, 3,9 В и 3,6 В. На каждом уровне отображается график, показывающий разницу между измеренными и теоретическими значениями АЦП. Теоретические значения округляются до ближайшего целого числа. Существует сводный график для сравнения различий на трех уровнях напряжения. После этого появляется график, отображающий корреляцию между теоретическими значениями АЦП и током нагрузки на разных уровнях напряжения.

Заключение

Устройство было протестировано при трех уровнях напряжения: 3,6 В, 3,9 В и 4,3 В. Диапазон этих напряжений моделирует полностью литий-ионную батарею, которая разряжается до номинального уровня. Замечено, что из трех уровней напряжения устройство обычно было более точным при 3,9 В для выбранной внешней цепи. Разница между измеренными и теоретическими значениями АЦП составляла всего одно десятичное значение при токах нагрузки 700 - 1000 мкА. В данном диапазоне напряжений измеренные значения АЦП в худшем случае были на 3 десятичных знака выше номинальных значений. Дополнительные настройки резистивного делителя могут быть выполнены для оптимизации различных уровней напряжения VDD.

Рекомендуемые: