OpenCores
URL https://opencores.org/ocsvn/vspi/vspi/trunk

Subversion Repositories vspi

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 4 to Rev 5
    Reverse comparison

Rev 4 → Rev 5

/vspi/trunk/scripts/master/spitest.py
0,0 → 1,82
from cheetah_py import *
from time import *
 
def print_usage():
print \
"""
usage: spitest.py PORT
"""
 
if (len(sys.argv) < 2):
print_usage()
sys.exit(1)
 
port = int(sys.argv[1])
mode = 2
bitrate = 40000 # kbps
byteCount = 11 # bytes
 
# Open the device
handle = ch_open(port)
if (handle <= 0):
print "Unable to open Cheetah device on port %d" % port
print "Error code = %d (%s)" % (handle, ch_status_string(handle))
sys.exit(1)
 
print "Opened Cheetah device on port %d" % port
 
ch_host_ifce_speed_string = ""
if (ch_host_ifce_speed(handle)):
ch_host_ifce_speed_string = "high speed"
else:
ch_host_ifce_speed_string = "full speed"
print "Host interface is %s" % ch_host_ifce_speed_string
 
# Ensure that SPI subsystem is configured
ch_spi_configure(handle, (mode >> 1), mode & 1, CH_SPI_BITORDER_MSB, 0x0)
print "SPI configuration set to mode %d, MSB shift, SS[2:0] active low" % mode
sys.stdout.flush()
 
# Set the bitrate
bitrate = ch_spi_bitrate(handle, bitrate)
print "Bitrate set to %d kHz" % bitrate
sys.stdout.flush()
 
# Create 4KB of fake data so we can exchange it for real data
data_in = array('B', [0 for i in range(byteCount)])
ch_spi_queue_clear(handle)
ch_spi_queue_oe(handle, 1)
#ch_spi_queue_byte(handle, 1, 0x00) # Send an empty byte, pre SS low
ch_spi_queue_ss(handle, 0x1)
#ch_spi_queue_byte(handle, 1, 0x02) # Send to MOSI buffer
#ch_spi_queue_byte(handle, 3, 0x00) # Sending 4 bytes
#ch_spi_queue_byte(handle, 1, 0x04)
#ch_spi_queue_byte(handle, 1, 0xFF) # Sending byte: 1111_1111
#ch_spi_queue_byte(handle, 1, 0xF0) # Sending byte: 1111_0000
#ch_spi_queue_byte(handle, 1, 0x33) # Sending byte: 0011_0011
ch_spi_queue_byte(handle, 1, 42) # Sending byte: 0101_0101
 
#ch_spi_queue_byte(handle, 1, 0x55) # Test byte
#ch_spi_queue_byte(handle, 1, 0x66)
 
 
ch_spi_queue_ss(handle, 0)
 
#ch_spi_queue_byte(handle, 1, 0x00) # Send an empty byte, SS high
 
 
(actualByteCount, data_in) = ch_spi_batch_shift(handle, byteCount)
 
#if (actualByteCount < 0):
# print "error: %s" % ch_status_string(count)
#elif (actualByteCount != byteCount):
# print "error: read %d bytes (expected %d)" % (actualByteCount, byteCount)
#else:
for i in range(actualByteCount):
sys.stdout.write("%d " % data_in[i])
sys.stdout.write("\n")
 
# Close and exit
ch_close(handle)
sys.exit(0)
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.