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
resources:tools-software:linux-drivers:iio-accelerometer:adxl372 [13 Sep 2019 15:04] – Updated links to the driver files and added links to the docs Stefan Poparesources:tools-software:linux-drivers:iio-accelerometer:adxl372 [16 Sep 2019 16:09] (current) – Updated Set the fifo watermak subchapter Stefan Popa
Line 31: Line 31:
 | Documentation | [[linux.github>master?Documentation/devicetree/bindings/iio/accel/adxl345.txt | adxl345.txt]] | | Documentation | [[linux.github>master?Documentation/devicetree/bindings/iio/accel/adxl345.txt | adxl345.txt]] |
 | ABI documentation| [[linux.github>master?Documentation/ABI/testing/sysfs-bus-iio-accel-adxl372 | sysfs-bus-iio-accel-adxl372]] | | ABI documentation| [[linux.github>master?Documentation/ABI/testing/sysfs-bus-iio-accel-adxl372 | sysfs-bus-iio-accel-adxl372]] |
-===== Devicetree =====+ 
 +Example device tree 
 + 
 +^ Function ^ File ^ 
 +| dts  | [[linux.github>rpi-4.19.y?arch/arm/boot/dts/overlays/rpi-adxl372-overlay.dts | rpi-adxl372-overlay.dts]] | 
 + 
 +====== Example platform device initialization ======
  
 Required devicetree properties: Required devicetree properties:
Line 95: Line 101:
 -r--r--r-- 1 root root 4096 Oct 25 04:25 name -r--r--r-- 1 root root 4096 Oct 25 04:25 name
 lrwxrwxrwx 1 root root    0 Oct 25 04:25 of_node -> ../../../../../../../../firmware/devicetree/base/soc/spi@7e204000/adxl372@0 lrwxrwxrwx 1 root root    0 Oct 25 04:25 of_node -> ../../../../../../../../firmware/devicetree/base/soc/spi@7e204000/adxl372@0
 +-r--r--r-- 1 root root 4096 Oct 25 04:25 peak_fifo_mode_enable
 drwxr-xr-x 2 root root    0 Oct 25 04:25 power drwxr-xr-x 2 root root    0 Oct 25 04:25 power
 -r--r--r-- 1 root root 4096 Oct 25 04:25 sampling_frequency_available -r--r--r-- 1 root root 4096 Oct 25 04:25 sampling_frequency_available
Line 176: Line 183:
 </xterm></WRAP> </xterm></WRAP>
  
-===== Trigger management =====+===== Using the FIFO Buffer ===== 
 + 
 +**Description:**\\ 
 +The ADXL372 includes a deep, 512 sample FIFO buffer. The 512 FIFO samples can be allotted in several ways, such as the following: 
 +  * 170 sample sets of concurrent 3-axis data 
 +  * 256 sample sets of concurrent 2-axis data (user selectable) 
 +  * 512 sample sets of single-axis data 
 +  * 170 sets of impact event peak (x, y, z) 
 + 
 +==== Trigger management ==== 
 + 
 +**Description:**\\ 
 +The FIFO is configured in **Stream Mode** and **FIFO_FULL** interrupt is enabled. The interrupt will be triggered when the FIFO watermark is reached.
  
 <WRAP box bggreen><wrap info>This specifies any shell prompt running on the target</wrap> <WRAP box bggreen><wrap info>This specifies any shell prompt running on the target</wrap>
Line 184: Line 203:
 </xterm></WRAP> </xterm></WRAP>
  
-===== Buffer management =====+==== Buffer management ====
  
 **Description:**\\ **Description:**\\
Line 208: Line 227:
  
 Before enabling the buffer, a few steps need to be completed.  Before enabling the buffer, a few steps need to be completed. 
-  * Firstthe axis that we want to read data from need to be enabled:+  * For exampleif we want the FIFO to store sample sets of concurrent 3-axis data, we need to enable the scan elements:
 <WRAP box bggreen><wrap info>This specifies any shell prompt running on the target</wrap> <WRAP box bggreen><wrap info>This specifies any shell prompt running on the target</wrap>
 <xterm> <xterm>
Line 230: Line 249:
  
   * Set the fifo watermak:   * Set the fifo watermak:
 +Because we enabled all three channels, then the watermark can be set to a maximum of 170 sample sets.
 <WRAP box bggreen><wrap info>This specifies any shell prompt running on the target</wrap> <WRAP box bggreen><wrap info>This specifies any shell prompt running on the target</wrap>
 <xterm> <xterm>
 root:/sys/bus/iio/devices/iio:device0/buffer> **echo 170 > watermark** root:/sys/bus/iio/devices/iio:device0/buffer> **echo 170 > watermark**
 </xterm></WRAP> </xterm></WRAP>
 +
 +The FIFO can also be configured to store peak acceleration (x, y, and z) for every over-threshold event. This can be done by writing 1 to the **peak_fifo_mode_enable** attribute:
 +<WRAP box bggreen><wrap info>This specifies any shell prompt running on the target</wrap>
 +<xterm>
 +root:/sys/bus/iio/devices/iio:device0> **echo 1 > peak_fifo_mode_enable**
 +</xterm></WRAP>
 +Note that this mode can work only if all three axis are enabled.
  
   * Enable the buffer:   * Enable the buffer:
resources/tools-software/linux-drivers/iio-accelerometer/adxl372.txt · Last modified: 16 Sep 2019 16:09 by Stefan Popa