This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
resources:tools-software:no-os-software:iio [20 Feb 2020 12:45] – [IIO-Oscilloscope client] Cristian Pop | resources:tools-software:no-os-software:iio [14 Nov 2023 15:25] (current) – tinyiiod -> iiod Darius B | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== no-OS IIO ====== | ====== no-OS IIO ====== | ||
+ | IIO interfaces and application documentation available at : | ||
+ | http:// | ||
+ | under IIO headline. | ||
====== BUILD PROJECT WITH IIO SUPPORT ====== | ====== BUILD PROJECT WITH IIO SUPPORT ====== | ||
+ | To build project with no-OS IIO support go to the desired no-OS project folder ''/ | ||
- | To build project with no-OS IIO support go to the project “/ | + | '' |
- | '' | + | '' |
- | For more information about building projects, go to: https:// | + | Depending on the project and hardware used, the platform might have to be specified inside the Makefile in the project folder, or from command line: |
+ | |||
+ | '' | ||
+ | |||
+ | '' | ||
+ | |||
+ | For more information about building projects, go to: [[: | ||
After build, execute command: | After build, execute command: | ||
+ | <hidden Xilinx(Click to expand)> | ||
'' | '' | ||
+ | </ | ||
+ | <hidden Linux (Click to expand)> | ||
+ | '' | ||
+ | <note important> | ||
+ | '' | ||
+ | </ | ||
+ | </ | ||
The binaries are loaded to the board. Next, it is possible to connect with a libiio client. | The binaries are loaded to the board. Next, it is possible to connect with a libiio client. | ||
- | ===== IIO-Oscilloscope client | + | |
- | IIO-Oscilloscope | + | For debugging and development execute command: |
+ | |||
+ | '' | ||
+ | ===== Connecting to Clients | ||
+ | After building and running a no-Os project, the data can be displayed, processed and visualized through a series of clients, such as command line tools, MATLAB® and Simulink®, | ||
+ | |||
+ | For simply displaying or storing information regarding the devices, [[: | ||
+ | |||
+ | Here is an example on how to use '' | ||
+ | * For serial context '' | ||
+ | * For network '' | ||
+ | |||
+ | |||
+ | For a graphical user interface and plots IIO-Oscilloscope is one possible client. For more information about IIO Oscilloscope go to: | ||
https:// | https:// | ||
- | + | ||
+ | Connecting to IIO-Oscilloscope with the serial context: | ||
{{: | {{: | ||
- | ===== Helper utilities as client ===== | ||
- | Helper utilities from Libiio can be used also: | + | And with network: |
- | '' | + | {{: |
+ | |||
+ | Once connected, two windows should pop up. | ||
+ | |||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===== Python device over iio client ===== | ||
+ | |||
+ | A python abstraction module for ADI hardware also exists, to make them easier to use. The supported devices can be found at | ||
+ | https:// | ||
- | For more details about libiio helper utilities please visit following link: | ||
- | https:// | ||
====== IIO DEMO APPLICATION ====== | ====== IIO DEMO APPLICATION ====== | ||
A demo iio application can be found in the following location: | A demo iio application can be found in the following location: | ||
- | https:// | + | https:// |
This project is independent of a physical device and should be used as reference, when creating a new iio application for a new iio device. | This project is independent of a physical device and should be used as reference, when creating a new iio application for a new iio device. | ||
+ | To view information regarding the devices, one can use: | ||
+ | |||
+ | '' | ||
+ | or, \\ | ||
+ | '' | ||
+ | |||
To load data into RAM, that could be seen in iio-oscilloscope application, | To load data into RAM, that could be seen in iio-oscilloscope application, | ||
- | '' | + | '' |
- | This will write 400 samples to “demo_device” from “sample_sine.dat” file. | + | This will write 400 samples to “dac_demo” from “sample_sine.dat” file. |
====== FOLDER STRUCTURE ====== | ====== FOLDER STRUCTURE ====== | ||
- | {{: | + | {{: |
** iio_app** – IIO application interface. Sets IIO application communication interface and executes the main application, | ** iio_app** – IIO application interface. Sets IIO application communication interface and executes the main application, | ||
Line 48: | Line 96: | ||
** iio_axi_dac** – This module will register a new interface into iio_interfaces element. It also creates an iio_axi_dac device instance and a struct iio_device element, that specifies it’s channels and attributes. Wrapper over axi_adc_core, | ** iio_axi_dac** – This module will register a new interface into iio_interfaces element. It also creates an iio_axi_dac device instance and a struct iio_device element, that specifies it’s channels and attributes. Wrapper over axi_adc_core, | ||
- | |||
- | ** iio_demo** – This module is hardware independent and should be used as reference, when creating a new new iio device. | ||
- | |||
- | ** iio** – Sets tinyiiod ops callbacks for communicating with the client and ops callbacks for communicating with IIO devices and contains the callbacks used by libtinyiiod. | ||
====== SOFTWARE ARCHITECTURE ====== | ====== SOFTWARE ARCHITECTURE ====== | ||
- | The relations between modules can be seen in the following figure. Doted lines represent function callbacks. | + | The relations between modules can be seen in the following figure. |
- | + | ||
- | {{: | + | |
- | + | ||
- | An iio_app instance is always necessary, since it instantiates libtinyiiod library, the rest of iio modules (iio_demo) are optional, each one registering a new device to be checked when a command is received. | + | |
- | + | ||
- | ====== LIBTINYIIOD ====== | + | |
- | Is a library to ease the development of software interfacing I/O (IIO) devices. The library abstracts the low-level details of hardware, and provides a simple yet complete programming interface that can be used for advanced projects. | + | |
- | {{: | + | {{: |
- | https:// | ||