From: Dan White Date: Fri, 2 Nov 2012 23:38:07 +0000 (-0500) Subject: Store local ftdi module ref in I2C X-Git-Tag: bootrom-initial-submission~49 X-Git-Url: http://git.whiteaudio.com/gitweb/?a=commitdiff_plain;h=1c99e46ffc0299bf4fc34de7f709721375f7a4e8;p=430.git Store local ftdi module ref in I2C --- diff --git a/python-lib/usbio.py b/python-lib/usbio.py index 3fc2668..e088fce 100644 --- a/python-lib/usbio.py +++ b/python-lib/usbio.py @@ -103,24 +103,25 @@ class I2C(object): 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) @@ -128,15 +129,15 @@ class I2C(object): 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 @@ -145,15 +146,15 @@ class I2C(object): 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 @@ -262,7 +263,7 @@ class I2C(object): #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.""" @@ -272,24 +273,24 @@ class I2C(object): #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