Skip to content
Boris Lovosevic edited this page Apr 21, 2018 · 8 revisions

Editing in progress...

machine Module

Class SPI


This class includes full support for using ESP32 SPI peripheral in master mode

Only SPI master mode is supported for now.

Python exception wil be raised if the requested spihost is used by SD Card driver (sdcard in spi mode).
If the requested spihost is VSPI and the psRAM is used at 80 MHz, the exception will be raised.
The exception will be raised if SPI cannot be configured for given configurations.



Create the SPI instance object

spi = machine.spi(spihost, baudrate, polarity, phase, firstbit, sck, mosi, miso, cs, duplex)

Argument Description
spihost The hardware SPI host
machine-SPI.HSPI (1) or machine.SPI.VSPI (2) can be used
Default: 1
baudrate SPI clock speed in Hz; Default: 1000000
polarity SPI polarity; 0 or 1; Default: 0
phase SPI phase; 0 or 1; Default: 0
polarity & phase defines the SPI operating mode (0-3):
mode = (polarity<<1) + phase
firstbit Send MSB or LSB bit first; default: MSB
use constants machine.spi.MSB or machine.spi.LSB
sck SPI SCK pin; Can be entered as integer pin number or machine.Pin object
moosi SPI MISI pin; Can be entered as integer pin number or machine.Pin object
miso SPI MISO pin; Can be entered as integer pin number or machine.Pin object
cs Optional; SPI CS pin; Can be entered as integer pin number or machine.Pin object.
If set, CS activation and deactivation is handled by the driver, if not set, SPI select and deselect must be handled by user
duplex Select wether SPI operates in fullduplex or halfduplex mode
In fullduplex mode SPI writes and reads data at the same time
In halfduplex mode SPI writes data first, then reads data
Default: True
bits Not used, ignored if given

Only sck, mosi and miso are required, all the other arguments are optional and will be set to the default values if not given.

Clone this wiki locally