Browse Source

Took new RF register settings for RX and TX from SmartRF studio

curiousmuch 4 years ago
parent
commit
361ab544d5
3 changed files with 136 additions and 4 deletions
  1. 1 1
      main/cc1200.c
  2. 132 0
      main/cc1200_protocol.h
  3. 3 3
      main/main.c

+ 1 - 1
main/cc1200.c

@@ -616,7 +616,7 @@ void IRAM_ATTR cc1200_radio_start_APRSRX(void)
 
 
 	// start RX transmission
-	cc1200_radio_write(APRS_RX_SETTINGS, sizeof(APRS_RX_SETTINGS)/sizeof(cc1200_reg_settings_t));
+	cc1200_radio_write(APRS_RX2_SETTINGS, sizeof(APRS_RX2_SETTINGS)/sizeof(cc1200_reg_settings_t));
 	cc1200_radio_frequency(144390000-6000);
 
 	// enable ISR for CC1120 for timing packets

+ 132 - 0
main/cc1200_protocol.h

@@ -158,4 +158,136 @@ static const cc1200_reg_settings_t APRS_TX_SETTINGS[]=
   {CC120X_XOSC1,             0x03},
 };
 
+// Address Config = No address check
+// Bit Rate = 1.2
+// Carrier Frequency = 144.389954
+// Deviation = 4.997253
+// Device Address = 0
+// Manchester Enable = false
+// Modulation Format = 2-FSK
+// Packet Bit Length = 0
+// Packet Length = 255
+// Packet Length Mode = Variable
+// RX Filter BW = 14.880952
+// Symbol rate = 1.2
+// Whitening = false
+
+static const cc1200_reg_settings_t APRS_RX2_SETTINGS[]=
+{
+  {CC120X_IOCFG2,            0x08},
+  {CC120X_IOCFG0,            0x09},
+  {CC120X_SYNC_CFG1,         0x3F},
+  {CC120X_MODCFG_DEV_E,      0x01},
+  {CC120X_DCFILT_CFG,        0x5D},
+  {CC120X_PREAMBLE_CFG1,     0x00},
+  {CC120X_PREAMBLE_CFG0,     0x8A},
+  {CC120X_IQIC,              0xCB},
+  {CC120X_CHAN_BW,           0x9C},
+  {CC120X_MDMCFG1,           0x00},
+  {CC120X_MDMCFG0,           0x45},
+  {CC120X_SYMBOL_RATE2,      0x3F},
+  {CC120X_SYMBOL_RATE1,      0x75},
+  {CC120X_SYMBOL_RATE0,      0x10},
+  {CC120X_AGC_REF,           0x30},
+  {CC120X_AGC_CS_THR,        0xEC},
+  {CC120X_AGC_CFG3,          0x11},
+  {CC120X_AGC_CFG1,          0x51},
+  {CC120X_AGC_CFG0,          0x87},
+  {CC120X_FIFO_CFG,          0x00},
+  {CC120X_FS_CFG,            0x1B},
+  {CC120X_PKT_CFG2,          0x03},
+  {CC120X_PKT_CFG1,          0x00},
+  {CC120X_PKT_CFG0,          0x20},
+  {CC120X_PA_CFG1,           0x3F},
+  {CC120X_PKT_LEN,           0xFF},
+  {CC120X_IF_MIX_CFG,        0x1C},
+  {CC120X_FREQOFF_CFG,       0x22},
+  {CC120X_MDMCFG2,           0x0D},
+  {CC120X_FREQ2,             0x56},
+  {CC120X_FREQ1,             0xA2},
+  {CC120X_FREQ0,             0x4C},
+  {CC120X_IF_ADC1,           0xEE},
+  {CC120X_IF_ADC0,           0x10},
+  {CC120X_FS_DIG1,           0x07},
+  {CC120X_FS_DIG0,           0xAF},
+  {CC120X_FS_CAL1,           0x40},
+  {CC120X_FS_CAL0,           0x0E},
+  {CC120X_FS_DIVTWO,         0x03},
+  {CC120X_FS_DSM0,           0x33},
+  {CC120X_FS_DVC0,           0x17},
+  {CC120X_FS_PFD,            0x00},
+  {CC120X_FS_PRE,            0x6E},
+  {CC120X_FS_REG_DIV_CML,    0x1C},
+  {CC120X_FS_SPARE,          0xAC},
+  {CC120X_FS_VCO0,           0xB5},
+  {CC120X_XOSC5,             0x0E},
+  {CC120X_XOSC1,             0x03},
+  {CC120X_SERIAL_STATUS,     0x08},
+};
+
+// Address Config = No address check
+// Bit Rate = 1.2
+// Carrier Frequency = 144.389954
+// Deviation = 4.997253
+// Device Address = 0
+// Manchester Enable = false
+// Modulation Format = 2-FSK
+// Packet Bit Length = 0
+// Packet Length = 255
+// Packet Length Mode = Variable
+// RX Filter BW = 14.880952
+// Symbol rate = 1.2
+// Whitening = false
+
+static const cc1200_reg_settings_t APRS_TX2_SETTINGS[]=
+{
+  {CC120X_IOCFG2,            0x08},
+  {CC120X_IOCFG0,            0x09},
+  {CC120X_SYNC_CFG1,         0x0B},
+  {CC120X_MODCFG_DEV_E,      0x01},
+  {CC120X_DCFILT_CFG,        0x5D},
+  {CC120X_PREAMBLE_CFG1,     0x00},
+  {CC120X_PREAMBLE_CFG0,     0x8A},
+  {CC120X_IQIC,              0xCB},
+  {CC120X_CHAN_BW,           0x9C},
+  {CC120X_MDMCFG1,           0x06},
+  {CC120X_MDMCFG0,           0x45},
+  {CC120X_SYMBOL_RATE2,      0x3F},
+  {CC120X_SYMBOL_RATE1,      0x75},
+  {CC120X_SYMBOL_RATE0,      0x10},
+  {CC120X_AGC_REF,           0x30},
+  {CC120X_AGC_CS_THR,        0xEC},
+  {CC120X_AGC_CFG1,          0x51},
+  {CC120X_AGC_CFG0,          0x87},
+  {CC120X_FIFO_CFG,          0x00},
+  {CC120X_FS_CFG,            0x1B},
+  {CC120X_PKT_CFG2,          0x03},
+  {CC120X_PKT_CFG1,          0x00},
+  {CC120X_PKT_CFG0,          0x20},
+  {CC120X_PA_CFG1,           0x3F},
+  {CC120X_PKT_LEN,           0xFF},
+  {CC120X_IF_MIX_CFG,        0x1C},
+  {CC120X_FREQOFF_CFG,       0x22},
+  {CC120X_MDMCFG2,           0x0D},
+  {CC120X_FREQ2,             0x56},
+  {CC120X_FREQ1,             0xA2},
+  {CC120X_FREQ0,             0x4C},
+  {CC120X_IF_ADC1,           0xEE},
+  {CC120X_IF_ADC0,           0x10},
+  {CC120X_FS_DIG1,           0x07},
+  {CC120X_FS_DIG0,           0xAF},
+  {CC120X_FS_CAL1,           0x40},
+  {CC120X_FS_CAL0,           0x0E},
+  {CC120X_FS_DIVTWO,         0x03},
+  {CC120X_FS_DSM0,           0x33},
+  {CC120X_FS_DVC0,           0x17},
+  {CC120X_FS_PFD,            0x00},
+  {CC120X_FS_PRE,            0x6E},
+  {CC120X_FS_REG_DIV_CML,    0x1C},
+  {CC120X_FS_SPARE,          0xAC},
+  {CC120X_FS_VCO0,           0xB5},
+  {CC120X_XOSC5,             0x0E},
+  {CC120X_XOSC1,             0x03},
+  {CC120X_SERIAL_STATUS,     0x08},
+};
 

+ 3 - 3
main/main.c

@@ -270,11 +270,11 @@ void RX_Task(void *pvParameters)
 					case NORMAL:
 						break;
 					case FRAME_DECODED:
-						printf("Success!\n");
+						ESP_LOGI("APRS RX", "AX.25 Frame Received");
 						ESP_LOG_BUFFER_HEXDUMP("APRS RX", aprs_buf, 100, ESP_LOG_INFO);
 						break;
 					case ERROR_FCS_MISMATCH:
-						//printf("FCS Incorrect!\n");
+						ESP_LOGV("APRS RX", "AX.25 FCS Error\n");
 						break;
 					default:
 						//printf("Weird Error\n");
@@ -301,7 +301,7 @@ void radio_init()
 	xRadioTXSemaphore = xSemaphoreCreateBinary();
 
 	// Initialize Radio
-	cc1200_radio_init(APRS_RX_SETTINGS, sizeof(APRS_RX_SETTINGS)/sizeof(cc1200_reg_settings_t));
+	cc1200_radio_init(APRS_RX2_SETTINGS, sizeof(APRS_RX2_SETTINGS)/sizeof(cc1200_reg_settings_t));
 	cc1200_radio_frequency(144390000-6000);
 
 	// Setup Sampling Timer