summaryrefslogtreecommitdiff
path: root/src/drivers/ao_cc115l.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2013-03-30 01:30:18 -0700
committerKeith Packard <keithp@keithp.com>2013-03-30 01:30:18 -0700
commitbd32140df2a595ce66d603b98516bae519327c5d (patch)
tree7fb6ce8fd0cf4808576f1e142e6a7300646e7772 /src/drivers/ao_cc115l.c
parent93a9aa703a0173e13b327ed432e6d52e90ebfa1b (diff)
altos: Configure cc115l sync byte count for each radio mode
two sync bytes for packet mode, disable sync for rdf/aprs mode. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/drivers/ao_cc115l.c')
-rw-r--r--src/drivers/ao_cc115l.c25
1 files changed, 18 insertions, 7 deletions
diff --git a/src/drivers/ao_cc115l.c b/src/drivers/ao_cc115l.c
index 1d8211f6..6da1a678 100644
--- a/src/drivers/ao_cc115l.c
+++ b/src/drivers/ao_cc115l.c
@@ -282,6 +282,10 @@ static const uint16_t packet_setup[] = {
CC115L_MDMCFG4, ((0xf << 4) |
(PACKET_DRATE_E << CC115L_MDMCFG4_DRATE_E)),
CC115L_MDMCFG3, (PACKET_DRATE_M),
+ CC115L_MDMCFG2, (0x00 |
+ (CC115L_MDMCFG2_MOD_FORMAT_GFSK << CC115L_MDMCFG2_MOD_FORMAT) |
+ (0 << CC115L_MDMCFG2_MANCHESTER_EN) |
+ (CC115L_MDMCFG2_SYNC_MODE_16BITS << CC115L_MDMCFG2_SYNC_MODE)),
};
@@ -317,6 +321,10 @@ static const uint16_t rdf_setup[] = {
CC115L_MDMCFG4, ((0xf << 4) |
(RDF_DRATE_E << CC115L_MDMCFG4_DRATE_E)),
CC115L_MDMCFG3, (RDF_DRATE_M),
+ CC115L_MDMCFG2, (0x00 |
+ (CC115L_MDMCFG2_MOD_FORMAT_GFSK << CC115L_MDMCFG2_MOD_FORMAT) |
+ (0 << CC115L_MDMCFG2_MANCHESTER_EN) |
+ (CC115L_MDMCFG2_SYNC_MODE_NONE << CC115L_MDMCFG2_SYNC_MODE)),
};
/*
@@ -348,6 +356,10 @@ static const uint16_t aprs_setup[] = {
CC115L_MDMCFG4, ((0xf << 4) |
(APRS_DRATE_E << CC115L_MDMCFG4_DRATE_E)),
CC115L_MDMCFG3, (APRS_DRATE_M),
+ CC115L_MDMCFG2, (0x00 |
+ (CC115L_MDMCFG2_MOD_FORMAT_GFSK << CC115L_MDMCFG2_MOD_FORMAT) |
+ (0 << CC115L_MDMCFG2_MANCHESTER_EN) |
+ (CC115L_MDMCFG2_SYNC_MODE_NONE << CC115L_MDMCFG2_SYNC_MODE)),
};
#define AO_PKTCTRL0_INFINITE ((CC115L_PKTCTRL0_PKT_FORMAT_NORMAL << CC115L_PKTCTRL0_PKT_FORMAT) | \
@@ -430,16 +442,16 @@ static const uint16_t radio_setup[] = {
AO_CC115L_DONE_INT_GPIO_IOCFG, CC115L_IOCFG_GPIO_CFG_PA_PD | (1 << CC115L_IOCFG_GPIO_INV),
CC115L_FIFOTHR, 0x47, /* TX FIFO Thresholds */
- CC115L_PKTCTRL0, 0x05, /* Packet Automation Control */
CC115L_FREQ2, 0x10, /* Frequency Control Word, High Byte */
CC115L_FREQ1, 0xb6, /* Frequency Control Word, Middle Byte */
CC115L_FREQ0, 0xa5, /* Frequency Control Word, Low Byte */
- CC115L_MDMCFG4, 0xfa, /* Modem Configuration */
- CC115L_MDMCFG3, 0x83, /* Modem Configuration */
CC115L_MDMCFG2, 0x13, /* Modem Configuration */
- CC115L_MDMCFG1, 0x21, /* Modem Configuration */
+ CC115L_MDMCFG1, (0x00 |
+ (CC115L_MDMCFG1_NUM_PREAMBLE_4 << CC115L_MDMCFG1_NUM_PREAMBLE) |
+ (1 << CC115L_MDMCFG1_CHANSPC_E)),
+ CC115L_MDMCFG0, 248, /* Channel spacing M value (100kHz channels) */
CC115L_DEVIATN, 0x35, /* Modem Deviation Setting */
- CC115L_MCSM0, 0x18, /* Main Radio Control State Machine Configuration */
+ CC115L_MCSM0, 0x38, /* Main Radio Control State Machine Configuration */
CC115L_RESERVED_0X20, 0xfb, /* Use setting from SmartRF Studio */
CC115L_FSCAL3, 0xe9, /* Frequency Synthesizer Calibration */
CC115L_FSCAL2, 0x2a, /* Frequency Synthesizer Calibration */
@@ -448,8 +460,7 @@ static const uint16_t radio_setup[] = {
CC115L_TEST2, 0x81, /* Various Test Settings */
CC115L_TEST1, 0x35, /* Various Test Settings */
CC115L_TEST0, 0x09, /* Various Test Settings */
-
- CC115L_PA, 0x00, /* Power setting (0dBm) */
+ CC115L_PA, 0x00, /* Power setting (as low as possible) */
};
static uint8_t ao_radio_configured = 0;