SUB-G无线通信模块AN509--LDC模式收发
SUB-G无线通信模块采SILICON LABS 公司的Si4438无线收发器设计,兼容Si446x,最大发射功率+20dBm,接收灵敏度高达-129dBm,超低睡眠电流740nA,广泛用于室内照明及智能家居,安防监控,测量及四表等领域。有些产品或应用需要低功耗功能,又需要无线数据接收功能。那么我们就需要使用到Si4438/Si446x的LDC功能了。
Si4438/Si446x系列Sub-Ghz无线收发器支持LDC低功耗接收功能,LDC的全称是Low Duty Cycle,通俗的说LDC功能就是si4438自动的醒来接收一段时间(通常是几十毫秒时间),然后再睡眠一段时间,如此交替的重复下去。当接收到数据后产生中断信号,从而唤醒host MCU处理数据,因为接收状态的电流一般是mA级别,而睡眠电流只有nA级别,通过LDC功能以实现平均电流超低的接收效果。如图1所示:
图1:LDC 模式示意图
下面我们就具体讲解如何配置si446x或者si4438的寄存器,实现LDC低功耗接收功能。具体步骤和需要设置的寄存器如下:
1、使能LDC功能:
设置GLOBAL_WUT_CONFIG 属性中的WUT_EN = 1使能WUT功能。同时设置GLOBAL_CLK_CFG属性中的CLK_32K_SEL=1使能32KHz的RC时钟,这样WUT才有时钟源。请阅读API命令关于LDC的寄存器,一共需要配置的寄存器,如图2:
图2:LDC 相关的寄存器
2、配置WUT寄存器设置LDC的周期
LDC周期=RX时间+sleep时间;Sleep时间越长,RX时间越短,LDC的平均功耗就越低。可以根据系统功耗要求,合理设置Sleep时间和RX时间。 例如RX时间是多少毫秒,sleep时间是多少毫秒,这些寄存器的值建议用WDS软件的LDC RX工程来配置(如图3),设置好RX周期和sleep周期WDS就会自动帮助计算出WUT寄存器的值,不用我们进行复杂的手动计算了。然后截取生成的radio_config.h这几个寄存器的配置(如图4),手动的把这几行值拷贝到自己的应用代码中,这样不会影响原有的射频参数。
图3:WDS软件LDC RX工程的配置界面
WDS生成的radio_config.h配置文件中关于LDC相关的寄存器值,以下值仅供参考,设置不同的RX时间和sleep时间,会得到不同的值。如图4:
图4:WDS生成的LDC相关的寄存器值
下面是具体的代码实现:
第一步:设置GLOBAL_CLK_CFG属性中的CLK_32K_SEL=1;
si446x_set_property( 0x00,0x01,0x01,0x01);
第二步:设置WUT寄存器属性
把WDS生成的关于WUT的命令值拷贝出来,定义一个不一样的宏定义。
#define RF_GLOBAL_CONFIG_LDC 0x00, 0x06, 0x03, 0x20, 0x42, 0x1F, 0xD7, 0x20, 0x29
si446x_set_property(RF_GLOBAL_CONFIG_LDC);
这里特别注意,实际从radio_config.h拷贝出来的宏定义如下,这个红色的粗体0x11需要去掉,0x11是SET_PROPERTY的命令ID号。在si446x_set_property()函数中已经包含了这个命令ID,所以传进来的参数就不需要带入这个命令ID。
#define RF_GLOBAL_CONFIG_6 0x11, 0x00, 0x06, 0x03, 0x20, 0x42, 0x1F, 0xD7, 0x20, 0x29
第三步:修改start_rx函数,如下:
void vRadio_StartRX_LDC(U8 channel)
{
// Read ITs, clear pending ones
si446x_get_int_status(0u, 0u, 0u);
/* Start Receiving packet, channel 0, START immediately, Packet n bytes long */
si446x_start_rx(channel, 0u, 0,
SI446X_CMD_START_RX_ARG_NEXT_STATE1_RXTIMEOUT_STATE_ENUM_SLEEP,
SI446X_CMD_START_RX_ARG_NEXT_STATE2_RXVALID_STATE_ENUM_SLEEP,
SI446X_CMD_START_RX_ARG_NEXT_STATE3_RXINVALID_STATE_ENUM_RX );
}
重点是修改了两个SI446X_CMD_START_RX_ARG_NEXT_STATE状态为sleep。
第4步:然后只需在需要使能LDC模式的时候,调用前3部命令和函数即可。例如我们在系统初始化之后,就进入LDC模式。如下:
//无线初始化代码此处省略……
si446x_set_property( 0x00,0x01,0x01,0x01);// CLK_32K_SEL=1
si446x_set_property(RF_GLOBAL_CONFIG_LDC);//set sleep time and rx timer
vRadio_StartRX_LDC(0);//start rx
while (1)
{
// add your application code here
}
第5步:退出LDC RX模式
如果应用代码,需要进入发送状态,或者做其他的非LDC接收状态时,须先退出LDC RX模式,否则LDC会自动切换状态而影响当前的操作。退出LDC RX模式需要:
1、设置GLOBAL_CLK_CFG = 0x00;关闭32KHz时钟;
2、设置GLOBAL_WUT_CONFIG = 0x00;关闭WUT功能。
3、设置 si446x_start_rx ()函数里面的SI446X_CMD_START_RX_ARG_NEXT_STATE1_RXTIMEOUT_STATE_ENUM_xxxx不能为sleep,需要修改回原参数。
- |
- +1 赞 0
- 收藏
- 评论 2
本文由紫云提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】如何测试无线收发器的发射功率和频偏?
在设计好Sub-GHz无线收发器si446x 或者si4438的PCB板,完成元器件贴板和焊接之后,就可以开始测试PCB板的射频性能了。
设计经验 发布时间 : 2018-02-23
【经验】低电流无线收发器锁存RSSI值读取该如何操作?
Silicon Labs 无线收发器Si446x或者Si4438开发产品的时候,应用代码中很多需要使用到信号强度RSSI值。
设计经验 发布时间 : 2017-08-17
【经验】如何实现无线收发器Si446x的异步直接数据收发模式?
Silicon Labs无线收发器Si4438和Si446x,可实现多种调制方式的数据发送,在一些开发中客户会用到OOK调试模式,OOK调制在开发中要用到直接数据收发方式(Direct Mode),本文主要介绍如何实现一个简单的数据发送和数据接收工程。
设计经验 发布时间 : 2020-10-02
【经验】低电流无线收发器实时RSSI值读取该如何操作?
Silicon Labs 无线收发器Si446x或者Si4438开发产品的时候,应用代码中很多需要使用到信号强度RSSI值。
设计经验 发布时间 : 2017-08-20
如何配置低功耗无线收发器射频参数和代码实现接收灵敏度测试?
Si446x是Silicon Labs公司的一款高性能低功耗Sub-Ghz频段的小无线收发器,可支持142MHZ - 1050MHZ频率(Si4438 支持425MHZ - 525MHZ,适用中国频段)。最大发射功率可达+20dbm,接收灵敏度可达-129dbm@500bps。本文就详细介绍如何实现Si4438 和 si446x 接收灵敏度测试所需要的射频参数设置和代码实现。
设计经验 发布时间 : 2018-05-30
Silicon Labs(芯科科技)Si446x Sub-GHz无线收发器软件参考代码
描述- 发射端长前导码、变长包、休眠带RTC 1秒检测间隔、低功耗实现-接收端基于EFM32ZG平均功耗14uA左右
型号- SI4463,SI4438,SI446X
【经验】SUB-G无线通信模块的SPI波形图解与上电过程
SUB-G无线通信模块采Silicon Labs 公司的Si4438无线收发器设计,兼容si446x,最大发射功率+20dBm,接收灵敏度高达-124dBm,超低睡眠电流740nA,广泛用于室内照明及智能家居,安防监控,测量及四表等领域。有些产品或应用需要低功耗功能,又需要无线数据接收功能。那么我们就需要使用到Si4438/Si446x的LDC功能了。
设计经验 发布时间 : 2019-04-09
【经验】如何配置寄存器,实现无线收发器LDC低功耗接收功能?
Silicon labs公司的si4438/si446x系列Sub-Ghz无线收发器支持LDC低功耗接收功能,本文讲述的就是实现LDC低功耗接收功能的方法及步骤。
设计经验 发布时间 : 2018-03-23
【经验】应用技巧:如何轻松实现无线收发器硬件CRC校验?
无线收发器支持硬件CRC校验,在WDS软件中点点鼠标就能快速完成CRC相关的设置。
设计经验 发布时间 : 2017-01-10
Si4460无线收发器是否支持直接模式?是如何实现数据收发的?
对于在主机MCU内或其他基带芯片内执行数据包处理的传统系统,不适合使用FIFO。对于这种情况,Si4460无线发射器提供可完全绕过FIFO的直接模式。在TX直接模式下,TX调制数据被应用于芯片的输入引脚并进行“实时”处理(即不会存储在寄存器中稍后发送)。任何GPIO可被配置成TX数据输入功能来使用。而且,如果需要GFSK调制,则TX时钟输出功能需要一个额外的引脚(FSK只需要TX数据输入引脚)。为达到直接模式,GPIO必须在“GPIO_PIN_CFG”API命令和“MODEM_MOD_TYPE”API属性中进行配置。对于GFSK,“TX_DIRECT_MODE_TYPE”必须设置到同步。对于2FSK或OOK,类型可设置为异步或同步。对于所有的直接模式配置,MOD_SOURCE[1:0] 应设置为01h。在RX直接模式下,RX数据和RX时钟可被编程以实现直接(实时)输出到GPIO引脚,然后微控制器可以在不使用FIFO或RFIC分组处理程序功能的情况下处理RX数据。
技术问答 发布时间 : 2017-05-10
【经验】低功耗Sub-GHz无线收发器Si4438在国网南网标准的无线数据白化配置
Silicon Labs的低功耗高性能Sub-GHz无线收发器Si4438,+20dbm(100mW)的输出功率,-124dbm的接收灵敏度。集成度高,包括硬件的CRC、数据白化、曼彻斯特编码等,在工程开发时可以减少软件的工作,提高系统的稳定性。Si4438在国网和南网的电力无线抄表中被广泛应用。
设计经验 发布时间 : 2019-05-31
【经验】SUB-G无线通信模块AN512助力超长前导码发送模式下的硬件CRC校验实现
SUB-G无线通信模块采Silicon Labs 公司的Si4438无线收发器设计,兼容Si446x,最大发射功率+20dBm,接收灵敏度高达-124dBm,超低睡眠电流740nA,广泛用于室内照明及智能家居,安防监控,测量及四表等领域,普通短数据包一般用到2个field就可以,超长前导码发送通常需要用到3个field,那么如何实现硬件CRC校验功能呢?
设计经验 发布时间 : 2019-06-01
为什么Silicon Labs的低功耗Sub-GHz无线收发器Si4438在设置LDC时,设置休眠时间为5分钟无法工作,而设置小一点就可以工作呢?
Silicon Labs的低功耗Sub-GHz无线收发器Si4438在设置LDC时,设置较长时间的休眠或接收时间,需要正确设置Step Size,对于5分钟的配置,建议step size adjust设置为6。
技术问答 发布时间 : 2019-12-03
电子商城
品牌:SILICON LABS
品类:HIGH-PERFORMANCE LOW-CURRENT TRANSCEIVER
价格:¥15.8878
现货: 2,359
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 104,128
品牌:SILICON LABS
品类:Mighty Gecko Multi-Protocol Wireless SoC
价格:¥27.0929
现货: 90,767
现货市场
品牌:SILICON LABS
品类:Switch Hall Effect Magnetic Position Sensor
价格:¥2.2924
现货:126,000
服务
支持 3Hz ~ 26.5GHz射频信号中心频率测试;9kHz ~ 3GHz频率范围内Wi-SUN、lora、zigbee、ble和Sub-G 灵敏度测量与测试,天线阻抗测量与匹配电路调试服务。支持到场/视频直播测试,资深专家全程指导。
实验室地址: 深圳/苏州 提交需求>
根据用户的蓝牙模块,使用Bluetooth 蓝牙测试装置MT8852B,测试蓝牙1.0至5.1,包括传输速率、功率、频率、调制和接收机灵敏度,生成测试报告。支持到场/视频直播测试,资深专家全程指导。
实验室地址: 深圳 提交需求>
登录 | 立即注册
提交评论