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”
}