Wiki

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
resources:tools-software:linux-software:libiio:iio_readdev [23 May 2019 02:51]
Travis Collins Update to modern IIO tools
resources:tools-software:linux-software:libiio:iio_readdev [30 May 2019 02:35]
Travis Collins Update example to use realistic rates and DDS frequency
Line 50: Line 50:
 dev '​ad9361-phy',​ debug attr '​loopback',​ value :'​1'​ dev '​ad9361-phy',​ debug attr '​loopback',​ value :'​1'​
 </​xterm>​ </​xterm>​
-  - set the DDS to something slow, so it is easier to see, and we don't alias when looking at things in the time domain.<​xterm>​analog@imhotep:​~$ **iio_attr -a -c cf-ad9361-dds-core-lpc altvoltage0 frequency ​5000**+  - set the DDS to something slow, so it is easier to see, and we don't alias when looking at things in the time domain.<​xterm>​analog@imhotep:​~$ **iio_attr -a -c cf-ad9361-dds-core-lpc altvoltage0 frequency ​50000**
 Using auto-detected IIO context at URI "​usb:​2.26.5"​ Using auto-detected IIO context at URI "​usb:​2.26.5"​
 dev '​cf-ad9361-dds-core-lpc',​ channel '​altvoltage0'​ (output), id '​TX1_I_F1',​ attr '​frequency',​ value '​9279985'​ dev '​cf-ad9361-dds-core-lpc',​ channel '​altvoltage0'​ (output), id '​TX1_I_F1',​ attr '​frequency',​ value '​9279985'​
 wrote 5 bytes to frequency wrote 5 bytes to frequency
-dev '​cf-ad9361-dds-core-lpc',​ channel '​altvoltage0'​ (output), id '​TX1_I_F1',​ attr '​frequency',​ value '5156'+dev '​cf-ad9361-dds-core-lpc',​ channel '​altvoltage0'​ (output), id '​TX1_I_F1',​ attr '​frequency',​ value '50034'
  
-analog@imhotep:​~$ **iio_attr -a -c cf-ad9361-dds-core-lpc ​altvoltage1 ​frequency ​5000**+analog@imhotep:​~$ **iio_attr -a -c cf-ad9361-dds-core-lpc ​altvoltage2 ​frequency ​50000**
 Using auto-detected IIO context at URI "​usb:​2.26.5"​ Using auto-detected IIO context at URI "​usb:​2.26.5"​
-dev '​cf-ad9361-dds-core-lpc',​ channel 'altvoltage1' (output), id '​TX1_I_F2',​ attr '​frequency',​ value '​9279985'​+dev '​cf-ad9361-dds-core-lpc',​ channel 'altvoltage2' (output), id '​TX1_I_F2',​ attr '​frequency',​ value '​9279985'​
 wrote 5 bytes to frequency wrote 5 bytes to frequency
-dev '​cf-ad9361-dds-core-lpc',​ channel 'altvoltage1' (output), id '​TX1_I_F2',​ attr '​frequency',​ value '5156'+dev '​cf-ad9361-dds-core-lpc',​ channel 'altvoltage2' (output), id '​TX1_I_F2',​ attr '​frequency',​ value '50034'
  
 </​xterm>​ </​xterm>​
Line 69: Line 69:
 dev '​cf-ad9361-dds-core-lpc',​ channel '​altvoltage0'​ (output), id '​TX1_I_F1',​ attr '​scale',​ value '​0.400024'​ dev '​cf-ad9361-dds-core-lpc',​ channel '​altvoltage0'​ (output), id '​TX1_I_F1',​ attr '​scale',​ value '​0.400024'​
  
-analog@imhotep:​~$ **iio_attr -a -c cf-ad9361-dds-core-lpc altvoltage1 scale 0.4**+analog@imhotep:​~$ **iio_attr -a -c cf-ad9361-dds-core-lpc altvoltage1 scale 0.0**
 Using auto-detected IIO context at URI "​usb:​2.26.5"​ Using auto-detected IIO context at URI "​usb:​2.26.5"​
 dev '​cf-ad9361-dds-core-lpc',​ channel '​altvoltage1'​ (output), id '​TX1_I_F2',​ attr '​scale',​ value '​0.000000'​ dev '​cf-ad9361-dds-core-lpc',​ channel '​altvoltage1'​ (output), id '​TX1_I_F2',​ attr '​scale',​ value '​0.000000'​
 wrote 4 bytes to scale wrote 4 bytes to scale
-dev '​cf-ad9361-dds-core-lpc',​ channel '​altvoltage1'​ (output), id '​TX1_I_F2',​ attr '​scale',​ value '0.400024'+dev '​cf-ad9361-dds-core-lpc',​ channel '​altvoltage1'​ (output), id '​TX1_I_F2',​ attr '​scale',​ value '0.000000'
  
 analog@imhotep:​~$ **iio_attr -a -c cf-ad9361-dds-core-lpc altvoltage2 scale 0.4** analog@imhotep:​~$ **iio_attr -a -c cf-ad9361-dds-core-lpc altvoltage2 scale 0.4**
Line 81: Line 81:
 dev '​cf-ad9361-dds-core-lpc',​ channel '​altvoltage2'​ (output), id '​TX1_I_F2',​ attr '​scale',​ value '​0.400024'​ dev '​cf-ad9361-dds-core-lpc',​ channel '​altvoltage2'​ (output), id '​TX1_I_F2',​ attr '​scale',​ value '​0.400024'​
  
-analog@imhotep:​~$ **iio_attr -a -c cf-ad9361-dds-core-lpc altvoltage3 scale 0.4**+analog@imhotep:​~$ **iio_attr -a -c cf-ad9361-dds-core-lpc altvoltage3 scale 0.0**
 Using auto-detected IIO context at URI "​usb:​2.26.5"​ Using auto-detected IIO context at URI "​usb:​2.26.5"​
 dev '​cf-ad9361-dds-core-lpc',​ channel '​altvoltage3'​ (output), id '​TX1_I_F2',​ attr '​scale',​ value '​0.000000'​ dev '​cf-ad9361-dds-core-lpc',​ channel '​altvoltage3'​ (output), id '​TX1_I_F2',​ attr '​scale',​ value '​0.000000'​
 wrote 4 bytes to scale wrote 4 bytes to scale
-dev '​cf-ad9361-dds-core-lpc',​ channel '​altvoltage3'​ (output), id '​TX1_I_F2',​ attr '​scale',​ value '0.400024'+dev '​cf-ad9361-dds-core-lpc',​ channel '​altvoltage3'​ (output), id '​TX1_I_F2',​ attr '​scale',​ value '0.000000'​ 
 +</​xterm>​ 
 +  - Set the sample rate to something reasonable for the DDS frequency<​xterm>​ 
 +analog@imhotep:​~$ **iio_attr -a -i -c ad9361-phy voltage0 sampling_frequency 3000000** 
 +Using auto-detected IIO context at URI "​usb:​2.29.5"​ 
 +dev '​ad9361-phy',​ channel '​voltage0'​ (input), attr '​sampling_frequency',​ value '​3000000'​ 
 +wrote 8 bytes to sampling_frequency 
 +dev '​ad9361-phy',​ channel '​voltage0'​ (input), attr '​sampling_frequency',​ value '​3000000'
 </​xterm>​ </​xterm>​
   - capture 1024 samples in 256 sample buffers <​xterm>​analog@imhotep:​~$ **iio_readdev -u usb:3.80.5 -b 256 -s 1024 cf-ad9361-lpc > samples.dat**   - capture 1024 samples in 256 sample buffers <​xterm>​analog@imhotep:​~$ **iio_readdev -u usb:3.80.5 -b 256 -s 1024 cf-ad9361-lpc > samples.dat**
Line 100: Line 107:
 0000080 ​  ​01431 ​  ​00225 ​  ​01401 ​  ​00370 ​  ​01356 ​  ​00512 ​  ​01296 ​  00648 0000080 ​  ​01431 ​  ​00225 ​  ​01401 ​  ​00370 ​  ​01356 ​  ​00512 ​  ​01296 ​  00648
 </​xterm>​ </​xterm>​
-  - plot the results in gnuplot:<​xterm>​analog@imhotep:​~$ ​.**gnuplot**+  - plot the results in gnuplot:<​xterm>​analog@imhotep:​~$ **gnuplot**
 gnuplot> **plot '​samples.dat'​ binary format='​%short%short'​ using 1 with lines, '​samples.dat'​ binary format='​%short%short'​ using 2 with lines** gnuplot> **plot '​samples.dat'​ binary format='​%short%short'​ using 1 with lines, '​samples.dat'​ binary format='​%short%short'​ using 2 with lines**
-</​xterm>​{{:​resources:​tools-software:​linux-software:​libiio:​readdev_gnuplot.png?​600|}} +</​xterm>​{{ :​resources:​tools-software:​linux-software:​libiio:​sine_wave_pluto.png?600 |}} 
-  - you can see from the discontinuities ​that the sample rate is too high, so check that.<​xterm>​analog@imhotep:​~$ **iio_attr -a -i -c ad9361-phy voltage0 sampling_frequency**+  - If you can see discontinuities ​then the sample rate is too high, so check that.<​xterm>​analog@imhotep:​~$ **iio_attr -a -i -c ad9361-phy voltage0 sampling_frequency**
 dev '​ad9361-phy',​ channel '​voltage0'​ (input), attr '​sampling_frequency',​ value '​30720000'​ dev '​ad9361-phy',​ channel '​voltage0'​ (input), attr '​sampling_frequency',​ value '​30720000'​
 </​xterm>​You can expect that 30.72 MSPS is too fast to stream over USB with zero gaps between buffers. Increasing the buffer length is the best thing to do. </​xterm>​You can expect that 30.72 MSPS is too fast to stream over USB with zero gaps between buffers. Increasing the buffer length is the best thing to do.
resources/tools-software/linux-software/libiio/iio_readdev.txt · Last modified: 30 May 2019 02:35 by Travis Collins