diff --git a/storno_cqp6xx_digital_xtal/cm_task_manager b/storno_cqp6xx_digital_xtal/cm_task_manager
deleted file mode 160000
index c6b3c93..0000000
--- a/storno_cqp6xx_digital_xtal/cm_task_manager
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit c6b3c93074fa24dace48e16a935f260dc3989c4c
diff --git a/storno_cqp6xx_digital_xtal/cqm6xx_app.c b/storno_cqp6xx_digital_xtal/cqm6xx_app.c
index 836462d..4e890cb 100644
--- a/storno_cqp6xx_digital_xtal/cqm6xx_app.c
+++ b/storno_cqp6xx_digital_xtal/cqm6xx_app.c
@@ -26,37 +26,35 @@ static uint8_t isStructValid(storno_xtal_app_t *inst){
}
static void cqm_setPLLParam(storno_xtal_app_t *inst, si5351_PLLs pll_num, si5351_Outputs output){
-
- cm_setPllParamRaw(inst->si5351_dev,pll_num, inst->plla_param_data.MSNx_P1, inst->plla_param_data.MSNx_P2, inst->plla_param_data.MSNx_P3);
- //_delay_ms(1);
- cm_setOutputMultiSynthRaw(inst->si5351_dev,output, inst->plla_param_data.MSx_P1, inst->plla_param_data.MSx_P2, inst->plla_param_data.MSx_P3);
- //_delay_ms(1);
- cm_setCLKControl(inst->si5351_dev,output,SI5351_CLK_POWER_UP);
+ if(pll_num != SI5351_PLL_B){
+
+ cm_setPllParamRaw(inst->si5351_dev,pll_num, inst->plla_param_data.MSNx_P1, inst->plla_param_data.MSNx_P2, inst->plla_param_data.MSNx_P3);
+ cm_setOutputMultiSynthRaw(inst->si5351_dev,output, inst->plla_param_data.MSx_P1, inst->plla_param_data.MSx_P2, inst->plla_param_data.MSx_P3);
+ cm_setCLKControl(inst->si5351_dev,output,SI5351_CLK_POWER_UP);
+
+ }else{
+ cm_setPllParamRaw(inst->si5351_dev,pll_num, inst->pllb_param_data.MSNx_P1, inst->pllb_param_data.MSNx_P2, inst->pllb_param_data.MSNx_P3);
+ cm_setOutputMultiSynthRaw(inst->si5351_dev,output, inst->pllb_param_data.MSx_P1, inst->pllb_param_data.MSx_P2, inst->pllb_param_data.MSx_P3);
+ cm_setCLKControl(inst->si5351_dev,output,SI5351_CLK_POWER_UP);
+ }
+
}
static void cqm6xx_app_loadPLLParam(storno_xtal_app_t *inst){
- // Read settings for PLLA first
- cm_EEPROM_read((uint8_t*)PLLA_SETTINGS_EEPROM_ADDR,(uint8_t *)&inst->plla_param_data,sizeof(storno_pll_param_msg));
- //_delay_ms(1);
+
cm_setInputSource(inst->si5351_dev, SI5351_CLK_SOURCE_XTAL);
- //_delay_ms(1);
-
-
+
cqm_setPLLParam(inst, SI5351_PLL_A, SI5351_OUTPUT_0);
- //_delay_ms(1);
-
-
- cm_EEPROM_read((uint8_t*)PLLB_SETTINGS_EEPROM_ADDR,(uint8_t *)&inst->plla_param_data,sizeof(storno_pll_param_msg));
- //_delay_ms(1);
+
cqm_setPLLParam(inst, SI5351_PLL_B, SI5351_OUTPUT_1);
// Set third output to crystal freq for calibration!
cqm_setPLLParam(inst, SI5351_PLL_B, SI5351_OUTPUT_2);
cm_setCLKControl(inst->si5351_dev, SI5351_OUTPUT_2,SI5351_CLK_POWER_UP);
- //_delay_ms(1);
+
cm_setOutputEnable(inst->si5351_dev,SI5351_OUTPUT_2,SI5351_OUTPUT_ENABLE);
@@ -68,7 +66,7 @@ void setRTXOscMode(storno_xtal_app_t *inst){
if(inst->rtx_mode != STORNO_APP_TX_MODE){
cm_setOutputEnable(inst->si5351_dev,SI5351_OUTPUT_0,SI5351_OUTPUT_ENABLE); // RX
- cm_setOutputEnable(inst->si5351_dev,SI5351_OUTPUT_1,SI5351_OUTPUT_DISABLE); // TX
+ cm_setOutputEnable(inst->si5351_dev,SI5351_OUTPUT_1,SI5351_OUTPUT_ENABLE); // TX
}else{
cm_setOutputEnable(inst->si5351_dev,SI5351_OUTPUT_0,SI5351_OUTPUT_DISABLE); // RX
@@ -79,30 +77,8 @@ void setRTXOscMode(storno_xtal_app_t *inst){
void EepromWritePLLParameters(storno_xtal_app_t *inst){
- //Burn settings into eeprom here:
- switch(inst->plla_param_data.header.PLL_Ident){
-
- case MSG_PLLA_PARAM:
- cm_EEPROM_write((uint8_t*)PLLA_SETTINGS_EEPROM_ADDR,(uint8_t*)&(inst->plla_param_data), sizeof(storno_pll_param_msg));
- break;
-
- case MSG_PLLB_PARAM:
- cm_EEPROM_write((uint8_t*)PLLB_SETTINGS_EEPROM_ADDR,(uint8_t*)&(inst->pllb_param_data), sizeof(storno_pll_param_msg));
- break;
-
- case MSG_GET_PLLA_PARAM:
- cm_EEPROM_read((uint8_t*)PLLA_SETTINGS_EEPROM_ADDR,(uint8_t *)&inst->plla_param_data,sizeof(storno_pll_param_msg));
- break;
-
- case MSG_GET_PLLB_PARAM:
- cm_EEPROM_read((uint8_t*)PLLB_SETTINGS_EEPROM_ADDR,(uint8_t *)&inst->pllb_param_data,sizeof(storno_pll_param_msg));
- break;
-
- default:
- break;
-
-
- }
+ cm_EEPROM_write((uint8_t*)PLLA_SETTINGS_EEPROM_ADDR,(uint8_t*)&(inst->plla_param_data), sizeof(storno_pll_param_msg));
+ cm_EEPROM_write((uint8_t*)PLLB_SETTINGS_EEPROM_ADDR,(uint8_t*)&(inst->pllb_param_data), sizeof(storno_pll_param_msg));
}
@@ -129,7 +105,7 @@ void cqm6xx_app_taskHandler(storno_xtal_app_t *inst){
setRTXOscMode(inst);
//cm_taskManager_addTaskToList(&inst->storno_xtal_task,setRTXOscMode,inst);
- }else if (inst->rtx_mode != STORNO_APP_TX_MODE){
+ }else if ((gpio_get_level(GPIO_PORTA,GPIO_PIN_PTT) == GPIO_LEVEL_SET) && (inst->rtx_mode != STORNO_APP_TX_MODE)){
inst->rtx_mode = STORNO_APP_TX_MODE;
setRTXOscMode(inst);
//cm_taskManager_addTaskToList(&inst->storno_xtal_task,setRTXOscMode,inst);
@@ -144,17 +120,17 @@ static int writeDefaultSettingsEEprom(storno_xtal_app_t *inst){
//inst->pllb_param_data.PLL_Ident = inst->plla_param_data.PLL_Ident = 0;
- inst->pllb_param_data.MSNx_P1 = inst->plla_param_data.MSNx_P1 = 3395;
- inst->pllb_param_data.MSNx_P2 = inst->plla_param_data.MSNx_P2 = 11510;
- inst->pllb_param_data.MSNx_P3 = inst->plla_param_data.MSNx_P3 = 1067099;
+ inst->pllb_param_data.MSNx_P1 = inst->plla_param_data.MSNx_P1 = 4030;
+ inst->pllb_param_data.MSNx_P2 = inst->plla_param_data.MSNx_P2 = 244;
+ inst->pllb_param_data.MSNx_P3 = inst->plla_param_data.MSNx_P3 = 250;
- inst->pllb_param_data.MSx_P1 = inst->plla_param_data.MSx_P1 = 18;
+ inst->pllb_param_data.MSx_P1 = inst->plla_param_data.MSx_P1 = 1920;
inst->pllb_param_data.MSx_P2 = inst->plla_param_data.MSx_P2 = 0;
inst->pllb_param_data.MSx_P3 = inst->plla_param_data.MSx_P3 = 1;
inst->pllb_param_data.XtalFreq = inst->plla_param_data.XtalFreq = 25000000;
cm_EEPROM_write((uint8_t*)PLLA_SETTINGS_EEPROM_ADDR,(uint8_t*)&(inst->plla_param_data), sizeof(storno_pll_param_msg));
- //_delay_ms(1);
+
cm_EEPROM_write((uint8_t*)PLLB_SETTINGS_EEPROM_ADDR,(uint8_t*)&(inst->pllb_param_data), sizeof(storno_pll_param_msg));
return 0;
@@ -216,11 +192,20 @@ void cqm6xx_app_init(storno_xtal_app_t *inst, void *si5351_dev){
//cm_taskManager_init(&inst->storno_xtal_task);
// Check if data is vaild (if this is a new mcu)
- if(!isEEPROMValid(inst)){
+ if(!isEEPROMValid(inst)|| 1){
// If settings are somehow unvalid, then write default settings..
writeDefaultSettingsEEprom(inst);
}
+ // Read settings for PLLA first
+ cm_EEPROM_read((uint8_t*)PLLA_SETTINGS_EEPROM_ADDR,(uint8_t *)&inst->plla_param_data,sizeof(storno_pll_param_msg));
+
+ // Read settings for PLLB
+ cm_EEPROM_read((uint8_t*)PLLB_SETTINGS_EEPROM_ADDR,(uint8_t *)&inst->pllb_param_data,sizeof(storno_pll_param_msg));
+
cqm6xx_app_loadPLLParam(inst);
+ inst->rtx_mode = STORNO_APP_RX_MODE;
+ setRTXOscMode(inst);
+
}
\ No newline at end of file
diff --git a/storno_cqp6xx_digital_xtal/si5351_driver b/storno_cqp6xx_digital_xtal/si5351_driver
index a01bd85..1102fbd 160000
--- a/storno_cqp6xx_digital_xtal/si5351_driver
+++ b/storno_cqp6xx_digital_xtal/si5351_driver
@@ -1 +1 @@
-Subproject commit a01bd85b6fc4faee724427b3d27d1ffcdfa63d23
+Subproject commit 1102fbd4d5faa50572af80ba0b9c6f3c48708a1d
diff --git a/storno_cqp6xx_digital_xtal/storno_cqp6xx_digital_xtal.cproj b/storno_cqp6xx_digital_xtal/storno_cqp6xx_digital_xtal.cproj
index f1063f4..276f558 100644
--- a/storno_cqp6xx_digital_xtal/storno_cqp6xx_digital_xtal.cproj
+++ b/storno_cqp6xx_digital_xtal/storno_cqp6xx_digital_xtal.cproj
@@ -180,12 +180,6 @@
compile
-
- compile
-
-
- compile
-
compile
@@ -211,7 +205,6 @@
-
@@ -251,12 +244,6 @@
compile
-
- compile
-
-
- compile
-
compile