请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:INA219 您好!
当运行 INA219时、如果我们为 INA219_CONFIG_BADCRES 和 INA_219_CONFIG_SADCRES 选择平均值计算模式、平均值范围为2至128、并且 INA219正在运行连续模式、
从 INA219读取电流是否需要更长的时间? 或者 INA219在持续运行时进行平均计算、当我获得电流寄存器时、它反映了最新的值。
我想理解的是、当我从 INA219读取电流时、当使用取平均值模式时、它会减慢我的主环路。
下面是我初始化 INA219的代码:
void setCalibration_32V_2A (uint32_t ui32WorkerAddress){
INA219_calValue = 4096;
INA219_currentDivider_mA = 10.0f; //当前 LSB = 100uA /位(1000/100 = 10)
INA219_powerMultiplier_mW = 2.0f; //功率 LSB = 1mW/位(2/1)
//计算 ui8CalRegister
ui8CalRegister[0]=(INA219_calValue >> 8)& 0xFF;
ui8CalRegister[1]= INA219_calValue & 0xFF;
//初始发送校准寄存器
I2CSend (ui32WorkerAddress、INA219_REG_CALIBRATION、ui8CalRegister、2);
uint16_t config = INA219_CONFIG_BVOLTAGERANGE_32V |
INA219_CONFIG_GAIN_8_320MV |
INA219_CONFIG_BADCRES_12bit_8S_4260US |
INA219_CONFIG_SADCRES_12bit_8S_4260US |
INA219_CONFIG_MODE_SANDBVOLT_CONSTUATION;
/*
uint16_t config = INA219_CONFIG_BVOLTAGERANGE_32V |
INA219_CONFIG_GAIN_8_320MV |
INA219_CONFIG_BADCRES_12位|
INA219_CONFIG_SADCRES_12bit_1S_532US |
INA219_CONFIG_MODE_SANDBVOLT_CONSTUATION;
*
ui8Register[0]=(CONFIG >> 8)& 0xFF;
ui8Register[1]= CONFIG & 0xFF;
I2CSend (ui32WorkerAddress、INA219_REG_CONFIG、ui8Register、2);
}
下面是我读取电流寄存器的方式:
uint16_t getCurrent_raw (uint32_t ui32WorkerAddress){
//重新发送校准寄存器
I2CSend (ui32WorkerAddress、INA219_REG_CALIBRATION、ui8CalRegister、2);
//接收运算
I2CReceive (ui32WorkerAddress、INA219_REG_CURRENT、ui8寄存器、2);
返回((ui8Register[0]<< 8)| ui8Register[1]);
}