IIO interfaces and application documentation available at : http://analogdevicesinc.github.io/no-OS/index.html under IIO headline.
Go to no-OS To build project with no-OS IIO support go to no-OS folder and do:
git submodule update --init --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:
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
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®, IIO-Oscilloscope, etc. Find the complete list of frameworks and applications at http://analogdevicesinc.github.io/libiio/master/index.html
For simply displaying or storing information regarding the devices, iio_info, iio_attr, iio_reg, iio_readdev, iio_writedev are included in the default builds.
Here is an example on how to use iio_info
:
iio_info -u serial:/dev/ttyUSB0,115200
iio_info -u ip:<host>
For a graphical user interface and plots IIO-Oscilloscope is one possible client. For more information about IIO Oscilloscope go to: https://wiki.analog.com/resources/tools-software/linux-software/iio_oscilloscope
Connecting to IIO-Oscilloscope with the serial context:
And with network:
Once connected, two windows should pop up.
A python abstraction module for ADI hardware also exists, to make them easier to use. The supported devices can be found at https://analogdevicesinc.github.io/pyadi-iio/devices/index.html
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.
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.
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.