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.

ADC09SJ1300-Q1: bypassing the SYSREF window

Part Number: ADC09SJ1300-Q1
Other Parts Discussed in Thread: ADC09SJ1300

Tool/software:

Hello, experts.
On our board, the SYSREF window is not very effective and there is a high frequency of Invalid/NotInTable/Disparity errors of TI-JESD204C-IP.
I would like to use the SYSREF signal itself, but I am considering not using the SYSREF window.

Please tell me two things.
1. Is the setting below correct for bypassing the SYSREF window?

  • SYSREF_PROC_EN=0x0

  • SYSREF_RECV_EN=0x1

  • SYSREF_ZOOM=0x0

  • SYSREF_SEL=0x0

2. Is Deterministic Latency guaranteed in this way?

Thank you.

  • Hello Mitsuo,

    If you are seeing lots of sysref related errors on your it means that the sysref timing on the ADC is probably not valid so you will actually have to use the windowing feature of the ADC to ensure the ADC is correctly sampling the sysref signal. 

    To confirm this is the issue you can check the realigned and aligned bits in the JESD_STATUS register of the ADC. What this will tell you is that the first time sysref is captured by the ADC both the aligned and realigned flag will go him. Now you can clear the realigned flag and then poll this register to see if the flag ever gets set again, if so this means the sysref timing on the ADC is invalid and it is constantly realigning the link.

    Also can you share why you think the sysref windowing feature is not working for your system?

    Thanks,

    Eric

  • Hello Eric,

    Sorry for the late reply.

    I will share a check of the number of occurrences of IP Error on our board.
    Based on these results, I think the only good configuration is not to use sysref windowing.

    Each ADC settings were tested twice.
    In one test, the number of IP errors was checked immediately after power input and two minutes later. (The test temperature is always around 25°C.)

    Thank you.

  • Hello Eric,

    Please let me know additionally.

    What is sysref windowing doing inside?
    What design should sysref windowing be used in?
    Is it possible to have frequent IP errors with sysref windowing enabled?

    We are using ADC09SJ1300 with the following design.
    ・fs=1250Msps (Internal PLL used, CLK±=312.5 MHz, SYSREF=0.625 MHz)
    ・JMODE=11 (9bit,8b/10b,4lane)
    ・flinerate=5Gbps

    Also, I can share the block diagram of ADC and FPGA, but please let me deal with it by email.

    Thank you.

  • Hello Mitsuo,

    What is this IP error you are getting? Can you also share the status of ADC register 0x208 the JESD_STATUS register. This will register will let us know if the sysref signal is getting processed correctly on the ADC side of things.

    In the ADC sysref windowing is used to ensure that you always meet setup and hold for the sysref signal getting sampled by the ADC clock. As the ADC clock for this device can be quite high (>1GHz) it can sometimes be tough to meet setup and hold. So to ensure we meet setup and hold what sysref windowing is doing is sampling the sysref at multiple delayed positions and then it will report where the valid positions to sample sysref are. Then we can program the ADC to sample sysref at this delayed position.

    Because you are using the internal ADC PLL you might be able to get away without using sysref windowing as the ADC clock is running at a much slower rate and wont run into as many setup and hold issues. It is also important to check that both the ADC CLK and ADC sysref are phase coherent and not slipping with respect to each other. So checking the register I mentioned above will help us narrow down where your issue is happening.

    Thanks,

    Eric

  • Hello Eric,

    As you said, I cleared the realigned flag of 0x208 JESD_STATUS and polled to see the change.

    With windowing set to On, I always see 0x208 JESD_STATUS = 0x7D. So whether I clear the realigned flag or not, it appears to be 1. "2087D" attached below shows it.

    2025-03-17 12:26:31.210111 ['jct  =   46.017', 'pow  =   38.562', 'eth  =   38.687', 'apd  =      nan', 'fl   =      nan', 'mems =      nan', 'adc  =   41.719', '']
    2025-03-17 12:26:34.667878 ['   2087D    20800    2087D ADCJESD0x208 read -> REALGN[4]=0 -> read', '']
    2025-03-17 12:26:38.114944 ['12503173  1F00000        0  8030804     29E0     3E04    2087D   800301 8020F7A0  2030502  8080808  8080808
    2025-03-17 12:26:42.567128 ['12503173  1F00000        0  8060804     29E0     3E04    2087D   800301 8020F7A0  2030502  8080808  8080808
    2025-03-17 12:26:47.046469 ['12503173  1F00000        0  8040805     29E0     3E04    2087D   E00001 8020F7A0  3030602  9090909  9090909
    2025-03-17 12:26:51.485732 ['12503173  1F00000        0  8050805     29E0     3E04    2087D   E00001 8020F7A0  3030602  9090909  9090909
    2025-03-17 12:26:55.931118 ['12503173  1F00000        0  8040804     29E0     3E04    2087D   E00001 8020F7A0  3030602  9090909  9090909
    2025-03-17 12:27:00.373695 ['12503173  1F00000        0  8040805     29E0     3E04    2087D   E00001 8020F7A0  3030602  9090909  9090909
    2025-03-17 12:27:04.816321 ['12503173  1F00000        0  8030805     29E0     3E04    2087D   E00001 8020F7A0  3030602  9090909  9090909
    2025-03-17 12:27:09.266183 ['12503173  1F00000        0  8050804     29E0     3E04    2087D   E00001 8020F7A0  3030602  9090909  9090909
    2025-03-17 12:27:13.719892 ['12503173  1F00000        0  8040804     29E0     3E04    2087D   E00001 8020F7A0  3030602  9090909  9090909
    2025-03-17 12:27:18.172722 ['12503173  1F00000        0  8040806     29E0     3E04    2087D   E00001 8020F7A0  3030602  9090909  9090909
    2025-03-17 12:27:22.647095 ['12503173  1F00000        0  8090802     29E0     3E04    2087D   E00001 8020F7A0  3030602  9090909  9090909
    2025-03-17 12:27:27.100722 ['12503173  1F00000        0  7FA0802     29E0     3E04    2087D   E00001 8020F7A0  3030602  9090909  9090909
    2025-03-17 12:27:31.546141 ['12503173  1F00000        0  8040804     29E0     3E04    2087D   E00001 8020F7A0  3030602  9090909  9090909
    2025-03-17 12:27:36.000773 ['12503173  1F00000        0  8050804     29E0     3E04    2087D   E00001 8020F7A0  3030602  9090909  9090909
    2025-03-17 12:27:40.449307 ['12503173  1F00000        0  8040804     29E0     3E04    2087D   E00001 8020F7A0  3030602  9090909  9090909
    2025-03-17 12:27:50.894416 ['jct  =   48.847', 'pow  =   41.437', 'eth  =   40.937', 'apd  =      nan', 'fl   =      nan', 'mems =      nan', 'adc  =   44.313', '']
    2025-03-17 12:27:54.346902 ['   2087D    20800    2087D ADCJESD0x208 read -> REALGN[4]=0 -> read', '']
    2025-03-17 12:27:57.793057 ['12503173  1F00000        0  8040805     29E0     3E04    2087D   800301 8020F7A0  3050704  B0B0B0B  B0B0B0B
    2025-03-17 12:28:02.233283 ['12503173  1F00000        0  8060806     29E0     3E04    2087D   800301 8020F7A0  3050704  B0B0B0B  B0B0B0B
    2025-03-17 12:28:06.673216 ['12503173  1F00000        0  8040804     29E0     3E04    2087D   800301 8020F7A0  3050704  B0B0B0B  B0B0B0B
    2025-03-17 12:28:11.128079 ['12503173  1F00000        0  8030805     29E0     3E04    2087D   800301 8020F7A0  3050704  B0B0B0B  B0B0B0B
    2025-03-17 12:28:15.581566 ['12503173  1F00000        0  8040805     29E0     3E04    2087D   800301 8020F7A0  3050704  B0B0B0B  B0B0B0B
    2025-03-17 12:28:20.035648 ['12503173  1F00000        0  8030802     29E0     3E04    2087D   800301 8020F7A0  3050704  B0B0B0B  B0B0B0B
    2025-03-17 12:28:24.481775 ['12503173  1F00000        0  8030805     29E0     3E04    2087D   800301 8020F7A0  3050704  B0B0B0B  B0B0B0B
    2025-03-17 12:28:28.934580 ['12503173  1F00000        0  8030804     29E0     3E04    2087D   E00001 8020F7A0  4050705  C0C0C0C  C0C0C0C
    2025-03-17 12:28:33.384558 ['12503173  1F00000        0  8030803     29E0     3E04    2087D   E00001 8020F7A0  4050705  C0C0C0C  C0C0C0C
    2025-03-17 12:28:37.823935 ['12503173  1F00000        0  80A0804     29E0     3E04    2087D   E00001 8020F7A0  4050705  C0C0C0C  C0C0C0C
    2025-03-17 12:28:42.281600 ['12503173  1F00000        0  8040803     29E0     3E04    2087D   E00001 8020F7A0  4050705  C0C0C0C  C0C0C0C
    2025-03-17 12:28:46.737316 ['12503173  1F00000        0  8050804     29E0     3E04    2087D   E00001 8020F7A0  4050705  C0C0C0C  C0C0C0C
    2025-03-17 12:28:51.179148 ['12503173  1F00000        0  8060805     29E0     3E04    2087D   E00001 8020F7A0  4050705  C0C0C0C  C0C0C0C
    2025-03-17 12:28:55.626870 ['12503173  1F00000        0  8070804     29E0     3E04    2087D   E00001 8020F7A0  4050705  C0C0C0C  C0C0C0C
    2025-03-17 12:29:00.083040 ['12503173  1F00000        0  8060804     29E0     3E04    2087D   E00001 8020F7A0  4050705  C0C0C0C  C0C0C0C
    2025-03-17 12:29:10.533963 ['jct  =   50.816', 'pow  =   43.562', 'eth  =   42.937', 'apd  =      nan', 'fl   =      nan', 'mems =      nan', 'adc  =   46.406', '']
    2025-03-17 12:29:13.977709 ['   2087D    20800    2087D ADCJESD0x208 read -> REALGN[4]=0 -> read', '']
    2025-03-17 12:29:17.428921 ['12503173  1F00000        0  8040806     29E0     3E04    2087D   E00001 8020F7A0  4050705  C0C0C0C  C0C0C0C
    2025-03-17 12:29:21.882157 ['12503173  1F00000        0  8040803     29E0     3E04    2087D   E00001 8020F7A0  4050705  C0C0C0C  C0C0C0C
    2025-03-17 12:29:26.328323 ['12503173  1F00000        0  8040804     29E0     3E04    2087D   E00001 8020F7A0  4050705  C0C0C0C  C0C0C0C
    2025-03-17 12:29:30.773174 ['12503173  1F00000        0  8040804     29E0     3E04    2087D   E00001 8020F7A0  4050705  C0C0C0C  C0C0C0C
    2025-03-17 12:29:35.226623 ['12503173  1F00000        0  8040804     29E0     3E04    2087D   800301 8020F7A0  5050907  E0E0E0E  E0E0E0E
    2025-03-17 12:29:39.673785 ['12503173  1F00000        0  8020803     29E0     3E04    2087D   800301 8020F7A0  5050907  E0E0E0E  E0E0E0E
    2025-03-17 12:29:44.115324 ['12503173  1F00000        0  8050805     29E0     3E04    2087D   800301 8020F7A0  5050907  E0E0E0E  E0E0E0E
    2025-03-17 12:29:48.566556 ['12503173  1F00000        0  8040804     29E0     3E04    2087D   E00001 8020F7A0  5060908  F0F0F0F  F0F0F0F
    2025-03-17 12:29:53.004713 ['12503173  1F00000        0  8050804     29E0     3E04    2087D   E00001 8020F7A0  5060908  F0F0F0F  F0F0F0F
    2025-03-17 12:29:57.442575 ['12503173  1F00000        0  8030804     29E0     3E04    2087D   E00001 8020F7A0  5060908  F0F0F0F  F0F0F0F
    2025-03-17 12:30:01.898351 ['12503173  1F00000        0  8030804     29E0     3E04    2087D   E00001 8020F7A0  5060908  F0F0F0F  F0F0F0F
    2025-03-17 12:30:06.341446 ['12503173  1F00000        0  8030805     29E0     3E04    2087D   E00001 8020F7A0  5060908  F0F0F0F  F0F0F0F
    2025-03-17 12:30:10.778448 ['12503173  1F00000        0  8040804     29E0     3E04    2087D   E00001 8020F7A0  5060908  F0F0F0F  F0F0F0F
    2025-03-17 12:30:15.234702 ['12503173  1F00000        0  8040804     29E0     3E04    2087D   E00001 8020F7A0  5060908  F0F0F0F  F0F0F0F
    2025-03-17 12:30:19.684283 ['12503173  1F00000        0  8040804     29E0     3E04    2087D   E00001 8020F7A0  5060908  F0F0F0F  F0F0F0F

    By the way,
    With windowing set to Off, I always see 0x208 JESD_STATUS = 0x65. So whether I clear the realigned flag or not, it appears to be 0. "20865" attached below shows it.

    2025-03-17 12:37:18.212760 ['jct  =   58.690', 'pow  =   50.750', 'eth  =   50.375', 'apd  =      nan', 'fl   =      nan', 'mems =      nan', 'adc  =   53.781', '']
    2025-03-17 12:37:21.656607 ['   20865    20800    20865 ADCJESD0x208 read -> REALGN[4]=0 -> read', '']
    2025-03-17 12:37:25.100637 ['12503171  1F00000        0  8040804     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:37:29.552338 ['12503171  1F00000        0  8010809     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:37:33.991451 ['12503171  1F00000        0  8040803     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:37:38.443817 ['12503171  1F00000        0  8020805     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:37:42.898357 ['12503171  1F00000        0  8030806     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:37:47.354859 ['12503171  1F00000        0  8030804     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:37:51.811283 ['12503171  1F00000        0  8040804     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:37:56.252376 ['12503171  1F00000        0  8030805     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:38:00.708913 ['12503171  1F00000        0  8070807     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:38:05.154024 ['12503171  1F00000        0  8030806     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:38:09.595933 ['12503171  1F00000        0  8040804     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:38:14.052977 ['12503171  1F00000        0  8040804     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:38:18.507645 ['12503171  1F00000        0  8040804     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:38:22.960672 ['12503171  1F00000        0  8040804     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:38:27.414658 ['12503171  1F00000        0  8050804     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:38:37.880760 ['jct  =   59.552', 'pow  =   52.000', 'eth  =   51.250', 'apd  =      nan', 'fl   =      nan', 'mems =      nan', 'adc  =   54.781', '']
    2025-03-17 12:38:41.332484 ['   20865    20800    20865 ADCJESD0x208 read -> REALGN[4]=0 -> read', '']
    2025-03-17 12:38:44.779774 ['12503171  1F00000        0  8040804     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:38:49.225373 ['12503171  1F00000        0  8040805     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:38:53.666629 ['12503171  1F00000        0  8040804     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:38:58.113434 ['12503171  1F00000        0  8070803     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:39:02.567827 ['12503171  1F00000        0  8040805     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:39:07.011560 ['12503171  1F00000        0  8050802     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:39:11.467991 ['12503171  1F00000        0  8040804     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:39:15.914216 ['12503171  1F00000        0  8030803     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:39:20.361635 ['12503171  1F00000        0  8040803     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:39:24.821745 ['12503171  1F00000        0  8050804     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:39:29.267744 ['12503171  1F00000        0  8030804     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:39:33.716104 ['12503171  1F00000        0  8040805     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:39:38.167892 ['12503171  1F00000        0  8040805     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:39:42.610642 ['12503171  1F00000        0  8040806     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:39:47.063370 ['12503171  1F00000        0  8040805     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:39:57.523081 ['jct  =   60.782', 'pow  =   52.937', 'eth  =   52.000', 'apd  =      nan', 'fl   =      nan', 'mems =      nan', 'adc  =   55.688', '']
    2025-03-17 12:40:00.976232 ['   20865    20800    20865 ADCJESD0x208 read -> REALGN[4]=0 -> read', '']
    2025-03-17 12:40:04.428784 ['12503171  1F00000        0  8060801     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:40:08.871517 ['12503171  1F00000        0  8040804     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:40:13.315344 ['12503171  1F00000        0  8040804     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:40:17.771145 ['12503171  1F00000        0  8050804     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:40:22.207116 ['12503171  1F00000        0  8040805     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:40:26.654490 ['12503171  1F00000        0  8040805     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:40:31.092436 ['12503171  1F00000        0  8040805     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:40:35.537423 ['12503171  1F00000        0  8040804     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:40:39.977962 ['12503171  1F00000        0  8040805     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:40:44.432454 ['12503171  1F00000        0  8040803     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:40:48.872965 ['12503171  1F00000        0  8030805     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:40:53.314601 ['12503171  1F00000        0  8040802     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:40:57.767974 ['12503171  1F00000        0  8050804     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:41:02.218733 ['12503171  1F00000        0  8030804     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:41:06.654413 ['12503171  1F00000        0  8030805     29A0     3E04    20865   C00001 800077A0        0  1010101  1010101
    2025-03-17 12:41:17.129059 ['jct  =   61.397', 'pow  =   53.687', 'eth  =   52.687', 'apd  =      nan', 'fl   =      nan', 'mems =      nan', 'adc  =   56.500', '']
    2025-03-17 12:41:20.575491 ['   20865    20800    20865 ADCJESD0x208 read -> REALGN[4]=0 -> read', '']

    What does this mean?
    Do you know the cause of realigning?

    Thank you.

     

  • Hello Eric,

    I will explain IP error in the supplement.

    I'm talking about a time interval of roughly 160usec to 270usec.

    In TI-JESD204C-IP, when rx_lane_valid falls, invalid/notintable/disparity errors are counted to 0xF, reset to 0x0 at some point, and then rx_lane_valid comes up again, right?

    We count the following conditions as a single IP Error: rx_lane_valid falls and the invalid/notintable/disparity error is greater than zero. We call this an IP error.

    Thank you.

  • Hi Mitsuo,

    What this is telling me is that the SYSREF is never actually being captured by the ADC at all. In one case you read 7D so both sysref aligned and realigned get set which should happen and then after you clear sysref realign it continues to get set indicating that the sysref timing is in accurate to the ADC. In the other case you read sysref aligned and realigned to both be 0 indicating the adc never received a sysref. 

    My guess is the sysref frequency to the ADC is incorrect or perhaps the sysref clock is not coherent to the ADC sampling clock.

    Thanks,

    Eric

  • Hello Eric,

    0.625MHz of sysref was rooted at 125MHz of rx_sys_clock and divided by 200 in the divider circuit. On the other hand, CLK± was 312.5MHz, so if the TI-JESD204C-IP was reset for some reason, the phase between sysref and CLK± would change. As a countermeasure, we set CLK± equal to 125MHz of rx_sys_clock, and the symptom was improved and the frequency of reset to TI-JESD204C-IP for some reason was reduced.

    Our understanding now is as follows.
    1. sysref is fsysref=(R*fs)/(10*F*K*n)=(4*1250M)/(10*8*4*25)=0.625MHz
    2. we think we can handle whether sysref and fs are coherent or not by CLK±=125MHz change.
    3. we also checked the JESD_STATUS register in the case of CLK±=125MHz, and it shows 0x7D and 0x65 as in the case of CLK±=312.5MHz.

    Please give us a few more days. We are now considering what questions to ask you.

    Thank you.