67 lines
1.4 KiB
C
67 lines
1.4 KiB
C
#ifndef fskconfig_h
|
|
#define fskconfig_h
|
|
|
|
#include "dragino.h"
|
|
#include "types.h"
|
|
|
|
// Define FSK Registers
|
|
#define REG_PREAMBLE_DETECT 0x1f
|
|
#define REG_PREAMBLE_MSB 0x25
|
|
#define REG_PREAMBLE_LSB 0x26
|
|
#define REG_PACKET_CONFIG_1 0x30
|
|
#define REG_PACKET_CONFIG_2 0x31
|
|
#define REG_PAYLOAD_LENGTH 0x32
|
|
#define REG_FIFO_THRESH 0x35
|
|
#define REG_LNA 0x0C
|
|
#define REG_FDEV_MSB 0x04
|
|
#define REG_FDEV_LSB 0x05
|
|
#define REG_BITRATE_MSB 0x02
|
|
#define REG_BITRATE_LSB 0x03
|
|
#define REG_RSSI_CONFIG 0x0E
|
|
#define REG_RSSI_VALUE 0x11
|
|
|
|
// Define FSK configuration parameters values
|
|
#define CRC_ON 0x10
|
|
#define CRC_OFF 0x00
|
|
#define CRC_AUTOCLEAR_OFF_ON 0x08
|
|
#define CRC_AUTOCLEAR_OFF_OFF 0x00
|
|
#define FIXED_PAYLOAD_LENGTH_ON 0x80
|
|
#define FIXED_PAYLOAD_LENGTH_OFF 0x00
|
|
#define PREAMBLE_DETECTION_ON 0x80
|
|
#define PREAMBLE_DETECTION_OFF 0x00
|
|
#define RSSI_SAMPLE_2 0x00
|
|
#define RSSI_SAMPLE_4 0x01
|
|
#define RSSI_SAMPLE_8 0x02
|
|
#define RSSI_SAMPLE_16 0x03
|
|
#define RSSI_SAMPLE_32 0x04
|
|
#define RSSI_SAMPLE_64 0x05
|
|
#define RSSI_SAMPLE_128 0x06
|
|
#define RSSI_SAMPLE_256 0x07
|
|
|
|
|
|
// Define FSK Configuration
|
|
typedef struct FSKConfig FSKConfig;
|
|
struct FSKConfig {
|
|
byte preambleDetection;
|
|
short preambleSize;
|
|
short fifoThreshold;
|
|
short payloadLength;
|
|
short freqDev;
|
|
short bitrate;
|
|
byte rssiSmoothing;
|
|
byte crcOn;
|
|
byte crcAutoClearOff;
|
|
byte fixedPayloadLength;
|
|
};
|
|
|
|
/**
|
|
* Apply FSK configuration
|
|
*/
|
|
void applyFSKConfig(FSKConfig fsk);
|
|
|
|
/**
|
|
* Fetch FSK RSSI
|
|
*/
|
|
int fetchRSSI();
|
|
|
|
#endif
|