ZHCT893 January   2025

 

  1.   1
  2.   2
    1.     引言
    2.     AWRL6432BOOST EVM的供电模式
    3.     INA228 的电流测量
    4.     运动与存在检测例程的INA228寄存器设置
    5.     AWRL6432运动与存在检测例程的功耗计算
    6.     如何缩短功耗测量时间?
    7.     参考资料

软硬件平台及版本

本文内容基于以下软硬件平台:

硬件平台 : AWRL6432BOOST EVM https://www.ti.com/tool/AWRL6432BOOST

软件平台 : MMWAVE_L_SDK_05_05_00_02 MMWAVE_L_SDK_05_05_00_02 SDK

引言

AWRL6432是一款集成的单芯片毫米波雷达传感器,专为汽车应用设计,能够在 57GHz至64GHz频段内运行。该芯片适用于车内感应、儿童检测、占位检测等应用场景。AWRL6432在功耗管理方面具有显著的优势。它支持多种低功耗模式,包括空闲模式和深度睡眠模式,以降低能源消耗。此外,AWRL6432的电源设计可以使用成本优化模式或者低功耗模式,成本优化模式可以有效降低系统成本,低功耗模式在不同的应用场景下可根据需求使用一条或多条电源轨来优化系统性能和功耗。INA228是一款高精度的20位数字功耗监控器,专为电流和电压测量而设计,AWRL6432BOOST EVM上正是使用了这一款数字功耗监控器对AWRL6432的功耗进行监测。

AWRL6432BOOST EVM的供电模式

AWRL6432支持两种供电模式,包括成本优化和功耗优化模式。这两个模式决定了如何从外部电源模块向设备提供电源,更多信息请参考AWRL6432数据手册。成本优化模式更加节省成本,而功耗优化模式有更好的功耗表现,AWRL6432BOOST EVM的电源设计采用功耗优化模式。

在功耗优化模式下,设备可以采用以下两种方式之一供电:

双电源轨(1.8V和1.2V):使用一个1.8V和一个1.2V的稳压器为设备供电,或者三电源轨(3.3V、1.8V和1.2V):使用一个3.3V、一个1.8V和一个1.2V的稳压器为设备供电。在功耗优化模式下,1.2V的电源轨不是由设备内部生成的,而是需要从外部提供。这种模式旨在优化功耗消耗,适用于对低功耗有严格要求的应用场景。

AWRL6432BOOST EVM采用三电源轨模式,如下图所示:

由于3.3V电源轨同时给Flash供电,且供给雷达传感器的3.3V数字电源轨对整体功耗表现影响较小,在AWRL6432运动与存在检测中,仅对1.8V和1.2V两条电源轨做了功耗测量。三条电源轨供应的设备模块和相应引脚如下图所示:

INA228 的电流测量

INA228是一款超精密数字功耗监控器,配备专为电流检测应用而设计的20位Δ-Σ ADC。AWRL6432BOOST EVM采用三颗INA228分别对AWRL6432的3.3V,1.8V,1.2V三条电源轨进行功耗测量。

ADC_CONFIG寄存器是INA228设备中用于配置模数转换器(ADC)行为的关键寄存器,AWRL6432的功耗测量主要与这个寄存器相关。它允许用户设置测量模式、转换时间和采样平均值等参数。以下是ADC_CONFIG寄存器的详细介绍。

  1. 地址 ADC_CONFIG寄存器的地址是1h。
  2. 寄存器字段说明
    • MODE (位15-12):定义了ADC的测量模式,不同的设置允许用户选择测量总线电压、分流电压、温度,或者它们的组合,以及是否为连续模式或触发模式。
    • VBUSCT (位11-9):用于设置总线电压测量的转换时间,转换时间可以从50微秒到4.12毫秒,转换时间越长测量越稳定。
    • VSHCT (位8-6):用于设置分流电压测量的转换时间,可以从50微秒到4.12毫秒不等。
    • VTCT (位5-3):用于设置温度测量的转换时间,范围也是从50微秒到4.12毫秒。
    • AVG (位2-0):用于选择ADC样片的采样数,采样数可以是1、4、16、64、128、256、512或1024。

运动与存在检测例程的INA228寄存器设置

运行在AWRL6432BOOST EVM上的运动与存在检测例程(motion and presence detection)利用了EVM上的四个INA228进行电流测量。该例程对IN228的ADC_CONFIG的设置如下:

由程序可得,ADC_CONFIG被设置为0b{1111 111 111 111 111}即:

注意,分流电压、总线电压和温度测量值在内部多路复用到单个ADC,所以分流电压,总线电压和温度测量只能依次进行采集。如下图所示:

因此,基于AWRL6432运动与存在检测例程的设定,一次功耗测量的时间为:

方程式 1. 4.12 m s   *   1024   *   3   = 12.6 s

AWRL6432运动与存在检测例程的功耗计算

INA228计算出的电流值可以通过CURRENT寄存器读取。CURRENT寄存器中的值以CURRENT_LSB为单位,可以通过以下公式转换为实际电流值:

方程式 2. C u r r e n t ( A ) = C U R R E N T _ L SB*CURRENT

其中,CURRENT是CURRENT寄存器中读取的值,CURRENT_LSB是CURRENT寄存器的最小步长值:

方程式 3. C U R R E N T _ L S B = ( A ) 2 19

AWRL6432 运动与存在检测例程的功耗计算部分代码如图所示:

读取到的数值以毫安为单位,通过和电压相乘,获得功耗值,其中ptrPwrMeasured以100uW为单位。最后的平均功耗为:

方程式 4. = ( ptr M e a s u r e d [ 0 ] + ptr M e a s u r e d [ 2 ] + ptr M e a s u r e d [ 3 ] ) * 0.1

如果用户需要测量3.3V电源轨的功耗,可以增加语句:

current = currentRead228(i2cHandle,69,INA_CONFIG2_CURRENT_LSB);
ptrPwrMeasured[2] = (current == (float)0xFFFFFFFF) ? 0xFFFF : (uint16_t) round(current * 33000.0);
    下面是使用SDK中MotionDetect.cfg作为配置情况下获得的真实功耗数据:
                  119.0mw=(448+657+85)*0.1(非低功耗模式)
                   32.1mw= (97+140+84)*0.1(低功耗模式)

如何缩短功耗测量时间?

缩短功耗测量时间主要有两种方法,第一种方法是关闭其余的数据的采集,第二种是缩短采样时间和采样点数。

对于第一种方法INA228使用以下公式计算电流:

方程式 5. C urrent ( A ) = V S E N S E ( V ) R S H U N T ( Ω )

其中,VSENSE是分流电阻器上的电压降,RSHUNT是分流电阻的阻值。因此,总线电压和温度可以不进行采集。根据INA228的寄存器说明,通过将ADC_CONFIG寄存器中的MODE(15:12)位配置为0xCh{1100}可以仅对分流电压数据进行采集。一次功耗测量的时间为:

方程式 6. 4.12 m s * 1024 * 1 = 4.2 s

对于第二种方法:可以通过减少ADC的采用时间和采用平均数来减少功耗测量时间。 例如将ADC_CONFIG设置为的值设置为63780 {1111 1001 0010 0100}

注意:如果要修改ADC_CONFIG的数值应该直接以硬编码形式写入,如下图所示:

图中直接以常量63780替换了此处原本的参数值config1Val,这是因为该参数值config1Val在SensorConfig228的传入值是一个宏定义,该宏定义由TI的sysconfig工具生成,如果通过修改相关宏的值进行修改会在再次编译后被sysconfig再次覆写,目前sysconfig没有提供相关值的修改接口,为了避免被sysconfig覆写,可以硬编码形式写入该值。

此时,总线电压转、分流电压、温度测量转换换时间为540us,平均采样数为128. 此时一次功耗测量的时间为:

方程式 7. 540 u s   *   128   *   3   = 4.2 s   =   207 m s

其中需要注意的是,降低转换时间和采用平均数会降低结果的准确性和稳定性。 由于在AWRL6432 运动与存在检测例程中在一个帧周期结束后UART才会将相关数据发送,因此功耗测量时间低于帧周期将没有太大意义。