SPI¶
Code Example¶
from periphery import SPI
# Open spidev1.0 with mode 0 and max speed 1MHz
spi = SPI("/dev/spidev1.0", 0, 1000000)
data_out = [0xaa, 0xbb, 0xcc, 0xdd]
data_in = spi.transfer(data_out)
print("shifted out [0x%02x, 0x%02x, 0x%02x, 0x%02x]" % tuple(data_out))
print("shifted in [0x%02x, 0x%02x, 0x%02x, 0x%02x]" % tuple(data_in))
spi.close()
API¶
-
class
periphery.
SPI
(devpath, mode, max_speed, bit_order='msb', bits_per_word=8, extra_flags=0)[source]¶ Bases:
object
Instantiate a SPI object and open the spidev device at the specified path with the specified SPI mode, max speed in hertz, and the defaults of “msb” bit order and 8 bits per word.
Parameters: - devpath (str) – spidev device path.
- mode (int) – SPI mode, can be 0, 1, 2, 3.
- max_speed (int, float) – maximum speed in Hertz.
- bit_order (str) – bit order, can be “msb” or “lsb”.
- bits_per_word (int) – bits per word.
- extra_flags (int) – extra spidev flags to be bitwise-ORed with the SPI mode.
Returns: SPI object.
Return type: Raises: SPIError
– if an I/O or OS error occurs.TypeError
– if devpath, mode, max_speed, bit_order, bits_per_word, or extra_flags types are invalid.ValueError
– if mode, bit_order, bits_per_word, or extra_flags values are invalid.
-
transfer
(data)[source]¶ Shift out data and return shifted in data.
Parameters: data (bytes, bytearray, list) – a byte array or list of 8-bit integers to shift out.
Returns: data shifted in.
Return type: bytes, bytearray, list
Raises: SPIError
– if an I/O or OS error occurs.TypeError
– if data type is invalid.ValueError
– if data is not valid bytes.
-
fd
¶ Get the file descriptor of the underlying spidev device.
Type: int
-
devpath
¶ Get the device path of the underlying spidev device.
Type: str
-
mode
¶ Get or set the SPI mode. Can be 0, 1, 2, 3.
Raises: SPIError
– if an I/O or OS error occurs.TypeError
– if mode type is not int.ValueError
– if mode value is invalid.
Type: int
-
max_speed
¶ Get or set the maximum speed in Hertz.
Raises: SPIError
– if an I/O or OS error occurs.TypeError
– if max_speed type is not int or float.
Type: int, float
-
bit_order
¶ Get or set the SPI bit order. Can be “msb” or “lsb”.
Raises: SPIError
– if an I/O or OS error occurs.TypeError
– if bit_order type is not str.ValueError
– if bit_order value is invalid.
Type: str
-
bits_per_word
¶ Get or set the SPI bits per word.
Raises: SPIError
– if an I/O or OS error occurs.TypeError
– if bits_per_word type is not int.ValueError
– if bits_per_word value is invalid.
Type: int
-
extra_flags
¶ Get or set the spidev extra flags. Extra flags are bitwise-ORed with the SPI mode.
Raises: SPIError
– if an I/O or OS error occurs.TypeError
– if extra_flags type is not int.ValueError
– if extra_flags value is invalid.
Type: int