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:dpg:eval-ad9106 [01 Aug 2022 07:11] – [Preface] Shine Cabatanresources:eval:dpg:eval-ad9106 [03 Nov 2022 08:57] (current) – Draft 11/3 Deferson Romero
Line 1: Line 1:
-====== Evaluating the AD9106/AD9102 Waveform Generator Digital-to-Analog Converter ====== +======AD9106 AD9102 Evaluation Boards======
 ===== Preface ===== ===== Preface =====
 +This page contains resources and documentation for evaluating the [[adi>AD9106]]/[[adi>AD9102]] 180 Msps 12-/14-bit quad/single DAC and waveform generator.
 +
 +The [[adi>eval-ad9106|AD9106-ARDZ-EBZ]] and [[adi>eval-ad9102|AD9102-ARDZ-EBZ]] evaluation boards share the same PCB design, are compatible with ARM-based Mbed-enabled boards like SDP-K1 and are designed to connect to Arduino Uno headers. Both boards can be operated using either the [[https://os.mbed.com/teams/AnalogDevices/code/EVAL-AD910x/|Example Mbed Program]] or the [[:resources:tools-software:ace|Analysis Control Evaluation (ACE) Software]]. Links to the user guides are provided.
 +
 +The AD910x-ARDZ-EBZ evaluation setup can be powered by USB only and does not require a high-frequency waveform generator for clock input. The evaluation board has an on-board 156.25 MHz crystal oscillator. To fit the evaluation system in a small form factor and manage power consumption within USB specifications, AD9106 and AD9102 supply voltages AVDD, DVDD and CLKVDD are limited to 3.3V only.
  
-Analog Devices is an Mbed Partner and develops code on the platform for multiple products. The [[adi>AD9106]] and [[adi>AD9102]] Mbed-enabled evaluation boards and example Mbed codes can be used as starting point for characterizing the high-speed waveform generator digital-to-analog converters before integrating them into specific applications.+Included also in this page are resources and documentation for the obsolete AD9106-EBZ and AD9102-EBZ boards. These are standalone boards with the same PCB design and are controlled using a Labview-based GUI.
  
-This guide will focus on how [[adi>eval-ad9106|AD9106-ARDZ-EBZ]]/[[adi>eval-ad9102|AD9102-ARDZ-EBZ]] works with [[adi>en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/sdp-k1.html|SDP-K1]] controller board developed by Analog Devices. Users are not limited to using SDP-K1 for evaluation or prototyping. The evaluation boards and the example source codes with minor changes can work with other ARM-based Mbed-enabled boards. The user interface is text based. 
  
-The evaluation setup can be powered by USB only and does not require a high-frequency waveform generator for clock input. The evaluation board has an on-board 156.25 MHz crystal oscillator. To fit the evaluation system in a small form factor and manage power consumption within USB specifications, AD9106 and AD9102 supply voltages AVDD, DVDD and CLKVDD are limited to 3.3V only. 
  
 ===== Typical Setup ===== ===== Typical Setup =====
  
-<WRAP centeralign>{{ :resources:eval:dpg:eval-ad9106_setup.jpg?400x400 }}//Figure 1a. EVAL-AD9106 Typical Evaluation Setup//</WRAP> +<WRAP centeralign>{{ :resources:eval:dpg:eval-ad9106_setup.jpg?400x400 }}//Figure 1a. AD9106-ARDZ-EBZ Typical Evaluation Setup//</WRAP> 
-<WRAP centeralign>{{ :resources:eval:dpg:eval-ad9102_setup1.jpg?400x400 }}//Figure 1b. EVAL-AD9102 Typical Evaluation Setup//</WRAP>+<WRAP centeralign>{{ :resources:eval:dpg:eval-ad9102_setup1.jpg?400x400 }}//Figure 1b. AD9102-ARDZ-EBZ Typical Evaluation Setup//</WRAP>
  
 <note tip>Tip: Click on any picture in this guide to open an enlarged version.</note> <note tip>Tip: Click on any picture in this guide to open an enlarged version.</note>
  
-===== Helpful Files =====+===== Helpful Files & Links =====
   * Datasheet: [[adi>static/imported-files/data_sheets/AD9106.pdf|AD9106]], [[adi>static/imported-files/data_sheets/AD9102.pdf|AD9102]]   * Datasheet: [[adi>static/imported-files/data_sheets/AD9106.pdf|AD9106]], [[adi>static/imported-files/data_sheets/AD9102.pdf|AD9102]]
   * IBIS Model: [[ibis>ad9106bcpz|AD9106]], [[ibis>ad9106bcpz|AD9102]]   * IBIS Model: [[ibis>ad9106bcpz|AD9106]], [[ibis>ad9106bcpz|AD9102]]
Line 24: Line 26:
   * PCB Gerber Files: {{ :resources:eval:dpg:ad9106-ardz-ebz_gerber_files.zip |AD910x-ARDZ-EBZ Gerber Files}}   * PCB Gerber Files: {{ :resources:eval:dpg:ad9106-ardz-ebz_gerber_files.zip |AD910x-ARDZ-EBZ Gerber Files}}
   * PCB Board File: {{ :resources:eval:dpg:ad9106-ardz-ebz_board.zip |AD910x-ARDZ-EBZ Board File}}   * PCB Board File: {{ :resources:eval:dpg:ad9106-ardz-ebz_board.zip |AD910x-ARDZ-EBZ Board File}}
-==== AD910x-EBZ (Obsolete) Documentation ==== +  [[ez>data_converters/high-speed_dacs/w/documents/15701/ad910x-low-power-dac-and-waveform-generator-faqs|AD910x Engineer Zone FAQs]] 
-  Quick Start Guide: {{ :resources:eval:dpg:ad9106_evaluation_board_quick_start_guide.pdf |AD9106-EBZ}} {{ :resources:eval:dpg:ad9102_evaluation_board_quick_start_guide.pdf |AD9102-EBZ}} +
-  * Schematic: {{ :resources:eval:dpg:ad9106-ebz_revc_schematic.pdf |AD9106-EBZ RevC}} {{ :resources:eval:dpg:ad9102-ebz_reva_schematic.pdf |AD9102-EBZ RevA}} +
-  * Bill of Materials: {{ :resources:eval:dpg:ad9106-ebz_revc_bom_customer.xls |AD9106-EBZ RevC}} {{ :resources:eval:dpg:ad9102-ebz_reva_bom_customer.xls |AD9102-EBZ RevA}} +
-  * PCB Gerber Files: {{ :resources:eval:dpg:ad9106-ebz_revc_gerber_files.zip |AD910x-EBZ RevC}} +
-  * PCB Board File: {{ :resources:eval:dpg:ad9106-ardz-ebz_board.zip |AD910x-EBZ RevC}} +
-  * DAC Software Suite Update: {{ :resources:eval:dpg:hsdacupdate_ad9106-ebz_1.0.3.zip |AD9106 SPI Controller}} +
-===== Software Needed ===== +
-  * [[https://ide.mbed.com/compiler/|Mbed Compiler]] +
-  * [[https://os.mbed.com/teams/AnalogDevices/code/EVAL-AD910x/|EVAL-AD910x Example Mbed Code]] +
-  * [[https://freeware.the-meiers.org/|CoolTerm]] (Recommended) or Tera Term or PuTTy Serial Port Terminal Application+
  
-===== Useful Links ===== 
-  * [[https://os.mbed.com/docs/mbed-os/v6.9/introduction/index.html|Mbed Documentation]] 
-  * [[https://os.mbed.com/platforms/SDP_K1/|Mbed User Guide for SDP-K1]] 
-  * [[:resources:tools-software:mbed|SDP-K1 Wiki Page]] 
-  * [[https://os.mbed.com/docs/mbed-os/v6.9/introduction/index.html|Mbed OS 6 SPI Documentation]] 
-  * [[ez>data_converters/high-speed_dacs/w/documents/15701/ad910x-low-power-dac-and-waveform-generator-faqs|AD910x Engineer Zone FAQs]] 
  
 ===== Hardware Needed ===== ===== Hardware Needed =====
Line 56: Line 43:
  
 ===== Quick Start Guide ===== ===== Quick Start Guide =====
- +    * [[:resources:eval:dpg:eval-ad9106-mbed|Evaluating the AD9106/AD9102 Waveform Generator Digital-to-Analog Converter using MBED]] 
-  - Attach AD9106-ARDZ-EBZ / AD9102-ARDZ-EBZ evaluation board to SDP-K1. Make sure SDP-K1 VIO is set to 3.3V through the P14 jumper by placing the shunt on the center and 3.3V pins. +    * [[:resources:eval:dpg:eval-ad9106-ace |Evaluating the AD9106/AD9102 Waveform Generator Digital-to-Analog Converter using ACE ]]
-  - Connect SDP-K1 to PC over USB. DS1 and DS2 on SDP-K1 and DS1 on the evaluation board should light up. Refer to Figure 1. If DAC outputs are connected to the on-board amplifiers, connect a 7V to 12V 30W wall wart to SDP-K1 DC Jack or to P15 on the evaluation board. +
-  - Connect the outputs of the evaluation board to an oscilloscope using SMA to BNC cables. Apply the oscilloscope settings shown in the waveform captures of the example patterns in Figures 11a to 12c and 17a to 18c. <WRAP centeralign>{{ :resources:eval:dpg:mbed_to_keil_compiler_2.jpg?direct&400 |}}</WRAP> <WRAP centeralign>{{ :resources:eval:dpg:ad910x_mbed_repo.png?600 }}//Figure 3. EVAL-AD910x Mbed code in Analog Devices repository//</WRAP> +
-  - Log on to [[https://os.mbed.com/]] then go to the EVAL-AD910x example code repository. Select the classic online compiler then click the “Import into Compiler” button as shown in Figure 3. The browser should automatically redirect to the Mbed compiler. Select SDP-K1 as development platform then import codes as program. See Figure 4. <WRAP centeralign>{{ :resources:eval:dpg:ad910x_import_as_program.png?350 }}//Figure 4. Importing code as program//</WRAP> +
-  - Open config.h in the Mbed compiler and define the active device. If evaluation board is AD9102-ARDZ-EBZ, uncomment line 24 by deleting the two forward slashes. Refer to Figure 5. Otherwise, proceed to compiling the code by clicking the "Compile" button. <WRAP centeralign>{{ :resources:eval:dpg:ad910x_config_evb.png?600 }}//Figure 5. Active device selection in config.h//</WRAP> +
-  As shown in Figure 6, binary code will be downloaded to the computer after successful compilation. Drag and drop this code to the SDP-K1 drive or right click the binary file then send it to SDP-K1. See Figure 7. DS1 on SDP-K1 will be blinking while the file is being sent. <WRAP centeralign>{{ :resources:eval:dpg:ad910x_successful_compilation.png?600 }}//Figure 6. Successful program compilation//{{ :resources:eval:dpg:ad910x_send_bin_to_k1.png?600 }}//Figure 7. Sending binary file to SDP-K1 drive//</WRAP> +
-  - After sending the code and DS1 stopped blinking, start up CoolTerm or any similar serial port terminal application. Select the com-port the SDP-K1 board is connected to. Set baudrate to 115200. <WRAP centeralign>{{ :resources:eval:dpg:ad9106_coolterm_settings.png?500 |}}//Figure 8. CoolTerm connection settings//</WRAP> +
-  - Press SDP-K1 reset button. Wait for DS1 in SDP-K1 to stop blinking. Then click “Connect” on the terminal. <WRAP centeralign>{{:resources:eval:dpg:eval-ad9106_console.png?390x390}}{{ :resources:eval:dpg:eval-ad9102_console.png?390x390}}</WRAP><WRAP centeralign>//Figure 9a. EVAL-AD9106 Demo Program Menu | Figure 9b. EVAL-AD9102 Demo Program Menu//</WRAP> +
-  Follow the application menu that will appear on the terminal window. Since the device’s clock inputs are connected to the on-board crystal oscillator and the DAC outputs to the RF transformers by default, press any key other than ‘y’ after the first two questions. Refer to Figures 9a and 9b. +
-  - Select an option from the example summary by typing the number to left of the example description. Recommended examples for the default hardware configuration are 3 and 5 for AD9106 and 3, 5, and 6 for AD9102. To observe waveforms with frequency components outside the RF transformer’s bandwidth of 0.5-600 MHz, connect the DAC outputs to the on-board amplifiers. Refer to Table 1. <WRAP centeralign>{{ :resources:eval:dpg:eval-ad9102_console3.png?400 }}//Figure 10. Printing of SPI register addresses and data on CoolTerm//</WRAP> +
-  After selecting an example, the device’s register addresses and corresponding data words will be displayed on the console and patterns will be generated at the DAC outputs as demonstrated in Figure 10. Resulting waveforms are shown in Figures 11a to 12c. <WRAP centeralign>{{:resources:eval:dpg:ad9106_pattern3_rf.png?390}}{{ :resources:eval:dpg:ad9106_pattern5_rf.png?390}}</WRAP><WRAP centeralign>//Figure 11a. AD9106 example 3 waveforms out of RF transformers | Figure 11b. AD9106 example 5 waveforms out of RF transformers//</WRAP><WRAP centeralign>{{:resources:eval:dpg:ad9102_pattern3_rf.png?390}}{{ :resources:eval:dpg:ad9102_pattern5_rf.png?390}}</WRAP><WRAP centeralign>//Figure 12a. AD9102 example 3 waveform out of RF transformer | Figure 12b. AD9102 example 5 waveform out of RF transformer//</WRAP><WRAP centeralign>{{ :resources:eval:dpg:ad9102_pattern6_rf.png?400 }}//Figure 12c. AD9102 example 6 waveform out of an RF transformer//</WRAP> +
-  After playing one set of patterns, play another pattern or exit the program. If program is not exited after stopping pattern generation, the program will restart like in Figure 13a. Otherwise, after exiting the program like in Figure 13b, disconnecting then re-connecting to the console is needed to restart the program.<WRAP centeralign>{{:resources:eval:dpg:eval-ad9102_console2.png?390}}{{ :resources:eval:dpg:eval-ad9102_console1.png?390}}</WRAP><WRAP centeralign>//Figure 13a. Restarting the program | Figure 13b. Exiting the program//</WRAP>+
  
 ===== Reconfiguring the Evaluation Board ===== ===== Reconfiguring the Evaluation Board =====
Line 75: Line 51:
 {{ :resources:eval:dpg:ad910x_table1.png?600 }} {{ :resources:eval:dpg:ad910x_table1.png?600 }}
  
-\\ ==== Using an Off-board Clock Source ====+\\ ==== Clock Configuration ==== 
 +The evaluation board has a provision for on-board or external clocking configuration.  
 +    * The on-board clocking configuration is implemented by default. DAC CLKP and CLKN are connected to the differential outputs of the on-board crystal oscillator  as shown in Figure 2a. The onboard oscillator has a frequency of 156.25 MHz. If a different clock frequency is desired, Use external clocking configuration.   
 +    * For external clocking configuration, change JP1 and JP2 connections first as shown in Figure 2b. Connect a High-frequency Continuous Wave Generator set to the desired frequency with 0dBm level to J10. The user will be prompted to enter the DAC Clock Input frequency in the ACE Board configuration wizard.
  
-{{ :resources:eval:dpg:ad910x_jumpers_set1.png?300 }}<WRAP centeralign>//Figure 14a. DAC clock is connected to on-board oscillator (default) | Figure 14b. DAC clock is connected to J10//</WRAP>+{{ :resources:eval:dpg:ad910x_jumpers_set1.png?300 }}<WRAP centeralign>//Figure 2a. DAC clock is connected to on-board oscillator (default) | Figure 2b. DAC clock is connected to J10//</WRAP>
  
-By default, DAC CLKP and CLKN are connected to the differential outputs of the on-board crystal oscillator as shown in Figure 14a. If clock frequency other than 156.25 MHz is desired, an off-board clock source can be used and connected to J10. Change JP1 and JP2 connections first as shown in Figure 14b.+\\  
 +==== Output Configuration==== 
 +The evaluation board has a provision to connect the DAC Outputs to the RF Balun Transformer or an 0n-board ADA4817-2 Amplifiers. <note important>When tapping to the evaluation board outputsusers are not limited to the SMA jacks. P14 headers are provided as alternative connectors but performance is not as good as when using SMA connectors.</note> 
 +    * The DAC outputs are connected to the RF Balun Transformer by default as shown in figure 3 
 +    * To use On-board ADA4817-2 Amplifiers, change JP1 and JP2 connections  as shown in Figure 4. Ensure that a 7V to 12V 30W Wall Wart is connected to P15. The user should also select the **On-Board amplifier** DAC Output setting in the ACE Board Configuration wizard
  
-\\ ==== Using the On-board ADA4817-2 Amplifiers ==== +{{ :resources:eval:dpg:ad910x_jumpers_set3_default.png?600 }}<WRAP centeralign>//Figure 3a. SMA output connectors are connected to RF transformers (default)//</WRAP>
- +
-{{ :resources:eval:dpg:ad910x_jumpers_set2.png?280 }}<WRAP centeralign>//Figure 15a. DAC ouputs are connected to RF transformers (default) | Figure 15b. DAC ouputs are connected to ADA4817-2 amplifiers//</WRAP> +
- +
-{{ :resources:eval:dpg:ad910x_jumpers_set3_default.png?600 }}<WRAP centeralign>//Figure 16a. SMA output connectors are connected to RF transformers (default)//</WRAP>+
  
 {{ :resources:eval:dpg:ad910x_jumpers_set3_2.png?600 }} {{ :resources:eval:dpg:ad910x_jumpers_set3_2.png?600 }}
-<WRAP centeralign>//Figure 16b. SMA output connectors are connected to ADA4817-2 amplifier outputs//</WRAP>+<WRAP centeralign>//Figure 3b. SMA output connectors are connected to ADA4817-2 amplifier outputs//</WRAP>
  
-The waveforms in Figures 11a to 12c can also be observed out of the on-board amplifiersTo do this, disconnect the DAC outputs from the RF transformers and connect them to the corresponding amplifiers as shown in Figure 15b, then disconnect the SMA connectors from the RF transformers and connect them to the amplifier outputs as shown in Figure 16bIt is expected that the amplifier output amplitudes will be higher. Lower signal amplitudes out of the RF transformers are due to insertion loss and output voltage division resulting from impedance matching between the secondary and primary sides.+{{ :resources:eval:dpg:ad910x_jumpers_set2.png?280 }}<WRAP centeralign>//Figure 4a. DAC outputs are connected to RF transformers (default) | Figure 4bDAC ouputs are connected to ADA4817-2 amplifiers//</WRAP>
  
-<WRAP centeralign>{{:resources:eval:dpg:ad9106_pattern1_amp.png?400}}{{ :resources:eval:dpg:ad9106_pattern2_amp.png?400}}</WRAP><WRAP centeralign>//Figure 17a. AD9106 example 1 waveforms out of ADA4817-2 | Figure 17b. AD9106 example 2 waveforms out of ADA4817-2//</WRAP> 
- 
-<WRAP centeralign>{{:resources:eval:dpg:ad9106_pattern4_amp.png?400}}{{ :resources:eval:dpg:ad9106_pattern6_amp.png?400}}</WRAP><WRAP centeralign>//Figure 17c. AD9106 example 4 waveforms out of ADA4817-2 | Figure 17d. AD9106 example 6 waveforms out of ADA4817-2//</WRAP> 
- 
-<WRAP centeralign>{{:resources:eval:dpg:ad9102_pattern1_amp.png?400}}{{ :resources:eval:dpg:ad9102_pattern2_amp.png?400}}</WRAP><WRAP centeralign>//Figure 18a. AD9102 example 1 waveform out of ADA4817 | Figure 18b. AD9102 example 2 waveform out of ADA4817//</WRAP> 
- 
-{{ :resources:eval:dpg:ad9102_pattern4_amp.png?400 }}<WRAP centeralign>//Figure 18c. AD9102 example 4 waveform out of ADA4817//</WRAP> 
  
 To properly observe the other patterns out of the amplifiers, replace C25, C26, C54, and C55 with 0Ω resistors or remove the capacitors then solder each pair of pads together. Waveforms are shown in Figures 17a to 18c. To properly observe the other patterns out of the amplifiers, replace C25, C26, C54, and C55 with 0Ω resistors or remove the capacitors then solder each pair of pads together. Waveforms are shown in Figures 17a to 18c.
Line 106: Line 78:
 {{ :resources:eval:dpg:ad910x_table2.png?600 }} {{ :resources:eval:dpg:ad910x_table2.png?600 }}
  
-The on-board amplifiers can be characterized using off-board power supplies by removing E1 and E2 then connecting 5.2V 0.2A across TP5 and ground and -5.2V 0.2A across TP4 and ground.+The on-board amplifiers can be characterized using off-board power supplies by removing E1 and E2 then connecting 5.2V 0.2A across TP5 and ground and -5.2V 0.2A across TP4 and ground. Refer to Table 2.
  
-\\ ==== Evaluation Board Output Interface Options ====+\\
  
-When tapping to the evaluation board outputs, users are not limited to the SMA jacksP14 headers are provided as alternative connectors but performance is not as good as when using SMA connectors.+====Sample Waveforms out of RF transformer==== 
 +|{{ :resources:eval:dpg:ad9106_sample_3.jpg? }}|{{ :resources:eval:dpg:ad9102_sample_3.jpg? }}| 
 +|  //Figure 5a. AD9106 4 Pulsed DDS-Generated Sine Wave from a Pre stored waveform with Different Start Delay and Digital Gain Settings//  |  //Figure 5b. AD9102 Pulsed DDS-Generated Sine Wave from a Pre stored waveform// 
 +|{{ :resources:eval:dpg:ad9106_sample_5_2.jpg? }}|{{ :resources:eval:dpg:ad9102_sample_5.jpg? }}| 
 +|  //Figure 6a. AD9106 Pulsed DDS-Generated Sine Wave modulated by an SRAM Vector with Different Start Delay//  |  //Figure 6b. AD9102 Pulsed DDS-Generated Sine Wave modulated by an SRAM Vector//  |
  
-===== Using the Example Mbed Codes ===== 
  
-The EVAL-AD910x Example Mbed Codes can be used as starting point for developing firmware for targeted applications. The codes in the repositories below demonstrates how to setup SPI communication between the ARM-based Mbed-enabled hardware, SDP-K1, and the waveform generator DACs, AD9106 or AD9102. + ==== Sample Waveforms out of Onboard Amplifier==== 
-  * Link to Program Files: [[https://os.mbed.com/teams/AnalogDevices/code/EVAL-AD910x/]] +<note important>To properly observe waveforms below, connect the DAC outputs to on-board amplifiers.</note>    
-  * Link to Library Files: [[https://os.mbed.com/teams/AnalogDevices/code/AD910x/]] +|{{ :resources:eval:dpg:ad9106_sample_1.jpg? }}|{{ :resources:eval:dpg:ad9102_sample_1.jpg? }}
- +|  //Figure 7aAD9106 Gaussian Pulse from an SRAM Vector with Different Start Delay and Digital Gain Settings//  |  //Figure 7b. AD9102 Gaussian Pulse from an SRAM Vector//  | 
-To import the program files to the Mbed compiler as discussed in the Quick Start Guide, the user should have a free Mbed account and is logged on to [[https://os.mbed.com/]]. After successful program import, the user is free to use and modify the codes without violating the Analog Devices Inc. Software License Agreement in the License.txt file. +|{{ resources:eval:dpg:ad9106_sample_2.jpg? }}|{{ :resources:eval:dpg:ad9102_sample_2.jpg? }}
- +|  //Figure 8aAD9106 4 Pulses generated from an SRAM Vector//   //Figure 8b. AD9102 Pulse generated from an SRAM Vector//  | 
-Each file and each of the functions in the files have short descriptions or briefs. This section will focus on how several files and functions can be modified using the Mbed online compiler. +|{{ :resources:eval:dpg:ad9106_sample_4.jpg? }}|{{ :resources:eval:dpg:ad9102_sample_4.jpg? }}
- +|  //Figure 9aAD9106 Pulsed DDS-Generated Sine Wave and 3 Sawtooth waveforms from prestored waveform generator//  |  //Figure 9bAD9102 Sawtooth Waveform from Prestored Waveform Generator//  | 
-{{ :resources:eval:dpg:ad910x_config_34-64.png?600 }}<WRAP centeralign>//Figure 19. SPI protocol definitions, example SRAM vectors, and example SPI register configurations in config.h//</WRAP> +|{{ :resources:eval:dpg:ad9106_sample_6.jpg? }}|{{ :resources:eval:dpg:ad9102_sample_6_amplifier.jpg? }}| 
- +|  //Figure 10aAD9106 DDS-Generated Sine wave from Prestored waveform and 3 Sawtooth waveforms from prestored waveform generator//  |  //Figure 10bAD9102 DDS-Generated Sinewave from Prestored waveform//  |
-\\ ==== Setting up the SPI Interface ==== +
- +
-Aside from choosing the active device as shown in the Quick Start Guide, SPI protocol parameters particularly the clock frequency can be set at the application-level codes. Word length WORD_LEN and polarity POL need not be changed and are already set specifically for AD9106 and AD9102. Refer to  [[https://os.mbed.com/docs/mbed-os/v6.9/introduction/index.html|Mbed OS 6 SPI Documentation]] for more information on these parameters. +
- +
-Instructions on setting the SPI clock (SCLK) frequency are already provided in **config.h** as shown in Figure 19. The reason why SCLK can only be set to a number of fixed frequencies is discussed in this Mbed wiki page on  [[https://os.mbed.com/teams/ST/wiki/SPI-output-clock-frequency|SPI output clock frequency]]. SPI lines out of the Arduino headers or SPI1 module of the SDP-K1 ARM processor, uses 90MHz peripheral clock. Refer to these relevant source codes: +
-   * [[https://github.com/ARMmbed/mbed-os/blob/master/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F469xI/system_clock.c#L152|SDP-K1 system_clock.c]] +
-  * [[https://github.com/ARMmbed/mbed-os/blob/master/targets/TARGET_STM/TARGET_STM32F4/spi_api.c|Spi_api.c]] +
- +
-{{ :resources:eval:dpg:ad910x_h.png?600 }}<WRAP centeralign>//Figure 20Device-specific I/O pins and functions declarations in ad910x.h//</WRAP> +
- +
-Initialization of digital I/O pins connected to the DAC being evaluated, and declaration of SPI register addresses and device-specific functions are in **ad910x.h**. See Figure 20The functions are implemented in **ad910x.cpp**. The Mbed platform drivers allow setup of 4-wire SPI interface. Refer to Mbed documentation for other configurations. +
- +
-\\ ==== Modifying SRAM Vectors ==== +
- +
-SRAM Vectors in **config.h** can be easily modified for a specific application. For both AD9106 and AD9102, there are 4096 addresses in the on-chip SRAM. Word length is 14 bits for AD9102, 12 bits for AD9106, and is left justified. For AD9102, data should be written in bits [15:2] and for AD9106 in bits [15:4] of each SRAM address. +
- +
-{{ :resources:eval:dpg:ad910x_dpglite1.png?600 }}<WRAP centeralign>//Figure 21a. Waveforms that can be generated using DPG Lite//</WRAP> +
-{{ :resources:eval:dpg:ad910x_dpglite2.png?600 }}<WRAP centeralign>//Figure 21bWaveform vector generation using DPG Lite//</WRAP> +
- +
-Although the SRAM vectors can be modified manually, it will be more convenient to create new vectors using [[:resources:tools-software:ace:dpg-lite|DPG Lite]]. Shown in Figure 21a are types of waveforms that can be generated using the software. +
- +
-When creating data vectors for AD9106 and AD9102, make sure to choose the proper DAC resolution and leave the Unsigned Data box unchecked. A continuous wave vector with record length of 4096 can be created but the SRAM can also be composed of different types of waveforms like in the example in Figure 21b where there are 3 vectors with combined record length of 4096. These can be saved as text files and integrated into the source code.  +
- +
-It is not required to write to all 4096 addresses. Each DAC channel in a device can fetch data from a fixed SRAM address to another. The start and stop addresses can be set using the following registers: +
-  * 0x5E and 0x5F for AD9102, +
-  * 0x5E and 0x5F, 0x59 and 0x5A, 0x55 and 0x56, and 0x51 and 0x52 for AD9106 Channels 1 to 4, respectively. +
- +
-{{ :resources:eval:dpg:ad910x_table3.png?600 }} +
- +
-SRAM data format or code follows two’s complement notation. Refer to Table 3 for the equivalent current output for an input code. 14-bit code should be shifted left by 2 bits before writing it to AD9102 SRAM while 12-bit code should be shifted left by 4 bits before writing it to AD9106 SRAM. Alternatively, 14-bit data shifted left by 2 bits can be written to AD9106 SRAM but the last two bits with be truncated. This is why in **AD910x_update_sram()** function in **ad910x.cpp**, SRAM data is by default shifted 2 bits to the left. Refer to Figure 22. +
- +
-{{ :resources:eval:dpg:ad910x_sram_write_func.png?600 }}<WRAP centeralign>//Figure 22Function that writes to on-chip SRAM in ad910x.cpp//</WRAP> +
- +
-**AD910x_print_sram()** function is declared in **ad910x.h** and implemented in **ad910x.cpp** but is by default not called in the main program **main.cpp**. The function can be used to print in the console n number of data words from SRAM. This can be done by calling the function in **main.cpp** after an **AD910x_update_sram()**. +
- +
-\\ ==== Changing SPI Register Values ==== +
- +
-AD9106 and AD9102 have similar register maps. The latter only has less number of registers that affect device functionality because writing to registers for the 3 other DAC channels will only have an effect to AD9106. Nonetheless, the defined SPI registers address in **ad910x.h** will work for both devices. +
- +
-The SPI register addresses were written as comment in **config.h** and aligned with example SPI register values for user’s convenience. Same as the SRAM vectors, these SPI register values can also be easily modified for specific applications. Refer to the device datasheets for the SPI register descriptions. +
- +
-\\ ==== Power Supply Enable/Shutdown Pins ==== +
- +
-{{ :resources:eval:dpg:ad910x_main.png?600 }}<WRAP centeralign>//Figure 23Power supply enable/shutdown pins in main.cpp//</WRAP> +
- +
-Other I/Os like the ones connected to the EN pin of the on-board oscillator supply, CVDDX, and to the SHDN_N pin of the on-board amplifier supply, LT3472, are defined in **main.cpp**. +
- +
-As shown in Figure 23, if external or off-board clock source is chosen, //en_cvddx = 0// and no power is supplied to CVDDXIf the on-board oscillator is chosen, //en_cvddx = 1// and 3.3V is supplied to CVDDX. +
- +
-If the user confirms that the DAC outputs are connected to the on-board amplifiers, s//hdn_n_lt3472 = 1// and 5.2V and -5.2V are supplied to the amplifiers provided a wall wart is connected to SDP-K1 or the evaluation board. Otherwise, //shdn_n_lt3472 = 0// and the amplifiers are not powered up.+
  
 ===== Troubleshooting ===== ===== Troubleshooting =====
Line 183: Line 108:
   * If signal amplitude is lower than expected, compare oscilloscope settings to the recommended setup in the Quick Start Guide. Check for loose cable connections or try changing SMA-to-BNC cables. Loose connections and cable damage cause impedance mismatch.   * If signal amplitude is lower than expected, compare oscilloscope settings to the recommended setup in the Quick Start Guide. Check for loose cable connections or try changing SMA-to-BNC cables. Loose connections and cable damage cause impedance mismatch.
   * If there is no output at all, check if clock input to AD9106 / AD9102 is stable by measuring clock leakage. Connect one of the evaluation board outputs to a spectrum analyzer. Boards and the clock source should be powered up but the DAC should not be generating a pattern. A low-power tone should be detected at the clock frequency. Otherwise, the clock source is not properly driving the clock input pins. Try using an off-board continuous waveform generator as clock source or if already using, try increasing waveform generator output signal level to 3 dBm.   * If there is no output at all, check if clock input to AD9106 / AD9102 is stable by measuring clock leakage. Connect one of the evaluation board outputs to a spectrum analyzer. Boards and the clock source should be powered up but the DAC should not be generating a pattern. A low-power tone should be detected at the clock frequency. Otherwise, the clock source is not properly driving the clock input pins. Try using an off-board continuous waveform generator as clock source or if already using, try increasing waveform generator output signal level to 3 dBm.
 +
 +===== AD910x-EBZ (Obsolete) Documentation =====
 +  * Schematic: {{ :resources:eval:dpg:ad9106-ebz_revc_schematic.pdf |AD9106-EBZ RevC}} {{ :resources:eval:dpg:ad9102-ebz_reva_schematic.pdf |AD9102-EBZ RevA}}
 +  * Bill of Materials: {{ :resources:eval:dpg:ad9106-ebz_revc_bom_customer.xls |AD9106-EBZ RevC}} {{ :resources:eval:dpg:ad9102-ebz_reva_bom_customer.xls |AD9102-EBZ RevA}}
 +  * PCB Gerber Files: {{ :resources:eval:dpg:ad9106-ebz_revc_gerber_files.zip |AD910x-EBZ RevC}}
 +  * PCB Board File: {{ :resources:eval:dpg:ad9106-ardz-ebz_board.zip |AD910x-EBZ RevC}}
 +  * DAC Software Suite Update: {{ :resources:eval:dpg:hsdacupdate_ad9106-ebz_1.0.3.zip |AD9106 SPI Controller}}
 +  * Quick Start Guide: {{ :resources:eval:dpg:ad9106_evaluation_board_quick_start_guide.pdf |AD9106-EBZ}} {{ :resources:eval:dpg:ad9102_evaluation_board_quick_start_guide.pdf |AD9102-EBZ}}
resources/eval/dpg/eval-ad9106.txt · Last modified: 03 Nov 2022 08:57 by Deferson Romero