Commit b209a440 authored by Tomasz Wlostowski's avatar Tomasz Wlostowski

softpll.c: now asserts clk_aux_locked_o after the clock phase has been aligned with clk_ref_i

parent fe842ff4
...@@ -403,6 +403,7 @@ void _irq_entry() ...@@ -403,6 +403,7 @@ void _irq_entry()
/* Aux channel - i.e. the oscillator on the FMC card */ /* Aux channel - i.e. the oscillator on the FMC card */
if((csr & SPLL_CSR_AUX_EN) ) if((csr & SPLL_CSR_AUX_EN) )
{ {
int shifting_done = 0;
if(!(csr & CHAN_AUX)) if(!(csr & CHAN_AUX))
{ {
auxpll.ld_phase.locked = 0; auxpll.ld_phase.locked = 0;
...@@ -415,8 +416,8 @@ void _irq_entry() ...@@ -415,8 +416,8 @@ void _irq_entry()
//aux_en = 1; //aux_en = 1;
} }
dmpll_irq(&auxpll, tag_ref, tag_aux, &SPLL->DAC_AUX); dmpll_irq(&auxpll, tag_ref, tag_aux, &SPLL->DAC_AUX);
shifting_done = abs(auxpll.setpoint - auxpll.phase_shift) < 500 ? 1: 0;
SPLL->CSR = SPLL_CSR_TAG_EN_W(CHAN_FB | CHAN_REF | CHAN_AUX) | (auxpll.ld_phase.locked ? SPLL_CSR_AUX_LOCK : 0); SPLL->CSR = SPLL_CSR_TAG_EN_W(CHAN_FB | CHAN_REF | CHAN_AUX) | ((shifting_done && auxpll.ld_phase.locked) ? SPLL_CSR_AUX_LOCK : 0);
} else { } else {
auxpll.ld_phase.locked = 0; auxpll.ld_phase.locked = 0;
......
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