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
if( state->sync_source == ERTM14_SYNC_SOURCE_NONE)
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)
......@@ -798,7 +804,7 @@ static void ertm14_dds_nco_sync_task(void)
break;
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->lo, ERTM14_DDS_IOUPDATE_LO );
dds_nco_sync_state = DDS_NCO_STATE_WAIT_TRIGGER;
......@@ -811,7 +817,7 @@ static void ertm14_dds_nco_sync_task(void)
if( trig_ref && trig_lo )
{
board_dbg("(Trig!)\n");
//board_dbg("(Trig!)\n");
dds_nco_sync_state = DDS_NCO_STATE_ARM;
}
......
......@@ -139,6 +139,11 @@ extern unsigned char *BASE_EP;
#define ERTM14_DDS_IOUPDATE_LO 4
#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 gpio_device gpio_aux;
......@@ -184,7 +189,6 @@ struct ertm14_dds_state
int ampl_factor;
int sync_source;
int sync_count;
int sync_state;
};
struct ertm14_board_state
......
......@@ -320,6 +320,18 @@ static int cmd_ertm(const char *args[])
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()
{
if( !tmo_expired( &ertm14_mon_timer ))
......@@ -337,8 +349,23 @@ static int ertm14_monitor_ui()
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_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