diff --git a/storno_cqp6xx_digital_xtal/cqm6xx_app.c b/storno_cqp6xx_digital_xtal/cqm6xx_app.c index 4e890cb..e970e8c 100644 --- a/storno_cqp6xx_digital_xtal/cqm6xx_app.c +++ b/storno_cqp6xx_digital_xtal/cqm6xx_app.c @@ -66,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_ENABLE); // TX + cm_setOutputEnable(inst->si5351_dev,SI5351_OUTPUT_1,SI5351_OUTPUT_DISABLE); // TX }else{ cm_setOutputEnable(inst->si5351_dev,SI5351_OUTPUT_0,SI5351_OUTPUT_DISABLE); // RX @@ -82,6 +82,17 @@ void EepromWritePLLParameters(storno_xtal_app_t *inst){ } +void sendStruct(uint8_t *data, uint8_t size){ + + for(uint8_t idx = 0; idx < size; idx++){ + + cm_uart_send(data[idx]); + + } + + return; +} + void cqm6xx_app_taskHandler(storno_xtal_app_t *inst){ // Check Struct @@ -98,6 +109,20 @@ void cqm6xx_app_taskHandler(storno_xtal_app_t *inst){ return; } + if(inst->rtx_mode == STORNO_APP_SEND_PLLA_PARAM){ + inst->rtx_mode = STORNO_APP_RX_MODE; + + sendStruct(&inst->plla_param_data, sizeof(storno_pll_param_msg)); + return; + } + + if(inst->rtx_mode == STORNO_APP_SEND_PLLB_PARAM){ + inst->rtx_mode = STORNO_APP_RX_MODE; + + sendStruct(&inst->pllb_param_data, sizeof(storno_pll_param_msg)); + return; + } + // If TX pin is not set, then turn on RX output on PLL and disable TX clock. Run setRTXOscMode once, so pll isnt constantly written to!! if((gpio_get_level(GPIO_PORTA,GPIO_PIN_PTT) != GPIO_LEVEL_SET) && (inst->rtx_mode != STORNO_APP_RX_MODE)){ @@ -169,6 +194,13 @@ int uart_rx_event(storno_xtal_app_t *inst, void *rxData){ case MSG_PLLB_PARAM: memcpy(&inst->pllb_param_data,rxData,sizeof(storno_pll_param_msg)); break; + + case MSG_GET_PLLA_PARAM: + + break; + + case MSG_GET_PLLB_PARAM: + break; } @@ -192,7 +224,7 @@ 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)|| 1){ + if(!isEEPROMValid(inst)){ // If settings are somehow unvalid, then write default settings.. writeDefaultSettingsEEprom(inst); } diff --git a/storno_cqp6xx_digital_xtal/cqm6xx_app.h b/storno_cqp6xx_digital_xtal/cqm6xx_app.h index 7ce4698..79ea5a3 100644 --- a/storno_cqp6xx_digital_xtal/cqm6xx_app.h +++ b/storno_cqp6xx_digital_xtal/cqm6xx_app.h @@ -50,6 +50,9 @@ typedef enum { STORNO_APP_RX_MODE = 0, STORNO_APP_TX_MODE = 1, STORNO_APP_PROGRAM_EEPROM = 2, + STORNO_APP_SEND_PLLA_PARAM = 3, + STORNO_APP_SEND_PLLB_PARAM = 4, + }storno_app_modes; diff --git a/storno_cqp6xx_digital_xtal/si5351_driver b/storno_cqp6xx_digital_xtal/si5351_driver index 1102fbd..d6fb9d8 160000 --- a/storno_cqp6xx_digital_xtal/si5351_driver +++ b/storno_cqp6xx_digital_xtal/si5351_driver @@ -1 +1 @@ -Subproject commit 1102fbd4d5faa50572af80ba0b9c6f3c48708a1d +Subproject commit d6fb9d88566c9f6c615da84239222daf124538e1