RF模组使用者在使RF模组进入Sleep后测试电流时有时会发现模组的功耗和规格书的Sleep状态电流值对应不上。这种情况都是让RF模组进入Sleep后,MUC和RF模组链接的IO的状态配置不正确造成的。
那么如何解决呢?本文将对RF模组在Sleep状态下如何做到最低功耗进行说明。
RF模组sleep时RF模组的IO状态
先要获知RF模组Sleep时,RF模组的IO的状态。该信息可从模组规格书,模组主芯片手册或者模组主芯片厂家处获取。下面以SX126X和LLCC68系列模组为例进行说明。
SX126X和LLCC68系列模组主芯片在各个状态下的各个IO的状态如下图所示:
我们主要关注Sleep状态下的各个IO的状态,并进行如下分类:
1、HIZ PD(高阻态下拉):包含IO有 DIO3、DIO2、DIO1
模组的这类IO在sleep时MCU的IO配置为输入下拉即可。
2、HIZ PU(高阻态上拉):包含IO有 BUSY
模组的这类IO在sleep时MCU的IO配置为输入上拉即可。
3、HIZ(高阻态无上拉和下拉):包含IO有 MISO、MOSI、SCK
这类IO当模组为Sleep时建议配置MCU的IO为下拉输入(对应MISO)或输出低(对应MOSI、SCK)或 模拟输入
注意:模组的这类IO对应的MCU的iosesleep如果配置为浮空输入状态,可能出现MCU内部IO的施密特触发器在由外部噪声引起的逻辑电平之间随机切换。这增加了总体消耗。这种现象是随机的,可能和温度、PCB走线等都有关系。
4、IN(输入无上拉和下拉):包含IO有 NSS
模组的这类IO在sleep时MCU的IO配置为输出高电平即可。
5、IN PU(输入上拉):包含IO有 NRESET
模组的这类IO在sleep时MCU的IO配置为输出高电平即可。
6、模组上有但是主芯片上没有的CTL1和CTL2
这两个IO时模组上的高频开关上的控制引脚,模组sleep时,请把MUC对应的这两个IO都输出低电平。
结论
1、实际应用中如果模组的DIO3、DIO2、DIO1 这类IO在sleep时MCU的IO配置为输入上拉则有可能增加sleep功耗。
2、实际应用中如果模组的BUSY 这类IO在sleep时MCU的IO配置为输入下拉则有可能增加sleep功耗。
3、实际应用中如果模组的MISO、MOSI、SCK这类IO在sleep时MCU的IO配置为浮空输入则有可能增加sleep功耗。
4、实际应用中如果模组的NRESET只在模组复位时有电平变化,在模组进出sleep过程中都不要进行电平操作。
5、实际应用中如果模组的CTL1和CTL2如果不输出低,则高频开关未关闭,则会增加sleep功耗。