请选择 进入手机版 | 继续访问电脑版
查看: 73|回复: 2

[开发求助] Lora问题咨询

[复制链接]

1

主题

1

帖子

5

积分

助理工程师

Rank: 1

积分
5
发表于 2019-5-9 11:13:05 | 显示全部楼层 |阅读模式
n 代码中计算码元周期的公式与芯片资料中的不同: (详见代码中函数: bool LoRaConfig_Check(void)))
                代码中的计算公式为:
                Ts = (2^(SF-1)) / BW.
                芯片资料中的计算公式为: (详见手册中P28P31.)
                Ts = (2^SF) / BW.
n 代码中计算收包的RSSI的计算公式与芯片资料中的不同:(详见代码中函数: void SX127X_RxPacket(uint8_t*cbuf))
                代码中的计算公式为:
                if (SNR < 0)
                {
                        RSSI = -164 + PacketRssi(寄存器0x1a的值) - SNR;
                }
                else
                {
                        RSSI = -164 + PacketRssi(寄存器0x1a的值)*16/15;
                }
                芯片资料中的计算公式为: (详见手册P87.)
if (SNR < 0)
                {
                        RSSI(dBm) = -167 + PacketRssi(寄存器0x1a的值) + SNR*0.25;
                }
                else
                {
                        RSSI(dBm) = -167 + (PacketRssi(寄存器0x1a的值)*16)/15;
                }
Ø 请教问题
n 芯片手册P31
file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml4656/wps2.jpg
        上面的公式是用来计算数据帧(不包含前导码.)转换为码元的数目。思来想去,总感觉这个公式有问题: 搞不明白公式中的CRC到底表示的是什么?
如果是数据帧中payload区的CRC校验值的话,那不是会出现: 在同样的PLSFCRDEIH情况下,发送不同数据时,npayload 的值不一样!!!(这样的话,就说不通了!!)
n 数据传输速率Rb
Rb = SF * (BW/2^SF) * (4/(4+CR))
其中:
SF        : 扩频因子
BW         : 带宽.
CR        : 编码率.
对于SX1278
BW        : 7.8 – 500KHz;
SF        : 6 - 12
CR        : 1 – 4
所以:
Rb_max = 6 * (500K/2^6) * (4/(1+4)) = 37.5kbps
Rb_min = 12 * (7.8K/2^12) * (4/(4+4)) = 0.011kbps.
但是手册中描述: SX1278的数据传输速率为: 0.018 - 37.5kbps.
                请教下:
1) 这个0.018是怎么计算出来的?示例
1557371408(1).png
回复

使用道具 举报

7

主题

10

帖子

128

积分

利尔达员工

Rank: 9Rank: 9Rank: 9

积分
128
发表于 2019-5-9 16:02:41 | 显示全部楼层
您好:
1)关于Ts的问题,代码中用的是效率更改的左移的方式进行计算的,而不是次方的方式,所以会有一个-1。比如2<<3等效于2^4.
企业微信截图_20190509152817.jpg
2)同样,关于RSSI的计算,我们也是先对SNR做过处理的,通过右移实现*0.25,并转换了±符号,代码如下: 企业微信截图_20190509153332.jpg
    另,参照19年最新版的规格书,应为常数应为-164(这个值实际上是可以根据实际情况做校正以得到更准确的RSSI的)
企业微信截图_20190509153836.jpg
3)关于公式中的CRC,这只是代表当前数据包是否带CRC校验位,不是指其CRC的确定值,当有CRC时该值为1,无CRC时该值为0.
4)第四个问题,手册里面应该是统一按照CR=1的条件来计算的。这个我们会跟原厂建议增加该说明以免引起误会。

谢谢反馈的问题,如果还有问题可以继续回复提问,谢谢。

回复

使用道具 举报

0

主题

1

帖子

3

积分

助理工程师

Rank: 1

积分
3
发表于 2019-5-10 08:54:14 | 显示全部楼层
多谢多谢,本人理解错误:
对代码中码元周期的计算公式,本人将"2<<"的运算误解为了"1<<";

对RSSI,将芯片中的计算公式:
当SNR<0时:
RSSI = -164 + PacketRssi + PacketSnr*0.25;
本人将PacketSnr误解为了就是SNR值。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表