USRP2 set_gpio_ddr

I did a bench experiment here and observed that set_gpio_ddr is required
on a tx card but not an rx card. Is this intended?

Here is iotest.py (Python 2.5 required for ternary I used)

#!/usr/bin/env python

I2C_DEV_EEPROM = 0x50 # 24LC02[45]: 7-bits 1010xxx
I2C_ADDR_BOOT = (I2C_DEV_EEPROM | 0x0)
I2C_ADDR_TX_A = (I2C_DEV_EEPROM | 0x4)
I2C_ADDR_RX_A = (I2C_DEV_EEPROM | 0x5)
I2C_ADDR_TX_B = (I2C_DEV_EEPROM | 0x6)
I2C_ADDR_RX_B = (I2C_DEV_EEPROM | 0x7)

from gnuradio import uhd
from gnuradio import eng_notation
from gnuradio.eng_option import eng_option
from optparse import OptionParser
import time

if name == ‘main’:
device = uhd.usrp_sink(
device_addr=“addr=192.168.10.2”,
io_type=uhd.io_type_t.COMPLEX_FLOAT32,
num_channels=1,
)
cmd_handle = device.get_dboard_iface()
cmd_handle.set_gpio_ddr(uhd.dboard_iface.UNIT_TX, 0xFFFF, 0xFFFF)
#cmd_handle.set_gpio_ddr(uhd.dboard_iface.UNIT_RX, 0xFFFF, 0xFFFF)
toggle = False
while True:
print (“True” if toggle else “False”)
cmd_handle.set_gpio_out(uhd.dboard_iface.UNIT_TX, (0xFFFF if
toggle else 0x0000), 0xFFFF)
cmd_handle.set_gpio_out(uhd.dboard_iface.UNIT_RX, (0xFFFF if
toggle else 0x0000), 0xFFFF)
toggle = ~toggle
time.sleep(1)

On 05/10/2011 08:46 PM, Brett L. Trotter wrote:

I did a bench experiment here and observed that set_gpio_ddr is required
on a tx card but not an rx card. Is this intended?

yup, see the constructors in host/lib/usrp/dboard/db_basic_and_lf.cpp