Exemple #1
0
def SPI_SRAM_23K256_Init(ftdic):
    # Write Status byte to disable HOLD function
    cmd = [ftdi.SET_BITS_LOW, 0x00, 0x0B, 0x34, 0x01, 0x00, 0x01, 0x01, ftdi.SET_BITS_LOW, 0x08, 0x0B]
    cmdstring = ""
    cmdstringview = ""
    for i in range(len(cmd)):
        cmdstring += chr(cmd[i])
        cmdstringview +=  '0x%02X,' % (cmd[i])
    ret = ftdi.write_data( ftdic, cmdstring, len(cmdstring) )
    if (DEBUG_LEVEL > 1):
        print "\nSending:", cmdstringview, "ret=", ret

    # Read Status bytes
    cmd = [ftdi.SET_BITS_LOW, 0x00, 0x0B, 0x34, 0x01, 0x00, 0x05, 0xFF, ftdi.SET_BITS_LOW, 0x08, 0x0B]
    cmdstring = ""
    cmdstringview = ""
    for i in range(len(cmd)):
        cmdstring += chr(cmd[i])
        cmdstringview +=  '0x%02X,' % (cmd[i])
    ret = ftdi.write_data( ftdic, cmdstring, len(cmdstring) )
    if (DEBUG_LEVEL > 1):
        print "\nSending:", cmdstringview, "ret=", ret, "\n"

    ret, data = ftdi.read_data(ftdic, 4)
    st = ""
    for i in range(ret):
        st += '0x%02X,' % ord(data[i])
    if (DEBUG_LEVEL > 0):
        print "Status Byte = 0x%02X" % ord(data[3]), "\n"
Exemple #2
0
def SPI_SRAM_23K256_Init(ftdic):
    # Write Status byte to disable HOLD function
    cmd = [
        ftdi.SET_BITS_LOW, 0x00, 0x0B, 0x34, 0x01, 0x00, 0x01, 0x01,
        ftdi.SET_BITS_LOW, 0x08, 0x0B
    ]
    cmdstring = ""
    cmdstringview = ""
    for i in range(len(cmd)):
        cmdstring += chr(cmd[i])
        cmdstringview += '0x%02X,' % (cmd[i])
    ret = ftdi.write_data(ftdic, cmdstring, len(cmdstring))
    if (DEBUG_LEVEL > 1):
        print "\nSending:", cmdstringview, "ret=", ret

    # Read Status bytes
    cmd = [
        ftdi.SET_BITS_LOW, 0x00, 0x0B, 0x34, 0x01, 0x00, 0x05, 0xFF,
        ftdi.SET_BITS_LOW, 0x08, 0x0B
    ]
    cmdstring = ""
    cmdstringview = ""
    for i in range(len(cmd)):
        cmdstring += chr(cmd[i])
        cmdstringview += '0x%02X,' % (cmd[i])
    ret = ftdi.write_data(ftdic, cmdstring, len(cmdstring))
    if (DEBUG_LEVEL > 1):
        print "\nSending:", cmdstringview, "ret=", ret, "\n"

    ret, data = ftdi.read_data(ftdic, 4)
    st = ""
    for i in range(ret):
        st += '0x%02X,' % ord(data[i])
    if (DEBUG_LEVEL > 0):
        print "Status Byte = 0x%02X" % ord(data[3]), "\n"
Exemple #3
0
def SPI_SRAM_23K256_Read_Byte(ftdic, address):
    cmd = [
        ftdi.SET_BITS_LOW, 0x00, 0x0B, 0x34, 0x03, 0x00, 0x03,
        int(0x00FF & (address >> 8)),
        int(0x00FF & address), 0xFF, ftdi.SET_BITS_LOW, 0x08, 0x0B
    ]
    cmdstring = ""
    cmdstringview = ""
    for i in range(len(cmd)):
        cmdstring += chr(cmd[i])
        cmdstringview += '0x%02X,' % (cmd[i])
    ret = ftdi.write_data(ftdic, cmdstring, len(cmdstring))
    if (DEBUG_LEVEL > 1):
        print "\nSending:", cmdstringview, "ret=", ret, "\n"

    ret, data = ftdi.read_data(ftdic, 4)
    if (DEBUG_LEVEL > 1):
        st = ""
        for i in range(ret):
            st += '0x%02X,' % ord(data[i])
        print "Received:", st, "ret=", ret, "\n"
    if (DEBUG_LEVEL > 0):
        print "Data at address 0x%04X" % address, "= 0x%02X" % ord(
            data[3]), "\n"
    return ord(data[3])
Exemple #4
0
def SPI_SRAM_23K256_Write_Byte(ftdic, address, databyte):
    cmd = [ftdi.SET_BITS_LOW, 0x00, 0x0B, 0x34, 0x03, 0x00, 0x02, int(0x00FF & (address >> 8)), int(0x00FF & address), int(databyte), ftdi.SET_BITS_LOW, 0x08, 0x0B]
    cmdstring = ""
    cmdstringview = ""
    for i in range(len(cmd)):
        cmdstring += chr(cmd[i])
        cmdstringview +=  '0x%02X,' % (cmd[i])
    ret = ftdi.write_data( ftdic, cmdstring, len(cmdstring) )
    if (DEBUG_LEVEL > 1):
        print "\nSending:", cmdstringview, "ret=", ret, "\n"

    ret, data = ftdi.read_data(ftdic, 4)
    if (DEBUG_LEVEL > 1):
        st = ""
        for i in range(ret):
            st += '0x%02X,' % ord(data[i])
        print "Received:", st, "ret=", ret, "\n"
    if (DEBUG_LEVEL > 0):
        print "Data written to address 0x%04X" % address, "= 0x%02X" % int(databyte), "\n"
Exemple #5
0
    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"

    # set clock divisor to 0 so that SK stays at 6MHz
    cmd = [ftdi.TCK_DIVISOR, 0x00, 0x00]
    chrcmd = ""
    for i in range(len(cmd)):
        chrcmd += chr(cmd[i])
    print "Clock Divisor ret =", ftdi.write_data( ftdic, chrcmd, len(chrcmd) ), "\n"

    # set up IO lines for SPI
    # Val = 0x08 = 0b00001000 --> 0,0,0,0,CS=1,DI=0,DO=0,SK=0
    # Dir = 0x0B = 0b00001011 --> 0,0,0,0,CS=out,DI=in,DO=out,SK=out
    cmd = [ftdi.SET_BITS_LOW, 0x08, 0x0B]
    chrcmd = ""
    for i in range(len(cmd)):
        chrcmd += chr(cmd[i])
Exemple #6
0
    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)
print ''

# read pins
ret, pins = ftdi.read_pins(ftdic)
print 'pins:',
Exemple #7
0
    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"

    # set clock divisor to 0 so that SK stays at 6MHz
    cmd = [ftdi.TCK_DIVISOR, 0x00, 0x00]
    chrcmd = ""
    for i in range(len(cmd)):
        chrcmd += chr(cmd[i])
    print "Clock Divisor ret =", ftdi.write_data(ftdic, chrcmd,
                                                 len(chrcmd)), "\n"

    # set up IO lines for SPI
    # Val = 0x08 = 0b00001000 --> 0,0,0,0,CS=1,DI=0,DO=0,SK=0
    # Dir = 0x0B = 0b00001011 --> 0,0,0,0,CS=out,DI=in,DO=out,SK=out
    cmd = [ftdi.SET_BITS_LOW, 0x08, 0x0B]
    chrcmd = ""
    for i in range(len(cmd)):
Exemple #8
0
    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 )
print ''


# read pins
ret, pins = ftdi.read_pins( ftdic )