This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | Next revisionBoth sides next revision | ||
resources:fpga:xilinx:pmod:ad5933 [30 Sep 2013 15:49] – text Alexandru.Tofan | resources:fpga:xilinx:pmod:ad5933 [22 Oct 2013 13:33] – adding linux (in progress) Alexandru.Tofan | ||
---|---|---|---|
Line 129: | Line 129: | ||
</ | </ | ||
+ | ====== Linux Device Driver ====== | ||
+ | |||
+ | Connect PmodIA to the JC1 connector of the ZedBoard (upper row of pins). | ||
+ | |||
+ | ===== Preparing the SD Card ===== | ||
+ | |||
+ | In order to prepare the SD Card for booting Linux on the ZedBoard: | ||
+ | * Download the device tree: [[https:// | ||
+ | * Follow the instructions on the following wiki page, but use the device tree downloaded on the previous step | ||
+ | * [[http:// | ||
+ | |||
+ | Make sure you have an HDMI monitor connected to the ZedBoard, plug in the SD Card and power on the board. | ||
+ | If everything is correct, the system should boot up. If you don't have an HDMI monitor, connect to the board via UART, Baud Rate 115200. | ||
+ | |||
+ | There are 2 ways to test the driver. | ||
+ | * Using the terminal window | ||
+ | * Using the ADI IIO Oscilloscope | ||
+ | |||
+ | ===== Using the terminal window ===== | ||
+ | |||
+ | Open a new terminal window by pressing **Ctrl+Alt+T**. | ||
+ | |||
+ | Navigate to the location of the device and identify it using the following commands: | ||
+ | < | ||
+ | cd / | ||
+ | ls | ||
+ | iio:device0 iio:device1 | ||
+ | cd iio\: | ||
+ | cat name | ||
+ | ad5933 | ||
+ | </ | ||
+ | |||
+ | If the **cat name** command doesn' | ||
+ | < | ||
+ | cd .. | ||
+ | cd iio\: | ||
+ | cat name | ||
+ | </ | ||
+ | |||
+ | To see the list of options that the AD5933 driver provides, type: | ||
+ | < | ||
+ | ls | ||
+ | buffer | ||
+ | dev out_voltage0_freq_points | ||
+ | in_temp0_input | ||
+ | in_voltage0_scale | ||
+ | in_voltage0_scale_available | ||
+ | name | ||
+ | </ | ||
+ | |||
+ | ===Set sweep start frequency=== | ||
+ | |||
+ | **Description**: | ||
+ | |||
+ | < | ||
+ | echo 15000 > out_voltage0_freq_start | ||
+ | cat out_voltage0_freq_start | ||
+ | 14999 | ||
+ | </ | ||
+ | |||
+ | ===Set frequency increment=== | ||
+ | |||
+ | **Description**: | ||
+ | |||
+ | < | ||
+ | echo 200 > out_voltage0_freq_increment | ||
+ | </ | ||
+ | |||
+ | ===Set number of frequency points=== | ||
+ | |||
+ | **Description**: | ||
+ | |||
+ | < | ||
+ | echo 100 > out_voltage0_freq_points | ||
+ | cat out_voltage0_freq_points | ||
+ | 100 | ||
+ | </ | ||
+ | |||
+ | ===Set number of settling time cycles=== | ||
+ | |||
+ | **Description**: | ||
+ | |||
+ | < | ||
+ | echo 15 > out_voltage0_settling_cycles | ||
+ | cat out_voltage0_settling_cycles | ||
+ | 15 | ||
+ | </ | ||
+ | |||
+ | ===Show available output ranges=== | ||
+ | |||
+ | **Description**: | ||
+ | |||
+ | < | ||
+ | cat out_voltage0_scale_available | ||
+ | 1980 970 383 198 | ||
+ | </ | ||
+ | |||
+ | ===Set output range=== | ||
+ | |||
+ | **Description**: | ||
+ | |||
+ | < | ||
+ | echo 1980 > out_voltage0_scale | ||
+ | cat out_voltage0_scale | ||
+ | 1980 | ||
+ | </ | ||
+ | |||
+ | ===Show available input scales=== | ||
+ | |||
+ | **Description**: | ||
+ | |||
+ | < | ||
+ | cat in_voltage0_scale_available | ||
+ | 1 0.2 | ||
+ | </ | ||
+ | |||
+ | ===Set input scale=== | ||
+ | |||
+ | **Description**: | ||
+ | |||
+ | < | ||
+ | echo 0.2 > in_voltage0_scale | ||
+ | cat in_voltage0_scale | ||
+ | 0.2 | ||
+ | </ | ||
+ | |||
+ | ===Show internal temperature=== | ||
+ | |||
+ | **Description**: | ||
+ | |||
+ | The on-chip temperature sensor allows an accurate measurement of the ambient device temperature. The measurement range of the sensor is −40°C to +125°C. | ||
+ | |||
+ | < | ||
+ | cat in_temp0_input | ||
+ | 25062 | ||
+ | </ | ||
+ | |||
+ | ===Buffer Management=== | ||
+ | |||
+ | The Industrial I/O subsystem provides support for various ring buffer based data acquisition methods. Apart from device specific hardware buffer support, the user can chose between two different software ring buffer implementations. One is the IIO lock free software ring, and the other is based on Linux kfifo. Devices with buffer support feature an additional sub-folder in the / | ||
+ | |||
+ | Every buffer implementation features a set of files: | ||
+ | |||
+ | < | ||
+ | cd buffer | ||
+ | ls | ||
+ | enable | ||
+ | </ | ||
+ | |||
+ | **length** | ||
+ | Get/set the number of sample sets that may be held by the buffer. | ||
+ | |||
+ | **enable** | ||
+ | Enables/ | ||
+ | |||
+ | < | ||
+ | cd scan_elements | ||
+ | ls | ||
+ | in_voltage0_imag_raw_en | ||
+ | in_voltage0_imag_raw_index | ||
+ | in_voltage0_imag_raw_type | ||
+ | </ | ||
+ | |||
+ | **scan_elements** | ||
+ | The scan_elements directory contains interfaces for elements that will be captured for a single triggered sample set in the buffer. | ||
+ | |||
+ | < | ||
+ | grep "" | ||
+ | in_voltage0_imag_raw_en: | ||
+ | in_voltage0_imag_raw_index: | ||
+ | in_voltage0_imag_raw_type: | ||
+ | in_voltage0_real_raw_en: | ||
+ | in_voltage0_real_raw_index: | ||
+ | in_voltage0_real_raw_type: | ||
+ | </ | ||
+ | |||
+ | ====Buffer Example==== | ||
+ | |||
+ | < | ||
+ | echo 15000 > out_voltage0_freq_start | ||
+ | echo 200 > out_voltage0_freq_increment | ||
+ | echo 100 > out_voltage0_freq_points | ||
+ | echo 512 > buffer/ | ||
+ | echo 1 > buffer/ | ||
+ | </ | ||
+ | |||
+ | ==== Data interpretation ==== | ||
+ | |||
+ | ^ index ^ datum ^ type ^ | ||
+ | | 0 | **Real Sample** f0 | signed short 16-bit | | ||
+ | | 1 | **//Imag Sample//** f0 | signed short 16-bit | | ||
+ | | [fn * 2] | **Real Sample** fn | signed short 16-bit | | ||
+ | | [fn * 2] + 1 | **//Imag Sample//** fn | signed short 16-bit | | ||
+ | |||
+ | |||
+ | Z = **in_voltage0_real_raw** + i * **in_voltage0_imag_raw** | ||
+ | |||
+ | The commands written above can also be used if not using an HDMI monitor and a wireless keyboard, by using a serial terminal, and typing the commands after the system boot-up is complete. | ||
===== More information ===== | ===== More information ===== | ||
* [[ez> | * [[ez> | ||
* Example questions: {{rss> | * Example questions: {{rss> |