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
software:linux:docs:iio:iio [28 Feb 2011 16:57] – [Pointers] Michael Hennerichsoftware:linux:docs:iio:iio [05 Jun 2020 17:03] (current) – [IIO Overview] Grammar changes Iulia Moldovan
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 isas it'name suggests focused on human interaction  input devices.:+  * The input is⁠ (as its name suggestsfocused on human interaction input devices:
     * Keyboard     * Keyboard
     * Mouse     * Mouse
Line 21: Line 28:
     * Joystick     * Joystick
  
-  * In some cases there is considerable overlap between these and IIO.+  * In some casesthere is considerable overlap between these and IIO.
  
   * 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 61: Line 68:
 === Standalone trigger drivers === === Standalone trigger drivers ===
  
-^ name ^ description ^ +{{page>software:linux:docs:iio:iio_snippets#Standalone trigger drivers&noheader&firstseconly&noeditbtn}} 
-| iio-trig-gpio | Provides support for using GPIO pins as IIO triggers.|  + 
-| iio-trig-rtc | Provides support for using periodic capable real time clocks as IIO triggers.|  +==== Industrial I/O Subsystem In-Kernel Interfaces ==== 
-| [[iio-trig-sysfs | iio-trig-sysfs]] | Provides support for using SYSFS entry as IIO triggers.|  + 
-| [[iio-trig-bfin-timer | iio-trig-bfin-timer]] | Provides support for using Blackfin timer as IIO triggers. +The IIO subsystem can act as a layer under other elements of the kernel 
-==== IIO Ring Buffer ====+providing 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}}
Line 77: Line 86:
 ====== Pointers ====== ====== Pointers ======
  
-  * [[http://sourceforge.net/apps/mediawiki/iioutils/index.php?title=Main_Page|IIO Utils Main Page]] +{{page>software:linux:docs:iio:iio_snippets#iio pointers&noheader&firstseconly&noeditbtn}}
-  * [[iio_netscope | IIO test and visualization demo application]]+
software/linux/docs/iio/iio.txt · Last modified: 05 Jun 2020 17:03 by Iulia Moldovan