Usrp / lftx ptt


i want to connect a RF power amplifier (PA) to the USRP / LFTX board.
It is recommended to control the PA with an external signal to switch it
from standby mode into transmit mode.

The amplifier has an input for PTT- control so i need a logic signal
from the USRP / LFTX board which indicates transmitting.
(Fitting two signal levels together would not be a problem.)

Is there any output signal on the USRP / LFTX board which i can use for
my application?

Thanks a lot!


On Mon, Sep 07, 2009 at 09:35:41AM +0200, Faschingbauer, Alexander

Thanks a lot!


You can use one of the 3.3V i/o pins on the header to control the PA.
You’ll probably want to enable “auto TR” mode and configure it so that
it drives the pin the way you want depending on whether or not there
is data in the Tx fifo.

I believe Johnathan did something like this for one of his apps,
including a possible time delay, but I don’t see the interface.
(Not sure if that part’s in the standard FPGA build or not.)


From usrp_basic.h: (these docs are for the common_* versions. You’ll
want to use the normal write_atr_* versions.) The values are the


  • \brief Automatic Transmit/Receive switching
  • If automatic transmit/receive (ATR) switching is enabled in the
  • FR_ATR_CTL register, the presence or absence of data in the FPGA
  • transmit fifo selects between two sets of values for each of the 4
  • banks of daughterboard i/o pins.
  • Each daughterboard slot has 3 16-bit registers associated with it:
  • FR_ATR_MASK_{0,1,2,3}:
  • These registers determine which of the daugherboard i/o pins are
  • affected by ATR switching. If a bit in the mask is set, the
  • corresponding i/o bit is controlled by ATR, else it’s output
  • value comes from the normal i/o pin output register:
  • FR_IO_{0,1,2,3}.
  • FR_ATR_TXVAL_{0,1,2,3}:
  • FR_ATR_RXVAL_{0,1,2,3}:
  • If the Tx fifo contains data, then the bits from TXVAL that are
  • selected by MASK are output. Otherwise, the bits from RXVAL that
  • are selected by MASK are output.

bool common_write_atr_mask(txrx_t txrx, int which_side, int value);
bool common_write_atr_txval(txrx_t txrx, int which_side, int value);
bool common_write_atr_rxval(txrx_t txrx, int which_side, int value);

virtual bool write_atr_mask(int which_side, int value) = 0;
virtual bool write_atr_txval(int which_side, int value) = 0;
virtual bool write_atr_rxval(int which_side, int value) = 0;