self.DELAY = delay
self.TIMEOUT = timeout
- self.context = ftdi.new()
- ftdi.set_interface(self.context, interface)
- ftdi.write_data_set_chunksize(self.context, 1)
- ftdi.read_data_set_chunksize(self.context, 1)
+ self.ftdi = ftdi #local reference to speed lookups
+ self.context = self.ftdi.new()
+ self.ftdi.set_interface(self.context, interface)
+ self.ftdi.write_data_set_chunksize(self.context, 1)
+ self.ftdi.read_data_set_chunksize(self.context, 1)
self.io = intbv(0xff)[8:]
self.io[scl] = 1
self.io[sda] = 1
self.port = intbv(0)[8:]
- ftdi.set_bitmode(self.context, int(self.io), ftdi.BITMODE_BITBANG)
+ self.ftdi.set_bitmode(self.context, int(self.io), self.ftdi.BITMODE_BITBANG)
- e = ftdi.usb_open(self.context, vid, pid)
+ e = self.ftdi.usb_open(self.context, vid, pid)
if e != 0:
raise Exception, 'Could not open usb device, error: %i' % e
- ftdi.set_baudrate(self.context, 1000)
- ftdi.usb_purge_buffers(self.context)
+ self.ftdi.set_baudrate(self.context, 1000)
+ self.ftdi.usb_purge_buffers(self.context)
self.started = False
self.set_pindir(pindir)
def _clear_scl(self):
self.io[self.scl] = 1
- ftdi.set_bitmode(self.context, int(self.io), ftdi.BITMODE_BITBANG)
+ self.ftdi.set_bitmode(self.context, int(self.io), self.ftdi.BITMODE_BITBANG)
self.port[self.scl] = 0
- ftdi.write_data(self.context, chr(self.port), 1)
+ self.ftdi.write_data(self.context, chr(self.port), 1)
def _read_scl(self):
if 1:
self.io[self.scl] = 0
- ftdi.set_bitmode(self.context, int(self.io), ftdi.BITMODE_BITBANG)
- port = ftdi.read_pins(self.context)
+ self.ftdi.set_bitmode(self.context, int(self.io), self.ftdi.BITMODE_BITBANG)
+ port = self.ftdi.read_pins(self.context)
scl = intbv(ord(port[1]))[self.scl]
if scl:
return 1
def _clear_sda(self):
self.io[self.sda] = 1
- ftdi.set_bitmode(self.context, int(self.io), ftdi.BITMODE_BITBANG)
+ self.ftdi.set_bitmode(self.context, int(self.io), self.ftdi.BITMODE_BITBANG)
self.port[self.sda] = 0
- ftdi.write_data(self.context, chr(self.port), 1)
+ self.ftdi.write_data(self.context, chr(self.port), 1)
def _read_sda(self):
if 1:
self.io[self.sda] = 0
- ftdi.set_bitmode(self.context, int(self.io), ftdi.BITMODE_BITBANG)
- port = ftdi.read_pins(self.context)
+ self.ftdi.set_bitmode(self.context, int(self.io), self.ftdi.BITMODE_BITBANG)
+ port = self.ftdi.read_pins(self.context)
sda = intbv(ord(port[1]))[self.sda]
if sda:
return 1
#print 'io:', b(self.io, 8), '-->',
self.io[:] = d
#print b(self.io, 8)
- ftdi.set_bitmode(self.context, int(self.io), ftdi.BITMODE_BITBANG)
+ self.ftdi.set_bitmode(self.context, int(self.io), self.ftdi.BITMODE_BITBANG)
def set_pinstate(self, bitfield):
"""Set GPIO pins to given bitfield state, ignoring scl/sda pins."""
#print 'port:', b(self.port, 8), '-->',
self.port[:] = bits
#print b(self.port, 8)
- ftdi.write_data(self.context, chr(self.port), 1)
+ self.ftdi.write_data(self.context, chr(self.port), 1)
def get_pinstate(self):
"""Return the state of all the pins.
"""
- return ftdi.read_pins(self.context)
+ return self.ftdi.read_pins(self.context)
def RESET(self, value):
"""Set pin connected to RESET line on devboard."""
reset_pin = 6
self.port[reset_pin] = intbv(value, max=2**1)
- ftdi.write_data(self.context, chr(self.port), 1)
+ self.ftdi.write_data(self.context, chr(self.port), 1)
def NCO_CLK(self, value):
"""Set pin connected to NCO_CLK line on devboard."""
clk_pin = 7
self.port[clk_pin] = intbv(value, max=2**1)
- ftdi.write_data(self.context, chr(self.port), 1)
+ self.ftdi.write_data(self.context, chr(self.port), 1)
def dump_config(self):
"""Return a dict suitable for sending to __init__() to restore