Skip to content

Commit 78f7224

Browse files
committed
[RP2XXX] build with LR11XX driver
1 parent a95b44d commit 78f7224

File tree

9 files changed

+59
-34
lines changed

9 files changed

+59
-34
lines changed

software/firmware/source/SoftRF/src/driver/radio/almic.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@
3030
#include "../EEPROM.h"
3131
#include "../Battery.h"
3232

33+
#ifndef RadioSPI
34+
#define RadioSPI SPI
35+
#endif
36+
3337
extern size_t RF_tx_size;
3438

3539
static bool sx1276_probe(void);
@@ -126,7 +130,7 @@ static bool sx1276_probe()
126130
v = sx1276_readReg(SX1276_RegVersion);
127131

128132
pinMode(lmic_pins.nss, INPUT);
129-
SPI.end();
133+
RadioSPI.end();
130134

131135
if (v == 0x12 || v == 0x13) {
132136

@@ -185,7 +189,7 @@ static bool sx1262_probe()
185189
v = sx1262_ReadReg(REG_LORASYNCWORDLSB);
186190

187191
pinMode(lmic_pins.nss, INPUT);
188-
SPI.end();
192+
RadioSPI.end();
189193

190194
u1_t fanet_sw_lsb = ((fanet_proto_desc.syncword[0] & 0x0F) << 4) | 0x04;
191195
if (v == SX126X_DEF_LORASYNCWORDLSB || v == fanet_sw_lsb) {
@@ -498,7 +502,7 @@ static void sx1276_shutdown()
498502
{
499503
LMIC_shutdown();
500504

501-
SPI.end();
505+
RadioSPI.end();
502506
}
503507

504508
#if defined(USE_BASICMAC)
@@ -508,7 +512,7 @@ static void sx1262_shutdown()
508512
sx126x_ll_ops.radio_sleep();
509513
delay(1);
510514

511-
SPI.end();
515+
RadioSPI.end();
512516
}
513517
#endif /* USE_BASICMAC */
514518

software/firmware/source/SoftRF/src/driver/radio/nordic.cpp

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@
3131

3232
#include "../EEPROM.h"
3333

34+
#ifndef RadioSPI
35+
#define RadioSPI SPI
36+
#endif
37+
3438
static bool nrf905_probe(void);
3539
static void nrf905_setup(void);
3640
static void nrf905_channel(int8_t);
@@ -63,20 +67,20 @@ static bool nrf905_probe()
6367
SoC->SPI_begin();
6468

6569
#if defined(ARDUINO) && !defined(RASPBERRY_PI) && !defined(ARDUINO_ARCH_MBED)
66-
SPI.setClockDivider(SPI_CLOCK_DIV2);
70+
RadioSPI.setClockDivider(SPI_CLOCK_DIV2);
6771
#endif /* ARDUINO */
6872

6973
digitalWrite(CS_N, LOW);
7074

71-
SPI.transfer(NRF905_CMD_R_TX_ADDRESS);
75+
RadioSPI.transfer(NRF905_CMD_R_TX_ADDRESS);
7276
for(uint8_t i=4;i--;) {
73-
addr[i] = SPI.transfer(NRF905_CMD_NOP);
77+
addr[i] = RadioSPI.transfer(NRF905_CMD_NOP);
7478
}
7579

7680
digitalWrite(CS_N, HIGH);
7781
pinMode(CS_N, INPUT);
7882

79-
SPI.end();
83+
RadioSPI.end();
8084

8185
#if 0
8286
delay(3000);
@@ -210,7 +214,7 @@ static bool nrf905_transmit()
210214
static void nrf905_shutdown()
211215
{
212216
nRF905_powerDown();
213-
SPI.end();
217+
RadioSPI.end();
214218
}
215219

216220
#endif /* EXCLUDE_NRF905 */

software/firmware/source/SoftRF/src/driver/radio/ogn.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@
3535
#include <rf/combo/rfm.h>
3636
#endif /* WITH_SI4X32 */
3737

38+
#ifndef RadioSPI
39+
#define RadioSPI SPI
40+
#endif
41+
3842
static bool ognrf_probe(void);
3943
static void ognrf_setup(void);
4044
static void ognrf_channel(int8_t);
@@ -97,7 +101,7 @@ static bool ognrf_probe()
97101
uint8_t ChipVersion = TRX.ReadVersion();
98102

99103
pinMode(lmic_pins.nss, INPUT);
100-
SPI.end();
104+
RadioSPI.end();
101105

102106
#if defined(WITH_RFM95)
103107
if (ChipVersion == 0x12 || ChipVersion == 0x13) success = true;
@@ -286,7 +290,7 @@ static bool ognrf_transmit()
286290
static void ognrf_shutdown()
287291
{
288292
TRX.WriteMode(RF_OPMODE_STANDBY);
289-
SPI.end();
293+
RadioSPI.end();
290294

291295
pinMode(lmic_pins.nss, INPUT);
292296
}

software/firmware/source/SoftRF/src/driver/radio/radiolib.cpp

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,10 @@ const rfchip_ops_t lr1121_ops = {
6060
#define USE_SX1262 0
6161
#define USE_LR11XX 1
6262

63+
#ifndef RadioSPI
64+
#define RadioSPI SPI
65+
#endif
66+
6367
Module *mod;
6468
#if USE_SX1262
6569
SX1262 *radio;
@@ -94,9 +98,9 @@ static void hal_spi_select (int on) {
9498

9599
#if defined(SPI_HAS_TRANSACTION)
96100
if (on)
97-
SPI.beginTransaction(probe_settings);
101+
RadioSPI.beginTransaction(probe_settings);
98102
else
99-
SPI.endTransaction();
103+
RadioSPI.endTransaction();
100104
#endif
101105

102106
//Serial.println(val?">>":"<<");
@@ -277,7 +281,7 @@ static bool lr1110_probe()
277281
lr11xx_GetVersion(&hw, &device, &major, &minor);
278282

279283
pinMode(lmic_pins.nss, INPUT);
280-
SPI.end();
284+
RadioSPI.end();
281285

282286
if (device == RADIOLIB_LR11X0_DEVICE_LR1110) {
283287

@@ -318,7 +322,7 @@ static bool lr1121_probe()
318322
v = sx1262_ReadReg(REG_LORASYNCWORDLSB);
319323

320324
pinMode(lmic_pins.nss, INPUT);
321-
SPI.end();
325+
RadioSPI.end();
322326

323327
u1_t fanet_sw_lsb = ((fanet_proto_desc.syncword[0] & 0x0F) << 4) | 0x04;
324328
if (v == SX126X_DEF_LORASYNCWORDLSB || v == fanet_sw_lsb) {
@@ -353,7 +357,7 @@ static bool lr1121_probe()
353357
lr11xx_GetVersion(&hw, &device, &major, &minor);
354358

355359
pinMode(lmic_pins.nss, INPUT);
356-
SPI.end();
360+
RadioSPI.end();
357361

358362
if (device == RADIOLIB_LR11X0_DEVICE_LR1121) {
359363

@@ -406,7 +410,7 @@ static void lr11xx_setup()
406410
uint32_t busy = lmic_pins.busy == LMIC_UNUSED_PIN ?
407411
RADIOLIB_NC : lmic_pins.busy;
408412

409-
mod = new Module(lmic_pins.nss, irq, lmic_pins.rst, busy, SPI);
413+
mod = new Module(lmic_pins.nss, irq, lmic_pins.rst, busy, RadioSPI);
410414
#if USE_SX1262
411415
radio = new SX1262(mod);
412416
#endif
@@ -1151,7 +1155,7 @@ static void lr11xx_shutdown()
11511155
state = radio->sleep(false, 0);
11521156
#endif
11531157

1154-
SPI.end();
1158+
RadioSPI.end();
11551159
}
11561160

11571161
#endif /* USE_RADIOLIB */

software/firmware/source/SoftRF/src/platform/RP2XXX.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,8 @@ struct rst_info {
111111
#define SOC_GPIO_PIN_SCK (10u)
112112
#define SOC_GPIO_PIN_SS (13u)
113113

114+
#define RadioSPI SPI1
115+
114116
/* NRF905 */
115117
#define SOC_GPIO_PIN_TXE SOC_UNUSED_PIN
116118
#define SOC_GPIO_PIN_CE SOC_UNUSED_PIN
@@ -185,6 +187,8 @@ struct rst_info {
185187
#define SOC_GPIO_PIN_SCK (10u)
186188
#define SOC_GPIO_PIN_SS (3u)
187189

190+
#define RadioSPI SPI1
191+
188192
/* NRF905 */
189193
#define SOC_GPIO_PIN_TXE SOC_UNUSED_PIN
190194
#define SOC_GPIO_PIN_CE SOC_UNUSED_PIN
@@ -327,7 +331,9 @@ struct rst_info {
327331
#endif /* ARDUINO_ARCH_MBED */
328332

329333
#define USE_BASICMAC
330-
//#define USE_RADIOLIB
334+
#if defined(ARDUINO_GENERIC_RP2040)
335+
#define USE_RADIOLIB
336+
#endif /* ARDUINO_GENERIC_RP2040 */
331337

332338
#define USE_TIME_SLOTS
333339

software/firmware/source/SoftRF/src/platform/nRF52.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1380,18 +1380,18 @@ static void nRF52_setup()
13801380
nRF52_board == NRF52_LILYGO_TECHO_REV_1 ||
13811381
nRF52_board == NRF52_LILYGO_TECHO_REV_2 ||
13821382
nRF52_board == NRF52_LILYGO_TULTIMA) {
1383-
String NFC_name = SOFTRF_IDENT;
1384-
NFC_name += "-";
1385-
NFC_name += String(SoC->getChipId() & 0x00FFFFFFU, HEX);
1386-
13871383
if ((NRF_UICR->NFCPINS & UICR_NFCPINS_PROTECT_Msk) != (UICR_NFCPINS_PROTECT_NFC << UICR_NFCPINS_PROTECT_Pos)) {
13881384
Serial.println("*** NFC pins are disabled ***");
13891385
// nfcpins_enable();
1390-
}
1386+
} else {
1387+
String NFC_name = SOFTRF_IDENT;
1388+
NFC_name += "-";
1389+
NFC_name += String(SoC->getChipId() & 0x00FFFFFFU, HEX);
13911390

1392-
NFC.setTXTmessage((NFC_name+"-NFC").c_str(), "en");
1393-
NFC.start();
1394-
NFC.registerCallback(nfc_func);
1391+
NFC.setTXTmessage((NFC_name+"-NFC").c_str(), "en");
1392+
NFC.start();
1393+
NFC.registerCallback(nfc_func);
1394+
}
13951395
}
13961396
#endif /* ENABLE_NFC */
13971397
}

software/firmware/source/libraries/arduino-basicmac/src/hal/hal.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@
2121
#include <cc13xx/cc13xx.h>
2222
#endif /* ENERGIA_ARCH_CC13XX || ENERGIA_ARCH_CC13X2 */
2323

24+
#if defined(ARDUINO_ARCH_RP2040) || defined(ARDUINO_ARCH_RP2350)
25+
#undef SPI
26+
#define SPI SPI1
27+
#endif /* ARDUINO_ARCH_RP2040 || ARDUINO_ARCH_RP2350 */
28+
2429
#if defined(ARDUINO_ARCH_RENESAS)
2530
#include <SoftSPI.h>
2631
extern SoftSPI RadioSPI;

software/firmware/source/libraries/arduino-basicmac/src/hal/target-config.h

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,6 @@
9494

9595
#endif /* ARDUINO_ARCH_NRF52 */
9696

97-
#if defined(ARDUINO_ARCH_RP2040) || defined(ARDUINO_ARCH_RP2350)
98-
99-
#undef SPI
100-
#define SPI SPI1
101-
102-
#endif /* ARDUINO_ARCH_RP2040 || ARDUINO_ARCH_RP2350 */
103-
10497
#if defined(ARDUINO_ARCH_RENESAS)
10598
#ifndef SPI_HAS_TRANSACTION
10699
#define SPI_HAS_TRANSACTION 1

software/firmware/source/libraries/arduino-lmic/src/hal/hal.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@
2121
#include <cc13xx/cc13xx.h>
2222
#endif /* ENERGIA_ARCH_CC13XX || ENERGIA_ARCH_CC13X2 */
2323

24+
#if defined(ARDUINO_ARCH_RP2040) || defined(ARDUINO_ARCH_RP2350)
25+
#undef SPI
26+
#define SPI SPI1
27+
#endif /* ARDUINO_ARCH_RP2040 || ARDUINO_ARCH_RP2350 */
28+
2429
#if defined(ARDUINO_ARCH_RENESAS) // || defined(ARDUINO_ARCH_SILABS)
2530
#include <SoftSPI.h>
2631
extern SoftSPI RadioSPI;

0 commit comments

Comments
 (0)