From 4855e8d56107f9cdd3a4fd7fa7dfa5933bd26ca1 Mon Sep 17 00:00:00 2001 From: Javi Cereijo Date: Wed, 11 Oct 2023 10:01:53 +0200 Subject: [PATCH] fix: TCLKA and TCLKB and EVRU/EVRD clocks. * TCLKA and TCLKB should use UNIV16,17 and CMLs. * Better handling of the fractional synthesizer configuration - useful for EVRD and EVRU as they do not have all the registers functional. --- evrMrmApp/src/drvem.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/evrMrmApp/src/drvem.cpp b/evrMrmApp/src/drvem.cpp index a351f0457..135f0b3b8 100644 --- a/evrMrmApp/src/drvem.cpp +++ b/evrMrmApp/src/drvem.cpp @@ -286,11 +286,6 @@ try{ } else if(formfactor==formFactor_mTCA) { - // mapping to TCLKA and TCLKB as UNIV16, 17 - // we move down to UNIV0, 1 - outputs[std::make_pair(OutputFPUniv,0)]=new MRMOutput(SB()<eclk*1.01 || clk==0.0) + /* There is an issue with this and the embedded EVRs of the mTCA EVM vers + * 280b0207. The register holding the fractional synthesizer configuration + * word is empty, so eclk always resolves to 0, and so does clk. This messes + * up with the delay generators width/delay settings. By removing this check + * clockTS() can be used for the calculation of the width/delay. + * if(clk>eclk*1.01 || clk==0.0) + */ + if(clk==0.0) clk=eclk; SCOPED_LOCK(evrLock);