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.

ADC12DJ3200EVM: ADC12DJ3200

Part Number: ADC12DJ3200EVM
Other Parts Discussed in Thread: LMK04828, ADC12DJ3200

你好,我外部使用lmk04828给3200提供sysref(1.25Mhz)和device clk(2.4Ghz),已经做了同步处理。

我如果需要做两片ADC12DJ3200的片间同步的话,我通过手册知道了两种同步方法,

1.需要自己根据SYSREF_POS 位置,来设定SYSREF_SEL值;

2.先使用sysref校准,校准完成后,读出各自的2B2~2B4寄存器(SRC_TAD)值,记录下来,然后关闭sysre校准,把2B2~2B4寄存器(SRC_TAD)值,写入2B5~2B7寄存器(TAD_FINE,TAD_COARSE,TAD_INV);

这两个方法是否可用呢?

如果我使用方法2 :关闭关闭sysre校准后,将2B2~2B4寄存器(SRC_TAD)值,记录下来,按照下面的寄存器顺序,把2B2~2B4寄存器(SRC_TAD)值,写入2B5~2B7寄存器(TAD_FINE,TAD_COARSE,TAD_INV),但这个时候发现写入029寄存器开启SYSREF 接收器电路时,会写入SYSREF_SEL值,这会有影响同步操作吗?请帮我看看这样写的顺序是否正确吧,谢谢!

    adc_cfg_rom[00]          = 32'h000000B0;
    adc_cfg_rom[01]          = 32'h00000030;        //软复位
    adc_cfg_rom[02]          = 32'h00000030;        //软复位
    adc_cfg_rom[03]          = 32'h00020000;       
    adc_cfg_rom[04]          = 32'h00006100;  
    adc_cfg_rom[05]          = 32'h00020100;  // Set JMODE0
    adc_cfg_rom[06]          = 32'h0002021F;  //设置 k =32    
    adc_cfg_rom[07]          = 32'h00020403;   
    adc_cfg_rom[08]          = 32'h00003000;  
    adc_cfg_rom[09]          = 32'h00003120;
    adc_cfg_rom[10]          = 32'h00006205; //01 or 05//Calibration Configuration 0 Register(CAL_CFG0)
    adc_cfg_rom[11]          = 32'h000080bc;
    adc_cfg_rom[12]          = 32'h0002B803;// TAD_RAMP
    adc_cfg_rom[13]          = 32'h00002A00;   //    
    adc_cfg_rom[14]          = 32'h0002B504;//  2B2
    adc_cfg_rom[15]          = 32'h0002B606;//  2B3
    adc_cfg_rom[16]          = 32'h0002B703;//  2B4
    adc_cfg_rom[17]          = 32'h00006101;// Set CAL_EN (always before JESD_EN)
    adc_cfg_rom[18]          = 32'h0002130f
    adc_cfg_rom[19]          = 32'h00004803; //03 Set serializer pre-emphasis to 3
    adc_cfg_rom[20]          = 32'h00002930;   //[5] 启用 SYSREF 接收器电路 SYSREF_RECV_EN=1 ,SYSREF_ZOOM =1,SYSREF_SEL 设置为 0
    adc_cfg_rom[21]          = 32'h00002970;   //[6] 启用 SYSREF 处理器 SYSREF_PROC_EN=1。必须设置此位以允许设备处理 SYSREF 事件
    adc_cfg_rom[22]          = 32'h00020001;// Set JESD_EN (always after CAL_EN)
    adc_cfg_rom[23]          = 32'h00020001;//延时
    adc_cfg_rom[24]          = 32'h00020001;//延时
    adc_cfg_rom[25]          = 32'h00006C00;// Set CAL_SOFT_TRIG low to reset calibration state machine
    adc_cfg_rom[26]          = 32'h00006C00;// 
    adc_cfg_rom[27]          = 32'h00006C01;// Set CAL_SOFT_TRIG high to enable calibratio
谢谢,可以的话,请尽快回复我,谢谢!
  • 您好,

    已经收到了您的案例,调查需要些时间,感谢您的耐心等待

  • 两种方法均可实现同步,但方法2似乎更好一些。

    配置流程看起来是合理的,但应保持SYSREF_SEL自动模式或与校准时的配置一致。

  • 好的谢谢,我将使用方法2进行同步尝试。请问你说的“但应保持SYSREF_SEL自动模式或与校准时的配置一致。”是什么意思呢?我看手册中提到SYSREF_SEL在使用sysref校准时,需要设为0,你的意思时要将SYSREF_SEl保持设为0么?

  • 或者是说,在写入2B5~2B7寄存器(TAD_FINE,TAD_COARSE,TAD_INV)值的同时SYSREF_SEL的值,也需要根据校准完成后的SYSREF_POS 值,来进行调整呢?主要没有明白您说的“SYSREF_SEL自动模式”的意思?

  • 对,就是第二个这个意思

  • 谢谢!感谢你的及时回复!

    我再确认一下你的意思!

    先使用进行sysref自动校准版本的程序,sysref校准完成后,读出各自的2B2~2B4寄存器(SRC_TAD)值,以及SYSREF_POS,记录下来。

    后使用关闭sysre自动校版本的程序,将记录下来的2B2~2B4寄存器(SRC_TAD)值,写入2B5~2B7寄存器(TAD_FINE,TAD_COARSE,TAD_INV)。

    同时根据记录下来的SYSREF_POS 值(十六进制:80 06 01 二进制:1000 0000 0000 0110 0000 0001),写入SYSREF_SEL值(十进制15,十六进制F)。

    及写入下面配置寄存器中的adc_cfg_rom[14][15][16]和[20][21]?

        adc_cfg_rom[00]          = 32'h000000B0;
        adc_cfg_rom[01]          = 32'h00000030;        //软复位
        adc_cfg_rom[02]          = 32'h00000030;        //软复位
        adc_cfg_rom[03]          = 32'h00020000;       
        adc_cfg_rom[04]          = 32'h00006100;  
        adc_cfg_rom[05]          = 32'h00020100;  // Set JMODE0
        adc_cfg_rom[06]          = 32'h0002021F;  //设置 k =32    
        adc_cfg_rom[07]          = 32'h00020403;   
        adc_cfg_rom[08]          = 32'h00003000;  
        adc_cfg_rom[09]          = 32'h00003120;
        adc_cfg_rom[10]          = 32'h00006205; //01 or 05//Calibration Configuration 0 Register(CAL_CFG0)
        adc_cfg_rom[11]          = 32'h000080bc;
        adc_cfg_rom[12]          = 32'h0002B803;// TAD_RAMP
        adc_cfg_rom[13]          = 32'h00002A00;   //   
     
    //TAD_FINE,TAD_COARSE,TAD_INV
        adc_cfg_rom[14]          = 32'h0002B504;//  2B2
        adc_cfg_rom[15]          = 32'h0002B606;//  2B3
        adc_cfg_rom[16]          = 32'h0002B703;//  2B4
        adc_cfg_rom[17]          = 32'h00006101;// Set CAL_EN (always before JESD_EN)
        adc_cfg_rom[18]          = 32'h0002130f
        adc_cfg_rom[19]          = 32'h00004803//03 Set serializer pre-emphasis to 3
    //SYSREF_SEL
        adc_cfg_rom[20]          = 32'h0000293F;   //[5] 启用 SYSREF 接收器电路 SYSREF_RECV_EN=1 ,SYSREF_ZOOM =1,SYSREF_SEL 设置为 F
        adc_cfg_rom[21]          = 32'h0000297F;   //[6] 启用 SYSREF 处理器 SYSREF_PROC_EN=1。必须设置此位以允许设备处理 SYSREF 事件
        adc_cfg_rom[22]          = 32'h00020001;// Set JESD_EN (always after CAL_EN)
        adc_cfg_rom[23]          = 32'h00020001;//延时
        adc_cfg_rom[24]          = 32'h00020001;//延时
        adc_cfg_rom[25]          = 32'h00006C00;// Set CAL_SOFT_TRIG low to reset calibration state machine
        adc_cfg_rom[26]          = 32'h00006C00;// 
        adc_cfg_rom[27]          = 32'h00006C01;// Set CAL_SOFT_TRIG high to enable calibratio

    再次感谢你的及时回答!谢谢

  • 对,可以按照这样执行

  • 谢谢!我将抓紧时间尝试!谢谢!