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:fpga:altera:bemicro:ad7984 [27 Jan 2012 16:25] – Approved Robin Getzresources:fpga:altera:bemicro:ad7984 [26 Jan 2021 01:22] (current) – update arrow links after their web site update Robin Getz
Line 11: Line 11:
 ====== Overview ====== ====== Overview ======
  
-This lab presents the steps to setup an environment for using the **[[adi>EVAL-AD7984SDZ]]** evaluation board together with the **[[http://www.arrownac.com/solutions/bemicro-sdk/|BeMicro SDK]]** USB stick, the Nios II Embedded Development Suite (EDS) and the [[http://micrium.com/page/products/tools/probe|Micrium μC-Probe]] run-time monitoring tool. Below is presented a picture of the EVAL-AD7984SDZ Evaluation Board with the BeMicro SDK Platform.+This lab presents the steps to setup an environment for using the **[[adi>EVAL-AD7984SDZ]]** evaluation board together with the **[[https://www.intel.com/content/www/us/en/programmable/b/bemicro-sdk.html|BeMicro SDK]]** USB stick, the Nios II Embedded Development Suite (EDS) and the [[https://www.micrium.com/ucprobe/about/|Micrium µC-Probe]] run-time monitoring tool. Below is presented a picture of the EVAL-AD7984SDZ Evaluation Board with the BeMicro SDK Platform.
  
 {{ :resources:fpga:altera:bemicro:ad7984_bemicro.jpg?400 }} {{ :resources:fpga:altera:bemicro:ad7984_bemicro.jpg?400 }}
  
-For component evaluation and performance purposes, as opposed to quick prototyping, the user is directed to Analog Devices [[/resources/eval/sdp|System Demonstration Platform]] (**SDP**). The **SDP** consists of a: +{{page>common_sdp}}
-  * a controller board, like the **[[resources/eval/sdp/sdp-b|EVAL-SDP-CB1Z]] (SDP-B)** +
-  * an compatible Analog Devices SDP [[adi>sdp#exallist|product evaluation board]] +
-  * corresponding PC software +
-The EVAL-SDP-CB1Z controller board is part of Analog Devices SDP providing USB 2.0 high-speed connectivity to a PC computer running specific component evaluation software.  Each SDP evaluation daughter board includes the necessary installation files needed for this performance testing. It's expected that the analog performance on the two platforms may differ.+
  
 Below is presented a picture of **SDP-B** Controller Board with the **EVAL-AD7984SDZ** Evaluation Board. Below is presented a picture of **SDP-B** Controller Board with the **EVAL-AD7984SDZ** Evaluation Board.
Line 27: Line 23:
 The **EVAL-AD7984SDZ** evaluation board is a member of a growing number of boards available for the **SDP**.  It was designed to help customers evaluate performance or quickly prototype new **AD7984** circuits and reduce design time. When using this evaluation board with the SDP board or BeMicro SDK board, apply +7.5V as +Vs, a voltage between -2V and -5V as -Vs and +2.5V as VDD. The **EVAL-AD7984SDZ** evaluation board is a member of a growing number of boards available for the **SDP**.  It was designed to help customers evaluate performance or quickly prototype new **AD7984** circuits and reduce design time. When using this evaluation board with the SDP board or BeMicro SDK board, apply +7.5V as +Vs, a voltage between -2V and -5V as -Vs and +2.5V as VDD.
  
-The [[adi>AD7984]] is an 18-bit, successive approximation, analog-to-digital converter (ADC) that operates from a single power supply, VDD. It contains a low power, high speed, 18-bit sampling ADC and a versatile serial interface port. On the CNV rising edge, the AD7984 samples the voltage difference between the IN+ and IN− pins. The voltages on these pins usually swing in opposite phases between 0 V and VREF. The reference voltage, REF, is applied externally and can be set independent of the supply voltage, VDD.+The [[adi>AD7984]] is an 18-bit, successive approximation, analog-to-digital converter (ADC) that operates from a single power supply, VDD. It contains a low power, high speed, 18-bit sampling ADC and a versatile serial interface port. On the CNV rising edge, the AD7984 samples the voltage difference between the IN+ and INpins. The voltages on these pins usually swing in opposite phases between 0 V and VREF. The reference voltage, REF, is applied externally and can be set independent of the supply voltage, VDD.
  
 The SPI-compatible serial interface also features the ability, using the SDI input, to daisy-chain several ADCs on a single 3-wire bus and provides an optional busy indicator. It is compatible with 1.8 V, 2.5 V, 3 V, and 5 V logic, using the separate VIO supply. The SPI-compatible serial interface also features the ability, using the SDI input, to daisy-chain several ADCs on a single 3-wire bus and provides an optional busy indicator. It is compatible with 1.8 V, 2.5 V, 3 V, and 5 V logic, using the separate VIO supply.
Line 34: Line 30:
   * [[adi>AD7984|AD7984 Product Info]] - pricing, samples, datasheet   * [[adi>AD7984|AD7984 Product Info]] - pricing, samples, datasheet
   * {{:resources:fpga:altera:bemicro:user_guide_eval_10lead_pulsar.pdf|EVAL-AD7984SDZ evaluation board user guide}}   * {{:resources:fpga:altera:bemicro:user_guide_eval_10lead_pulsar.pdf|EVAL-AD7984SDZ evaluation board user guide}}
-  * [[http://www.arrownac.com/solutions/bemicro-sdk|BeMicro SDK]]+  * [[https://www.intel.com/content/www/us/en/programmable/b/bemicro-sdk.html|BeMicro SDK]]
   * [[http://www.altera.com/devices/processor/nios2|Nios II Embedded Development Suite (EDS)]]   * [[http://www.altera.com/devices/processor/nios2|Nios II Embedded Development Suite (EDS)]]
-  * [[http://micrium.com/page/products/tools/probe|Micrium uC-Probe]] 
  
 ====== Getting Started ====== ====== Getting Started ======
Line 46: Line 41:
  
 Below is presented the list of required hardware items: Below is presented the list of required hardware items:
-  * Arrow Electronics [[http://www.arrow.com/bemicrosdk/|BeMicro SDK]] FPGA-based MCU Evaluation Board +  * Arrow Electronics [[https://www.intel.com/content/www/us/en/programmable/b/bemicro-sdk.html|BeMicro SDK]] FPGA-based MCU Evaluation Board 
-  * [[http://www.arrownac.com/solutions/adi_interposer/|BeMicro SDK/SDP Interposer]] adapter board+  * [[adi>sdp-bemicro|BeMicro SDK/SDP Interposer]] adapter board
   * **EVAL-AD7984SDZ** evaluation board   * **EVAL-AD7984SDZ** evaluation board
   * Intel Pentium III or compatible Windows PC, running at 866MHz or faster, with a minimum of 512MB of system memory   * Intel Pentium III or compatible Windows PC, running at 866MHz or faster, with a minimum of 512MB of system memory
Line 55: Line 50:
  
 Below is presented the list of required software tools: Below is presented the list of required software tools:
-  * [[http://www.altera.com/products/software/quartus-ii/web-edition/qts-we-index.html|Quartus II Web Edition]] design software v11.0 +  * [[http://www.altera.com/products/software/quartus-ii/web-edition/qts-we-index.html|Quartus II Web Edition]] design software v12.0sp2 
-  * [[https://www.altera.com/download/software/nios-ii|Nios II EDS]] v11.+  * [[https://www.altera.com/download/software/nios-ii|Nios II EDS]] v12.0sp2
-  * [[http://micrium.com/page/products/tools/probe|uC-Probe]] run-time monitoring tool +
-  * {{{{:resources:fpga:altera:bemicro:ad7984_evalboardlab.zip|Lab Design Files}}+
  
 The **Quartus II** design software and the **Nios II EDS** is available via the Altera Complete Design Suite DVD or by downloading from the web.  The **Quartus II** design software and the **Nios II EDS** is available via the Altera Complete Design Suite DVD or by downloading from the web. 
  
-The **Micrium uC/Probe Trial** version is available via download from the web at [[http://micrium.com/download/Micrium-uC-Probe-Setup-Trial.exe]].  After installation add to the “Path” system variable the entry "//%QUARTUS_ROOTDIR%\bin\//“ on the third position in the list. +===== Downloads ===== 
- +  {{{{:resources:fpga:altera:bemicro:ad7984_evalboardlab.zip|Lab Design Files}}
 ===== Extract the Lab Files ===== ===== Extract the Lab Files =====
  
-Create a folder called “**//ADIEvalBoardLab//**” on your PC and extract the **//ad7984_evalboardlab.zip//** archive to this folder. Make sure that there are **//NO SPACES//** in the directory path. After extracting the archive the following folders should be present in the **//ADIEvalBoardLab//** folder: **//FPGA//**, **//Hdl//** **//Software//**, **//ucProbeInterface//**, **//NiosCpu//**.+Create a folder called “**//ADIEvalBoardLab//**” on your PC and extract the **//ad7984_evalboardlab.zip//** archive to this folder. Make sure that there are **//NO SPACES//** in the directory path. After extracting the archive the following folders should be present in the **//ADIEvalBoardLab//** folder: **//FPGA//**, **//Hdl//** **//Software//**, **//DataCapture//**, **//NiosCpu//**.
  
 ^ **Folder** ^ **Description** ^ ^ **Folder** ^ **Description** ^
Line 73: Line 65:
 | Hdl | Contains the source files for the AD7984 HDL driver: \\ - The //doc// subfolder contains a brief documentation for the driver. \\ - The //src// subfolder contains the HDL source files.  \\ - The //tb// folder contains the sources of the driver's testbench. | | Hdl | Contains the source files for the AD7984 HDL driver: \\ - The //doc// subfolder contains a brief documentation for the driver. \\ - The //src// subfolder contains the HDL source files.  \\ - The //tb// folder contains the sources of the driver's testbench. |
 | NiosCpu | Contains the Quartus evaluation project source files . The //ip// subfolder contains the AD7984 Nios2 peripheral source code. | | NiosCpu | Contains the Quartus evaluation project source files . The //ip// subfolder contains the AD7984 Nios2 peripheral source code. |
-| Software | Contains the source files of the uCProbe library and the main file of the Nios2 SBT evaluation project.| +| Software | Contains the source files of the Nios2 SBT evaluation project.| 
-uCProbeInterface | Contains the uCProbe interface and //data_capture.bat// script used to acquire data from the evaluation board and store it in a local .csv file. |+DataCapture | Contains the script files used for data acquisition. |
  
 ====== ====== ====== ======
Line 111: Line 103:
 | //**Clock and reset ports**// |||| | //**Clock and reset ports**// ||||
 | FPGA_CLK_I                | IN  | 1  | Main clock input. | | FPGA_CLK_I                | IN  | 1  | Main clock input. |
-RESET_I                   | IN  | 1  | Active low reset signal. |+RESET_N_I                 | IN  | 1  | Active low reset signal. |
 | ADC_CLK_I                 | IN  | 1  | Clock to be sent to the ADC during the conversion process. | | ADC_CLK_I                 | IN  | 1  | Clock to be sent to the ADC during the conversion process. |
 | //**IP control and data ports**// |||| | //**IP control and data ports**// ||||
-| WR_DATA_N_I               | IN  | 1 | Active low signal use to initiate a data write. The data to be written to the device must be active on the DATA_IO bus one clock cycle after this signal is set low and must be kept active until the DATA_WR_READY_O signal returns to high. If the ADC is performing a conversion while the WR_DATA_N_I signal is set low then the DATA_WR_READY_O will transition from high to low only when the conversion is complete. | +| DATA_O                    | OUT | 18 | Outputs the data read from the ADC. |
-| DATA_O                    | OUT | 16 | Outputs the data read from the ADC. The channel ID is stored on the 4 most significant bits and the read data is stored on the 12 least significant bits. If the ADC is driven in word read mode then the channel ID will always be 0. |+
 | DATA_RD_READY_O           | OUT | 1  | Active high signal to indicate the status of a read operation from the AD7984. The IP continuously reads the conversion results from the ADC and outputs them on the DATA_O bus. When this signal is high data can be read from the DATA_O bus. | | DATA_RD_READY_O           | OUT | 1  | Active high signal to indicate the status of a read operation from the AD7984. The IP continuously reads the conversion results from the ADC and outputs them on the DATA_O bus. When this signal is high data can be read from the DATA_O bus. |
 | //**AD7984 control and data ports**// |||| | //**AD7984 control and data ports**// ||||
Line 121: Line 112:
 | ADC_SDI                   | IN  | 1  | ADC Serial Data Input. This pin is currently not used in the design. | | ADC_SDI                   | IN  | 1  | ADC Serial Data Input. This pin is currently not used in the design. |
 | ADC_SCLK_O                | OUT | 1  | ADC Serial Data Clock Input. When the part is selected, the conversion result is shifted out by this clock.   | | ADC_SCLK_O                | OUT | 1  | ADC Serial Data Clock Input. When the part is selected, the conversion result is shifted out by this clock.   |
-ADC_CNVST_O               | OUT | 1  | ADC Convert Input. This input has multiple functions. On its leading edge, it initiates the conversions and selects the interface mode of the part, chain, or CS mode. In CS mode, it enables the SDO pin when low.  In chain mode, the data should be read when CNV is high. |+ADC_CNV_O                 | OUT | 1  | ADC Convert Input. This input has multiple functions. On its leading edge, it initiates the conversions and selects the interface mode of the part, chain, or CS mode. In CS mode, it enables the SDO pin when low.  In chain mode, the data should be read when CNV is high. |
 |  **Table 2 AD7984 driver ports description**  |||| |  **Table 2 AD7984 driver ports description**  ||||
  
Line 144: Line 135:
 | AVALON_MASTER_WAITREQUEST | IN  | 1  | Master wait request signal | | AVALON_MASTER_WAITREQUEST | IN  | 1  | Master wait request signal |
 | AVALON_MASTER_ADDRESS_O   | OUT | 32 | Master address bus | | AVALON_MASTER_ADDRESS_O   | OUT | 32 | Master address bus |
 +| AVALON_MASTER_WRITE_O     | OUT | 1  | Master write signal |
 | AVALON_MASTER_BYTEENABLE_O| OUT | 4  | Master byte enable signals | | AVALON_MASTER_BYTEENABLE_O| OUT | 4  | Master byte enable signals |
 | AVALON_MASTER_WRITEDATA_O | OUT | 32 | Master write data bus | | AVALON_MASTER_WRITEDATA_O | OUT | 32 | Master write data bus |
Line 150: Line 142:
 | ADC_SDI                   | IN  | 1  | ADC Serial Data Input. This pin is currently not used in the design. | | ADC_SDI                   | IN  | 1  | ADC Serial Data Input. This pin is currently not used in the design. |
 | ADC_SCLK_O                | OUT | 1  | ADC Serial Data Clock Input. When the part is selected, the conversion result is shifted out by this clock.   | | ADC_SCLK_O                | OUT | 1  | ADC Serial Data Clock Input. When the part is selected, the conversion result is shifted out by this clock.   |
-ADC_CNVST_O               | OUT | 1  | ADC Convert Input. This input has multiple functions. On its leading edge, it initiates the conversions and selects the interface mode of the part, chain, or CS mode. In CS mode, it enables the SDO pin when low.  In chain mode, the data should be read when CNV is high. |+ADC_CNV_O                 | OUT | 1  | ADC Convert Input. This input has multiple functions. On its leading edge, it initiates the conversions and selects the interface mode of the part, chain, or CS mode. In CS mode, it enables the SDO pin when low.  In chain mode, the data should be read when CNV is high. |
 |  **Table 3 Avalon peripheral ports description**  |||| |  **Table 3 Avalon peripheral ports description**  ||||
  
Line 165: Line 157:
  
 ====== Quick Evaluation ====== ====== Quick Evaluation ======
-{{page>common_quick_eval}}+{{page>common_quick_evaluation}}
  
 ====== NIOS II Software Design ====== ====== NIOS II Software Design ======
-{{page>common}} +{{page>common_software_design}}
- +
-====== uC-Probe Interface ====== +
- +
-A notable challenge in embedded systems development is to overcome the lack of feedback that such systems typically provide. Many developers resort to blinking LEDs or instrumenting their code with //printf()// in order to determine whether or not their systems are running as expected. **Micrium** provides a unique tool named **μC-Probe** to assist these developers. With this tool, developers can effortlessly read and write the variables on a running embedded system. +
-This section presents the steps required to install the **Micrium uC-Probe** software tool and to run the demonstration project for the ADI evaluation board. A description of the **uC-Probe** demonstration interface is provided. +
- +
-===== Configure uC-Probe ===== +
- +
-Launch **uC-Probe** from the **//Start -> All Programs -> Micrium -> uC-Probe//**. +
- +
-Select **uC-Probe** options. +
-  * Click on the **uC-Probe** icon on the top left portion of the screen. +
-  * Click on the **//Options//** button to open the dialog box. +
- +
-{{ :resources:fpga:altera:bemicro:ucprobeoptionsbtn.png?300 }} +
- +
-Set target board communication protocol as **//JTAG UART//** +
-  * Click on the **//Communication//** tab icon on the top left portion of the dialog box +
-  * Select the **//JTAG UART//** option. +
- +
-{{ :resources:fpga:altera:bemicro:image067.png?400 }} +
- +
-Setup **//JTAG UART//** communication settings +
-  * Select the **//JTAG-UART//** option from the **//Communication//** tab. +
-  * Press the **//Open File//** button to select the JTAG Debug Information file (**//.jdi//**) +
-  * Navigate to the **//ADIEvalBoardLab/FPGA//** folder and select the BeMicroSDK.jdi file. Press Open. +
-  * Type the value **//1//** in the the **//Device Id//** window. +
- +
-{{ :resources:fpga:altera:bemicro:ucprobeoptionsjtag.png?400 }} +
- +
-  * Select **//uCProbe_uart(0)//** from the **//Instance Id//** pulldown menu. +
- +
-{{ :resources:fpga:altera:bemicro:image073.png?400 }} +
- +
-  * Press **//Apply//** and **//OK//** to exit the options menu. The embedded target has two UARTs. **uC-Probe** will be communicating with the **//uCProbe_uart//**. +
- +
-===== Load and Run the Demonstration Project ===== +
- +
-  * Click the **//Open//** option from the **uC-Probe** menu and select the file **//ADIEvalBoardLab/ucProbeInterface/AD7984_Interface.wsp//**. +
- +
-{{:resources:fpga:altera:bemicro:ucprobeopenfile.png?400}} +
-{{:resources:fpga:altera:bemicro:ad7984interfaceopen.png?400}} +
- +
-  * Before opening the interface **uC-Probe** will ask for a symbols file that must be associated with the interface. If the lab was done according to the steps provided in the **Quick Evaluation** section, select the file **//ADIEvalBoardLab/ucProbeInterface/ADIEvalBoard.elf//** to be loaded as a symbol file, otherwise select the file **//ADIEvalBoardLab/FPGA/software/ADIEvalBoard/ADIEvalBoard.elf//** to be loaded as a symbol file. +
- +
-{{:resources:fpga:altera:bemicro:ucprobeopenelfquickeval.png?400}}{{:resources:fpga:altera:bemicro:ucprobeopenelfnormal.png?400}} +
- +
-  * Run the demonstration project by pressing the **//Play//** button. +
- +
-{{ :resources:fpga:altera:bemicro:image081.png?400 }} +
- +
-  * Run the //**ADIEvalBoard/uCProbe/data_capture.bat**// script. A DOS command prompt window will open. This window must be closed only when the uCProbe demonstration project will be closed.+
  
 ====== Demonstration Project User Interface ====== ====== Demonstration Project User Interface ======
  
-The following figure presents the **uC-Probe** interface that can be used for monitoring and controlling the operation of the **EVAL-AD7984SDZ** evaluation board.+Execute **//data_capture.bat//** script. At this point 32 Kbyte of data will be acquired from the ADC and saved into the BeMicro SDK memory. The data stored in the BeMicro SDK memory is transfered to the PC. After the data is transferred to the PC it is converted to 18 bit values. 
 +  The data captured from the ADC is saved into a comma separated values (.csv) file named **//Acquisition.csv//**, located in the same folder as the //**data_capture.bat**// file. 
 +  * The data capture status is also displayed in the opened command window as shown in the figure below.
  
-{{ :resources:fpga:altera:bemicro:ad7984_interface.png?400 }}+{{ :resources:fpga:altera:bemicro:cmd_interface.png?500 |Demonstration Project Command Interface}} 
 +  * A new acquisition can be started by executing the //**data_capture.bat**// script.
  
-In order to capture data from the ADC using the uCProbe demonstration project the following steps must be performed: +//**Note:**// If several consecutive data acquisitions are performed the captured data is appended to the **//Acquisition.csv//** file.
-  * Press **//Acquisition//** button. At this point 1 Mbyte of data will be acquired from the ADC and saved into the BeMicro SDK memory. The **//Acquisition In Progress//** LED is lit to signal that the data is acquired from the ADC. When the data acquisition is complete the //**Acquisition Complete**// LED turns green. +
-  * The data stored in the BeMicro SDK memory is transfered to the PC. The **//Transfer In Progress//** LED is lit as long as the data is transferred from the BeMicro SDK to the PC. When the data transfer is complete the //**Transfer Complete**// LED turns green. +
-  * The data captured from the ADC is saved into a comma separated values (.csv) file named **//Acquisition.csv//**, located in the same folder as the //**data_capture.bat**// file. While the data is saved the **//Writing File In Progress//** LED is lit. When the data write process is complete the //**Writing in File Complete**// LED turns green. +
-  * The data capture status is also displayed in the opened command window as shown in the figure below.+
  
-{{ :resources:fpga:altera:bemicro:cmd_interface.png?400 |Demonstration Project Command Interface}} +====== Troubleshooting ======
-  * A new acquisition can be started by reactivating the **//Acquisition//** button.  +
-  * After all the needed data is acquired the uCProbe program and the command window can be closed.+
  
-//**Note:**// If several consecutive data acquisitions are performed the captured data is appended to the **//Acquisition.csv//** file.+{{page>troubleshooting12}}
  
-{{page>troubleshooting}}+====== More information ====== 
 +  * [[ez>community/fpga|ask questions about the FPGA reference design]] 
 +  * Example questions: {{rss>http://ez.analog.com/community/feeds/allcontent/atom?community=2061 5 author 1d}}
  
resources/fpga/altera/bemicro/ad7984.1327677912.txt.gz · Last modified: 27 Jan 2012 16:25 (external edit)