This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

LMH1297: how to get the EOM from lmh1297

Part Number: LMH1297
Other Parts Discussed in Thread: USB2ANY

Tool/software:

Hi team:

I want to get the EOM, I set the CTLE/CDR , but I can't read the correct EOM. And the HEO, VEO is also wrong.

I use this to set the CTLE/CDR:

COMMAND REGISTER VALUE MASK //COMMENTS
RAW FF 04 07 //Select CTLE/CDR Register Page
RAW 0C 00 F0 //Setup Reg 0x0C to read lock indication in Reg 0x02[4:3]
RAR 02 18 18 //Wait until bits [4:3] are set to indicate device is locked
RAW 0C 30 F0 //Setup Reg 0x0C to read VCO divisor setting on Reg 0x02[5:3]
RAR 02 38 38 //Read divisor settings
//Reg 0x02[5:3] = 000’b 11.88 Gbps
//Reg 0x02[5:3] = 001’b 5.94 Gbps
//Reg 0x02[5:3] = 010’b 2.97 Gbps
//Reg 0x02[5:3] = 011’b 1.485 Gbps
//Reg 0x02[5:3] = 100’b 270 Mbps
RAW 0C 00 F0 //Setup Reg 0x0C to read lock indication in Reg 0x02[4:3] (Default)

I use this to read EOM:

1. Enable EOM (power on). Write Reg 0x24[7] to 1 to turn on fast EOM.
2. Read Reg 0x25 as burst of 2 bytes (EOM hit count) and discard.
3. Read Reg 0x25 as burst of 2 bytes (EOM hit count) and discard.
4. Read Reg 0x25 as burst of 2 bytes (EOM hit count) and save.
5. Repeat Step 4 another 4095 times (64 × 64 cells).

but I can't read the correct EOM. 

Please help me , I want to read the corredt EOM ,  what else I need to do? 

  • Hi Terry,

    I will get back to you shortly on this query. In the meantime, I suggest you review the LMH1297 programming guide and compare each register read/write/mask operation with your own code. Note that you have to store the value 4095 times, and will need to graph the results to see the eye.

    Best Regards,

    Nick

  • Thkank you replay. I read the value 4095 times , and stored its .  but , I can't get the maximun hit count 7681. 

    And , I graph the results is not eye.  I had read the programming guide , but , I can't find the right step. 

    Please help me.

  • Hi Terry,

    We have a video on this topic that may help with your problem, linked here: https://www.ti.com/video/5797181755001

    I have a couple of questions too. 

    Where do you see that the maximum hit count is 7681?

    Are you reading both register 0x25 and 0x26?

    Best,

    Nick

  • Thank you for your replay. 
    Yes, I had readed the both register 0x25 and 0x26 , and 0x25 <<8 & 0x26 , (MSBs and LSBs)

    I saw the hit count is 7681 at your video's 8:11 , https://www.ti.com/video/5797181755001 ,  Please check it. 

    What can i do ,  Please help me.

    Thank you very much.

  • Hi Terry,

    What data rate are you using? Lower data rates will have lower hit counts.

    What values are you getting?

    Best Regards,

    Nick

  • Hi Nick:

    I tested the 12G,6G, 3G and 1.5G . 

    the result is not correct , as below. 

       0
       0
       0
       0
       3841
       3791
       3515
       3157
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       197
       192
       252
       259
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       1
       0
       2
       6
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       319
       199
       142
       135
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       1
       4
       17
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       240
       265
       271
       736
       5
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       1
       0
       0
       0

  • Hi Terry,

    It is required to read 0x25 and 0x26 4096 times to get a 64x64 eye diagram.

    B.R,

    Nick

  • Hi Nick:

    Yes , I readed it 4096 times .  but I can't pasted it to here . 

    Because it is too long . 

  • Hi Terry,

    Ok, I'm attaching a 12G EOM with a csv output for your reference. Is the device CDR locked? Can you view the output eye on a monitor? Also would it be possible to use the USB2ANY and the GUI to view the eye?

     raw_eye_values (2).csv

    B.R,

    Nick

  • Hi Nick:

    I readed the CDR , and it is locked . (to read 0x02) , I can view the eye on Leader 5300 . but I can't use the USB2ANY and the GUI . 

    I want to know how to use the LSB and MSB to get the hit count.

    MSB << 8 and LSB ?  or  MSB <<7 AND LSB ? or other ?

    thank you very much. 

  • Hi Nick:

    If I want to read the eye, What registers I need to set before I read the 0x25 and 0x26 ? 

    thank you . 

  • Hi Terry,

    For the registers that you need to set before reading 0x25 and 0x26:

    See the table above. The step to "//Wait until EOM samples are ready (Reg 0x24[0] = 0’b when ready)" is for an SPI application but the rest is the same.

    For the MSB and LSB portion:

    0x25 << 8 (right shift 8 bits of 0x25) or 0x26 (LSB)

    For example:

    0x25 = 0x80 = bit1

    0x26 = 0x01 = bit2

    Value = (bit1 << 8) | bit2

    Value = 1000 0000 0000 0001 = 0x8001 = 32769

    *Note: this is not a real example for an eye value because the value is too high* 

    If 0x25 is 0x00, the right shift is not necessary.

    If 0x26 is 0x00 and 0x25 is not, the value is 0x25 << 8.

  • I used SMBus , but I can try it . 

    thank you . 

  • Hi Nick:

    I tryed to readed it , but 0x25 and 0x26 is zero. I don't konw what's wrong with me.

    Do any of the pin need special treatment?

    thank you . 

  • Hi Terry,

    No problem. Apologies for the difficulty. No, there are no pin settings to set. Is this the script you use?, do you select the CDR page and do you use masks when you write to registers?

    RAW FF 04 07 //Select CTLE/CDR Register Page

    RAW 24 80 80 //Start Fast EOM

    RAR 25 00 00 //Read Reg 25 & Reg 26 and discard its contents

    RAR 26 00 00 //Read Reg 25 & Reg 26 and discard its contents

    RAR 25 00 00 // ^^

    RAR 26 00 00 // ^^

    RAR 25 00 00 // Multi-read of 0x25 4096 times

    RAR 26 00 00

    Best,

    Nick

  • Hi Nick:

    I used your step, Just one times success. And I tried many times, all failed.

    The correct data and failed data in the attachment. there is two sheet , sheet 1 is Raw data, sheet2 is the eye. 

    I don't know why I can't readed the correct data again, even i used the same code. 

    thank you.

     LMH1297_eom.zip

  • Hi Terry,

    Can you provide any more insight on your setup to determine why this may not be working? 

    Based on the attachments you have sent, you are reading values, but the eye is not correct.

    Best,

    Nick

  • Hi Nick:

     I only do this. 

    RAW FF 04 07 //Select CTLE/CDR Register Page

    RAW 24 80 80 //Start Fast EOM

    RAR 25 00 00 //Read Reg 25 & Reg 26 and discard its contents

    RAR 26 00 00 //Read Reg 25 & Reg 26 and discard its contents

    RAR 25 00 00 // ^^

    RAR 26 00 00 // ^^

    RAR 25 00 00 // Multi-read of 0x25 4096 times

    RAR 26 00 00

    but , I readed the EOM as below, What happened here?

    LMH1297_EOM_Failed.zip

  • Hi Terry,

    When a color grading is applied in excel, the eye is visible. It is possible to see it on the right hand portion as there is a clear gradient to the zero points, although I also see streaks of hits where there should not be hits. I have seen these streaks before when the CDR is not locked or there is a misconnection of some kind. Note that when you start fast EOM, the eye capture occurs, and the values are stored sequentially in the byte at 0x25. Each time the byte is read, the next value comes up in the iteration.

    What script do you use to read the HEO/VEO?

    Best,

    Nick

  • Hi Nick:

    I am using a STM32 microcontroller and I am using SMBus to read.

    Is there a speed (or delay) requirement for reading?

    Thank you.

  • Hi Terry,

    It is not necessary to set a speed because after the FAST EOM is triggered there is an instantaneous eye capture. The values for this eye capture are stored in 0x25 and 0x26, the values can be iterated through by reading and the speed does not affect the value. 

    Best Regards,

    Nick