Enabled all bandwidths, added Modtronix inAir9 module

Dependents:   SX1276PingPong_modtronix

Fork of SX1276Lib by Gregory Cristian

Files at this revision

API Documentation at this revision

Comitter:
modtronix
Date:
Wed Jul 29 12:07:40 2015 +1000
Parent:
24:1346d1c71c40
Commit message:
Removed DIO4 and DIO5 from code. Not available on inAir Modules.

Changed in this revision

SX1276LibConfig.h Show annotated file Show diff for this revision Revisions of this file
enums/enums.h Show annotated file Show diff for this revision Revisions of this file
sx1276/sx1276-inAir.cpp Show annotated file Show diff for this revision Revisions of this file
sx1276/sx1276-inAir.h Show annotated file Show diff for this revision Revisions of this file
sx1276/sx1276.cpp Show annotated file Show diff for this revision Revisions of this file
sx1276/sx1276.h Show annotated file Show diff for this revision Revisions of this file
--- a/SX1276LibConfig.h	Fri Jul 24 21:35:37 2015 +1000
+++ b/SX1276LibConfig.h	Wed Jul 29 12:07:40 2015 +1000
@@ -7,7 +7,7 @@
 
 //Use the SHD3I shield, with the BOARD_INAIR4 module assembled in iMod port 3. The following pins are used:
 //SCLK=D13, MISO=D12, MOSI=D11
-//DIO0=D2, DIO1=D8, DIO2=D4, DIO3=A4, DIO5=D3  DIO4=Not Used
+//DIO0=D2, DIO1=D8, DIO2=D4, DIO3=A4, DIO5=Not Used  DIO4=Not Used
 //NSS(CS)=D7, Reset=A5
 #ifndef SHIELD_SHD3I_INAIR9
 #define SHIELD_SHD3I_INAIR9
--- a/enums/enums.h	Fri Jul 24 21:35:37 2015 +1000
+++ b/enums/enums.h	Wed Jul 29 12:07:40 2015 +1000
@@ -27,12 +27,15 @@
     LOWPOWER = 0,
     IDLE,
     
-    RX,
+    INIT,
+
+    RX_DONE,
     RX_TIMEOUT,
     RX_ERROR,
     
-    TX,
+    TX_DONE,
     TX_TIMEOUT,
+    TX_MESSAGE,
     
     CAD,
     CAD_DONE
--- a/sx1276/sx1276-inAir.cpp	Fri Jul 24 21:35:37 2015 +1000
+++ b/sx1276/sx1276-inAir.cpp	Wed Jul 29 12:07:40 2015 +1000
@@ -31,9 +31,9 @@
 SX1276inAir::SX1276inAir( void ( *txDone )( ), void ( *txTimeout ) ( ), void ( *rxDone ) ( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr ), 
                             void ( *rxTimeout ) ( ), void ( *rxError ) ( ), void ( *fhssChangeChannel ) ( uint8_t channelIndex ), void ( *cadDone ) ( bool ChannelActivityDetected ),
                             PinName mosi, PinName miso, PinName sclk, PinName nss, PinName reset,
-                            PinName dio0, PinName dio1, PinName dio2, PinName dio3, PinName dio4, PinName dio5,
+                            PinName dio0, PinName dio1, PinName dio2, PinName dio3, /*PinName dio4, PinName dio5,*/
                             PinName antSwitch )
-                            : SX1276( txDone, txTimeout, rxDone, rxTimeout, rxError, fhssChangeChannel, cadDone, mosi, miso, sclk, nss, reset, dio0, dio1, dio2, dio3, dio4, dio5),
+                            : SX1276( txDone, txTimeout, rxDone, rxTimeout, rxError, fhssChangeChannel, cadDone, mosi, miso, sclk, nss, reset, dio0, dio1, dio2, dio3/*, dio4, dio5*/),
                             antSwitch( NC ),
                             fake( NC )
 {
@@ -62,21 +62,21 @@
                         #if( (defined (TARGET_NUCLEO_L152RE) || defined (TARGET_NUCLEO_F401RE)) && defined(SHIELD_SHD3I_INAIR9))
                         //For SHD3I with BOARD_INAIR4 in imod3, on Nucleo board
                         :   SX1276( txDone, txTimeout, rxDone, rxTimeout, rxError, fhssChangeChannel, cadDone,
-                                    D11/*MOSI*/, D12/*MISO*/, D13/*SCLK*/, D7/*CS*/, A5/*RST*/, D2/*DIO0*/, D8, D4, A4, PC_3/*FAKE!!!*/, D3/*DIO5*/ ),
+                                    D11/*MOSI*/, D12/*MISO*/, D13/*SCLK*/, D7/*CS*/, A5/*RST*/, D2/*DIO0*/, D8, D4, A4),
                         #elif( defined (TARGET_K64F) && defined(SHIELD_SHD3I_INAIR9) ) /* Use pin PTC0 as fake pin */
                         //For SHD3I with BOARD_INAIR4 in imod3, on FRDM-K64F board
                         :   SX1276( txDone, txTimeout, rxDone, rxTimeout, rxError, fhssChangeChannel, cadDone,
-                                    D11/*MOSI*/, D12/*MISO*/, D13/*SCLK*/, D7/*CS*/, A5/*RST*/, D2/*DIO0*/, D8, D4, A4, PTC0/*FAKE!!!*/, D3/*DIO5*/ ),
+                                    D11/*MOSI*/, D12/*MISO*/, D13/*SCLK*/, D7/*CS*/, A5/*RST*/, D2/*DIO0*/, D8, D4, A4),
                         #elif( defined (TARGET_KL25Z) && defined(SHIELD_SHD3I_INAIR9) ) /* Use pin PTD7 as fake pin - only A & D pins have interrupts */
                         //For SHD3I with BOARD_INAIR4 in imod3, on FRDM-KL25Z board
                         :   SX1276( txDone, txTimeout, rxDone, rxTimeout, rxError, fhssChangeChannel, cadDone,
-                                    D11/*MOSI*/, D12/*MISO*/, D13/*SCLK*/, D7/*CS*/, A5/*RST*/, D2/*DIO0*/, D8, D4, A4, PTD7/*FAKE!!!*/, D3/*DIO5*/ ),
+                                    D11/*MOSI*/, D12/*MISO*/, D13/*SCLK*/, D7/*CS*/, A5/*RST*/, D2/*DIO0*/, D8, D4, A4),
                         #elif ( defined(TARGET_NZ32ST1L) || defined(TARGET_NZ32SC151) )
                         //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, PC_3/*FAKE!!!*/, PC_13/*DIO5*/ ),
+                                    PB_5/*MOSI*/, PB_4/*MISO*/, PB_3/*SCLK*/, PC_8/*CS*/, PA_9/*RST*/, PB_0/*DIO0*/, PB_1, PC_6, PA_10),
                         #else
-                        :   SX1276( txDone, txTimeout, rxDone, rxTimeout, rxError, fhssChangeChannel, cadDone, D11, D12, D13, D10, A0, D2, D3, D4, D5, D8, D9 ),
+                        :   SX1276( txDone, txTimeout, rxDone, rxTimeout, rxError, fhssChangeChannel, cadDone, D11, D12, D13, D10, A0, D2, D3, D4, D5),
                         #endif
                             antSwitch( NC ),
                             fake( NC )
@@ -130,9 +130,7 @@
 {
     nss = 1;    
     spi.format( 8,0 );   
-    //uint32_t frequencyToSet = 8000000;
-    // TEST TEST
-    uint32_t frequencyToSet = 1000000;   //DJH - Reduced speed to 1MHz
+    uint32_t frequencyToSet = 8000000;
     #if( defined ( TARGET_NUCLEO_L152RE ) || defined (TARGET_NUCLEO_F401RE) || defined ( TARGET_LPC11U6X ) || defined (TARGET_K64F) || defined ( TARGET_NZ32ST1L ) || defined(TARGET_NZ32SC151) )
         spi.frequency( frequencyToSet );
     #elif( defined ( TARGET_KL25Z ) ) //busclock frequency is halved -> double the spi frequency to compensate
@@ -151,7 +149,7 @@
         dio1.mode(PullDown);   
         dio2.mode(PullDown);
         dio3.mode(PullDown); 
-        dio4.mode(PullDown); 
+        //dio4.mode(PullDown);
     #endif
     dio0.rise( this, static_cast< TriggerInAir > ( irqHandlers[0] ) );
     dio1.rise( this, static_cast< TriggerInAir > ( irqHandlers[1] ) );
@@ -162,7 +160,7 @@
     #else
     dio3.rise( this, static_cast< TriggerInAir > ( irqHandlers[3] ) );
     #endif
-    dio4.rise( this, static_cast< TriggerInAir > ( irqHandlers[4] ) );
+    //dio4.rise( this, static_cast< TriggerInAir > ( irqHandlers[4] ) );
 }
 
 void SX1276inAir::IoDeInit( void )
--- a/sx1276/sx1276-inAir.h	Fri Jul 24 21:35:37 2015 +1000
+++ b/sx1276/sx1276-inAir.h	Wed Jul 29 12:07:40 2015 +1000
@@ -30,7 +30,7 @@
     SX1276inAir( void ( *txDone )( ), void ( *txTimeout ) ( ), void ( *rxDone ) ( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr ),
                   void ( *rxTimeout ) ( ), void ( *rxError ) ( ), void ( *fhssChangeChannel ) ( uint8_t channelIndex ), void ( *cadDone ) ( bool ChannelActivityDetected ),
             PinName mosi, PinName miso, PinName sclk, PinName nss, PinName reset,
-            PinName dio0, PinName dio1, PinName dio2, PinName dio3, PinName dio4, PinName dio5,
+            PinName dio0, PinName dio1, PinName dio2, PinName dio3, /*PinName dio4, PinName dio5,*/
             PinName antSwitch ); 
     SX1276inAir( void ( *txDone )( ), void ( *txTimeout ) ( ), void ( *rxDone ) ( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr ),
                   void ( *rxTimeout ) ( ), void ( *rxError ) ( ), void ( *fhssChangeChannel ) ( uint8_t channelIndex ), void ( *cadDone ) ( bool ChannelActivityDetected ) );
--- a/sx1276/sx1276.cpp	Fri Jul 24 21:35:37 2015 +1000
+++ b/sx1276/sx1276.cpp	Wed Jul 29 12:07:40 2015 +1000
@@ -44,12 +44,12 @@
 SX1276::SX1276( void ( *txDone )( ), void ( *txTimeout ) ( ), void ( *rxDone ) ( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr ), 
                 void ( *rxTimeout ) ( ), void ( *rxError ) ( ), void ( *fhssChangeChannel ) ( uint8_t channelIndex ), void ( *cadDone ) ( bool channelActivityDetected ),
                 PinName mosi, PinName miso, PinName sclk, PinName nss, PinName reset,
-                PinName dio0, PinName dio1, PinName dio2, PinName dio3, PinName dio4, PinName dio5 )
+                PinName dio0, PinName dio1, PinName dio2, PinName dio3/*, PinName dio4, PinName dio5*/)
             :   Radio( txDone, txTimeout, rxDone, rxTimeout, rxError, fhssChangeChannel, cadDone ),
                 spi( mosi, miso, sclk ),
                 nss( nss ),
                 reset( reset ),
-                dio0( dio0 ), dio1( dio1 ), dio2( dio2 ), dio3( dio3 ), dio4( dio4 ), dio5( dio5 ),
+                dio0( dio0 ), dio1( dio1 ), dio2( dio2 ), dio3( dio3 ), /*dio4( dio4 ), dio5( dio5 ),*/
                 isRadioActive( false )
 {
     wait_ms( 10 );
@@ -68,8 +68,8 @@
     #else
     this->dioIrq[3] = &SX1276::OnDio3Irq;
     #endif    
-    this->dioIrq[4] = &SX1276::OnDio4Irq;
-    this->dioIrq[5] = NULL;
+    //this->dioIrq[4] = &SX1276::OnDio4Irq;
+    //this->dioIrq[5] = NULL;
     
     this->settings.State = IDLE;
 }
@@ -823,7 +823,7 @@
 
     memset( rxBuffer, 0, ( size_t )RX_BUFFER_SIZE );
 
-    this->settings.State = RX;
+    this->settings.State = RX_DONE;
     if( timeout != 0 )
     {
         rxTimeoutTimer.attach_us( this, &SX1276::OnTimeoutIrq, timeout );
@@ -912,7 +912,7 @@
         break;
     }
 
-    this->settings.State = TX;
+    this->settings.State = TX_DONE;
     txTimeoutTimer.attach_us( this, &SX1276::OnTimeoutIrq, timeout );
     SetOpMode( RF_OPMODE_TRANSMITTER );
 }
@@ -1032,7 +1032,7 @@
 {
     switch( this->settings.State )
     {
-    case RX:
+    case RX_DONE:
         if( this->settings.Modem == MODEM_FSK )
         {
             this->settings.FskPacketHandler.PreambleDetected = false;
@@ -1062,7 +1062,7 @@
             rxTimeout( );
         }
         break;
-    case TX:
+    case TX_DONE:
         this->settings.State = IDLE;
         if( ( txTimeout != NULL ) )
         {
@@ -1080,7 +1080,7 @@
   
     switch( this->settings.State )
     {                
-        case RX:
+        case RX_DONE:
             //TimerStop( &RxTimeoutTimer );
             // RxDone interrupt
             switch( this->settings.Modem )
@@ -1251,7 +1251,7 @@
                 break;
             }
             break;
-        case TX:
+        case TX_DONE:
             txTimeoutTimer.detach(  );
             // TxDone interrupt
             switch( this->settings.Modem )
@@ -1279,7 +1279,7 @@
 {
     switch( this->settings.State )
     {                
-        case RX:
+        case RX_DONE:
             switch( this->settings.Modem )
             {
             case MODEM_FSK:
@@ -1321,7 +1321,7 @@
                 break;
             }
             break;
-        case TX:
+        case TX_DONE:
             switch( this->settings.Modem )
             {
             case MODEM_FSK:
@@ -1353,7 +1353,7 @@
 {
     switch( this->settings.State )
     {                
-        case RX:
+        case RX_DONE:
             switch( this->settings.Modem )
             {
             case MODEM_FSK:
@@ -1387,7 +1387,7 @@
                 break;
             }
             break;
-        case TX:
+        case TX_DONE:
             switch( this->settings.Modem )
             {
             case MODEM_FSK:
@@ -1444,6 +1444,7 @@
     }
 }
 
+/*
 void SX1276::OnDio4Irq( void )
 {
     switch( this->settings.Modem )
@@ -1475,3 +1476,4 @@
         break;
     }
 }
+*/
--- a/sx1276/sx1276.h	Fri Jul 24 21:35:37 2015 +1000
+++ b/sx1276/sx1276.h	Wed Jul 29 12:07:40 2015 +1000
@@ -75,8 +75,8 @@
     #else
     InterruptIn dio3;
     #endif
-    InterruptIn dio4;
-    DigitalIn dio5;
+    //InterruptIn dio4;
+    //DigitalIn dio5;
     
     bool isRadioActive;
     
@@ -119,7 +119,7 @@
     SX1276( void ( *txDone )( ), void ( *txTimeout ) ( ), void ( *rxDone ) ( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr ), 
             void ( *rxTimeout ) ( ), void ( *rxError ) ( ), void ( *fhssChangeChannel ) ( uint8_t channelIndex ), void ( *cadDone ) ( bool channelActivityDetected ),
             PinName mosi, PinName miso, PinName sclk, PinName nss, PinName reset,
-            PinName dio0, PinName dio1, PinName dio2, PinName dio3, PinName dio4, PinName dio5 ); 
+            PinName dio0, PinName dio1, PinName dio2, PinName dio3/*, PinName dio4, PinName dio5*/);
     SX1276( void ( *txDone )( ), void ( *txTimeout ) ( ), void ( *rxDone ) ( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr ), 
             void ( *rxTimeout ) ( ), void ( *rxError ) ( ), void ( *fhssChangeChannel ) ( uint8_t channelIndex ), void ( *cadDone ) ( bool channelActivityDetected ) );
     virtual ~SX1276( );
@@ -490,12 +490,12 @@
     /*!
      * @brief DIO 4 IRQ callback
      */
-    virtual void OnDio4Irq( void );
+    //virtual void OnDio4Irq( void );
 
     /*!
      * @brief DIO 5 IRQ callback
      */
-    virtual void OnDio5Irq( void );
+    //virtual void OnDio5Irq( void );
 
     /*!
      * @brief Tx & Rx timeout timer callback