Commit cf7aadcf authored by Tomasz Wlostowski's avatar Tomasz Wlostowski

ertm14: nco sync wip

parent 3d8b7b3d
...@@ -744,7 +744,13 @@ static int rf_nco_sync_wait_trigger( struct ertm14_dds_state *state, uint32_t io ...@@ -744,7 +744,13 @@ static int rf_nco_sync_wait_trigger( struct ertm14_dds_state *state, uint32_t io
if( state->sync_source == ERTM14_SYNC_SOURCE_NONE) if( state->sync_source == ERTM14_SYNC_SOURCE_NONE)
return 1; return 1;
return fine_pulse_gen_is_triggered ( &board.dds_sync_dev, 1 << ioupdate_channel ); if( fine_pulse_gen_is_triggered ( &board.dds_sync_dev, 1 << ioupdate_channel ) )
{
state->sync_count++;
return 1;
}
return 0;
} }
static void ertm14_dds_nco_sync_task(void) static void ertm14_dds_nco_sync_task(void)
...@@ -798,7 +804,7 @@ static void ertm14_dds_nco_sync_task(void) ...@@ -798,7 +804,7 @@ static void ertm14_dds_nco_sync_task(void)
break; break;
case DDS_NCO_STATE_ARM: case DDS_NCO_STATE_ARM:
board_dbg("(Arm!)\n"); //board_dbg("(Arm!)\n");
rf_nco_sync_arm_channel( &ertm14_current_state->ref, ERTM14_DDS_IOUPDATE_REF ); rf_nco_sync_arm_channel( &ertm14_current_state->ref, ERTM14_DDS_IOUPDATE_REF );
rf_nco_sync_arm_channel( &ertm14_current_state->lo, ERTM14_DDS_IOUPDATE_LO ); rf_nco_sync_arm_channel( &ertm14_current_state->lo, ERTM14_DDS_IOUPDATE_LO );
dds_nco_sync_state = DDS_NCO_STATE_WAIT_TRIGGER; dds_nco_sync_state = DDS_NCO_STATE_WAIT_TRIGGER;
...@@ -811,7 +817,7 @@ static void ertm14_dds_nco_sync_task(void) ...@@ -811,7 +817,7 @@ static void ertm14_dds_nco_sync_task(void)
if( trig_ref && trig_lo ) if( trig_ref && trig_lo )
{ {
board_dbg("(Trig!)\n"); //board_dbg("(Trig!)\n");
dds_nco_sync_state = DDS_NCO_STATE_ARM; dds_nco_sync_state = DDS_NCO_STATE_ARM;
} }
......
...@@ -139,6 +139,11 @@ extern unsigned char *BASE_EP; ...@@ -139,6 +139,11 @@ extern unsigned char *BASE_EP;
#define ERTM14_DDS_IOUPDATE_LO 4 #define ERTM14_DDS_IOUPDATE_LO 4
#define ERTM14_DDS_IOUPDATE_REF 5 #define ERTM14_DDS_IOUPDATE_REF 5
#define ERTM14_DEFAULT_DDS_FREQUENCY_HZ 205000000ULL
#define WRC_ERTM14_EVENT_APPLY_NEW_CONFIG (WRC_EVENT_PRIVATE_START+0)
#define WRC_ERTM14_EVENT_RECONFIGURED (WRC_EVENT_PRIVATE_START+1)
struct ertm14_board struct ertm14_board
{ {
struct gpio_device gpio_aux; struct gpio_device gpio_aux;
...@@ -184,7 +189,6 @@ struct ertm14_dds_state ...@@ -184,7 +189,6 @@ struct ertm14_dds_state
int ampl_factor; int ampl_factor;
int sync_source; int sync_source;
int sync_count; int sync_count;
int sync_state;
}; };
struct ertm14_board_state struct ertm14_board_state
......
...@@ -320,6 +320,18 @@ static int cmd_ertm(const char *args[]) ...@@ -320,6 +320,18 @@ static int cmd_ertm(const char *args[])
static timeout_t ertm14_mon_timer; static timeout_t ertm14_mon_timer;
static const char *nco_sync_source_to_string(int src)
{
switch(src)
{
case ERTM14_SYNC_SOURCE_NONE: return "Off";
case ERTM14_SYNC_SOURCE_PPS: return "PPS";
case ERTM14_SYNC_SOURCE_RF_TRIGGER: return "RF Trigger";
default: return "?";
}
}
static int ertm14_monitor_ui() static int ertm14_monitor_ui()
{ {
if( !tmo_expired( &ertm14_mon_timer )) if( !tmo_expired( &ertm14_mon_timer ))
...@@ -337,8 +349,23 @@ static int ertm14_monitor_ui() ...@@ -337,8 +349,23 @@ static int ertm14_monitor_ui()
ret = diag_read_word(8, DIAG_RO_BANK, &val); ret = diag_read_word(8, DIAG_RO_BANK, &val);
cprintf(C_GREY, "Streamer RX Count: "); int id = ertm14_get_current_config_id();
struct ertm14_board_state *st = ertm14_get_state_for_config(id);
if(!st)
return 0;
cprintf(C_WHITE, "NCO Sync Status:\n");
cprintf(C_GREY, "Streamer RX Message count: ");
cprintf(C_WHITE, "%d\n", val); cprintf(C_WHITE, "%d\n", val);
cprintf(C_GREY, "LO DDS Sync Mode: ");
cprintf(C_WHITE, "%s\n", nco_sync_source_to_string(st->lo.sync_source));
cprintf(C_GREY, "REF DDS Sync Mode: ");
cprintf(C_WHITE, "%s\n", nco_sync_source_to_string(st->ref.sync_source));
cprintf(C_GREY, "LO DDS Sync Triggers: ");
cprintf(C_WHITE, "%d\n", st->lo.sync_count);
cprintf(C_GREY, "REF DDS Sync Triggers: ");
cprintf(C_WHITE, "%d\n", st->ref.sync_count);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment