Wiki

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
resources:eval:user-guides:ad-fmcdaq2-ebz:clocking [12 Sep 2017 18:00] – [No-OS] Lars-Peter Clausenresources:eval:user-guides:ad-fmcdaq2-ebz:clocking [19 Jan 2018 10:14] (current) – rename xcomm_zynq -> master Alexandru Ardelean
Line 24: Line 24:
 The ADC and DAC converter clocks are the reference clock for the ADC and DAC respectively and determine the sampling rate of the converter. If a deterministic latency relationship between the DAC and ADC datapath is required the DAC and ADC clock need to be in a (sub-)harmonic relationship to each other, otherwise their relationship can be chosen freely. The ADC and DAC converter clocks are the reference clock for the ADC and DAC respectively and determine the sampling rate of the converter. If a deterministic latency relationship between the DAC and ADC datapath is required the DAC and ADC clock need to be in a (sub-)harmonic relationship to each other, otherwise their relationship can be chosen freely.
  
-The ADC FPGA reference clock is the reference clock for the JESD204 clock-data-recovery (CDR) circuit as well the ADC data path inside the FPGASimilarly the DAC FPGA reference clock is the reference clock for the JESD204 transmit PLL and the DAC data path inside the FPGA.+The DAC has built-in interpolation filters that allow interpolation by a factor of 2, 4 or 8The interpolation factor and the DAC converter sample-rate decide the DAC data-input-rate. The data-input-rate is equal to the sample-rate divided by the interpolation factor.
  
-The SYSREF clocks are used for synchronization and to establish deterministic latency between the different components. The SYSREF clock must be a integer multiple of the local-multi-frame-clock (LMFC). The LMFC is a clock that is generated internally in the converters and FPGA and on the AD-FMCDAQ2-EBZ platform it's rate is 1/32 of the converter samplerate. This means the SYSREF clock frequency must be integer down divided of the converter samplerate / 32 (I.e. samplerate / {32, 64, 96, 128, ...}).+The ADC has built-in decimation filters that allow interpolation by a factor of 2, 4, 8 or 16. The decimation factor and the ADC converter sample-rate decide the ADC data-output-rate. The data-output-rate is equal to the sample-rate divided by the decimation factor. 
 + 
 +The JESD204 lane rates depend on the data-output/input-rates. On the AD-FMCDAQ2-EBZ both for the ADC and the DAC the lane-rate is equal to 10 times the data-rate. 
 + 
 +The ADC FPGA reference clock is the reference clock for the JESD204 clock-data-recovery (CDR) circuit as well the ADC data path inside the FPGA. Similarly the DAC FPGA reference clock is the reference clock for the JESD204 transmit PLL and the DAC data path inside the FPGA. These clocks should be set to the JESD204 lane-rate divided by 20. 
 + 
 +The SYSREF clocks are used for synchronization and to establish deterministic latency between the different components. The SYSREF clock must be a integer multiple of the local-multi-frame-clock (LMFC). The LMFC is a clock that is generated internally in the converters and FPGA and on the AD-FMCDAQ2-EBZ platform it's rate is 1/32 of the converter data-input/output-rate. This means the SYSREF clock frequency must be integer down divided of the converter data-rate / 32 (I.e. data-rate / {32, 64, 96, 128, ...}).
  
 The SYSREF clocks going to the converter and the FPGA must be configured for the same frequency. If a deterministic latency relationship between the DAC and ADC datapath is required the DAC and ADC SYSREF signals must be configured for the same frequency, otherwise the DAC and ADC datapath SYSREF clocks can be configured with different frequencies. The SYSREF clocks going to the converter and the FPGA must be configured for the same frequency. If a deterministic latency relationship between the DAC and ADC datapath is required the DAC and ADC SYSREF signals must be configured for the same frequency, otherwise the DAC and ADC datapath SYSREF clocks can be configured with different frequencies.
Line 37: Line 43:
 | DAC converter clock | ≥ 200 MHz, ≤ 1000 MHz, Master clock / N<sub>DAC</sub> | | DAC converter clock | ≥ 200 MHz, ≤ 1000 MHz, Master clock / N<sub>DAC</sub> |
 | DAC SYSREF clock | DAC converter clock / (N<sub>DAC_SYSREF</sub> * 32) | | DAC SYSREF clock | DAC converter clock / (N<sub>DAC_SYSREF</sub> * 32) |
-| ADC JESD204 lane rate | ADC converter clock / ADC decimation factor * 1000 +| ADC JESD204 lane rate | ADC converter clock / ADC decimation factor * 10 
-| DAC JESD204 lane rate | DAC converter clock / DAC interpolation factor * 1000 |+| DAC JESD204 lane rate | DAC converter clock / DAC interpolation factor * 10 |
  
 ===== Examples ===== ===== Examples =====
Line 96: Line 102:
 ''N2'' = ''4'' * ''B'' + ''A'' ''N2'' = ''4'' * ''B'' + ''A''
  
-Rearranging these formulas it is possible to compute the A and B counter settings from a know reference and a desired VCO frequency.+Rearranging these formulas it is possible to compute the A and B counter settings from a known reference and a desired VCO frequency.
  
 ''N2'' = ''fVCO'' / ''fPFD'' \\ ''N2'' = ''fVCO'' / ''fPFD'' \\
Line 122: Line 128:
 On Linux the default clock configuration is supplied through the [[https://www.devicetree.org/|devicetree]]. On Linux the default clock configuration is supplied through the [[https://www.devicetree.org/|devicetree]].
  
-The devicetree file that is used for the AD-FMCDAQ2-EBZ and contains the clock configuration is called [[linux.github>xcomm_zynq?arch/arm/boot/dts/adi-daq2.dtsi|adi-daq2.dtsi]]. This file contains nodes for the [[linux.github>xcomm_zynq?arch/arm/boot/dts/adi-daq2.dtsi#L8|AD9523-1]], the [[linux.github>xcomm_zynq?arch/arm/boot/dts/adi-daq2.dtsi#L105|AD9144]] and the [[linux.github>xcomm_zynq?arch/arm/boot/dts/adi-daq2.dtsi#L120|AD9680]]. Each node contains properties that describe the hardware setup and provide default configuration parameters. For information on how to edit devicetree please see [[:resources:eval:user-guides:ad-fmcomms2-ebz:software:linux:zynq_tips_tricks#customizing_the_device_tree_on_the_target|Tips & Tricks - Customizing the device tree on the target]].+The devicetree file that is used for the AD-FMCDAQ2-EBZ and contains the clock configuration is called [[linux.github>master?arch/arm/boot/dts/adi-daq2.dtsi|adi-daq2.dtsi]]. This file contains nodes for the [[linux.github>master?arch/arm/boot/dts/adi-daq2.dtsi#L8|AD9523-1]], the [[linux.github>master?arch/arm/boot/dts/adi-daq2.dtsi#L105|AD9144]] and the [[linux.github>master?arch/arm/boot/dts/adi-daq2.dtsi#L120|AD9680]]. Each node contains properties that describe the hardware setup and provide default configuration parameters. For information on how to edit devicetree please see [[:resources:eval:user-guides:ad-fmcomms2-ebz:software:linux:zynq_tips_tricks#customizing_the_device_tree_on_the_target|Tips & Tricks - Customizing the device tree on the target]].
  
 To change the clocking configuration the properties of the AD9523-1 node can be modified. The following lists the most important properties for the AD-FMCDAQ2-EBZ and their corresponding hardware setting. The function of each of these settings and how to choose their value has been discussed above. For more information refer to the [[:resources:tools-software:linux-drivers:iio-pll:ad9523|AD9523-1 driver documenation]]. To change the clocking configuration the properties of the AD9523-1 node can be modified. The following lists the most important properties for the AD-FMCDAQ2-EBZ and their corresponding hardware setting. The function of each of these settings and how to choose their value has been discussed above. For more information refer to the [[:resources:tools-software:linux-drivers:iio-pll:ad9523|AD9523-1 driver documenation]].
Line 129: Line 135:
 | Frequency of the external VCXO | ''adi,vcxo-freq'' | | Frequency of the external VCXO | ''adi,vcxo-freq'' |
 | PLL2 reference divider (R2) | ''adi,pll2-r2-div'' | | PLL2 reference divider (R2) | ''adi,pll2-r2-div'' |
-| PLL2 feedback divider | ''adi,pll2-ndiv-a-cnt''+| PLL2 feedback divider A counter | ''adi,pll2-ndiv-a-cnt''
-| PLL2 feedback divider | ''adi,pll2-ndiv-b-cnt'' |+| PLL2 feedback divider B counter | ''adi,pll2-ndiv-b-cnt'' |
 | PLL2 VCO output divider (M1) | ''adi,pll2-vco-diff-m1'' | | PLL2 VCO output divider (M1) | ''adi,pll2-vco-diff-m1'' |
  
resources/eval/user-guides/ad-fmcdaq2-ebz/clocking.1505232026.txt.gz · Last modified: 12 Sep 2017 18:00 by Lars-Peter Clausen