Post Go back to editing

AD9213-DUAL-EBZ: LTC6946 settings

Category: Hardware
Product Number: AD9213S

Hi folks

I have purchased a AD9213-DUAL-EBZ and I'm pairing it with a Xilinx VMK180. I am struggling a bit with the LTC6946/LTC6952 pairing - I can't get the LTC6952 to lock its PLL. Please might you supply the register settings for the 6946 that you use in the design with the Stratix board? I have the 6952 settings from that design's DTS but can't find any scripts or lists of settings for the 6946. Please might you help me?

Thank you!

Roddy

Thread Notes

  • Moving this question to the Clocks & Timers forum. Someone here should be able to assist you.

  • Just in case it's helpful, I have attached the contents of the LTC6946 registers and the LTC6952 DTS section. The LTC6952 driver shows in dmesg:
    ltc6952 spi3.1: CLKIN: 3750.000000 MHz REFIN: 500.000000 MHz REF: Valid VCO: Valid PLL: Unlocked

    	ltc6952: ltc6952@1 {
    		compatible = "adi,ltc6952";
    		reg = <1>;
    		#address-cells = <1>;
    		#size-cells = <0>;
    		spi-max-frequency = <1000000>;
    		jesd204-device;
    		#jesd204-cells = <0x02>;
    		jesd204-sysref-provider;
    		clock-output-names = "ltc6952_out0", "ltc6952_out1",
    				"ltc6952_out2", "ltc6952_out3", "ltc6952_out4",
    				"ltc6952_out5", "ltc6952_out6", "ltc6952_out7",
    				"ltc6952_out8", "ltc6952_out9", "ltc6952_out10";
    		#clock-cells = <1>;
    		adi,vco-frequency-hz = <3750000000>; /* = 3.75 GHz = <0xdf847580>; */
    		/* adi,ref-frequency-hz = <250000000>; */ /* = 250 MHz */
    		adi,ref-frequency-hz = <500000000>; /* = 500 MHz */
    		adi,charge-pump-microamp = <1000>; /* another file has <3370> for for vco=1.25GHz & vref = 1000MHz */
    
    		channel@0 {
    			reg = <0x00>;
    			adi,extended-name = "SYSREF_0";
    			adi,divider = <0x300>; /* => sysref = 4.8828125 MHz = (device clock) / JESD_N / JESD_K */
    			adi,digital-delay = <0x00>;
    			adi,analog-delay = <0x00>;
    			adi,sysref;
    		};
    
    		channel@1 {
    			reg = <0x01>;
    			adi,extended-name = "SYSREF_1";
    			adi,divider = <0x300>;
    			adi,digital-delay = <0x00>;
    			adi,analog-delay = <0x00>;
    			adi,sysref;
    		};
    
    		channel@4 {
    			reg = <0x04>;
    			adi,extended-name = "CLK_COPY"; /* CLK_COPY or GLBLCLK or LA00_CC*/
    			adi,divider = <0x0c>; /* => 312.5 MHz */
    			adi,digital-delay = <0x00>;
    			adi,analog-delay = <0x00>;
    		};
    
    		channel@5 {
    			reg = <0x05>;
    			adi,extended-name = "SYSREF_COPY"; /* SYSREF_COPY or LA02 */
    			adi,divider = <0x300>;
    			adi,digital-delay = <0x00>;
    			adi,analog-delay = <0x00>;
    		};
    
    		channel@6 {
    			reg = <0x06>;
    			adi,extended-name = "FMC_P1_GBTCLK1M2C";
    			adi,divider = <0x0c>;
    			adi,digital-delay = <0x00>;
    			adi,analog-delay = <0x00>;
    		};
    
    		channel@7 {
    			reg = <0x07>;
    			adi,extended-name = "FMC_P1_GBTCLK3M2C";
    			adi,divider = <0x0c>;
    			adi,digital-delay = <0x00>;
    			adi,analog-delay = <0x00>;
    		};
    
    		channel@8 {
    			reg = <0x08>;
    			adi,extended-name = "FMC_P2_GBTCLK1M2C";
    			adi,divider = <0x0c>;
    			adi,digital-delay = <0x00>;
    			adi,analog-delay = <0x00>;
    		};
    		
    		channel@9 {
    			reg = <0x09>;
    			adi,extended-name = "FMC_P2_GBTCLK3M2C";
    			adi,divider = <0x0c>;
    			adi,digital-delay = <0x00>;
    			adi,analog-delay = <0x00>;
    		};
    	};
    
    LTC6946-2 status: LOCK=1, UNLOCK=0, ALC[HI/LO]=0/1, TUNE[HI/LO]=0/0
    Dividers: O=1, R=3, N=45 | fPFD=83.333333 MHz, fVCO=3750.000000 MHz, fOUT=3750.000000 MHz
    0x00 0x33
    0x01 0x04
    0x02 0x00
    0x03 0xf0
    0x04 0x01
    0x05 0x2d
    0x06 0xfa
    0x07 0x61
    0x08 0x39
    0x09 0x9b
    0x0a 0xe4
    0x0b 0x62
    

  • It hasn't fixed the problem, but I had a bug in my LTC6946 script, which I have now fixed, so my LTC6946 registers (which still don't work) are:
    LTC6946-2 status: LOCK=1, UNLOCK=0, ALC[HI/LO]=0/0, TUNE[HI/LO]=0/0
    Dividers: O=1, R=3, N=45 | fPFD=83.333333 MHz, fVCO=3750.000000 MHz, fOUT=3750.000000 MHz
    0x00 0x22
    0x01 0x04
    0x02 0x00
    0x03 0xf0
    0x04 0x03
    0x05 0x00
    0x06 0x2d
    0x07 0x61
    0x08 0x39
    0x09 0x9b
    0x0a 0xe4
    0x0b 0x62

  • I've now found the LTC6946 settings for this project: they are in the altera_adxcvr_master branch of the Analog Devices kernel source, file ltc6946.c
    (Sorry for wasting anyone's time with this.)

Before You Switch


Switching languages will make ADI Explorer unavailable. Resume your session by switching back to English and reopening ADI Explorer.