Wiki

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
university:tools:pluto:controlling_the_transceiver_and_transferring_data [28 Apr 2017 15:58]
Michael Hennerich [Controlling the transceiver]
university:tools:pluto:controlling_the_transceiver_and_transferring_data [18 Dec 2020 17:55] (current)
Rob Riggs Fix broken link to IIO High Speed doc
Line 13: Line 13:
   * [[https://​git.kernel.org/​pub/​scm/​linux/​kernel/​git/​torvalds/​linux.git/​tree/​Documentation/​ABI/​testing | IIO Linux Kernel Documentation sysfs-bus-iio-*]]   * [[https://​git.kernel.org/​pub/​scm/​linux/​kernel/​git/​torvalds/​linux.git/​tree/​Documentation/​ABI/​testing | IIO Linux Kernel Documentation sysfs-bus-iio-*]]
   * [[http://​git.kernel.org/?​p=linux/​kernel/​git/​gregkh/​staging.git;​a=tree;​f=drivers/​staging/​iio/​Documentation;​hb=refs/​heads/​staging-next | IIO Documentation]]   * [[http://​git.kernel.org/?​p=linux/​kernel/​git/​gregkh/​staging.git;​a=tree;​f=drivers/​staging/​iio/​Documentation;​hb=refs/​heads/​staging-next | IIO Documentation]]
-  * [[http://events.linuxfoundation.org/​sites/​events/​files/​slides/​iio_high_speed.pdf|IIO High Speed]]+  * [[https://events.static.linuxfound.org/​sites/​events/​files/​slides/​iio_high_speed.pdf|IIO High Speed]]
   * [[http://​ftp.heanet.ie/​mirrors/​fosdem-video/​2015/​devroom-software_defined_radio/​iiosdr.mp4|Video from FOSDEM of how IIO is used in SDR applications]]   * [[http://​ftp.heanet.ie/​mirrors/​fosdem-video/​2015/​devroom-software_defined_radio/​iiosdr.mp4|Video from FOSDEM of how IIO is used in SDR applications]]
   * [[https://​www.youtube.com/​watch?​v=CS9NuRBzN5Y|libiio API introduction presentation video]]   * [[https://​www.youtube.com/​watch?​v=CS9NuRBzN5Y|libiio API introduction presentation video]]
Line 22: Line 22:
 It shows how to control the AD936x transceiver via a remote connection. It shows how to control the AD936x transceiver via a remote connection.
  
-  - Create IIO IP Network context. Instead of ip:​xxx.xxx.xxx.xxx it'll also accept usb:XX.XX.X+  - Create IIO IP Network context. Instead of ''​ip:​xxx.xxx.xxx.xxx'' ​it'll also accept ​''​usb:XX.XX.X''​
   - Get the AD936x PHY device structure   - Get the AD936x PHY device structure
-  - Find and write the TX LO frequency +  - Set the TX LO frequency ​(see [[resources:​tools-software:​linux-drivers:​iio-transceiver:​ad9361|AD9361 device driver documentation]]) ​ 
-  - Find and write RX baseband rate+  - Set RX baseband rate
    
 +\\
 <code c> <code c>
 +#include <​iio.h>​
 +
 int main (int argc, char **argv) int main (int argc, char **argv)
 { {
Line 33: Line 36:
  struct iio_device *phy;  struct iio_device *phy;
  
- ctx =  iio_create_context_from_uri("​ip:​192.168.2.1"​);​+ ctx = iio_create_context_from_uri("​ip:​192.168.2.1"​);​
  
  phy = iio_context_find_device(ctx,​ "​ad9361-phy"​);​  phy = iio_context_find_device(ctx,​ "​ad9361-phy"​);​
Line 45: Line 48:
  iio_device_find_channel(phy,​ "​voltage0",​ false),  iio_device_find_channel(phy,​ "​voltage0",​ false),
  "​sampling_frequency",​  "​sampling_frequency",​
- 50000000); /* RX baseband rate 50 MSPS */+ 5000000); /* RX baseband rate MSPS */
  
  receive(ctx);​  receive(ctx);​
Line 56: Line 59:
  
 ===== Receiving data ===== ===== Receiving data =====
 +
 +  - Get the RX capture device structure
 +  - Get the IQ input channels
 +  - Enable I and Q channel
 +  - Create the RX buffer
 +  - Fill the buffer ​
 +  - Process samples
 +
 +\\
  
 <code c> <code c>
university/tools/pluto/controlling_the_transceiver_and_transferring_data.1493387928.txt.gz · Last modified: 28 Apr 2017 15:58 by Michael Hennerich