Wiki

This version is outdated by a newer approved version.DiffThis version (27 Apr 2021 13:51) is a draft.
Approvals: 0/1
The Previously approved version (19 Mar 2021 08:21) is available.Diff

This is an old revision of the document!


no-OS IIO

IIO interfaces and application documentation available at : http://analogdevicesinc.github.io/no-OS/index.html under IIO headline.

BUILD PROJECT WITH IIO SUPPORT

Go to no-OS To build project with no-OS IIO support go to no-OS folder and do:

git submodule update --recursive

Then go to the project “/no-OS/projects/project_name” and execute:

make clean_all

make TINYIIOD=y

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:

make PLATFORM=desired_platform clean_all

make PLATFORM=desired_platform TINYIIOD=y

For more information about building projects, go to: https://github.com/analogdevicesinc/no-OS/wiki/Building-no-OS-on-Linux. After build, execute command:

Xilinx(Click to expand)

Xilinx(Click to expand)

make run

Linux (Click to expand)

Linux (Click to expand)

sudo ./build/project.out

Make sure IIOD is not already running! It can be stopped it with:
sudo systemctl stop iiod

The binaries are loaded to the board. Next, it is possible to connect with a libiio client.

For debugging and development execute command:

make develop

IIO-Oscilloscope client

IIO-Oscilloscope is one possible client (it has to be built with SERIAL_BACKEND option), select the corresponding serial port and set baud rate to 921600. For more information about IIO Oscilloscope go to: https://wiki.analog.com/resources/tools-software/linux-software/iio_oscilloscope

Python device over iio client

Helper utilities as client

Helper utilities from Libiio can be used also:

iio_readdev -u serial:/dev/ttyUSB0,921600 -b 400 -s 6400 cf-ad9361-lpc > sample.dat

For more details about libiio helper utilities please visit following link: https://wiki.analog.com/resources/tools-software/linux-software/libiio/iio_readdev

IIO DEMO APPLICATION

A demo iio application can be found in the following location:

https://github.com/analogdevicesinc/no-OS/tree/master/projects/iio_demo

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:

iio_info -u serial:/dev/ttyUSB0,115200
or,
iio_info -u ip:host (only on Linux)

To load data into RAM, that could be seen in iio-oscilloscope application, execute the following command:

cat sample_sine.dat | iio_writedev -u serial:/dev/ttyUSB0,115200 -b 400 dac_demo

This will write 400 samples to “dac_demo” from “sample_sine.dat” file.

FOLDER STRUCTURE

iio_app – IIO application interface. Sets IIO application communication interface and executes the main application, where commands are received, parsed, and executed. This module is necessary.

iio_ad9361 – This module will register a new interface into iio_interfaces element. Wrapper over ad9361 api, it adapts the interface to iio. This module is optional.

iio_axi_adc – This module will register a new interface into iio_interfaces element. It also creates an iio_axi_adc device instance and a struct iio_device element, that specifies it’s channels and attributes. Wrapper over axi_adc_core, it adapts the interface to iio. This module is optional.

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, it adapts the interface to iio. This module is optional.

SOFTWARE ARCHITECTURE

The relations between modules can be seen in the following figure. Doted lines represent function callbacks.

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://github.com/analogdevicesinc/libtinyiiod

resources/tools-software/no-os-software/iio.1619524291.txt.gz · Last modified: 27 Apr 2021 13:51 by Ramona Alexandra Nechita