Trying to read HEO / VEO to establish link quality. The input signal is an SDI signal (with different rates... the problems exists from SD to 12G).
I have done as per programming guide
i expect, for HEO a range between 0 and 64 (after conversion from HEX).
At the moment, the read back value on HEO are much higher (well above 64).
This is what i am doing :
EOMdata_t eomData = {.HEO = 0, .VEO = 0}; uint8_t HEO, VEO; lmhRAW(0xFF, 0x04, 0x07); // Select CTLE/CDR Register Page lmhRAW(0x3E, 0x00, 0x80); // Disable Automatic HEO/VEO // lmhRAW(0x11, 0x00, 0xE0); // Enable EOM and set VEO granularity to 3.125 mV // lmhRAW(0x11, 0x80, 0xE0); // Enable EOM and set VEO granularity to 9.375mV lmhRAW(0x11, 0xC0, 0xE0); // Enable EOM and set VEO granularity to 12.5mV lmhRAW(0x23, 0x80, 0x80); // Acquire HEO and VEO when Reg 0x24[1] = 1 lmhRAW(0x24, 0x02, 0x02); // Get HEO and VEO measurement (self-clearing) while (((lmhRAR(0x24).data & 0x02) >> 1)) VEO = lmhRAR(0x27).data; HEO = lmhRAR(0x28).data; lmhRAW(0x3E, 0x80, 0x80); //Enable Automatic HEO/VEO lmhRAW(0x23, 0x00, 0x80); //Disable HEO and VEO override on Reg 0x24[1] lmhRAW(0x11, 0xE0, 0xE0); //Restore Reg 0x11[7:5] to default value eomData.HEO = HEO / 64.0f; // 0.00 - 1.00 percent eomData.VEO = VEO * 12.5f; // mV
I am doing somethign wrong ?
Here to help getting you more info if needed.
Thanks