Практическое использование микросхемы INA219
Блок питания с применением INA219
- три StepDown DC-DC преобразователя;
- управляющий микроконтроллер ATMEGA328 (Arduino);
- индикация на дисплее от телефона Nokia 3510 или 5110.
В радиолюбительской практике часто используемые напряжения имеют номиналы в 5 и 12 В реже 3.3 и 15 В с небольшими токами потребления, что натолкнуло на идею создания данного устройства. Фактически это три StepDown DC-DC преобразователя, один из которых имеет вынесенные на переднюю панель потенциометры для плавной регулировки напряжения и ограничения тока. Один из преобразователей настроен на 5В, другой на 12В а третий – регулируемый. Каждый преобразователь имеет на дисплее от Нокии 3310 свое место для отображения параметров (напряжение, ток, мощность). На вход DC-DC подается напряжение от любого (15…26В, например от ноутбука) стандартного блока питания или, как у меня от 4-х последовательно соединенных батарей 18650 (можно использовать любое количество совместно со StepUp DC-DC преобразователем). Идея такова, что данное устройство, имея небольшие размеры, располагается непосредственно возле настраиваемого проекта и имеет минимальное количество и длину проводов через весь стол. И практика это подтвердила. Бесспорным удобством есть то, что нет необходимости "крутить головой" для контроля параметров при настройке проекта.
Конечные параметры устройства будут завесить от применяемых DC-DC преобразователей, главное не выходить за пределы возможностей микросхемы: напряжение не более 26В и ток при шунте 0.1 Ом - не более 3А. Хотя, меняя шунт и настройки микросхемы или меняя программное обеспечение, ток может быть большим или меньшим.
В моем варианте использованы китайские 3-х амперные StepDown DC-DC преобразователи с ограничением тока (5-ти и 12-ти вольтовые имеют стандартные настройки "под шлиц", а у третьего потенциометры на передней панели)
INA219B – микросхема для измерения потребляемого тока, напряжения и мощности с высокой точностью. Выходной интерфейс - шина I2C.
Измерительный шунт устанавливается в разрыв «+» питания, а не «-», и в таком случае не возникает нежелательный сдвиг потенциалов между «землей» нескольких устройств, объединенных в общую схему.
I2C адрес микросхемы INA219 можно изменить запайкой перемычек А0 и А1. Возможно четыре различных комбинации установки адресных перемычек. Для увеличения точности измерений предусмотрен регистр калибровки. Напряжение в микросхеме измеряет аналого-цифровой преобразователь (АЦП) и может работать в 9-ти, 10-ти, 11-ти, 12-ти битных режимах. Настраивается режим работы микросхемы изменением регистра конфигурации.
Характеристики INA219
- Напряжение питания: от 3.0 до 5.5 В;
- Разрядность АЦП: 12 бит;
- Выходной интерфейс: I2C;
- Скорость интерфейса: 3.4 МГц;
- Диапазон измеряемых напряжений: от 0 до 26 В;
- Максимальный измеряемый ток: от -3.2 A до 3.2 A;
- Дискретность при измерении тока: 0.8 мА;
- Точность измерений по току и напряжению: 1 %;
- Диапазон рабочих температур: от -40 до +125 °C;
- Дрейф в рабочем температурном диапазоне: 100 мкВ;
- Калибровка: калибровочный регистр;
- Внутренние данные: измеренный ток и мощность;
- Фильтрация: х128 отсчетов.
Система установки I2C адреса на INA219
Если используется более одной микросхемы INA219, то каждой должен быть присвоен уникальный адрес. Это делается с помощью адресных перемычек. Базовый адрес I2C равен 0x40. Бинарный адрес, который вы программируете с помощью перемычек адресов, добавляется к базовому адресу I2C.
A1 | A0 | Адрес (bin) | Адрес (hex) |
GND | GND | 1000000 | 0x40 |
GND | VS+ | 1000001 | 0x41 |
GND | SDA | 1000010 | 0x42 |
GND | SCL | 1000011 | 0x43 |
VS+ | GND | 1000100 | 0x44 |
VS+ | VS+ | 1000101 | 0x45 |
VS+ | SDA | 1000110 | 0x46 |
VS+ | SCL | 1000111 | 0x47 |
SDA | GND | 1001000 | 0x48 |
SDA | VS+ | 1001001 | 0x49 |
SDA | SDA | 1001010 | 0x4A |
SDA | SCL | 1001011 | 0x4B |
SCL | GND | 1001100 | 0x4C |
SCL | VS+ | 1001101 | 0x4D |
SCL | SDA | 1001110 | 0x4E |
SCL | SCL | 1001111 | 0x4F |
Описание регистров INA219
INA219 использует 5 регистров для хранения настроек конфигураций, результатов измерений, максимальных/минимальных пределов и информации о состоянии. В таблице ниже представлены регистры INA219.
Содержимое регистра обновляется 4 мкс после завершения команды записи. Следовательно, требуется задержка в 4 мкс между завершением записи в заданный регистр и последующим считыванием этого регистра (без изменения указателя) при использовании частот SCL, превышающих 1 МГц.
Адрес | Имя регистра | Функция | Сброс | Тип |
Hex | Hex | |||
0x00 | Конфигурации | Сброс всех регистров, настройка диапазона напряжения шины, усиление PGA, разрешение / усреднение АЦП. | 0x399F | R/W |
0x01 | Напряжение шунта | Данные измерения напряжения шунта. | — | R |
0x02 | Напряжение шины | Данные измерения напряжения шины. | — | R |
0x03 | Мощность | Данные измерения мощности. | 0x0000 | R |
0x04 | Ток | Содержит значение тока, протекающего через шунтирующий резистор. | 0x0000 | R |
0x05 | Калибровка | Калибровочный регистр. Полная калибровка системы. | 0x0000 | R/W |
Схема устройства довольно простая и особых пояснений не требует.
Измерительная часть построена на базе платы Atmega 328 Pro mini и дисплея от Нокии 3310(5510).
Отдельного внимания требует программная часть проекта, поскольку я не программист и использовал стандартные библиотеки и процедуры, так, что тут прошу не "пинать" сильно. Данный скетч может быть модернизирован под конкретные нужды. Возможно добавление измерения входного напряжения и тока, различного рода защит, отсечек, меню…
В моем варианте экран выглядят так.
Если обратиться к нашему уважаемому Soir, и его заинтересует данный проект, то вместо Atmega 328 все программное обеспечение можно поместить в Atmega 8.
Конструктивно устройство выполнено в стиле а-ля China DIY корпусе из оргстекла на стойках и распаяно на макетной плате проводами МГТФ. На одной боковой панели расположены разъёмы:
- две клеммы для регулируемого источника,
- стандартный разъем 5мм для 12В;
- два разъёма USB для 5В
На противоположной боковой панели разъем 5мм для входного напряжения.
Во вложении два скетча под разные дисплеи. Плата "Промини" 5В, 16МГц. Особенность в том, что в библиотеке изменены шрифты, поэтому стандартные библиотеки нужно временно убирать с их родного места, а вместо них - те, что в архиве. Сборка IDE 1.8.9. Если прошивать голый камень (а я именно так и делал, хотя отладку делал не промини), то можно использовать USB ASP программатор, и при прошивке из под IDE, ставить опцию "загрузить с помощью программатора".
Во втором скетче для Нокии 3510 (PCF8812) с разрешением 96х65 (кстати работает и на дисплее от Нокии1100) добавлен вольтметр для измерения напряжения на входе устройства до 30 Вольт с помощью аналогового пина.
Больше особенностей нет, - все стандартно.
В заключении необходимо сказать, что INA219 не единственная в своем роде их есть целое семейство, в том числе напряжение 36В, и есть варианты многоканальные.
Нужно быть внимательным при использовании микросхем из Китая, - мне пришли микросхемы с зеркальной распиновкой, по сравнению с датшитом, но они, к счастью, выдержали неправильную распайку.