你好,
我正在做一个项目,其中DA 14585设备一直处于扫描模式。我们使用的是SDK 6.0.4。该设备捕获从两个设备发送的BLE报文,每个发送间隔500ms, tx功率分别为0dBm和8dbm。测试在0米到14米的不同距离内重复进行。捕获数据包后,使用链接中指定的公式将接收到的rssi值转换为相应的dBm值https://support.dialog-semiconductor.com/convert-rssi-dbm.在分析结果时,观察到rssi的巨大范围,即使在较短的距离中获得的dBm值也非常低。例如,在0米的距离上,0dBm功率发送设备的rssi到dbm的转换值接近-70,而8dBm功率发送BLE报文的设备的rssi到dbm的转换值为-69。范围也不是在数据表中指定的2db。请告知新SDK版本的转换公式是否有所不同?原因为何?
谢谢和问候
Wisilica
设备:

嗨wisilica,
585上的转换公式和计算方法被改变了,你得到的错误报告值是发布的SDK上的一个bug,为了得到正确的值,你将不得不替换rf_rssi_convert()函数,而不是返回rssi_reg/2用return ((rssi_reg >> 1U)-112U);一旦你得到它,你应该能够得到正确的值,而不需要额外的转换。
由于MT_dialog
你好,
根据建议的方法,返回值已更改为return ((rssi_reg >> 1)-112);在rf_rssi_convert()中。现在,在0米的距离上,我们得到的值i param->报告。Rssi取值范围为e6 ~ e7。这对应的是什么?是否需要进行其他转换?
谢谢
嗨wisilica,
不,不需要转换。修改后返回的值是dbm中RSSI的实际值,如果将其作为有符号值读取,则0xE6代表-26dbm。
由于MT_dialog
你好,
按照你的建议,我们已经修改了代码,并且重新测试。PFA是我们得到的rssi与距离的关系图。rssi不随距离线性减小。此外,在每种情况下,rssi的位移都在10 - 15 dbm左右。请说明原因。
谢谢
Wisilica
嗨wisilica,
RSSI的测量单位是dbm, dbm是一个对数单位,RSSI和距离之间的关系不是线性的,你不会看到RSSI随着距离的增加直接减少,如果这是你期望观察到的。此外,为了正确地测试这一点,你必须执行屏蔽测量(为移动)。
由于MT_dialog
你好,
随函附上对数分析。实际变化与对数表示之间仍存在差异。
请检查。
谢谢
Wisilica
嗨wisilica,
有相当多的公式用来估算基于RSSI的距离,这超出了本论坛的范围,我建议在网上查找更多关于这方面的细节,如果这是你想做的。虽然你不能得到一个精确的读数,而且大多数公式提供了距离的粗略估计,对于图来说,天线和系统一般都不是完美的,例如,接收到的信号的功率在所有频率下都不会相同,而且为了准确的测试需要在屏蔽环境中进行,因为rssi值受噪声的影响很大。
由于MT_dialog
你好,
我想知道在DA 14580(SDK 5.0.4)的情况下返回的rssi是否正确,即rssi_reg/2。这个bug只存在于585 SDK 6.0.4,对吗?
谢谢
Wisilica
嗨wisilica,
是的,rssi的计算在这两个soc上是不同的,因为585使用了不同的堆栈,如何在dbm中计算rssi在下面的链接中有文档,不,你不需要在580 SDK上应用那个补丁:
https://support.dialog-semiconductor.com/guide/faq-da1458x-software-peri..。(FAQ:如何读取RSSI值并将其转换为dBm)。
由于MT_dialog