[USRP-users] USRP N321 GPIO

Sergio Pastor Tur serpastu at iteam.upv.es
Fri Jul 3 03:59:04 EDT 2020


Hi!



We are deploying a 5G network using open source platform called  
"Openairinterface" (oai) and we have found a issue with oai code and  
usrp model. Specifically , we think the problem is caused because OAI  
uhd code tries to configure some GPIO pins in other to implement  
full-duplex transmission but, as you know, USRP N321 don't have GPIO  
interface. We need to use those pins to run gNB properly.



Are there any other ways to configure full-duplex mode without GPIO interface?



Please find additional information below.



Thank you in advance!

-- 

Sergio Pastor Tur

iTeam Research Institute



---------------------------------- Additional  
info---------------------------------------



Setup description:

Linux 18.04 64 bits running on Supermicro server 32 CPU Cores and 64 GB RAM)

USRP N321

UHD version: UHD_3.14.1.HEAD-0-g0347a6d8 (additional UHD and USRP info  
attached below)







---------------------------------- OAI UHD Code (full code attached  
below)---------------------------------------

/*! \brief Called to start the USRP transceiver. Return 0 if OK, < 0 if error
     @param device pointer to the device structure specific to the RF  
hardware target
*/
static int trx_usrp_start(openair0_device *device) {
   usrp_state_t *s = (usrp_state_t *)device->priv;

   // setup GPIO for TDD, GPIO(4) = ATR_RX
   //set data direction register (DDR) to output
   s->usrp->set_gpio_attr("FP0", "DDR", 0xfff, 0xfff);
   //set lower 7 bits to be controlled automatically by ATR (the rest  
5 bits are controlled manually)
   s->usrp->set_gpio_attr("FP0", "CTRL", 0x7f,0xfff);
   //set pins 4 (RX_TX_Switch) and 6 (Shutdown PA) to 1 when the radio  
is only receiving (ATR_RX)
   s->usrp->set_gpio_attr("FP0", "ATR_RX", (1<<4)|(1<<6), 0x7f);
   // set pin 5 (Shutdown LNA) to 1 when the radio is transmitting and  
receiveing (ATR_XX)
   // (we use full duplex here, because our RX is on all the time -  
this might need to change later)
   s->usrp->set_gpio_attr("FP0", "ATR_XX", (1<<5), 0x7f);
   // set the output pins to 0
   s->usrp->set_gpio_attr("FP0", "OUT", 7<<7, 0xf80);
----------------------------------------------------------------------------------------------------------------------------------------



More information about the USRP-users mailing list