Wiki

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
software:linux:docs:iio:iio [03 Mar 2011 10:37] – [Pointers] Michael Hennerichsoftware:linux:docs:iio:iio [23 Feb 2017 13:26] – Fix typo Lars-Peter Clausen
Line 4: Line 4:
 ===== IIO Overview ===== ===== IIO Overview =====
  
-  * The Industrial I/O subsystem is intended to provide support for devices that in some sense are analog to digital convertors (ADCs).+  * The Industrial I/O subsystem is intended to provide support for devices that in some sense are analog to digital or digital to analog converters (ADCs, DACs).
   * Devices that fall into this category are:   * Devices that fall into this category are:
     * ADCs     * ADCs
Line 11: Line 11:
     * IMUs     * IMUs
     * Capacitance to Digital Converters (CDCs)     * Capacitance to Digital Converters (CDCs)
-    * Pressure, Temperature and Light Sensors+    * 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) 
  
   * The overall aim is to fill the gap between the somewhat similar hwmon and input subsystems.   * The overall aim is to fill the gap between the somewhat similar hwmon and input subsystems.
   * Hwmon is very much directed at low sample rate sensors used in applications such as fan speed control and temperature measurement.   * Hwmon is very much directed at low sample rate sensors used in applications such as fan speed control and temperature measurement.
-  * Input is, as it's name suggests focused on human interaction  input devices.:+  * Input is, as it's name suggests focused on human interaction input devices.:
     * Keyboard     * Keyboard
     * Mouse     * Mouse
Line 24: Line 31:
  
   * A typical device falling into the IIO category would be connected via SPI or I2C.   * A typical device falling into the IIO category would be connected via SPI or I2C.
-  * However typical DMA operated devices such as ones connected to a high speed synchronous serial (McBSP, SPORT) or high speed synchronous parallel (EPI, PPI) peripherals are also subject to this subsystem.+  * However typical DMA operated devices such as ones connected to a high speed synchronous serial (McBSP, SPORT) or high speed synchronous parallel (EPI, PPI) or FPGA peripherals are also subject to this subsystem.
   * Since latter ones unlike SPI or I2C are not generally abstracted by Linux bus drivers they are subject to processor platform dependent implementations.   * Since latter ones unlike SPI or I2C are not generally abstracted by Linux bus drivers they are subject to processor platform dependent implementations.
  
Line 33: Line 40:
  
   * Basic device registration and handling   * Basic device registration and handling
-  * This is very simple polled access to device channels via sysfs.+  * Polled access to device channels via sysfs.
   * Event chrdevs   * Event chrdevs
     * These are similar to input in that they provide a route to user space for hardware triggered events. Such events include threshold detectors, free-fall detectors and more complex action detection.  The events themselves are currently very simple with merely an event code and a timestamp.  Any data associated with the event must be accessed via polling.     * These are similar to input in that they provide a route to user space for hardware triggered events. Such events include threshold detectors, free-fall detectors and more complex action detection.  The events themselves are currently very simple with merely an event code and a timestamp.  Any data associated with the event must be accessed via polling.
  
-<note>+<WRAP round help>
 A given device may have one or more event channel.  These events are turned on or off (if possible) via sysfs interfaces. A given device may have one or more event channel.  These events are turned on or off (if possible) via sysfs interfaces.
-</note>+</WRAP>
  
   * Hardware ring buffer support   * Hardware ring buffer support
Line 45: Line 52:
   * These greatly reduce the load on the host CPU by buffering relatively large numbers of data samples based on an internal sampling clock.   * These greatly reduce the load on the host CPU by buffering relatively large numbers of data samples based on an internal sampling clock.
   * Each ring buffer typically has an event chrdev (similar to the more general ones above) to pass on events such as buffer 50% full and an access chrdev via which the raw data it self may be read back.   * Each ring buffer typically has an event chrdev (similar to the more general ones above) to pass on events such as buffer 50% full and an access chrdev via which the raw data it self may be read back.
-  * Trigger and software ring buffer support+  * Trigger and software ring buffer (kfifo) support
  
 ==== Trigger and software ring buffer support ==== ==== Trigger and software ring buffer support ====
Line 62: Line 69:
  
 {{page>software:linux:docs:iio:iio_snippets#Standalone trigger drivers&noheader&firstseconly&noeditbtn}} {{page>software:linux:docs:iio:iio_snippets#Standalone trigger drivers&noheader&firstseconly&noeditbtn}}
-==== IIO Ring Buffer ====+ 
 +==== Industrial I/O Subsystem In-Kernel Interfaces ==== 
 + 
 +The IIO subsystem can act as a layer under other elements of the kernel 
 +providing a means of obtaining ADC type readings or of driving DAC type 
 +signals.  The functionality supported will grow as use cases arise. 
 +==== IIO Ring Buffer / kfifo ====
  
 {{:software:linux:docs:ringbuffer.png}} {{:software:linux:docs:ringbuffer.png}}
software/linux/docs/iio/iio.txt · Last modified: 05 Jun 2020 17:03 by Iulia Moldovan