This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] INA219:INA219操作说明

Guru**** 2387080 points
Other Parts Discussed in Thread: INA219
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum/1051039/ina219-ina219-operational-clarification

器件型号: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]);
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    结果寄存器可随时读取、并且只显示在平均值计算完成后准备好的最后一个值。  因此、无论采用哪种方式、读取操作都将花费相同的时间、并且不会减慢代码速度、但如果您在平均值计算完成之前进行读取、则会得到之前的值。