示例#1
1
from pyb import SPI

spi = SPI(1)
print(spi)

spi = SPI(1, SPI.MASTER)
spi = SPI(1, SPI.MASTER, baudrate=500000)
spi = SPI(1, SPI.MASTER, 500000, polarity=1, phase=0, bits=8, firstbit=SPI.MSB, ti=False, crc=None)
print(spi)

spi.init(SPI.SLAVE, phase=1)
print(spi)

spi.init(SPI.MASTER)
spi.send(1, timeout=100)
print(spi.recv(1, timeout=100))
print(spi.send_recv(1, timeout=100))
示例#2
0
print(spi)

spi = SPI(1, SPI.CONTROLLER)
spi = SPI(1, SPI.CONTROLLER, baudrate=500000)
spi = SPI(1,
          SPI.CONTROLLER,
          500000,
          polarity=1,
          phase=0,
          bits=8,
          firstbit=SPI.MSB,
          ti=False,
          crc=None)
print(str(spi)[:32], str(spi)[53:])  # don't print baudrate/prescaler

spi.init(SPI.PERIPHERAL, phase=1)
print(spi)
try:
    # need to flush input before we get an error (error is what we want to test)
    for i in range(10):
        spi.recv(1, timeout=100)
except OSError:
    print("OSError")

spi.init(SPI.CONTROLLER)
spi.send(1, timeout=100)
print(spi.recv(1, timeout=100))
print(spi.send_recv(1, timeout=100))

spi.deinit()
示例#3
0
	nb = ''
	if bursts > 1 and t_p_burst > 500:  # Set to discrimanate between nnormal and "slow" transfers
		nb = 'SLOW !'
	print("%6s %7.3f Mbaud  Tot_time:%7.3f s %6.1f us between calls" % (nb, baud / 1e6, time / 1e6, t_p_burst))


baud_rates = [328125, 656250, 1312500, 2625000, 5250000, 10500000, 21000000]

spi = SPI(2, SPI.MASTER, baud_rates[0])
'''Since MISO is not connected, disable SPI for MISO by setting Pin as normal Pin input'''
miso_dummy = Pin('Y7', Pin.IN)  # May help prevent OS error 5 ?

""" Test SPI with data similar to graphical TFT traffic; Slow for some baudrates (10.5 Mbits/s) """
print("\nGraphical type data (2048 bursts of 4 bytes):")
for baud in baud_rates:
	spi.init(SPI.MASTER, baud)  # Change baud rate
	start = micros()

	for a in range(128):
		for x in range(16):
			spi.send(bytearray([0, x, 0, a]))
	print_elapsed_time(baud, start, 2048, 4)

""" Test SPI with generic data in ONE long buffer; Always(?) fast! """
print("\nGeneric data (8192 bytes pre-prepared as ONE long buffer):")
for baud in baud_rates:
	spi.init(SPI.MASTER, baud)  # Change baud rate
	data = bytearray([0, rng() & 0xFF, 0, rng() & 0xFF] * 2048)
	start = micros()
	spi.send(data)
	print_elapsed_time(baud, start, 1, 8192)
示例#4
0
from pyb import SPI

spi = SPI(1)
print(spi)

spi = SPI(1, SPI.MASTER)
spi = SPI(1, SPI.MASTER, baudrate=500000)
spi = SPI(1, SPI.MASTER, 500000, polarity=1, phase=1, bits=8, firstbit=SPI.MSB, ti=False, crc=None)
print(spi)

spi.init(SPI.SLAVE)
print(spi)

spi.init(SPI.MASTER)
spi.send(1, timeout=100)
print(spi.recv(1, timeout=100))
print(spi.send_recv(1, timeout=100))
示例#5
0
          polarity=0,
          phase=0,
          firstbit=SPI.MSB,
          pins=spi_pins)
print(spi)
spi = SPI(baudrate=5000000)
print(spi)
spi = SPI(0, SPI.MASTER, baudrate=200000, bits=16, polarity=0, phase=0)
print(spi)
spi = SPI(0, SPI.MASTER, baudrate=10000000, polarity=0, phase=1)
print(spi)
spi = SPI(0, SPI.MASTER, baudrate=5000000, bits=32, polarity=1, phase=0)
print(spi)
spi = SPI(0, SPI.MASTER, baudrate=10000000, polarity=1, phase=1)
print(spi)
spi.init(baudrate=20000000, polarity=0, phase=0)
print(spi)
spi = SPI()
print(spi)
SPI(mode=SPI.MASTER)
SPI(mode=SPI.MASTER, pins=spi_pins)
SPI(id=0, mode=SPI.MASTER, polarity=0, phase=0, pins=('GP14', 'GP16', 'GP15'))
SPI(0, SPI.MASTER, polarity=0, phase=0, pins=('GP31', 'GP16', 'GP15'))

spi = SPI(0, SPI.MASTER, baudrate=10000000, polarity=0, phase=0, pins=spi_pins)
print(spi.write('123456') == 6)
buffer_r = bytearray(10)
print(spi.readinto(buffer_r) == 10)
print(spi.readinto(buffer_r, write=0x55) == 10)
read = spi.read(10)
print(len(read) == 10)
示例#6
0
else:
    raise Exception('Board not supported!')

spi = SPI(0, SPI.MASTER, baudrate=2000000, polarity=0, phase=0, firstbit=SPI.MSB, pins=spi_pins)
print(spi)
spi = SPI(baudrate=5000000)
print(spi)
spi = SPI(0, SPI.MASTER, baudrate=200000, bits=16, polarity=0, phase=0)
print(spi)
spi = SPI(0, SPI.MASTER, baudrate=10000000, polarity=0, phase=1)
print(spi)
spi = SPI(0, SPI.MASTER, baudrate=5000000, bits=32, polarity=1, phase=0)
print(spi)
spi = SPI(0, SPI.MASTER, baudrate=10000000, polarity=1, phase=1)
print(spi)
spi.init(baudrate=20000000, polarity=0, phase=0)
print(spi)
spi=SPI()
print(spi)
SPI(mode=SPI.MASTER)
SPI(mode=SPI.MASTER, pins=spi_pins)
SPI(id=0, mode=SPI.MASTER, polarity=0, phase=0, pins=('GP14', 'GP16', 'GP15'))
SPI(0, SPI.MASTER, polarity=0, phase=0, pins=('GP31', 'GP16', 'GP15'))

spi = SPI(0, SPI.MASTER, baudrate=10000000, polarity=0, phase=0, pins=spi_pins)
print(spi.write('123456') == 6)
buffer_r = bytearray(10)
print(spi.readinto(buffer_r) == 10)
print(spi.readinto(buffer_r, write=0x55) == 10)
read = spi.read(10)
print(len(read) == 10)
示例#7
0
# SAMPLING
NSAMPLES = const(400)
def arr_gen(n):
    for _ in range(n):
        yield 0

isamples = array('h', arr_gen(NSAMPLES))
vsamples = array('h', arr_gen(NSAMPLES))
gc.collect()

# HARDWARE
vadc = ADC(Pin.board.X19)
iadc = ADC(Pin.board.X20)

spi = SPI(1)
spi.init(SPI.MASTER, polarity = 0, phase = 0)

# ************* Programmable Gain Amplifier *************

class MCP6S91():
    CHANNEL_ADDR = 0x41
    GAIN_ADDR = 0x40
    GAINVALS = (1, 2, 4, 5, 8, 10, 16, 32)
    PINS = ('X5', 'X4')
    def __init__(self, devno):
        try:
            self.csn = Pin(MCP6S91.PINS[devno], mode = Pin.OUT_PP)
        except IndexError:
            raise ValueError('MCP6S91 device no. must be 0 or 1.')
        self.csn.value(1)
        self.csn.value(0)
示例#8
0
from pyb import SPI

spi = SPI(1)
print(spi)

spi = SPI(1, SPI.MASTER)
spi = SPI(1, SPI.MASTER, baudrate=500000)
spi = SPI(1,
          SPI.MASTER,
          500000,
          polarity=1,
          phase=1,
          bits=8,
          firstbit=SPI.MSB,
          ti=False,
          crc=None)
print(spi)

spi.init(SPI.SLAVE)
print(spi)

spi.init(SPI.MASTER)
spi.send(1, timeout=100)
print(spi.recv(1, timeout=100))
print(spi.send_recv(1, timeout=100))