| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- '''
- SPI test for the CC3200 based boards.
- '''
- from machine import SPI
- import os
- mch = os.uname().machine
- if 'LaunchPad' in mch:
- spi_pins = ('GP14', 'GP16', 'GP30')
- elif 'WiPy' in mch:
- spi_pins = ('GP14', 'GP16', 'GP30')
- 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)
- read = spi.read(10, write=0xFF)
- print(len(read) == 10)
- buffer_w = bytearray([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])
- print(spi.write_readinto(buffer_w, buffer_r) == 10)
- print(buffer_w == buffer_r)
- # test all polaritiy and phase combinations
- spi.init(polarity=1, phase=0, pins=None)
- buffer_r = bytearray(10)
- spi.write_readinto(buffer_w, buffer_r)
- print(buffer_w == buffer_r)
- spi.init(polarity=1, phase=1, pins=None)
- buffer_r = bytearray(10)
- spi.write_readinto(buffer_w, buffer_r)
- print(buffer_w == buffer_r)
- spi.init(polarity=0, phase=1, pins=None)
- buffer_r = bytearray(10)
- spi.write_readinto(buffer_w, buffer_r)
- print(buffer_w == buffer_r)
- # test 16 and 32 bit transfers
- buffer_w = bytearray([1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2])
- buffer_r = bytearray(12)
- spi.init(SPI.MASTER, baudrate=10000000, bits=16, polarity=0, phase=0, pins=None)
- print(spi.write_readinto(buffer_w, buffer_r) == 12)
- print(buffer_w == buffer_r)
- buffer_r = bytearray(12)
- spi.init(SPI.MASTER, baudrate=10000000, bits=32, polarity=0, phase=0, pins=None)
- print(spi.write_readinto(buffer_w, buffer_r) == 12)
- print(buffer_w == buffer_r)
- # check for memory leaks...
- for i in range (0, 1000):
- spi = SPI(0, SPI.MASTER, baudrate=1000000)
- # test deinit
- spi = SPI(0, SPI.MASTER, baudrate=1000000)
- spi.deinit()
- print(spi)
- spi = SPI(0, SPI.MASTER, baudrate=1000000)
- # next ones must fail
- try:
- spi = SPI(0, 10, baudrate=10000000, polarity=0, phase=0)
- except:
- print("Exception")
- try:
- spi = SPI(0, mode=SPI.MASTER, baudrate=10000000, polarity=1, phase=2)
- except:
- print("Exception")
- try:
- spi = SPI(1, mode=SPI.MASTER, baudrate=10000000, polarity=1, phase=1)
- except:
- print("Exception")
- try:
- spi = SPI(0, mode=SPI.MASTER, baudrate=2000000, polarity=2, phase=0)
- except:
- print("Exception")
- try:
- spi = SPI(0, mode=SPI.MASTER, baudrate=2000000, polarity=2, phase=0, firstbit=2)
- except:
- print("Exception")
- try:
- spi = SPI(0, mode=SPI.MASTER, baudrate=2000000, polarity=2, phase=0, pins=('GP1', 'GP2'))
- except:
- print("Exception")
- try:
- spi = SPI(0, mode=SPI.MASTER, baudrate=2000000, polarity=0, phase=0, bits=9)
- except:
- print("Exception")
- spi.deinit()
- try:
- spi.read(15)
- except Exception:
- print("Exception")
- try:
- spi.spi.readinto(buffer_r)
- except Exception:
- print("Exception")
- try:
- spi.spi.write('abc')
- except Exception:
- print("Exception")
- try:
- spi.write_readinto(buffer_w, buffer_r)
- except Exception:
- print("Exception")
- # reinitialization must work
- spi.init(baudrate=500000)
- print(spi)
|