diff options
author | Daniel Campora <daniel@wipy.io> | 2015-09-13 21:44:09 +0200 |
---|---|---|
committer | Daniel Campora <daniel@wipy.io> | 2015-09-16 10:10:33 +0200 |
commit | aba75e12330d8e80b2d909ace0a419de85774317 (patch) | |
tree | 45fcba206cac1fb522700eb916912bee316b9e72 /tests/wipy/spi.py | |
parent | 624cdeacc4c2678273ae535f3ede84846afe3ef5 (diff) | |
download | micropython-aba75e12330d8e80b2d909ace0a419de85774317.tar.gz micropython-aba75e12330d8e80b2d909ace0a419de85774317.zip |
cc3200: New SPI API.
Diffstat (limited to 'tests/wipy/spi.py')
-rw-r--r-- | tests/wipy/spi.py | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/tests/wipy/spi.py b/tests/wipy/spi.py new file mode 100644 index 0000000000..dc3d946de2 --- /dev/null +++ b/tests/wipy/spi.py @@ -0,0 +1,149 @@ +''' +SPI test for the CC3200 based boards. +''' + +from pyb import SPI +from pyb import Pin +import os +import pyb + +machine = os.uname().machine +if 'LaunchPad' in machine: + spi_pins = ('GP14', 'GP16', 'GP30') +elif 'WiPy' in machine: + 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) |