INA320测量电压电流功率
INA320 可以测量电压电流功率
基本ADC功能可以测试分流电阻的电流和VBUS的电压
工作电压2.7--5.5V 可以测量电压为0---28V
测量电流是VIN+ VIN-,测量电压是VBUS 对地的电压
VBUS电压寄存器每个单位是1.25mv,最大量程是40.98V,但是这个引脚不能够超过28V
1,如果模式寄存器设置为111也就是连续模式,INA320先转换分流电阻的电压和VBUS的电压,然后将结果转换为分流电阻的电流和
根据cal寄存器计算功率。ADC转换n次后将结果平均值放到对应的寄存器
2,如果模式寄存器设置为 001,010,011也就是触发模式,每次转换后就停下来,
等将结果电压寄存器读了后,再重新写模式寄存器才能够继续AD转换,即使模式不变
除了连续和触发模式,还有power down 模式,不使用的时候关闭可以降低功耗
转换结果放到结果寄存器后,我们就可以读,转换准备标志位就设置为1
转换准备标志寄存器的清除可以由写配置寄存器或者读状态寄存器
功率计算
如果没有数值写到calibration寄存器,calibration寄存器的值为0,分流电阻电流寄存器
值也为0,功率寄存器的值也为0.
(但是我们现在没有写calibration,但是可以读到电压值!!!!和TI沟通!第7页!!!!!!!)
ADC转换的电压电流结果放到累加寄存器累加,达到配置寄存器的个数就计算平均值
在放到对应的结果寄存器也就是我们要读的寄存器
times次数
time时间
求平均和转换时间
分流电阻的电压和VBUS的电压的ADC转换时间可以编程,140us--8.422ms
例如,如果要5ms更新结果寄存器,选588us的转换时间,求平均个数选4
那么就要转换8次,4次分流电阻电压,4次VBUS电压,8×588=4.7ms
分流电阻的电压和VBUS的电压的ADC转换时间可以不一样,如果VBUS的电压比较稳定,可以用多的时间
给分流电阻电压的转换,选分流电阻电压4.156ms VBUS电压588us,求平均次数为1,
这种配置结果导致更新时间也为4.156+588us=4.7ms
为了提高结果的精确度,用最长的转换时间和最多的平均次数
滤波
转换时间和转换参数可以在配置寄存器设置
转换时钟频率为500k,这样谐波高,大于1M,用小电阻和小电容就可以滤波10欧姆和0.1U电容
ALERT引脚
监控测试结果,如果超出范围alert寄存器地址7或者ADC结果准备好就通过alaer引脚告知host
MASK/ENABLE寄存器(地址为6)选择5个监控参数或者转换准备状态
shunt voltage over limit (SOL)
shunt voltage under limit (SUL)
BUS voltage over limit (BOL)
BUS voltage under lim (BUL)
power over limit (POL)
如果MASK/ENABLE寄存器选择了要监控的参数,当ADC转换结果超过ALERT寄存器的值就会通过
ALERT引脚告知host
如果MASK/ENABLE寄存器多个监控源选择,高位的优先级比地位高
如果ALERL和conversion ready 同时选择了,当产生中断的时候,要通过多MASK/ENABLE寄存器(地址为6)
判断conversion ready flag(CVRF) D3和ALERT function flag(AFF) D4是CVRF还是AFF原因
如果CVRF不需要就把它屏蔽,ALERT引脚就是超出极限的中断信号
alert limit寄存器和相应的转换结果对比
例如如果alert功能选择shunt voltage over limit(SOL),每次ADC转换完成
都将结果和alaert limit寄存器的值比较,如果超出范围,
MASK/ENABLE的第4位AFF设置为1,另外ALERT引脚的电平根据
MASK/ENABLE的第1位APOL的设置,如果ALERT LATCH位被使能,要对配置寄存器
写或者对MASK/ENABLE寄存器读了后ALERT引脚才恢复无限状态。
BUS电压测量后和alert limit寄存器比较,超出范围就将AFF为设置为1并且设置ALERT引脚电平
功率测量后和alert limit寄存器比较,超出范围就将AFF为设置为1并且设置ALERT引脚电平
INA230的编程
我们不要计算电流和功率,将通过IN+和IN-对分流电阻的两端电压和VBUS对地的电压测量就可以
通过INA230的硬件计算出分流电阻的电流和功率
CAL=0.00512/(CULLENT_LSB×Rshunt)-------------------1
CURRENT_LSB =(MAXMUM expected CURRENT)/2^15---------2
按照上面的公式计算CAL,填入校准寄存器,这样电流寄存器读出来的是电流值
电流寄存器是按照下面的公式计算的电流
CURRENT=(ShuntVoltage×Calibration register)/2048
配置寄存器00 读写
RST bit15 复位,和上电复位的功能一样效果
AVG9--11 取平均值模式
多少个数据取平均值 对应1,4,16,64,128,256,512,1024
AVG2 AVG1 AVG0
000 1,
001 4,
010 16,
011 64,
100 128,
101, 256,
110, 512,
111 1024
VbusCT bit6--8 BUS VOLTAGE CONVERSION TIME
设置VBUS电压转换时间
D8 D7 D6
000 140us
001 204us
010 332us
011 588us
100 1.1ms
101 2.116ms
110 4.156ms
111 8.224ms
VshCT bit3--5 shunt voltage conversion time
设置分流电阻shunt电压转换时间
D5 D4 D3
000 140us
001 204us
010 332us
011 588us
100 1.1ms
101 2.116ms
110 4.156ms
111 8.224ms
mode mode
bit0--2
000 power down
001 shunt voltage triggered
010 bus voltage triggered
011 shunt and bus triggered
100 power down
001 shunt voltage continuous
010 bus voltage continuous
111 shunt and bus continuous
SHUNT VOLTAGE REGISTER (01) 分流电阻电压寄存器只读
最高位是符号位,每一个单位为2.5uv
SHUNT VOLTAGE REGISTER (01) 分流电阻电压寄存器只读
最高位是符号位,每一个单位为2.5uv
SHUNT VOLTAGE REGISTER (01) 分流电阻电压寄存器只读
最高位是符号位,每一个单位为2.5uv
vbus VOLTAGE REGISTER (02) vbus电压寄存器只读
每一个单位为1.25uv
POWER REGISTER (03) 功率寄存器只读
功率为这个寄存器的25倍
CURRENT REGISTER (04) 电流寄存器只读
这个寄存器为分流电阻的电压和校准寄存器的值计算的电流值
CALCULATION REGISTER (05) 校准寄存器只读
这个寄存器设置电流寄存器的单位
MASK/ENABLE寄存器(06)
选择Alert引脚的功能,alert limit 寄存器的功能为D15--D11的高位最高优先权有效位的功能
CNVF conversion ready 转换准备
bit10 如果bit3 CVRF为1,则将Alert引脚设置为有效通知host可以进行下一次转换
SOL
bit15 配置Alert引脚作为shunt voltage 寄存器的值大于alert limit寄存器的通知标志
SUL
bit14配置Alert引脚作为shunt voltage 寄存器的值小于alert limit寄存器的通知标志
BOL
bit13配置Alert引脚作为bus voltage 寄存器的值大于alert limit寄存器的通知标志
BUL
bit12配置Alert引脚作为bus voltage 寄存器的值小于alert limit寄存器的通知标志
POL
bit11配置Alert引脚作为power 寄存器的值大于alert limit寄存器的通知标志
AFF alert function flag 报警功能标记
每一次只能够对一个alert limt报警,AFF这个标志表示是否alert引脚的中断是否alert limit引起。
发生alert中断后,根据alert latch enable的状态1 latch模式 0 透明模式
透明模式,当故障排除后,ALERT引脚恢复正常状态
latch模式,当故障排除后,ALERT引脚没有恢复正常状态,要对MASK/ENABLE寄存器读操作后才恢复
CVRF 转换准备标志
bit3用于协作一次或者触发转换,当转换,平均,乘法后CVRF被设置1.
CVRF标志要被清除通过下面
1,对配置寄存器写power down或者清除命令
2,对MASK/ENABLE寄存器读操作
OVF bit2
溢出标记
APOL bit1 alert polarity
1 高有效
0 低有效 默认状态
LEN bit0
1 latch模式
0 透明模式
alert latch enable
透明模式,当故障排除后,ALERT引脚恢复正常状态
latch模式,当故障排除后,ALERT引脚没有恢复正常状态,要对MASK/ENABLE寄存器读操作后才恢复
i2c通信
写操作
对寄存器进行写操作首先要向Master传输一个字节。这个字节是Slave的地址,
此时要求R/W位为低电平。传输完成后INA220返回一个信号确定收到一个有效地址。
Master传输的下一个字节是要被写入数据的寄存器的地址。
这个地址位将寄存器指针更新到下一个要被写入数据的寄存器上。
再下面两个字节是写入寄存器指针所指的寄存器里。
INA220对每个字节都发送一个确认收到的信息。
Master最后会产生一个START信号或STOP信号来终止数据的传输。
读操作
在从INA220读取数据时,每次读操作器件读取的寄存器由最后一次写操作
向寄存器指针内存储的值决定。
如果要在读操作器件改写寄存器指针,必须向指针内写入一个新的值。
写操作的实现是将R/~W位置低电平,然后指定一个Slave的地址字节加上一个标致寄存器指针的字节。
不需要额外的数据。
之后Master产生一个START信号,将R/~W位置高电平并发送Slave地址字节,
这样就实现了读命令的初始化。
下一个字节由Slave传输,是由寄存器指针标识的最高有效位。
这个字节之后是Master传出的确认信号;再之后Slave传输最低有效位,Master返回一个确认信号。
Master终止数据传输的方式,可以在收到某个数据字节之后产生一个Not-Acknowledge(没收到)信号,
或者产生一个START或STOP信号。
如果需要从同一个寄存器内重复读取数据,就不必每次都发送寄存器指针字节;
INA220会自动保存寄存器指针的值,直到下一次写操作将这个值刷新。