예제 #1
0
 def __selectMeter(self, num):
     """ Select giver meter
     """
     if ftdi_type == 0:
         self.__ftdi.selectPort(usb_port[num])
     else:
         err = ftdi.set_bitmode(globals.ftdi_context, usb_port[num], ftdi.BITMODE_CBUS)
         if err < 0:
             logging.error("Can't set bitmode (%d, %s)" % (err, ftdi.get_error_string(globals.ftdi_context)))
             raise FtdiError("Can't set bitmode (%d, %s)" % (err, ftdi.get_error_string(globals.ftdi_context)))
         time.sleep(0.1)
예제 #2
0
 def __selectMeter(self, num):
     """ Select giver meter
     """
     if FTDI_TYPE == 0:
         self.__ftdi.selectPort(USB_PORT[num])
     else:
         err = ftdi.set_bitmode(self.context, USB_PORT[num],
                                ftdi.BITMODE_CBUS)
         if err < 0:
             self._log.error("Can't set bitmode (%d, %s)" %
                             (err, ftdi.get_error_string(self.context)))
             raise FtdiError("Can't set bitmode (%d, %s)" %
                             (err, ftdi.get_error_string(self.context)))
         time.sleep(0.1)
예제 #3
0
        print 'Device #%d: manufacturer="%s" description="%s" serial="%s"\n' % ( i, manufacturer, description, serial )
        curnode = curnode.next
        i += 1

    # open usb
    ret = ftdi.usb_open( ftdic, DEVICE_VID, DEVICE_PID )
    if ret < 0:
        print 'unable to open ftdi device: %d (%s)' % ( ret, ftdi.get_error_string( ftdic ) )
        os._exit( 1 )

    # read chip id
    #ret, chipid = ftdi.read_chipid( ftdic )
    #print 'FDTI chip id: %X\n' % chipid

    # MPSSE Mode
    ret = ftdi.set_bitmode( ftdic, 0xFF, ftdi.BITMODE_RESET )
    if ret < 0:
        print 'Cannot reset MPSSE'
        os._exit( 1 )
    time.sleep( 0.1 )
    ret = ftdi.set_bitmode( ftdic, 0xFF, ftdi.BITMODE_MPSSE )
    if ret < 0:
        print 'Cannot enable MPSSE Mode'
        os._exit( 1 )

    # enable Clock-Divider which will set SK to 6MHz
    cmd = [ftdi.EN_DIV_5]
    chrcmd = ""
    for i in range(len(cmd)):
        chrcmd += chr(cmd[i])
    print "Clock Divisor Disable ret =", ftdi.write_data( ftdic, chrcmd, len(chrcmd) ), "\n"
예제 #4
0
            ret, ftdi.get_error_string(ftdic))
        os._exit(1)
    print 'Device #%d: manufacturer="%s" description="%s" serial="%s"\n' % (
        i, manufacturer, description, serial)
    curnode = curnode.next
    i += 1

# open usb
ret = ftdi.usb_open(ftdic, 0x0403, 0x6001)
if ret < 0:
    print 'unable to open ftdi device: %d (%s)' % (
        ret, ftdi.get_error_string(ftdic))
    os._exit(1)

# bitbang
ret = ftdi.set_bitmode(ftdic, 0xff, ftdi.BITMODE_BITBANG)
if ret < 0:
    print 'Cannot enable bitbang'
    os._exit(1)
print 'turning everything on'
ftdi.write_data(ftdic, chr(0xff), 1)
time.sleep(1)
print 'turning everything off\n'
ftdi.write_data(ftdic, chr(0x00), 1)
time.sleep(1)
for i in range(8):
    val = 2**i
    print 'enabling bit #%d (0x%02x)' % (i, val)
    ftdi.write_data(ftdic, chr(val), 1)
    time.sleep(1)
ftdi.disable_bitbang(ftdic)
예제 #5
0
        curnode = curnode.next
        i += 1

    # open usb
    ret = ftdi.usb_open(ftdic, DEVICE_VID, DEVICE_PID)
    if ret < 0:
        print 'unable to open ftdi device: %d (%s)' % (
            ret, ftdi.get_error_string(ftdic))
        os._exit(1)

    # read chip id
    #ret, chipid = ftdi.read_chipid( ftdic )
    #print 'FDTI chip id: %X\n' % chipid

    # MPSSE Mode
    ret = ftdi.set_bitmode(ftdic, 0xFF, ftdi.BITMODE_RESET)
    if ret < 0:
        print 'Cannot reset MPSSE'
        os._exit(1)
    time.sleep(0.1)
    ret = ftdi.set_bitmode(ftdic, 0xFF, ftdi.BITMODE_MPSSE)
    if ret < 0:
        print 'Cannot enable MPSSE Mode'
        os._exit(1)

    # enable Clock-Divider which will set SK to 6MHz
    cmd = [ftdi.EN_DIV_5]
    chrcmd = ""
    for i in range(len(cmd)):
        chrcmd += chr(cmd[i])
    print "Clock Divisor Disable ret =", ftdi.write_data(
예제 #6
0
    if ret < 0:
        print 'ftdi_usb_get_strings failed: %d (%s)' % ( ret, ftdi.get_error_string( ftdic ) )
        os._exit( 1 )
    print 'Device #%d: manufacturer="%s" description="%s" serial="%s"\n' % ( i, manufacturer, description, serial )
    curnode = curnode.next
    i += 1

# open usb
ret = ftdi.usb_open( ftdic, 0x0403, 0x6001 )
if ret < 0:
    print 'unable to open ftdi device: %d (%s)' % ( ret, ftdi.get_error_string( ftdic ) )
    os._exit( 1 )


# bitbang
ret = ftdi.set_bitmode( ftdic, 0xff, ftdi.BITMODE_BITBANG )
if ret < 0:
    print 'Cannot enable bitbang'
    os._exit( 1 )
print 'turning everything on'
ftdi.write_data( ftdic, chr(0xff), 1 )
time.sleep( 1 )
print 'turning everything off\n'
ftdi.write_data( ftdic, chr(0x00), 1 )
time.sleep( 1 )
for i in range( 8 ):
    val = 2**i
    print 'enabling bit #%d (0x%02x)' % (i, val)
    ftdi.write_data( ftdic, chr(val), 1 )
    time.sleep ( 1 )
ftdi.disable_bitbang( ftdic )