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:xilinx:interposer:ad5235 [16 Feb 2012 17:03] – removed Hardware setup duplicate title Adrian Costinaresources:fpga:xilinx:interposer:ad5235 [09 Jan 2021 00:48] (current) – user interwiki links Robin Getz
Line 11: Line 11:
 ====== Overview ====== ====== Overview ======
  
-This document presents the steps to setup an environment for using the **[[adi>AD5235|EVAL-AD5235SDZ]]** evaluation board together with the Xilinx KC705 FPGA boardthe Xilinx Embedded Development Kit (EDK) and the [[http://micrium.com/page/products/tools/probe|Micrium µC-Probe]] run-time monitoring tool. Below is presented a picture of the EVAL-AD5235SDZ Evaluation Board with the Xilinx KC705 board.+This document presents the steps to setup an environment for using the **[[adi>AD5235|EVAL-AD5235SDZ]]** evaluation board together with the Xilinx KC705 FPGA board and the Xilinx Embedded Development Kit (EDK). Below is presented a picture of the EVAL-AD5235SDZ Evaluation Board with the Xilinx KC705 board.
  
 {{ :resources:fpga:xilinx:interposer:img_ad5235.jpg }} {{ :resources:fpga:xilinx:interposer:img_ad5235.jpg }}
  
-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)** +
-  * a 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-AD5235SDZ** Evaluation Board. Below is presented a picture of **SDP-B** Controller Board with the **EVAL-AD5235SDZ** Evaluation Board.
Line 32: Line 28:
   * [[adi>AD5235|AD5235 Product Info]] - pricing, samples, datasheet   * [[adi>AD5235|AD5235 Product Info]] - pricing, samples, datasheet
   * [[adi>/static/imported-files/user_guides/UG-258.pdf|EVAL-AD5235SDZ evaluation board user guide]]   * [[adi>/static/imported-files/user_guides/UG-258.pdf|EVAL-AD5235SDZ evaluation board user guide]]
-  * [[http://www.xilinx.com/products/boards-and-kits/EK-K7-KC705-G.htm | Xilinx KC705 FPGA board]] +  * [[xilinx>products/boards-and-kits/EK-K7-KC705-G.htm | Xilinx KC705 FPGA board]]
-  * [[http://micrium.com/page/products/tools/probe|Micrium uC-Probe]]+
  
 ====== Getting Started ====== ====== Getting Started ======
Line 41: Line 36:
 ===== Required Hardware ===== ===== Required Hardware =====
  
-  * [[http://www.xilinx.com/products/boards-and-kits/EK-K7-KC705-G.htm | Xilinx KC705 FPGA board]]+  * [[xilinx>products/boards-and-kits/EK-K7-KC705-G.htm | Xilinx KC705 FPGA board]]
   * FMC-SDP adapter board   * FMC-SDP adapter board
   * **EVAL-AD5235** evaluation board   * **EVAL-AD5235** evaluation board
Line 47: Line 42:
 ===== Required Software ===== ===== Required Software =====
  
-  * Xilinx ISE 13.4 (Programmer (IMPACT) is sufficient for the demo and is available on Webpack)+  * Xilinx ISE 14.6
-  * [[http://micrium.com/page/products/tools/probe|uC-Probe]] run-time monitoring tool+  * UART Terminal (Termite/Tera Term/Hyperterminal), baud rate 115200.
  
 ===== Downloads ===== ===== Downloads =====
 +<WRAP round download 80%>
 +\\
 +  * **AD5235 Driver:** https://github.com/analogdevicesinc/no-OS/tree/master/drivers/potentiometer/ad525x
 +  * **AD5235 Commands:** https://github.com/analogdevicesinc/no-OS/tree/master/device_commands/AD525x
 +  * **Xilinx Boards Common Drivers:** https://github.com/analogdevicesinc/no-OS/tree/master/platform_drivers/Xilinx/SDP_Common
 +  * **EDK KC705 Reference project:** https://github.com/analogdevicesinc/fpgahdl_xilinx/tree/master/cf_sdp_kc705
 +\\
 +</WRAP>
  
-  * {{:resources:fpga:xilinx:interposer:ad5235_evalboard.zip|Reference Design Files}}+===== Hardware setup =====
  
-The following table presents a short description the reference design archive contents.+<WRAP round important 80%> 
 +\\ 
 +Before connecting the ADI evaluation board to the Xilinx KC705 make sure that the VADJ_FPGA voltage of the KC705 is set to 3.3V. For more details on how to change the setting for VADJ_FPGA visit the Xilinx KC705 product page. 
 +</WRAP>
  
-**Folder** ^ **Description** ^ +  Use the FMC-SDP interposer to connect the ADI evaluation board to the Xilinx KC705 board on the FMC LPC connector
-| Bit | Contains the KC705 configuration file that can be used to program the system for quick evaluation. | +  * Connect the JTAG and UART cables to the KC705 and power up the FPGA board.
-| Microblaze | Contains the EDK 13.4 project for the Microblaze softcore that will be implemented in the KC705 FPGA. | +
-| Software | Contains the source files of the software project that will be run by the Microblaze processor.| +
-| uCProbeInterface | Contains the uCProbe interface and the .elf symbols file used by uC-Probe to access data from the Microbalze memory|+
  
-====== Run the Demonstration Project ======+===== Reference Project Overview ===== 
 +The following commands were implemented in this version of EVAL-AD5235 reference project for Xilinx KC705 FPGA board. 
 +^ Command ^ Description ^ 
 +| **help?** | Displays all available commands. | 
 +| **rdac=** | Load the wiper register with a give value. Accepted values:\\ channel:\\ 0 - select RDAC 1 wiper register.\\ 1 - select RDAC 2 wiper register.\\ value:\\ 0 .. 1023 - value to be written in register. | 
 +| **rdac?** | Read back the value of the wiper register. Accepted values:\\ channel:\\ 0 - select RDAC 1 wiper register.\\ 1 - select RDAC 2 wiper register. | 
 +| **reset!** | Reset all wiper register to its stored values | 
 +| **restore=** | Restore the specified wiper register setting form the memory. Accepted value:\\ channel:\\ 0 - select RDAC 1 wiper register.\\ 1 - select RDAC 2 wiper register. | 
 +| **save=** | Save the given wiper register settings to the memory. Accepted value:\\ channel:\\ 0 - select RDAC 1 wiper register.\\ 1 - select RDAC 2 wiper register. | 
 +| **writemem=** | Write to one of the user memory address. Accepted value:\\ address: a value between 0x2 and 0xE.\\ data: a value between 0 and 1023.|   
 +| **readmem=** | Read data from the EEMEM memory. Accepted value:\\  address: a value between 0x2 and 0xE. | 
 +| **decrdacdb=** | Decrement a given wiper register by 6dB. Accepted value:\\ channel:\\ 0 - select RDAC 1 wiper register.\\ 1 - select RDAC 2 wiper register. | 
 +| **decrdacdball!** | Decrement all wiper register by 6dB. | 
 +| **decrdac=** | Decrement a given wiper register by one. Accepted value:\\ channel:\\ 0 - select RDAC 1 wiper register.\\ 1 - select RDAC 2 wiper register. | 
 +| **decrdacall!** | Decrement all wiper register by one. | 
 +| **incrdacdb=** | Increment a given wiper register by 6dB. Accepted value:\\ channel:\\ 0 - select RDAC 1 wiper register.\\ 1 - select RDAC 2 wiper register. | 
 +| **incrdacdball!** | Increment all wiper register by 6dB. | 
 +| **incrdac=** | Increment a given wiper register by one. Accepted value:\\ channel:\\ 0 - select RDAC 1 wiper register.\\ 1 - select RDAC 2 wiper register. | 
 +| **incrdacall!** | Increment all wiper register by one. | 
 +| **setwp=** | Set the state of the Write Protect (WP) pin. Accepted value:\\ desired state:\\ 0 - inactive\\ 1 - active | 
 +| **getwp?** | Return the current value of the Write Protect (WP) pin | 
 +| **sethwreset=** | Set the state of the Hardware Override Preset (PR) pin. Accepted value:\\ 0 - inactive\\ 1 - active | 
 +| **gethwreset?** | Return the current value of the Hardware Override Preset (PR) pin | 
 +| **tolerance=** | Read one of the Tolerance register. Accepted value:\\ 0x0 - this device has one tolerance register | 
  
-{{page>ucprobe_common}}+Commands can be executed using a serial terminal connected to the UART peripheral of Xilinx KC705 FPGA.
  
-===== Demonstration Project User Interface =====+The following image shows a generic list of commands in a serial terminal connected to Xilinx KC705 FPGA's UART peripheral. 
 +{{ :resources:fpga:xilinx:interposer:Terminal_KC705.jpg? }}
  
-The following figure presents the **uC-Probe** interface that can be used for monitoring and controlling the operation of the **EVAL-AD5235SDZ** evaluation board. +===== Software Project Setup ===== 
- +{{page>import_workspace}}
-{{:resources:fpga:altera:bemicro:ad5235interface.png?700}} +
- +
-**Section A** is used to activate the board and monitor activity. The communication with the board is activated / deactivated by toggling the **//ON/OFF//** switch. The **//Activity//** LED turns green when the communication is active. If the **//ON/OFF//** switch is set to **//ON//** and the **//Activity//** LED is **//BLACK//** it means that there is a communication problem with the board. See the **Troubleshooting** section for indications on how to fix the communication problems. +
- +
-**Section B** is used to send commands specific for the two RDAC channels available in the AD5235. Toggling to **//On//** the switches under a specific RDAC will send the command only to that RDAC. The following commands can be sent to the two RDAC channels individually: +
-  * **+//6dB//** - increments the RDAC value by 6dB +
-  * **//-6dB//** - decrements the RDAC value by 6dB +
-  * **//+1 Step//** - increments the RDAC value by 1 +
-  * **//-1 Step//** - decrements the RDAC value by 1 +
-  * **//Store//** – stores the value of the RDAC into the corresponding EEPROM +
-  * **//Restore//** – restores into the RDAC the value from the corresponding EEPROM +
-  * **//Write//** – writes into the RDAC the value selected in Section D by the slider Value for RDAC write +
-Below the individual command options there is a set of generic switches which are used to send commands to both RDACs simultaneously. The following commands can be sent simultaneously to both RDACs: +
-  * **//+1 Step//** - increments the RDACs values by 1 +
-  * **//-1 Step//** - decrements the RDACs values by 1 +
-  * **//+6dB//** - increments the RDACs values by 6dB +
-  * **//-6dB//** - decrements the RDACs values by 6dB +
-  * **//Reset//** - resets the values stored in both RDACs to 0 +
- +
-**Section C** is used to send generic commands to the AD5235. The command list is available in table "Command Operation Truth Table" from the AD5235 [[adi>ad5235| datasheet ]]. The request values will be updated based on the switch selections and displayed in the **//Request//** numeric boxes. The command is sent by toggling the **//Send Command//** switch to **//On//**. After the command a NOP will be sent on and the values from the SDO will be displayed in the **//Response//** numeric boxes. +
- +
-**Section D** is used for setting the values for **//Write//** requests both for RDAC wiper writes and memory writes. In case of RDAC writes, the **//Address//** value is not used. In case of memory writes, the **//Address//** value is used to select the memory location. It is recommended to use the first slider for values that are stored in user memory locations and the second slider for values that are written in the RDAC wiper or RDAC memory location EEMEM0 and EEMEM1. +
- +
-**Section E** is used to toggle the hardware pins. The functionality of the pins is described in the AD5235[[adi>AD5235| datasheet ]], table "Pin Function Descriptions". When the **//Write Protect//** switch is sent to **//On//** it isn’t possible to write to the memory nor change the RDAC values. Exceptions are the **//Restore/Reset//** function and toggling the **//\PR//** switch. In all cases the RDACs wipers will be reloaded with the values from the memory. +
- +
-**Section F** displays the values stored in the EEPROM memories and the tolerance value. The displayed values are updated by toggling the **//Read//** switch to **//On//**. The **//Write//** switch controls the writing of the value specified by the slider **//Value for User Write//** to the memory address specified by the slider **//Address for EEMEM Write//** from **Section D**. +
- +
-===== Troubleshooting ===== +
- +
-In case there is a communication problem with the board the follwing actions can be perfomed in order to try to fix the issues: +
-  * Check that the evaluation board is powered as instructed in the board's user guide. +
-  * In uC-Probe refresh the symbols file by right-clicking on the **//System Browser//** window and selecting **//Refresh Symbols//**. +
-  * If the communication problem persists even after performing the previous steps, restart the uC-Probe application and try to run the interface again.+
  
 ====== More information ====== ====== More information ======
-  * [[ez>community/fpga|ask questions about the FPGA reference design]]+  * [[resources:tools-software:linux-drivers:misc:dpot|AD5235 Digital Potentiometer Linux Driver]] 
 +{{page>ez_common}}
resources/fpga/xilinx/interposer/ad5235.1329408189.txt.gz · Last modified: 16 Feb 2012 17:03 by Adrian Costina