先说两句

在调试和移植的过程中

我们经常想用节点去抓上行包 或者去抓下行包

但在抓取的过程中发现,上行包抓取不到到,或是下行包抓取不到,或者是两个都抓取不到,觉得非常的诡异。明明接收频点、BW和SF都设置正确,百思不得其解

下面我就来解析一下这个问题

影响接收和发射的参数

常见通信参数

1.频点,这个应该都明白,如果收发的频点不一样,肯定是收不到包的
2.SF(扩频因子),这个相当于速率,两端设置不同肯定也会收不到
3.BW(带宽),假如用125Khz发射,用250Khz去接收,这也是收不到的,很显而易见

非常见通信参数

1.SYNC_WORD 同步字,芯片在收到RF包时,会比较包中的同步字是否相同 LoRaWAN的同步字为0x34,在LoRaMAC_init();中有设置,上电RF芯片默认不是这个
2.iqInverted 表示是否将IQ信号反转,若接收和放射端的配置不一样,会造成接收端无法产生RXDOEN,收不到数据

注意点

在用node抓取另一个发送LoRaWAN数据包的节点的数据时,经常发现无法抓取到的情况
因为在SDK中,发射端是这样设置的,可以看到iqInverted==FALSE;

    Radio.SetTxConfig( MODEM_LORA, txPower, 0, 0, datarate, 1, 8, false, true, 0, 0, false, 3e3 );

而在接收端,

    Radio.SetRxConfig( modem, bandwidth, downlinkDatarate, 1, 0, 8, timeout, false, 0, false, 0, 0, true, rxContinuous );