SX1276 library for modtronix inair9. Edited for use with NRF51DK board.
Fork of SX1276Lib_modtronix by
Revision 26:ad32782125eb, committed 2017-11-19
- Comitter:
- AMNoll
- Date:
- Sun Nov 19 18:19:55 2017 +0000
- Parent:
- 25:72381be1b0ce
- Commit message:
- latest version of pingpong on inair9
Changed in this revision
--- a/debug/myDebug.h Wed Jul 29 12:07:40 2015 +1000 +++ b/debug/myDebug.h Sun Nov 19 18:19:55 2017 +0000 @@ -29,13 +29,13 @@ /** Output a debug message * * @param format printf-style format string, followed by variables - */ + *//* static inline void debug(const char *format, ...) { va_list args; va_start(args, format); vfprintf(stderr, format, args); va_end(args); -} +}*/ /** Conditionally output a debug message *
--- a/sx1276/sx1276-inAir.cpp Wed Jul 29 12:07:40 2015 +1000 +++ b/sx1276/sx1276-inAir.cpp Sun Nov 19 18:19:55 2017 +0000 @@ -75,6 +75,18 @@ //For NZ32ST1L board with BOARD_INAIR4 in imod2 : SX1276( txDone, txTimeout, rxDone, rxTimeout, rxError, fhssChangeChannel, cadDone, PB_5/*MOSI*/, PB_4/*MISO*/, PB_3/*SCLK*/, PC_8/*CS*/, PA_9/*RST*/, PB_0/*DIO0*/, PB_1, PC_6, PA_10), + #elif defined( TARGET_NRF51_DK ) + #warning "Target_NRF51_DK_Registered" + //FOLLOWING PINS ARE LISTED IN ORDER OF ARGUMENTS IN SX1276() + //FOR SPI INSTANCE 0: mosi -> SPI_PSELMOSI0 = p25, miso -> SPI_PSELMISO0 = p28, sclk -> SPI_PSELSCK0 = p29, nss -> SPI_PSELSS0 = p24 + //FOR SPI INSTANCE 1 WHICH IS USED HERE: mosi->SPI_PSELMOSI1 = p13, miso -> SPI_PSELMISO1 = p14, sclk -> SPI_PSELSCK1 = p15, nss -> SPI_PSELSS1 = p12 + //FOR RESET: reset -> P0_4 = p4 + //FOR GPIO: dio0 -> P0_0 = p0, dio1 -> P0_1 = p1, dio2 -> P0_2 = p2, dio3 -> P0_3 = p3, 4&5 NOT ATTACHED AND NOT INCLUDED (dio4(NC) -> P0_19 = p19, dio4(NC) -> P0_20 = p20) + //FOR ANTENNA SWITCH: antSwitch -> P0_13=p13 + //FOR FAKE: Fake -> P0_14=p14 NOT CONNECTED + : SX1276( txDone, txTimeout, rxDone, rxTimeout, rxError, fhssChangeChannel, cadDone, SPI_PSELMOSI1, SPI_PSELMISO1, SPI_PSELSCK1, SPI_PSELSS1, P0_4, P0_0, P0_1, P0_2, P0_3), + //AntSwitch( P0_13 ), + //Fake( NC ) #else : SX1276( txDone, txTimeout, rxDone, rxTimeout, rxError, fhssChangeChannel, cadDone, D11, D12, D13, D10, A0, D2, D3, D4, D5), #endif @@ -82,6 +94,7 @@ fake( NC ) { + Reset( ); boardConnected = BOARD_UNKNOWN; @@ -99,6 +112,7 @@ SetModem( MODEM_FSK ); this->settings.State = IDLE ; + } //------------------------------------------------------------------------- @@ -135,6 +149,8 @@ spi.frequency( frequencyToSet ); #elif( defined ( TARGET_KL25Z ) ) //busclock frequency is halved -> double the spi frequency to compensate spi.frequency( frequencyToSet * 2 ); + #elif( defined ( TARGET_NRF51_DK ) ) //busclock frequency is halved -> double the spi frequency to compensate + spi.frequency( frequencyToSet ); #else #warning "Check the board's SPI frequency" #endif
--- a/sx1276/sx1276.cpp Wed Jul 29 12:07:40 2015 +1000 +++ b/sx1276/sx1276.cpp Sun Nov 19 18:19:55 2017 +0000 @@ -14,6 +14,8 @@ */ #include "sx1276.h" +Serial pc1(USBTX, USBRX); + const FskBandwidth_t SX1276::FskBandwidths[] = { { 2600 , 0x17 }, @@ -741,6 +743,12 @@ void SX1276::Rx( uint32_t timeout ) { + // configure uart port + pc1.baud(9600); + pc1.format(8, SerialBase::None, 1); + pc1.printf("PC printing enabled\n\r"); + wait(2); + bool rxContinuous = false; switch( this->settings.Modem ) @@ -775,6 +783,9 @@ break; case MODEM_LORA: { + + pc1.printf("MODEM_LORA enabled \n\r"); + if( this->settings.LoRa.IqInverted == true ) { Write( REG_LR_INVERTIQ, ( ( Read( REG_LR_INVERTIQ ) & RFLR_INVERTIQ_TX_MASK & RFLR_INVERTIQ_RX_MASK ) | RFLR_INVERTIQ_RX_ON | RFLR_INVERTIQ_TX_OFF ) ); @@ -821,9 +832,13 @@ break; } + //this->settings.State + pc1.printf("got to memset and setting RX_DONE\n\r"); + memset( rxBuffer, 0, ( size_t )RX_BUFFER_SIZE ); this->settings.State = RX_DONE; + if( timeout != 0 ) { rxTimeoutTimer.attach_us( this, &SX1276::OnTimeoutIrq, timeout );