Demonstrate how to configure the FT230X USB UART bridge as follows:
max_power 500 mA
- CBUS3 Drive 1 (accomodate PCB error)
+ CBUS3 Drive 1 (accommodate PCB error)
"""
import sys
# Define class for displaying errors.
class ErrorMsg(Exception):
def __init__(self,message):
- self.message = message;
+ self.message = message
def __str__(self):
- return self.message;
+ return self.message
-# Function to convert CBUSH values to human-readable strings
+# Function to convert CBUSX values to human-readable strings
def cbush_string(value):
- if value == ftdi.CBUSH_AWAKE:
+ if value == ftdi.CBUSX_AWAKE:
return 'AWAKE'
- if value == ftdi.CBUSH_BAT_DETECT:
+ if value == ftdi.CBUSX_BAT_DETECT:
return 'BAT_DETECT'
- if value == ftdi.CBUSH_BAT_DETECT_NEG:
+ if value == ftdi.CBUSX_BAT_DETECT_NEG:
return 'BAT_DETECT_NEG'
- if value == ftdi.CBUSH_BB_RD:
+ if value == ftdi.CBUSX_BB_RD:
return 'BB_RD'
- if value == ftdi.CBUSH_BB_WR:
+ if value == ftdi.CBUSX_BB_WR:
return 'BB_WR'
- if value == ftdi.CBUSH_CLK15:
- return 'CLK15'
- if value == ftdi.CBUSH_CLK30:
- return 'CLK30'
- if value == ftdi.CBUSH_CLK7_5:
- return 'CLK7_5'
- if value == ftdi.CBUSH_DRIVE_0:
+ if value == ftdi.CBUSX_CLK24:
+ return 'CLK24'
+ if value == ftdi.CBUSX_CLK12:
+ return 'CLK12'
+ if value == ftdi.CBUSX_CLK6:
+ return 'CLK6'
+ if value == ftdi.CBUSX_DRIVE_0:
return 'DRIVE_0'
- if value == ftdi.CBUSH_DRIVE1:
+ if value == ftdi.CBUSX_DRIVE1:
return 'DRIVE_1'
- if value == ftdi.CBUSH_I2C_RXF:
+ if value == ftdi.CBUSX_I2C_RXF:
return 'I2C_RXF'
- if value == ftdi.CBUSH_I2C_TXE:
+ if value == ftdi.CBUSX_I2C_TXE:
return 'I2C_TXE'
- if value == ftdi.CBUSH_IOMODE:
+ if value == ftdi.CBUSX_IOMODE:
return 'IOMODE'
- if value == ftdi.CBUSH_PWREN:
+ if value == ftdi.CBUSX_PWREN:
return 'PWREN'
- if value == ftdi.CBUSH_RXLED:
+ if value == ftdi.CBUSX_RXLED:
return 'RXLED'
- if value == ftdi.CBUSH_SLEEP:
+ if value == ftdi.CBUSX_SLEEP:
return 'SLEEP'
- if value == ftdi.CBUSH_TIME_STAMP:
+ if value == ftdi.CBUSX_TIME_STAMP:
return 'TIME_STAMP'
- if value == ftdi.CBUSH_TRISTATE:
+ if value == ftdi.CBUSX_TRISTATE:
return 'TRISTATE'
- if value == ftdi.CBUSH_TXDEN:
+ if value == ftdi.CBUSX_TXDEN:
return 'TXDEN'
- if value == ftdi.CBUSH_TXLED:
+ if value == ftdi.CBUSX_TXLED:
return 'TXLED'
- if value == ftdi.CBUSH_TXRXLED:
+ if value == ftdi.CBUSX_TXRXLED:
return 'TXRXLED'
- if value == ftdi.CBUSH_VBUS_SENSE:
+ if value == ftdi.CBUSX_VBUS_SENSE:
return 'VBUS_SENSE'
return 'UNKNOWN'
# List all the FT230X devices.
nDevices, devlist = ftdi.usb_find_all(ftdic, 0x0403, 0x6015)
if nDevices < 0:
- raise ErrorMsg('ftdi.usb_find_all error = %s' % ftdi.get_error_string(ftdic));
+ raise ErrorMsg('ftdi.usb_find_all error = %s' % ftdi.get_error_string(ftdic))
elif nDevices == 0:
- raise ErrorMsg('No FT230X devices found');
+ raise ErrorMsg('No FT230X devices found')
elif nDevices != 1:
- raise ErrorMsg('More than one FT230X device found');
+ raise ErrorMsg('More than one FT230X device found')
# Display the identified single FT230X device.
ret, manufacturer, description, serial = ftdi.usb_get_strings(ftdic, devlist.dev)
print 'manufacturer="%s" description="%s" serial="%s"' % (manufacturer, description, serial)
# Open the identified single FT230X device.
- ret = ftdi.usb_open_desc(ftdic, 0x0403, 0x6015, description, serial);
+ ret = ftdi.usb_open_desc(ftdic, 0x0403, 0x6015, description, serial)
if ret < 0:
raise ErrorMsg('ftdi.usb_open_desc error = %s' % ftdi.get_error_string(ftdic))
print 'chip id=0x%08X' % (chipid % 2**32)
# Read the EEPROM
- ret = ftdi.read_eeprom(ftdic);
+ ret = ftdi.read_eeprom(ftdic)
if ret < 0:
raise ErrorMsg('ftdi.read_eeprom error = %s' % ftdi.get_error_string(ftdic))
sys.stdout.write(x)
else:
sys.stdout.write('.')
- sys.stdout.write('\n');
+ sys.stdout.write('\n')
# Read and display the EEPROM (in human readable format)
- ret = ftdi.eeprom_decode(ftdic, 1);
+ ret = ftdi.eeprom_decode(ftdic, 1)
if ret < 0:
raise ErrorMsg('ftdi.eeprom_decode error = %s' % ftdi.get_error_string(ftdic))
if ret < 0:
raise ErrorMsg('ftdi.get_eeprom_value error = %s' % ftdi.get_error_string(ftdic))
print 'initial CBUS3 = %d (%s)' % (value,cbush_string(value),)
- ret = ftdi.set_eeprom_value(ftdic,ftdi.CBUS_FUNCTION_3,ftdi.CBUSH_DRIVE1)
+ ret = ftdi.set_eeprom_value(ftdic,ftdi.CBUS_FUNCTION_3,ftdi.CBUSX_DRIVE1)
if ret < 0:
raise ErrorMsg('ftdi.set_eeprom_value error = %s' % ftdi.get_error_string(ftdic))
ret, value = ftdi.get_eeprom_value(ftdic,ftdi.CBUS_FUNCTION_3)
print 'EEPROM write not attempted'
# Close the ftdi context.
- ret = ftdi.usb_close(ftdic);
+ ret = ftdi.usb_close(ftdic)
if ret < 0:
- raise ErrorMsg('ftdi.usb_close error = %s' % ftdi.get_error_string(ftdic));
+ raise ErrorMsg('ftdi.usb_close error = %s' % ftdi.get_error_string(ftdic))
except ErrorMsg, msg:
- print >> sys.stderr, 'FATAL ERROR: ' + str(msg);
- exit(1);
+ print >> sys.stderr, 'FATAL ERROR: ' + str(msg)
+ exit(1)