FORUM

SX1262 Timout

I am able to send a valid Join Request packet to the LoRa Gateway on EU 868.5MHz and the gateway in return sends a valid Join Accept message. The problem is that I am unable to receive this Join Accept Message. The receiver seems to go into a timeout state even though I set it not to produce a timeout.

I have tried the following but the same result
• Tired with a crystal
• Tried with an oscillator
• Tried different voltage levels
• Tried with
o Different RxTimeOut Counter values
o Always Rx Mode with Timeout (0xFFFFFFFF)
o Always Rx Mode with No timeout (even though the IRQ eventually reports a time out) (0x000000)
o SetLoRaSymbNumTimeout = 0x06 (min) to 0xFF(Max)

I have attached the code snippet I have used for Receive segment

       LoRaRadio.GetStatus();
       LoRaRadio.SetStandbyXSC();
        LoRaRadio.SetDIO2AsRFSwitchCtrl();
        LoRaRadio.SetSleep();
        LoRaRadio.GetStatus();
        LoRaRadio.SetStandbyXSC();
        LoRaRadio.ClearIRQStatus();
        LoRaRadio.SetPacketType(); //Set Packet Type as LoRa
        LoRaRadio.SetBufferBaseAddress(0x00, 0x00);
        LoRaRadio.SetRFFrequency(FrequencyInMHz);//Set to 868.5MHz. Same as Tx Frequency
        LoRaRadio.StopTimerOnPreamble();
        LoRaRadio.SetLoRaSymbNumTimeout(0xFF);// This is what creates the problem I think !!!!!!!
        LoRaRadio.SetModulationParameters(SF, BW, CR, Opti);
        LoRaRadio.SetPacketParameters((ushort)PreAmbleLength,
            LoRaRadioCommands.HeaderType.VariableLength_ExplicitHeader,
            (byte)MaxPacketSize, LoRaRadioCommands.CRCType.CRC_OFF,
            LoRaRadioCommands.InvertIQ.InvertedIQ);

        LoRaRadio.SetIQPolaritySetupRegister(LoRaRadioCommands.InvertIQ.InvertedIQ);
        LoRaRadio.SetPacketParameters((ushort)PreAmbleLength,
            LoRaRadioCommands.HeaderType.VariableLength_ExplicitHeader,
            (byte)0x40, LoRaRadioCommands.CRCType.CRC_OFF,
            LoRaRadioCommands.InvertIQ.InvertedIQ);
        LoRaRadio.SetDioIrqParams(0xFFFF, 0xFFFF, 0x0000, 0x0000);
        byte[] RxTimeOutCounter = new byte[] { 0xFF, 0xFF, 0xFF };

        LoRaRadio.SetRx(RxTimeOutCounter);

After running this portion of the code I get a series of [Status byte, IRQ Word (MSB, LSB)] = [0xD2,0x00,0x00] then after approximately 0.7Sec the device get stuck in [Status byte, IRQ Word (MSB, LSB)] = [0xA6,0x02,0x00]

The below information is from my gateway.

10:21:07 868.5-656.3-CRC_OKLORA4/5SF7BW125-57----AppEUI 70 B3 D5 3E 6F FF FF 01DevEUI 70 B3 D5 3E 6F FF FF 20
{
“freq”: 868500000,
“chan”: 2,
“tmst”: 3647176147,
“utmms”: 1624371665728,
“rfch”: 1,
“stat”: 1,
“rssi”: -65,
“size”: 23,
“modu”: “LORA”,
“datr”: “SF7BW125”,
“codr”: “4/5”,
“lsnr”: 6.3,
“data”: “AAH//28+1bNwIP//bz7Vs3AugZpFAkw=”
}
{
“MHDR”: {
“MType”: “Join Request”,
“RFU”: 0,
“Major”: 0
},
“JoinRequest”: {
“AppEUI”: "70 B3 D5 3E 6F FF FF 01 ",
“DevEUI”: "70 B3 D5 3E 6F FF FF 20 ",
“DevNonce”: “812E”
},
“MIC”: “4C02459A”
}

10:21:09 868.5–14NO_CRCLORA4/5SF7BW125-72----
{
“freq”: 868500000,
“mode”: “timerstamped”,
“tmst”: 3652176147,
“rfch”: 0,
“powe”: 14,
“prea”: 8,
“ncrc”: true,
“modu”: “LORA”,
“datr”: “SF7BW125”,
“codr”: “4/5”,
“ipol”: true,
“size”: 33,
“data”: “ICN0ZFWnP1BL3YOE2EnT2xdOijeTc+UdbFzv7liuogYL”
}
{
“MHDR”: {
“MType”: “Join Accept”,
“RFU”: 0,
“Major”: 0
},
“JoinAccept”: “23746455A73F504BDD8384D849D3DB174E8A379373E51D6C5CEFEE58”,
“MIC”: “AEA2060B”
}

Hi @gautham.karnik, what LoRaWAN stack are you using?

I am not using a stack. I am sending individual SPI commands to control the SX1262. I want to have visibility into the stack and I want a method to quickly run a set of tests on the custom built hardware with SX1262 on it. For this I need to have the complete control over the SX1262.
My test case is only to confirm if the SX1262 transmit power is flat over the frequency band. Also I want to test if the SX1262 can Join to a Gateway (with the TTN registered APPEUI, DEVEUI and APPKEY) over all the channels or whatever channels the Gateway is programmed to accept Join Requests.
And as you can see I can transmit fine and is confirmed from the Gateway. The gateway sends back a Join Accept packet. But I am unable to receive it as my receiver (SX1262) has timed out despite it being in “NO TIMEOUT RX MODE”.

Are you sure the chip is configured with the right parameters to receive the JoinAccept from the gateway?