Измерение напряжения и тока по I2C

Этот модуль позволяет измерять постоянное напряжение в широком диапазоне и ток (со значением зависящим от используемого измерительного резистора). Считывание результатов возможно через интерфейс I2C, что позволяет использовать модуль совместно с Raspberry Pi, Arduino, STM32 и так далее. В основе модуля лежит микросхема LTC4151, внутренняя схема которой показана на рисунке. Это специализированный трехканальный 12-разрядный преобразователь АЦП со встроенными схемами измерения напряжения и тока.

Назначение устройства – контролировать параметры мощности или нагрузки в положительной силовой шине. Диапазон измерения напряжения 7 – 80 В, а сила тока зависит от внешнего шунта Rs (полный диапазон измеряемого напряжения 82 мВ). Третий универсальный канал ADIN используется для измерения внешнего напряжения, которое должно находиться в диапазоне 0 – 2 В.

Электрическая схема модуля

Схема модуля представлена на рисунке. Внешний источник питания подключается к клеммам 1 и 2 разъема PWR. Благодаря встроенному в U1 делителю напряжения диапазон измерения составляет 7 – 80 В, а разрешение – 25 мВ.

Технические параметры

  • диапазон измерения напряжения: 7 – 80 В с разрешением 25 мВ,
  • диапазон измерения тока: до 2 А с разрешением 0,5 мА,
  • диапазон измерения тока зависит от внешнего шунта и может быть изменен,
  • есть третий универсальный канал измерения напряжения в диапазоне 0 – 2 В,
  • связь через интерфейс I2C.

Нагрузка подключается к клеммам 2 и 3 разъема измерения тока PWR. Ток нагрузки измеряется косвенно, путем измерения падения напряжения на резисторах RS1 и RS2. Максимальное падение напряжения на измерительных резисторах может составлять 82 мВ, что соответствует разрешающей способности 20 мкВ. Тут используется резистор 40 мОм, который устанавливает диапазон измерения тока 2 А с разрешением 0,5 мА.

Для обеспечения максимальной точности измерения следует использовать неиндуктивные резисторы соответствующей мощности и допуском не более 1%. Изменяя значения RS1 и RS2, можно настроить диапазон измерения тока в соответствии с требованиями приборов, место для двух резисторов облегчает их возможный выбор. В случае измерения более высоких токов и, следовательно, больших потерь мощности, шунт следует размещать за пределами печатной платы.

Дополнительный канал VIN преобразователя доступен на разъеме J1. Контакт SHDN, доступный на разъеме J2, активный в низком состоянии, позволяет схеме перейти в режим пониженного энергопотребления.

Шина I2C выведена на разъемы I2C / I2CA типа EH и JST 1 мм, а также на разъемы J1 и J2. Схема работает с шиной I2C с напряжениями в диапазоне 3,3 – 5 В. Для включения измерительной части U1 необходимо постоянное наличие напряжения источника Vs1. Перемычки A0 и A1, выполненные в виде полей на печатной плате, позволяют выбрать один из адресов, как показано в таблице.

Резистор RP поляризует управляющие сигналы, светодиод LD показывает наличие питания.

Микросхема LTC4151 имеет один неизменяемый адрес глобального вызова, который упрощает настройку и одновременное преобразование, когда несколько микросхем взаимодействуют в устройстве (аналогично некоторым драйверам светодиодов I2C). Конфигурация и считывание результатов измерений осуществляется обработкой регистров по определенным косвенным адресам в соответствии с другой таблицей.

Чип LTC4151 позволяет работать в двух режимах: однократном (моментальный снимок), где выбирается однократное преобразование в определенном канале (SENSE / VIN / ADIN), или непрерывном (автономный режим), при котором каналы измерения обновляются последовательно с частотой 6 – 9 Гц. Состояние преобразования выбранного канала сигнализируется состоянием бита B3 в регистрах B, D, F соответственно.

Конфигурация осуществляется записью регистра CONTROL (0x06), значение битов следующее:

  • B7: выбор режима преобразования, 1 = снимок, 0 = автономная работа,
  • B6, B5: выбор канала в режиме моментального снимка, 00 = Sense, 01 = Vin, 10 = ADIN,
  • B4: 1 = тестовый режим, возможна запись в регистры AD, 0 = работа,
  • B3: 1 = включить, 0 = отключить пейджинг (чтение / запись),
  • B2: 1 = включено, 0 = отключено Таймер сброса шины I2C отключен,
  • B1, B0: 00, зарезервировано.

Модуль смонтирован на двусторонней печатной плате, чертеж которой вместе с расположением элементов представлен на рисунке.

Механическая конструкция модуля позволяет без проблем работать с различными макетами плат, рекомендуем использовать длинные (30 … 40 мм) SIP-коннекторы, впаянные так, чтобы выводы выступали с обеих сторон печатной платы. Такой способ установки позволяет удобно использовать контакты, облегчая вывод сигналов и расширение шины I2C.

Настройка модуля I2C

Для быстрой проверки работы модуль можно подключить к шине I2C Raspberry Pi, а источник питания и нагрузку можно подключить к разъему PWR. Используя библиотеку i2ctools, после установки базового адреса с помощью перемычек A1 и A0 (по умолчанию A1, A0 = LL, address = 0x6F) модуль должен быть видимым после чтения шины с помощью команды i2cdetect -y 1.

Результат команды показан на рисунке, установленный 7-битный базовый адрес – 0x6F, а видимый фиксированный глобальный адрес – 0x66.

Схема настроена на работу в непрерывном режиме командой:

i2cset -y 1 0x6f 0x06 0x04

Можем читать регистры с обработанными значениями с помощью команды:

i2cdump -y -r 0x00-0x06 1 0x6f

Вот результат образца:

[email protected]:~ $ i2cdump -y -r 0x00-0x06 1 0x6f
Размер не указан (с использованием доступа к байтовым данным)
0 1 2 3 4 5 6 7 8 9 a  b c d e f 0123456789abcdef
00: 00 00 13 d0 7f c0 04 ..?????

Значения конвертируются по формуле:

АЦП = ([reg] << 4) + ([reg + 1] >> 4)

Для пар регистров 0/1, 2/3, 4/5 и с учетом коэффициентов преобразования получаем значение тока и напряжения питания и значение вспомогательного канала ADIN. Применяя Arduino можете использовать библиотеку LTC4151-master.