CW32W031

1.模块介绍
1.1实物图片

1.png

外接天线

2.png

模块正面

1.2模块概述

该模块是基于武汉芯源半导体 CW32W031 射频芯片研发的AT 指令无线串口模块。可使用串口进行数据收发,降低无线应用门槛;可配置透传模式或定点传输模式实现一对一或者一对多的数据传输。目前有433MHz、470MHz 两种频率的模块可供选择。

1.3模块特性

  • 使用 AT 指令进行配置及保存,方便开发及调试  

  • 支持透传模式进行数据传输  

  • 透传模式下支持对数据流进行控制(AUX)  

  • 串口支持9600/19200/38400/57600/115200bps 等典型波特率

  • 支持多种无线速率

  • 内置等待信道空闲发射,有效降低同频信号碰撞的几率  

  • 可以实现定点传输,广播等传输方式

1.4模块参数

3.png

1.5典型应用

  • 高级无线抄表架构(水表、电表、气表)  

  • 超远距离数据通讯

  • 楼宇自动化与安防

  • 矿井、隧道监测设备

  • 智慧交通、智慧电力

  • 智能家居系统

  • 无线传感器网络

  • 工业自动化数据采集

1.6引脚说明

4.png


1.7工作模式

5.png

6.png

7.png

2.上位机通讯实验

8.png

9.png


10.png

3.单片机一对一通讯实验

11.png




12.png

4.单片机一对多通讯实验

13.png

14.png

来源:CW32生态社区

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 23

一、功能介绍 

CW32W031 提前中断功能是在芯片读取一帧数据的过程中,查看已经解出来的数据,判断是不是自己想要的, 再决定继续读取还是放弃这帧数据。 

流程图如下所示: 

1.png

图 1-1 提前中断流程图

二、软件设计参考 

2.1 软件设计流程 

1. 芯片初始化;

2. 将芯片配置为提前中断模式; 

3. 通过寄存器设置包头长度,或者称为计数器门限值。提前中断功能需要设置确定从第几个字节开始检查, 以及检查多少个字节的数据(只支持 8 字节或 16 字节,分别使用 PLHD_LEN8/PLHD_LEN16 表示); 

4. 芯片进入接收模式; 

5. 芯片接收数据,内部计数器开始计数,收到一个字节加 1,直至计数器达到包头长度之后,芯片会产生 提前中断信号,供软件读取; 

6. 软件判断是否为自己想要的数据,如果是,则继续往下读取,如果不是,则停止读取

2.2 软件设计验证 

2.2.1 验证步骤 

1. 发送模组周期性发送 100 字节数据包,前 30 字节数据为

2.png

2. 接收模组配置提前中断模式,并设置从第 5 字节开始,共检查 16 字节数据;

3.png

3. 当产生提前中断信号时,将提前中断得到的数据打印出来;

4. 继续往下接收,将本帧数据全部打印出来;

5. 通过串口助手查看打印结果。

2.2.2 SDK 示例

main.c 参考代码:

4.png

示例代码配置了提前中断模式,并设置从第 5 字节开始,共检查 16 字节数据。接收到提前中断信号后,主 函数中选择将提前中断接收到的内容打印出来,并继续接收;随后模组会再产生一个接收中断信号,主函数 中再将完整接收到的数据内容打印出来。 

如果需要提前中止接收,只需要在接收到提前中断信号后执行“PAN3028_rst();”,即:

5.png

2.2.3 验证结果 

串口助手显示结果为:

6.png

根据结果显示,接收模组发生了提前中断,获取到了指定的数据,并继续执行接收,接收到完整数据包。

2.3 逻辑分析仪抓取 

2.3.1 验证步骤 

1. 发送模组周期性发送数据包; 

2. 接收模组分别使用提前中断接收模式和正常接收模式进行接收 

3. 使用逻辑分析仪 Channel1 抓取提前中断信号,Channel1 抓取正常接收端信号

2.3.2 验证结果 

抓取结果如下图所示:

7.png

图 2-1 逻辑分析仪抓取结果

由结果可以看出,提前中断接收模式在 1.35ms 时就产生了提前中断,供用户判断。正常接收模式需要在 57.39ms 才产生完整的接收中断。

2.4 注意事项 

提前中断功能只支持读取两种数据长度,即 8 字节 /16 字节,分别 PLHD_LEN8/PLHD_LEN16 表示。不可以使用自定义参数。 

提前中断功能获取数据时,使用 PAN3028_plhd_receive() 接口函数,与普通数据包 PAN3028_recv_packet() 接口函数不同,其内部 FIFO 地址不同。

来源:武汉芯源半导体

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 19

一、功能介绍

CW32W031 读取 RSSI 功能是指在芯片接收到数据时,读取当前数据包的信号强度值的功能。RSSI 的计算分为两步,即计算 SNR 与计算 RSSI。在收到 RX_IRQ 信号之后,通过读取寄存器中的信号能量 (sig_pow_avg)以及噪声能量(noi_pow_avg)来计算 SNR,并根据当前带宽值 BW 等参数,计算最终信 号强度值 RSSI。

二、软件设计参考

2.1 编程示例 

1. 芯片初始化; 

2. 配置相关参数; 

3. 芯片进入接收模式; 

4. 芯片接收数据,并计算 SNR、RSSI 值。

2.2 软件设计验证 

参照 CW32W031 例程库中接收模式的代码。 

2.2.1 SDK 示例 

参考代码:

1.png

示例代码配置了连续接收模式,并在接收到数据后,将接收到的数据内容及 SNR、RSSI 值打印出来。

2.png

3.png

PAN3028 中 断 处 理 函 数 中, 当 芯 片 接 收 到 数 据, 产 生 REG_IRQ_RX_DONE(RX_IRQ) 中 断 时, 通 过 PAN3028_get_snr 和 PAN3028_get_rssi 接口函数计算并读取当前数据包的信号强度值。

2.2.2 验证结果 串口助手显示结果为:

4.png

三、注意事项 

3.1 关于 RSSI 

RSSI 功能读取信号强度值需要在接收到数据包的时候读取,且在清除 rxdone 中断之前。如果清除中断,这 个值就会失效。

RSSI 的测量范围是 -40 到 -130,不同参数(SF、BW)模式下,测量范围略有不同。 

3.2 关于 LNA 模块支持切换 LNA 增益,支持高增益和低增益两种模式。目前 SDK 默认使用高增益模式。 

当切换至 LNA 低增益时, 

1. LNA 低增益模式会比 LNA 高增益模式灵敏度差 3dB; 

2. 非 DCDC 模式下,RX 电流会降低 1.2mA; 

3. 在有干扰的环境中,LNA 低增益会比 LNA 高增益传输距离更远更稳定。

有关芯片购买事宜,请咨询武汉芯源半导体的销售和官方代理商。更多MCU详细信息,请访问武汉芯源半导体官方网站:https://www.whxy.com

来源:武汉芯源半导体

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 42

一、功能介绍 

CW32W031 的射频部分支持 CAD 中断。从 Deepsleep 进入 STB3,开启 CAD 功能并进入 RX 模式后, CW32W031 会检测信道中是否会有 ChirpIOT ™信号 , 如果存在将 CAD-IRQ 置高,MCU 内核可以通过一定的时间来检测 CAD-IRQ 信号是否拉高来判断信道中是否存在 ChirpIOT ™信号。

用户可通过 GPIO11 端口检测 CAD-IRQ 信号,信号检测流程如下:

1.png

图:信道活跃检测(CAD)

注:CW32W031 的 RF 部分有多种中断源,MCU 超时设置是在等待中断的产生,然后判断中断是否为 CAD 中断,从而执行不同的命令。

二、软件设计参考 

2.1 软件设计流程 

1. 芯片初始化; 

2. 配置 CAD 初始化; 

3. 芯片进入接收模式; 

4. 观察 CAD-IRQ 信号。 

2.2 软件设计验证 

2.2.1 验证步骤 

1. 发送模组周期性发送数据包; 

2. 接收模组配置为接收模式; 

3. 使用逻辑分析仪抓取接收端 CAD-IRQ 信号。

2.2.2 SDK 示例

参考代码

ret = rf_init(); 
if(ret != OK) 
{ 
    dis_err(" RF Init Fail"); while(1); 
} 
rf_set_default_para(); 
rf_set_cad(); 
rf_enter_continous_rx(); 
while (1)// 等待逻辑分析仪检测 CAD-IRQ 信号 
{ 
    rf_irq_process(); 
}‍

示例代码配置了 CAD 初始化,配置 GPIO11 作为 CAD 检测 IO 口,随后进入接收模式。

发送模组周期性发送数据包(数据包 preamble+payload 的持续时间约 20.5ms),用逻辑分析仪抓取接收

模组 GPIO11 波形,观察检测结果。

2.2.3 验证结果

逻辑分析仪抓取结果如下图所示:

2.png

图:逻辑分析仪抓取结果(CAD)

根据结果显示,当发送模组发送数据包时,接收模组发生了 CAD-IRQ,CAD 检测引脚 GPIO11 被拉高约 20.5ms,维持一个完整 ChirpIOT ™数据包的时间长度。

三、注意事项

3.1 关于 CAD 影响芯片的接收灵敏度

CAD 功能初始化时,修改了芯片的接收阈值,设置不同的接收阈值,会影响芯片的接收灵敏度,并可能存在CAD 误触发的情况。

uint32_t PAN3028_cad_en(void) 
{ 
    PAN3028_set_gpio_output(MODULE_GPIO_CAD_IRQ); 
    If(PAN3028_write_spec_page_reg(PAGE1_SEL,0x0f,0x10)!=OK) 
    { 
        return FAIL; 
    } 
    return OK; 
}

接收阈值的设置,需修改 PAN3028_cad_en() 函数中的寄存器配置,默认值为 0x10,修改接收阈值对接收灵

敏度及误触发概率的影响如下(实验数据在屏蔽放环境下测试):

3.png

用户在使用 CAD 功能时,需根据应用场景选择修改 PAN3028_cad_en() 函数中的寄存器值(PAGE1_SEL,0x0f, 默认值为 0x10),在使用完 CAD 功能后,建议调用 rf_set_cad_off() 函数,rf_set_cad_off() 函数可以关闭 CAD 功能并将接收阈值恢复。

3.2 关于 SDK 及演示系统板

SDK 中提供了 CAD 功能所需的函数接口,CAD-IRQ 被触发时,检测引脚 GPIO11 会被拉高。演示系统板将GPIO11 连接到了 PB07, 具体信息可前往官网查看 CW32W031 的开发板原理图。

3.3 关于 CAD 使用方法

CW32W031 的射频部分可以对 preamble 和 payload 进行 CAD 检测。

3.3.1 对 preamble 检查方式

当完整的 preamble+payload 信号到来时,用户可以在接收端通过 GPIO 口读取到 CAD-IRQ 信号,CAD 检测引脚 GPIO11被拉高,拉高时间为 preamble+payload的持续时间。此时,接收端可以产生正确的 rxdone结果。

4.png

图:逻辑分析仪抓取结果(完整 CAD)

当不完整的 preamble+payload 信号到来时(发射端先进行数据发送,随后接收端在 preamble 时间段内打开了 CAD 检测),此时,用户可以在接收端通过 GPIO 口读取到 CAD-IRQ 信号,CAD 检测引脚 GPIO11 的变化有两种情况:

1.preamble(部分)内含有较完整信息,GPIO11 会被拉高 preamble(部分)+payload 的持续时间。此时,接收端可以产生正确的 rxdone 结果。

5.png

图:逻辑分析仪抓取结果(较完整 preamble)

2.preamble(部分)内未含有完整信息,GPIO11 会呈现不规则高 - 低 - 高 - 低变换的现象。此时,接收端不会产生正确的接收结果。

6.png

图:逻辑分析仪抓取结果(不完整 preamble)

3.3.2 对 payload 检查方式

当只有 payload 信号到来时(发射端先进行数据发射,随后接收端在 payload 时间段内打开了 CAD 检测),此时,由于 RX-CAD 检测不到 preamble,CAD-IRQ 会呈现不规则高 - 低 - 高 - 低变换的现象。此时,接收端不会产生正确的接收结果。

7.png

图:逻辑分析仪抓取结果(只含 payload)

3.3.3 软件应用参考

当设置的 CAD 误触发概率较少,或存在少量误触发率但不影响软件应用时,可以通过检测 CAD-IRQ,GPIO11 上升沿来判断 CAD 触发,可以认为只要收到上升沿就是收到了 payload 信号(建议使用这种方法的接收阈值设为 0x15~0x20)。

当设置的 CAD 误触发概率较高时,需要结合 CAD 检测时间用软件方法来判断 payload 信号,CAD 检测的时间以单个 chirp 持续时间作为单位计算。单个 chirp 持续时间为 2SF/BW(SF 为扩频因子,BW 为带宽,BW单位为 Hz,时间单位为秒)。使用时,建议将检测时间窗口设置为 3 个 chirp 持续时间为佳。用户可以分别在 3 个 chirp 对应的位置检测 CAD 信号,如果同时检测到 CAD 信号(GPIO11 高电平),则可以认为有信号存在。同时,软件设计需要参考 3.3.1 对 preamble 检查方式和 3.3.2 对 payload 检查方式,进行灵活调整。

在打开 CAD 接收后,如果当前空中存在信号,那么芯片需要至少 2 个 chirp 持续时间的检测,GPIO11 才能首次对外输出高电平。一个典型的应用方法为:

1.计算 one_chirp_time = 2SF/BW;

2.配置需要检测的信道,rf_set_cad(),enter_rx;

3.检测 check_cad_inactive(),判断是否检测到 CAD 信号(下面的例程检测了三次,适用于误触发较多的情况)。

uint32_t check_cad_inactive(void) 
{ 
    delay10us(one_chirp_time*2/10); 
    if(GPIO_ReadPin(CW_GPIOB, GPIO_PIN_7) != 1) 
    { 
        return LEVEL_INACTIVE;// 没有 cad } delay10us(one_chirp_time/10); 
        if(GPIO_ReadPin(CW_GPIOB, GPIO_PIN_7) != 1) { return LEVEL_INACTIVE; 
    } 
    delay10us(one_chirp_time/10); 
    if(GPIO_ReadPin(CW_GPIOB, GPIO_PIN_7) != 1) 
    { 
        return LEVEL_INACTIVE; 
    }
    return LEVEL_ACTIVE;// 有 cad 
}

如果误触发较少,或存在少量误触发但不影响软件应用时,可以将检测次数减少为一次(例程如下),或者通过 GPIO11 上升沿作为判断依据。

uint32_t check_cad_inactive(void) 
{ 
    delay10us(one_chirp_time*2/10); 
    If(GPIO_ReadPin(CW_GPIOB, GPIO_PIN_7) != 1) 
    { 
        return LEVEL_INACTIVE;// 没有 cad 
    } 
    return LEVEL_ACTIVE;// 有 cad
}

来源:武汉芯源半导体

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 19
订阅 RSS - CW32W031