- измерение постоянного напряжения не должно превышать 40 вольт
- при измерении тока выходное напряжения шунта не должно превышать 81 mv
Измерение тока возможно как по плюсовой так и по минусовой шине питания.
Микросхема имеет 16 разрядный дельта-сигма АЦП с частотой дискретизации 500 кГц, что дает хорошую точность измерений. Разрешение напряжения шунта составляет 2,5 мВ с полной шкалой 32768x2.5 = 81.92mV. Для напряжения VBUS разрешение составляет 1,25 мВ с теоретической полной шкалой 40,96 В. Разрешение по мощности в 25 раз превышает текущее с полной шкалой, которая зависит от используемого шунта.
INA226 может выдавать аппаратное или программное предупреждение, если измеренное значение превышает установленный предел. Можно выбрать одну из пяти функций, доступных для мониторинга, и/или установить бит готовности преобразования. Пять функций оповещения, которые можно отслеживать:
• Shunt Voltage Over-Voltage (SOL): превышение максимального порога тока;
• Shunt Voltage Under-Voltage (SUL): превышение минимального порога тока;
• Bus Voltage Over-Voltage (BOL): превышение максимального порога напряжения;
• Bus Voltage Under-Voltage (BUL): превышение минимального порога напряжения;
• Power Over-Limit (POL): превышение максимального порога мощности;
+ Conversion Ready (CNVR): прерывание готовности преобразования;
Выход Alert с открытым стоком и может быть легко подключен к блокирующему устройству. Так же можно прочитать необходимый бит регистра типа «Превышение предела напряжения шунта (SOL)» .
Типичная схема тест плат
Устройство имеет два адресных контакта, A0 и A1. В следующей таблице перечислены соединения контактов для каждого из 16 возможных адресов.
A1 | A0 | Адрес ведомого |
GND | GND | 1000000 |
GND | VS | 1000001 |
GND | SDA | 1000010 |
GND | SCL | 1000011 |
VS | GND | 1000100 |
VS | VS | 1000101 |
VS | SDA | 1000110 |
VS | SCL | 1000111 |
SDA | GND | 1001000 |
SDA | VS | 1001001 |
SDA | SDA | 1001010 |
SDA | SCL | 1001011 |
SCL | GND | 1001100 |
SCL | VS | 1001101 |
SCL | SDA | 1001110 |
SCL | SCL | 1001111 |
Переходим к расчетам...
Расчет максимального измеряемого тока по параметрам шунта 0,1 Ом:
Imax = U / Rш = 0.08192 / 0,1 = 8.192 A
Текущее разрешение тока:
currentLSB = Imax / 2^15 = 8.192 / 32767 = 0.25 ма
Расчет значения калибровочного регистра:
CAL = 0.00512 / (currentLSB * Rш) = 0.00512 / 0.00025 / 0.1 = 204
Текущее разрешение мощности:
powerLSB = currentLSB * 25 = 0.00025 * 25 = 6.25 мВт
При необходимости точно откалибровать шунт: измеряем ток образцовым прибором, фиксируем значение регистра тока и рассчитываем поправку.
CALnew = CAL * (REFcurrent / currentLSB) / current_reg
где:
CALnew - новое значение калибровочного регистра
CAL - старое значение калибровочного регистра
REFcurrent - измеренный ток образцовым прибором
currentLSB - разрешение тока A/bit
current_reg - значение регистра тока
Для получения аппаратных прерываний на выводе Alert, необходимо настроить регистр MASKENABLE и записать опорное значение в регистр ALERTLIMIT. Значение записывается в регистр в десятичном виде. Рассчитывается оно как:
- для напряжения
ALERTLIMIT = U / 0.00125
- для тока
ALERTLIMIT = Uш * 25000
- для мощности
ALERTLIMIT = watts / powerLSB
Тестовый пример на Bascom AVR:
$include "LIB_INA226.bas"
Dim U_in as single Dim I_in as single Dim P_in as single
If testConnection_INA226() = &H2260 then lcd "ID= INA226" cls call configure_INA226(INA226_AVERAGES_64 , INA226_BUS_CONV_TIME_1100US , INA226_SHUNT_CONV_TIME_1100US , INA226_MODE_SHUNT_BUS_CONT ) call calibrate_INA226(0.1 , 5) call setMask_INA226(CONFIG_MASK_REG) call setBusVoltageLimit_INA226(4.9) else locate 1 , 1 lcd "ID= no device" End End if
Do
call readBusVoltage_INA226(U_in) call readBusPower_INA226(P_in) call readShuntCurrent_INA226(I_in) ' call calibrate_Current_INA226(0.06230) 'функция калибровки тока по контрольному прибору locate 1 , 1 lcd calibrationValue ; " " ; INA226_REG_Current_DEC ; " " locate 2 , 1 lcd "V= " ; fusing(U_in , "#.&&&") ; " " locate 3 , 1 lcd "I= " ; fusing(I_in , "#.&&&") ; " " locate 4 , 1 lcd "P= " ; fusing(P_in , "#.&&&") ; " " waitms 500
Loop End |