Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: MAX326xxFTHR_LoRa_RFM95 MAX326xxFTHR_LoRa_PingPong MAX326xxFTHR_RFM95_LoRa_PingPong MAX326xxFTHR_LoRa_RFM95_PingPong_Example ... more
Fork of SX1276GenericLib by
Revision 4:f0ce52e94d3f, committed 2014-08-20
- Comitter:
- GregCr
- Date:
- Wed Aug 20 06:29:01 2014 +0000
- Parent:
- 3:ca84be1f3fac
- Child:
- 5:11ec8a6ba4f0
- Commit message:
- Removed use of LED1 which is causing issues with the SPI on the Nucleo board. Clean up
Changed in this revision
--- a/sx1276/sx1276-hal.cpp Tue Aug 19 09:15:01 2014 +0000
+++ b/sx1276/sx1276-hal.cpp Wed Aug 20 06:29:01 2014 +0000
@@ -13,7 +13,6 @@
Maintainers: Miguel Luis, Gregory Cristian and Nicolas Huguenin
*/
#include "sx1276-hal.h"
-#include "debug.h"
const RadioRegisters_t SX1276MB1xAS::RadioRegsInit[] =
{
@@ -102,19 +101,17 @@
uint8_t SX1276MB1xAS::DetectBoardType( void )
{
antSwitch.input( );
- wait_us( 10 );
+ wait_ms( 1 );
if( antSwitch == 1 )
{
boardConnected = SX1276MB1LAS;
- debug("\r\n >>>>>>>>>>>>>SX1276MB1LAS \r\n" );
}
else
{
boardConnected = SX1276MB1MAS;
- debug("\r\n >>>>>>>>>>>>>SX1276MB1MAS \r\n" );
}
antSwitch.output( );
- wait_us( 10 );
+ wait_ms( 1 );
return ( boardConnected );
}
@@ -136,7 +133,6 @@
void SX1276MB1xAS::SpiInit( void )
{
-
nss = 1;
spi.format( 8,0 );
uint32_t frequencyToSet = 8000000;
@@ -246,9 +242,10 @@
void SX1276MB1xAS::Reset( void )
{
+ reset.output();
reset = 0;
wait_ms( 1 );
- reset = 1;
+ reset.input();
wait_ms( 6 );
}
--- a/sx1276/sx1276-hal.h Tue Aug 19 09:15:01 2014 +0000
+++ b/sx1276/sx1276-hal.h Wed Aug 20 06:29:01 2014 +0000
@@ -15,7 +15,6 @@
#ifndef __SX1276_HAL_H__
#define __SX1276_HAL_H__
#include "sx1276.h"
-#include "debug.h"
/*!
* Actual implementation of a SX1276 radio, includes some modifications to make it compatible with the MB1 LAS board
@@ -42,7 +41,6 @@
virtual ~SX1276MB1xAS( ) { };
protected:
-
/*!
* @brief Initializes the radio I/Os pins interface
*/
--- a/sx1276/sx1276.cpp Tue Aug 19 09:15:01 2014 +0000
+++ b/sx1276/sx1276.cpp Wed Aug 20 06:29:01 2014 +0000
@@ -14,8 +14,6 @@
*/
#include "sx1276.h"
-#include "debug.h"
-
const FskBandwidth_t SX1276::FskBandwidths[] =
{
{ 2600 , 0x17 },
@@ -65,6 +63,8 @@
this->dioIrq[3] = &SX1276::OnDio3Irq;
this->dioIrq[4] = &SX1276::OnDio4Irq;
this->dioIrq[5] = NULL;
+
+ this->settings.State = IDLE;
}
SX1276::~SX1276( )
@@ -131,7 +131,7 @@
SetOpMode( RF_OPMODE_RECEIVER );
- wait( 0.001 );
+ wait_ms( 1 );
rssi = GetRssi( modem );
@@ -170,7 +170,7 @@
for( i = 0; i < 32; i++ )
{
- wait( 0.001 );
+ wait_ms( 1 );
// Unfiltered RSSI value reading. Only takes the LSB value
rnd |= ( ( uint32_t )Read( REG_LR_RSSIWIDEBAND ) & 0x01 ) << i;
}
@@ -514,7 +514,7 @@
{
case MODEM_FSK:
{
- airTime = floor( ( 8 * ( this->settings.Fsk.PreambleLen +
+ airTime = ceil( ( 8 * ( this->settings.Fsk.PreambleLen +
( ( Read( REG_SYNCCONFIG ) & ~RF_SYNCCONFIG_SYNCSIZE_MASK ) + 1 ) +
( ( this->settings.Fsk.FixLen == 0x01 ) ? 0.0 : 1.0 ) +
( ( ( Read( REG_PACKETCONFIG1 ) & ~RF_PACKETCONFIG1_ADDRSFILTERING_MASK ) != 0x00 ) ? 1.0 : 0 ) +
@@ -644,7 +644,7 @@
if( ( Read( REG_OPMODE ) & ~RF_OPMODE_MASK ) == RF_OPMODE_SLEEP )
{
Standby( );
- wait( 0.001 );
+ wait_ms( 1 );
}
// Write payload buffer
WriteFifo( buffer, size );
@@ -721,7 +721,7 @@
Write( REG_LR_IRQFLAGSMASK, //RFLR_IRQFLAGS_RXTIMEOUT |
//RFLR_IRQFLAGS_RXDONE |
//RFLR_IRQFLAGS_PAYLOADCRCERROR |
- //RFLR_IRQFLAGS_VALIDHEADER |
+ RFLR_IRQFLAGS_VALIDHEADER |
RFLR_IRQFLAGS_TXDONE |
RFLR_IRQFLAGS_CADDONE |
RFLR_IRQFLAGS_FHSSCHANGEDCHANNEL |
@@ -729,7 +729,6 @@
// DIO0=RxDone
Write( REG_DIOMAPPING1, ( Read( REG_DIOMAPPING1 ) & RFLR_DIOMAPPING1_DIO0_MASK ) | RFLR_DIOMAPPING1_DIO0_00 );
- Write( REG_DIOMAPPING1, ( Read( REG_DIOMAPPING1 ) & RFLR_DIOMAPPING1_DIO3_MASK ) | RFLR_DIOMAPPING1_DIO3_01 );
Write( REG_LR_FIFORXBASEADDR, 0 );
Write( REG_LR_FIFOADDRPTR, 0 );
}
@@ -865,29 +864,27 @@
void SX1276::SetModem( ModemType modem )
{
- if( this->settings.Modem == modem )
- {
- return;
- }
-
- this->settings.Modem = modem;
- switch( this->settings.Modem )
+ if( this->settings.Modem != modem )
{
- default:
- case MODEM_FSK:
- SetOpMode( RF_OPMODE_SLEEP );
- Write( REG_OPMODE, ( Read( REG_OPMODE ) & RFLR_OPMODE_LONGRANGEMODE_MASK ) | RFLR_OPMODE_LONGRANGEMODE_OFF );
-
- Write( REG_DIOMAPPING1, 0x00 );
- Write( REG_DIOMAPPING2, 0x30 ); // DIO5=ModeReady
- break;
- case MODEM_LORA:
- SetOpMode( RF_OPMODE_SLEEP );
- Write( REG_OPMODE, ( Read( REG_OPMODE ) & RFLR_OPMODE_LONGRANGEMODE_MASK ) | RFLR_OPMODE_LONGRANGEMODE_ON );
-
- Write( REG_DIOMAPPING1, 0x00 );
- Write( REG_DIOMAPPING2, 0x00 );
- break;
+ this->settings.Modem = modem;
+ switch( this->settings.Modem )
+ {
+ default:
+ case MODEM_FSK:
+ SetOpMode( RF_OPMODE_SLEEP );
+ Write( REG_OPMODE, ( Read( REG_OPMODE ) & RFLR_OPMODE_LONGRANGEMODE_MASK ) | RFLR_OPMODE_LONGRANGEMODE_OFF );
+
+ Write( REG_DIOMAPPING1, 0x00 );
+ Write( REG_DIOMAPPING2, 0x30 ); // DIO5=ModeReady
+ break;
+ case MODEM_LORA:
+ SetOpMode( RF_OPMODE_SLEEP );
+ Write( REG_OPMODE, ( Read( REG_OPMODE ) & RFLR_OPMODE_LONGRANGEMODE_MASK ) | RFLR_OPMODE_LONGRANGEMODE_ON );
+
+ Write( REG_DIOMAPPING1, 0x00 );
+ Write( REG_DIOMAPPING2, 0x00 );
+ break;
+ }
}
}
@@ -1055,7 +1052,7 @@
}
rxTimeoutTimer.detach( );
- if( (rxError != NULL ) )
+ if( ( rxError != NULL ) )
{
rxError( );
}
--- a/sx1276/sx1276.h Tue Aug 19 09:15:01 2014 +0000
+++ b/sx1276/sx1276.h Wed Aug 20 06:29:01 2014 +0000
@@ -55,7 +55,7 @@
/*!
* SX1276 Reset pin
*/
- DigitalOut reset;
+ DigitalInOut reset;
/*!
* SX1276 DIO pins
