n 代码中计算码元周期的公式与芯片资料中的不同: (详见代码中函数: bool LoRaConfig_Check(void))) 代码中的计算公式为: Ts = (2^(SF-1)) / BW. 芯片资料中的计算公式为: (详见手册中P28、P31.) 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校验值的话,那不是会出现: 在同样的PL、SF、CR、DE、IH情况下,发送不同数据时,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是怎么计算出来的?示例 |