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-transceiver:adrv9002-customization [24 Jun 2020 18:15] Nuno Sáresources:tools-software:linux-drivers:iio-transceiver:adrv9002-customization [07 Jan 2021 20:24] (current) – Add examples of split and mimo devtrees Travis Collins
Line 8: Line 8:
 If unsure please see the manual or don't change!  If unsure please see the manual or don't change! 
 </WRAP> </WRAP>
 +
 +====== RX and TX Channels ======
 +
 +ADRV9002 can operate different RX and TX channels at different rates due to the flexibility of the hardware. Making it possible to run four channels (TX1,TX2,RX1,RX2) all at different rates. However, this will require a specific configuration in devicetree to make this possible.
 +
 +The two main categories are combined DMA mode, which we refer to as MIMO mode, and a split DMA mode. In the first case, a single DMA driver is instantiated with up to four channels (two complex) per data direction. This allows for synchronous capture between RX1 and RX2 or transmission with TX1 and TX2. Alternatively, in split mode two drivers per direction will be instantiated. This is typically used when different rates are needed between channels and data transfers between channels are not required to by synchronous.
 +
 +For examples of these arrangements, look at the following devicetrees:
 +  * [[linux.github>e2d92f9152d49473a887aad70486855e5843faa5/arch/arm64/boot/dts/xilinx|MIMO (combined) mode]]
 +  * [[linux.github>e2d92f9152d49473a887aad70486855e5843faa5/arch/arm64/boot/dts/xilinx|Split mode]]
  
 ====== RX ====== ====== RX ======
Line 58: Line 68:
 | adi,sync-pulse-gain-counter-en | 0 | Enable the AGC gain update counter to be sync'ed to a time-slot boundary. | | adi,sync-pulse-gain-counter-en | 0 | Enable the AGC gain update counter to be sync'ed to a time-slot boundary. |
 | adi,fast-recovery-loop-en | 0 | Enable multiple time constants in AGC loop for fast attack and fast recovery. |  | adi,fast-recovery-loop-en | 0 | Enable multiple time constants in AGC loop for fast attack and fast recovery. | 
-| adi,power-measurement-en | 1 | Enable the Rx power measurement block |+| adi,no-power-measurement-en | 1 | Disable the Rx power measurement block |
 | adi,power-under-range-high-threshold | 4 | Threshold which defines the lower boundary on the stable region of the power detect gain control mode. Valid Range from 0 to 127. | | adi,power-under-range-high-threshold | 4 | Threshold which defines the lower boundary on the stable region of the power detect gain control mode. Valid Range from 0 to 127. |
 | adi,power-under-range-low-threshold | 0 | Offset from adi,power-under-range-high-threshold which defines the outer boundary of the power based AGC convergence. Valid offset from 0 to 15 |  | adi,power-under-range-low-threshold | 0 | Offset from adi,power-under-range-high-threshold which defines the outer boundary of the power based AGC convergence. Valid offset from 0 to 15 | 
Line 82: Line 92:
 | adi,peak-apd-gain-step-attack | 4 | AGC APD peak detect attack gain step. Valid range is 0 to 31. | | adi,peak-apd-gain-step-attack | 4 | AGC APD peak detect attack gain step. Valid range is 0 to 31. |
 | adi,peak-apd-gain-step-recovery | 0 | AGC APD gain index step size for recovery. Valid range is 0 to 31. | | adi,peak-apd-gain-step-recovery | 0 | AGC APD gain index step size for recovery. Valid range is 0 to 31. |
-| adi,peak-hb-overload-en | 1 | Enable or disables the HB overload detector. |+| adi,no-peak-hb-overload-en | 1 | Disable the HB overload detector. |
 | adi,peak-hb-overload-duration-count | 1 | Sets the window of clock cycles (at the HB output rate) to meet the overload count. (0 = 2 cycles, 1 = 4 cycles, 2 = 8 cycles, 3 = 12 cycles, 4 = 16 cycles, 5 = 24 cycles, 6 = 32 cycles). | | adi,peak-hb-overload-duration-count | 1 | Sets the window of clock cycles (at the HB output rate) to meet the overload count. (0 = 2 cycles, 1 = 4 cycles, 2 = 8 cycles, 3 = 12 cycles, 4 = 16 cycles, 5 = 24 cycles, 6 = 32 cycles). |
 | adi,peak-hb-overload-threshold-count | 1 | Sets the number of actual overloads required to trigger the overload signal. Valid range from 1 to 15. | | adi,peak-hb-overload-threshold-count | 1 | Sets the number of actual overloads required to trigger the overload signal. Valid range from 1 to 15. |
Line 106: Line 116:
 | adi,increment-step-size | 1 | Number of indices to increase gain on rising edge on incrementPin (Range: 1 to 7) | | adi,increment-step-size | 1 | Number of indices to increase gain on rising edge on incrementPin (Range: 1 to 7) |
 | adi,decrement-step-size | 1 | Number of indices to decrease gain on rising edge on decrementPin (Range: 1 to 7)| | adi,decrement-step-size | 1 | Number of indices to decrease gain on rising edge on decrementPin (Range: 1 to 7)|
-| adi,increment-pin | NA | A rising edge on this pin will increment gain by adi,increment-step-size. Valid range from 0 to 15. Mandatory property on this node. | +| adi,increment-pin | NA | A rising edge on this pin will increment gain by adi,increment-step-size. Valid range from 0 to 15. Mandatory property in this node. | 
-| adi,decrement-pin | NA | A rising edge on this pin will decrement gain by adi,decrement-step-size. Valid range from 0 to 15. Mandatory property on this node. |+| adi,decrement-pin | NA | A rising edge on this pin will decrement gain by adi,decrement-step-size. Valid range from 0 to 15. Mandatory property in this node. |
  
 ===== TX ===== ===== TX =====
Line 122: Line 132:
  tx@0 {  tx@0 {
  reg = <0>;  reg = <0>;
- adi,port = <0>;+ adi,port = <1>;
  adi,pinctrl = <&tx_pinctrl0>;  adi,pinctrl = <&tx_pinctrl0>;
  };  };
Line 128: Line 138:
  tx@1 {  tx@1 {
  reg = <1>;  reg = <1>;
- adi,port = <0>;+ adi,port = <1>;
  adi,pinctrl = <&tx_pinctrl1>;  adi,pinctrl = <&tx_pinctrl1>;
  };  };
Line 146: Line 156:
 ^ Devicetree property ^ Default ^ Description ^ ^ Devicetree property ^ Default ^ Description ^
 | adi,step-size-mdB | 50 | Step size of change in txAttenuation when a rising edge occurs on on either adi,increment-pin or adi,increment-pin. Range: 0 mdB to 1550 mdB, LSB = 50 mdB | | adi,step-size-mdB | 50 | Step size of change in txAttenuation when a rising edge occurs on on either adi,increment-pin or adi,increment-pin. Range: 0 mdB to 1550 mdB, LSB = 50 mdB |
-| adi,increment-pin | NA | When a rising edge occurs on this GPIO pin, txAttenuation will increment by stepSize_mdB. Valid range from 0 to 15. Mandatory property on this node. | +| adi,increment-pin | NA | When a rising edge occurs on this GPIO pin, txAttenuation will increment by stepSize_mdB. Valid range from 0 to 15. Mandatory property in this node. | 
-| adi,decrement-pin | NA | When a rising edge occurs on this GPIO pin, txAttenuation will decrement by adi,step-size-mdB. Valid range from 0 to 15. Mandatory property on this node. |+| adi,decrement-pin | NA | When a rising edge occurs on this GPIO pin, txAttenuation will decrement by adi,step-size-mdB. Valid range from 0 to 15. Mandatory property in this node. |
  
 ===== GPIO Settings ===== ===== GPIO Settings =====
Line 168: Line 178:
  
 ^ Devicetree property ^ Default ^ Description ^ ^ Devicetree property ^ Default ^ Description ^
-| reg | NA | Gpio number. Mandatory property on this node. | +| reg | NA | Gpio number. Mandatory property in this node. | 
-| adi,signal | NA | Defines the function of this gpio. Valid range from 0 to 19. Mandatory property on this node. |+| adi,signal | NA | Defines the function of this gpio. Valid range from 0 to 19. Mandatory property in this node. |
 | adi,polarity | 0 | Polarity of the GPIO pin (normal or inverted). 0 - normal, 1 - inverted| | adi,polarity | 0 | Polarity of the GPIO pin (normal or inverted). 0 - normal, 1 - inverted|
 | adi,master | 0 | Whether BBIC or ADRV9001 controls this pin. 0 - BBIC, 2 - ADRV9002 | | adi,master | 0 | Whether BBIC or ADRV9001 controls this pin. 0 - BBIC, 2 - ADRV9002 |
resources/tools-software/linux-drivers/iio-transceiver/adrv9002-customization.1593015344.txt.gz · Last modified: 24 Jun 2020 18:15 by Nuno Sá