I'm trying to use the GPIO ATR functionality on an E310 using a 'Python Snippet' block in Gnuradio. I have code that works this way for a B210 and am adapting it to work for the E310. However, I have not had any success. The get_gpio_attr READBACK attribute (reads back input GPIOs but can also read which output pins are high) print statements indicate GPIO data pin 6 should be high but there is nothing there when checked with a voltmeter. I'm happy to provide any additional information. Thanks, Ethan
E310 GPIO ATR code #################################### # CHANGING GPIO STATE FOR E310 # #################################### import uhd ATR_GPIO_MASK = 0b111111 # 1=atr 0=manual ATR_CTRL = 0b111111 # 1=output 0=input ATR_DDR = 0b111111 # 1=high on 0=nothing ATR_0X = 0b100000 ATR_RX = 0b010000 ATR_TX = 0b001000 ATR_XX = 0b000100 # find usrp device USRP_E310 = uhd.usrp.MultiUSRP('serial=F644E0') # find usrp gpio port name BANK_NAME = USRP_E310.get_gpio_banks(0)[0] print('\n\n') print( USRP_E310.get_gpio_attr(BANK_NAME, 'CTRL') ) print( USRP_E310.get_gpio_attr(BANK_NAME, 'DDR') ) print( USRP_E310.get_gpio_attr(BANK_NAME, 'OUT') ) print( USRP_E310.get_gpio_attr(BANK_NAME, 'ATR_0X') ) print( USRP_E310.get_gpio_attr(BANK_NAME, 'ATR_RX') ) print( USRP_E310.get_gpio_attr(BANK_NAME, 'ATR_TX') ) print( USRP_E310.get_gpio_attr(BANK_NAME, 'ATR_XX') ) print( USRP_E310.get_gpio_attr(BANK_NAME, 'READBACK') ) print('\n\n') # configure gpio for atr operation USRP_E310.set_gpio_attr(BANK_NAME, 'CTRL', ATR_CTRL, ATR_GPIO_MASK) USRP_E310.set_gpio_attr(BANK_NAME, 'DDR', ATR_DDR, ATR_GPIO_MASK) USRP_E310.set_gpio_attr(BANK_NAME, 'ATR_0X', ATR_0X, ATR_GPIO_MASK) USRP_E310.set_gpio_attr(BANK_NAME, 'ATR_RX', ATR_RX, ATR_GPIO_MASK) USRP_E310.set_gpio_attr(BANK_NAME, 'ATR_TX', ATR_TX, ATR_GPIO_MASK) USRP_E310.set_gpio_attr(BANK_NAME, 'ATR_XX', ATR_XX, ATR_GPIO_MASK) print('\n\n') print( USRP_E310.get_gpio_attr(BANK_NAME, 'CTRL') ) print( USRP_E310.get_gpio_attr(BANK_NAME, 'DDR') ) print( USRP_E310.get_gpio_attr(BANK_NAME, 'OUT') ) print( USRP_E310.get_gpio_attr(BANK_NAME, 'ATR_0X') ) print( USRP_E310.get_gpio_attr(BANK_NAME, 'ATR_RX') ) print( USRP_E310.get_gpio_attr(BANK_NAME, 'ATR_TX') ) print( USRP_E310.get_gpio_attr(BANK_NAME, 'ATR_XX') ) print( USRP_E310.get_gpio_attr(BANK_NAME, 'READBACK') ) print('\n\n') Print statement outputs 0 4294967295 0 0 0 0 0 0 63 < CTRL 4294967295 < DDR 0 < OUT 32 < 0X (idle) set for pin 6 16 < RX set for pin 5 8 < TX set for pin 4 4 < XX (full duplex) set for pin 3 32 < READBACK detects high on pin 6
_______________________________________________ USRP-users mailing list -- usrp-users@lists.ettus.com To unsubscribe send an email to usrp-users-le...@lists.ettus.com