Industrial IO
Last updated: Apr 22, 2020
IMAGE GALLERY (10)
- Analog Devices Wiki1
- IIO Ossiloscope software2
- High Speed data Acquisition using Linux IIO Framework
~100k
samples per sec- Software Defined Radio
- RF communication
- Direct RF
- Ultrasound
- ADC Analog to digital converter DAC
- IIO
- ~200 IIO device drivers (v3.17)
- Driver Registers a trigger, which is used for each data capture event
- DMA to transfer data from peripheral to memory
- Efficient read()/write() data between user/kernel space
- Devices that fall into this category are:
- ADCs
- Accelerometers
- Gyros
- IMUs
- Capacitance to Digital Converters (CDCs)
- Pressure Sensors
- Color, Light and Proximity Sensors
- Temperature Sensors
- Magnetometers
- DACs
- DDS (Direct Digital Synthesis)
- PLLs (Phase Locked Loops)
- Variable/Programmable Gain Amplifiers (VGA, PGA)
ADIS16400
How to make Linux IOT device listen to IMU data from a sensor
- iio subsystem driver based in to linux kernel
- Adding Linux driver support
- Enable linux subsystems from
Kconfig
- linux-yocto ->make menuconfig
- Enable linux subsystems from
Unlike PCI or USB devices, SPI devices are not enumerated at the hardware level. Instead, the software must know which devices are connected on each SPI bus segment, and what slave selects these devices are using. For this reason, the kernel code must instantiate SPI devices explicitly. The most common method is to declare the SPI devices by bus number.
This method is appropriate when the SPI bus is a system bus, as in many embedded systems, wherein each SPI bus has a number which is known in advance. It is thus possible to pre-declare the SPI devices that inhabit this bus. This is done with an array of struct spi_board_info, which is registered by calling spi_register_board_info()5.
/sys/bus/iio/devices/iio:deviceX
libio
root:/sys/devices/platform/bfin-spi.0/spi0.1/iio:device0> cat name adis16400 for item in `ls` do value=`cat $item` printf "%s\t%s\n" $item $value done # Read SPI statistics /sys/devices/platform/ocp/48030000.spi/spi_master/spi0/spi0.1/statistics cat /proc/interrupts
Footnotes
- https://wiki.analog.com/wiki/introduction [return]
- https://wiki.analog.com/resources/tools-software/linux-software/iio_oscilloscope [return]
- https://source.codeaurora.org/external/imx/linux-imx/tree/Documentation/ABI/testing/sysfs-bus-iio?h=imx_4.1.15_2.0.0_ga [return]
- https://www.kernel.org/doc/html/v4.14/driver-api/iio/intro.html [return]
- https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/spi/spi-summary.rst [return]