[Wi-Fi/蓝牙/Zigbee…]

如何设置SAMR30和SAMR21的传输速率和发射功率?(基于MiWi的...

[复制链接]
3263|7
手机看帖
扫描二维码
随时随地手机跟帖
diffin|  楼主 | 2021-6-22 18:20 | 显示全部楼层 |阅读模式
SAMR30和SAMR21是Microchip提供的内置了ARM Coretex-M0+ CPU的无线收发器,SAMR30支持Sub-1GHZ,SAMR21支持2.4GHZ,他们都可以被用于Microchip的MiWi无线收发协议。
MiWi是一种私有协议,可以看作是一种轻量级的Zigbee协议,他的特点有:自定义,自组网,自主可控。自定义的意思是数据收发是一种透传模式,用户自己定义数据收发内容来适应应用场景。自组网就是和Zigbee一样的概念,MiWi协议提供了和Zigbee一样的星形和Mesh组网,同时还支持应用较为简单的P2P网络。自主可控的意识是MiWi的代码和open source的,没有封装的库文件。
在MiWi的应用中,由于MiWi代码提供的API中没有提供关于设置传输速率(Data Rate)和发射功率(Transmission Power)的API函数,那么一个常见的问题是如何设置或者修改SAMR30和SAMR21的传输速率和发射功率? 下面主要以功率更低,距离更远,抗干扰性更好的SAMR30来说明如何配置。
配置传输速率
SAMR30支持BPSK和O-QPSK两种调制方式,支持的传输速率非常宽泛,从20kbps到1000kbps。下表列出了SAMR30的调制方式和其相应支持的速率。
SAMR30的MiWi 示例代码(从Microchip Studio的ASF得到示例代码)中,默认使用的是BPSK-40的调制方式和传输速率。
修改时,找到phy.c这个文件,然后找到函数PHY_Init(),里面有一行代码是用来配置寄存器TRX_CTRL_2(0x0C)寄存器的,代码复制如下:
phyWriteRegister(TRX_CTRL_2_REG,(1<<RX_SAFE_MODE)|(1<<ALT_SPECTRUM)|
    (0<<BPSK_OQPSK)|(1<<SUB_MODE));
    phyWriteRegister(RF_CTRL_0_REG,PWR_BPSK_OFFSET);
修改这一行代码来修改TRX_CTR_2的内容,就可以配置成不同的调制方式和传输速率。
具体到在不同的传输速率下如何设置这个寄存器的每一个bit,可以参考这个表。
对于SAMR21修改的方法是一样的,只是SAMR21只支持O-QPSK调制下的4中传输速率250kbps, 500kbps, 1000kbps, 2000kbps。速率比SAMR30要快,因为他是工作在2.4GHZ的。
SAMR21的TRS_CTRL_2寄存器的低3bit代表OQPSK_DATA_RATE,列表如下:
配置发射功率
配置发射功率时,代码的修改位置一样,也是在phy.c文件的PHY_Init()函数,修改的寄存器是PHY_TX_PWR(0x05)寄存器。
关于SAMR30,PHY_TX_PWR寄存器值所对应的功率,参考下表:
从上表可以看出,SAMR30支持的发送功率从-25dBm到+11dBm。
关于SAMR21,PHY_TX_PWR寄存器值所对应的功率,参考下表:
SAMR21没有内置PA boost的功能,支持的发射功率从-17dBm到+4dBm。

使用特权

评论回复
diffin|  楼主 | 2021-6-23 10:21 | 显示全部楼层
新手失误,上面帖子中的图片好像显示不出来,这里重新发一下对应的图片哈~
第一张图片:

SAMR30的调制方式和传输速率列表

SAMR30的调制方式和传输速率列表

使用特权

评论回复
diffin|  楼主 | 2021-6-23 10:24 | 显示全部楼层
第二张,SAMR30不同传输速率下的寄存器的各bits设置:

SAMR30寄存器按位设置

SAMR30寄存器按位设置

使用特权

评论回复
diffin|  楼主 | 2021-6-23 10:27 | 显示全部楼层
第三张图片,SAMR21的寄存器设置,OQPSK Data Rate 3bits:

SAMR21 data rate寄存器设置

SAMR21 data rate寄存器设置

使用特权

评论回复
diffin|  楼主 | 2021-6-23 11:39 | 显示全部楼层
第四张图片,SAMR30不同发射功率和band下的寄存器配置列表:

SAMR30 发射功率寄存器设置

SAMR30 发射功率寄存器设置

使用特权

评论回复
diffin|  楼主 | 2021-6-23 11:41 | 显示全部楼层
第五张图片,SAMR21不同发射功率的寄存器设置列表:

SAMR21发射功率寄存器设置

SAMR21发射功率寄存器设置

使用特权

评论回复
minihang| | 2021-6-23 17:09 | 显示全部楼层

使用特权

评论回复
paulxu786| | 2021-6-27 14:36 | 显示全部楼层
非常实用和用心,通过代码来弥补API的不足。发送功率与传输距离和穿墙能力密切相关。 发送功率与传输速率以及延迟的调整从而能满足各种场景的需求,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

13

帖子

0

粉丝