seems to work but there might be some calc error in gui
This commit is contained in:
Submodule storno_cqp6xx_digital_xtal/cm_task_manager deleted from c6b3c93074
@@ -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){
|
static void cqm_setPLLParam(storno_xtal_app_t *inst, si5351_PLLs pll_num, si5351_Outputs output){
|
||||||
|
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);
|
|
||||||
//_delay_ms(1);
|
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_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);
|
||||||
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){
|
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);
|
cm_setInputSource(inst->si5351_dev, SI5351_CLK_SOURCE_XTAL);
|
||||||
//_delay_ms(1);
|
|
||||||
|
|
||||||
|
|
||||||
cqm_setPLLParam(inst, SI5351_PLL_A, SI5351_OUTPUT_0);
|
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);
|
cqm_setPLLParam(inst, SI5351_PLL_B, SI5351_OUTPUT_1);
|
||||||
|
|
||||||
|
|
||||||
// Set third output to crystal freq for calibration!
|
// Set third output to crystal freq for calibration!
|
||||||
cqm_setPLLParam(inst, SI5351_PLL_B, SI5351_OUTPUT_2);
|
cqm_setPLLParam(inst, SI5351_PLL_B, SI5351_OUTPUT_2);
|
||||||
cm_setCLKControl(inst->si5351_dev, SI5351_OUTPUT_2,SI5351_CLK_POWER_UP);
|
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);
|
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){
|
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_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{
|
}else{
|
||||||
cm_setOutputEnable(inst->si5351_dev,SI5351_OUTPUT_0,SI5351_OUTPUT_DISABLE); // RX
|
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){
|
void EepromWritePLLParameters(storno_xtal_app_t *inst){
|
||||||
|
|
||||||
//Burn settings into eeprom here:
|
cm_EEPROM_write((uint8_t*)PLLA_SETTINGS_EEPROM_ADDR,(uint8_t*)&(inst->plla_param_data), sizeof(storno_pll_param_msg));
|
||||||
switch(inst->plla_param_data.header.PLL_Ident){
|
cm_EEPROM_write((uint8_t*)PLLB_SETTINGS_EEPROM_ADDR,(uint8_t*)&(inst->pllb_param_data), sizeof(storno_pll_param_msg));
|
||||||
|
|
||||||
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;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -129,7 +105,7 @@ void cqm6xx_app_taskHandler(storno_xtal_app_t *inst){
|
|||||||
setRTXOscMode(inst);
|
setRTXOscMode(inst);
|
||||||
//cm_taskManager_addTaskToList(&inst->storno_xtal_task,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;
|
inst->rtx_mode = STORNO_APP_TX_MODE;
|
||||||
setRTXOscMode(inst);
|
setRTXOscMode(inst);
|
||||||
//cm_taskManager_addTaskToList(&inst->storno_xtal_task,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.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_P1 = inst->plla_param_data.MSNx_P1 = 4030;
|
||||||
inst->pllb_param_data.MSNx_P2 = inst->plla_param_data.MSNx_P2 = 11510;
|
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 = 1067099;
|
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_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.MSx_P3 = inst->plla_param_data.MSx_P3 = 1;
|
||||||
inst->pllb_param_data.XtalFreq = inst->plla_param_data.XtalFreq = 25000000;
|
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));
|
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));
|
cm_EEPROM_write((uint8_t*)PLLB_SETTINGS_EEPROM_ADDR,(uint8_t*)&(inst->pllb_param_data), sizeof(storno_pll_param_msg));
|
||||||
return 0;
|
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);
|
//cm_taskManager_init(&inst->storno_xtal_task);
|
||||||
|
|
||||||
// Check if data is vaild (if this is a new mcu)
|
// 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..
|
// If settings are somehow unvalid, then write default settings..
|
||||||
writeDefaultSettingsEEprom(inst);
|
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);
|
cqm6xx_app_loadPLLParam(inst);
|
||||||
|
|
||||||
|
inst->rtx_mode = STORNO_APP_RX_MODE;
|
||||||
|
setRTXOscMode(inst);
|
||||||
|
|
||||||
}
|
}
|
||||||
Submodule storno_cqp6xx_digital_xtal/si5351_driver updated: a01bd85b6f...1102fbd4d5
@@ -180,12 +180,6 @@
|
|||||||
<Compile Include="cm_msg\cm_msg.h">
|
<Compile Include="cm_msg\cm_msg.h">
|
||||||
<SubType>compile</SubType>
|
<SubType>compile</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="cm_task_manager\cm_task_manager.c">
|
|
||||||
<SubType>compile</SubType>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="cm_task_manager\cm_task_manager.h">
|
|
||||||
<SubType>compile</SubType>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="cqm6xx_app.c">
|
<Compile Include="cqm6xx_app.c">
|
||||||
<SubType>compile</SubType>
|
<SubType>compile</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
@@ -211,7 +205,6 @@
|
|||||||
<Folder Include="avr_i2c_driver\" />
|
<Folder Include="avr_i2c_driver\" />
|
||||||
<Folder Include="avr_uart_driver\" />
|
<Folder Include="avr_uart_driver\" />
|
||||||
<Folder Include="cm_msg\" />
|
<Folder Include="cm_msg\" />
|
||||||
<Folder Include="cm_task_manager\" />
|
|
||||||
<Folder Include="si5351_driver\" />
|
<Folder Include="si5351_driver\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -251,12 +244,6 @@
|
|||||||
<None Include="cm_msg\.gitignore">
|
<None Include="cm_msg\.gitignore">
|
||||||
<SubType>compile</SubType>
|
<SubType>compile</SubType>
|
||||||
</None>
|
</None>
|
||||||
<None Include="cm_task_manager\.git">
|
|
||||||
<SubType>compile</SubType>
|
|
||||||
</None>
|
|
||||||
<None Include="cm_task_manager\.gitignore">
|
|
||||||
<SubType>compile</SubType>
|
|
||||||
</None>
|
|
||||||
<None Include="si5351_driver\.git">
|
<None Include="si5351_driver\.git">
|
||||||
<SubType>compile</SubType>
|
<SubType>compile</SubType>
|
||||||
</None>
|
</None>
|
||||||
|
|||||||
Reference in New Issue
Block a user