Adafruit_PureIO.smbus
¶
Pure python (i.e. no native extensions) access to Linux IO I2C interface that mimics the Python SMBus API.
- Author(s): Tony DiCola, Lady Ada, Melissa LeBlanc-Williams
Implementation Notes¶
Software and Dependencies:
- Linux and Python 3.5 or Higher
-
class
Adafruit_PureIO.smbus.
SMBus
(bus=None)¶ I2C interface that mimics the Python SMBus API but is implemented with pure Python calls to ioctl and direct /dev/i2c device access.
-
close
()¶ Close the smbus connection. You cannot make any other function calls on the bus unless open is called!
-
open
(bus)¶ Open the smbus interface on the specified bus.
-
process_call
(addr, cmd, val)¶ Perform a smbus process call by writing a word (2 byte) value to the specified register of the device, and then reading a word of response data (which is returned).
-
read_block_data
(addr, cmd)¶ Perform a block read from the specified cmd register of the device. The amount of data read is determined by the first byte send back by the device. Data is returned as a bytearray.
-
read_byte
(addr)¶ Read a single byte from the specified device.
-
read_byte_data
(addr, cmd)¶ Read a single byte from the specified cmd register of the device.
-
read_bytes
(addr, number)¶ Read many bytes from the specified device.
-
read_i2c_block_data
(addr, cmd, length=32)¶ Perform a read from the specified cmd register of device. Length number of bytes (default of 32) will be read and returned as a bytearray.
-
read_word_data
(addr, cmd)¶ Read a word (2 bytes) from the specified cmd register of the device. Note that this will interpret data using the endianness of the processor running Python (typically little endian)!
-
write_block_data
(addr, cmd, vals)¶ Write a block of data to the specified cmd register of the device. The amount of data to write should be the first byte inside the vals string/bytearray and that count of bytes of data to write should follow it.
-
write_byte
(addr, val)¶ Write a single byte to the specified device.
-
write_byte_data
(addr, cmd, val)¶ Write a byte of data to the specified cmd register of the device.
-
write_bytes
(addr, buf)¶ Write many bytes to the specified device. buf is a bytearray
-
write_i2c_block_data
(addr, cmd, vals)¶ Write a buffer of data to the specified cmd register of the device.
-
write_quick
(addr)¶ Write a single byte to the specified device.
-
write_word_data
(addr, cmd, val)¶ Write a word (2 bytes) of data to the specified cmd register of the device. Note that this will write the data in the endianness of the processor running Python (typically little endian)!
-
-
class
Adafruit_PureIO.smbus.
i2c_msg
¶ Linux i2c_msg struct.
-
class
Adafruit_PureIO.smbus.
i2c_rdwr_ioctl_data
¶ Linux i2c data struct.
-
Adafruit_PureIO.smbus.
make_i2c_rdwr_data
(messages)¶ Utility function to create and return an i2c_rdwr_ioctl_data structure populated with a list of specified I2C messages. The messages parameter should be a list of tuples which represent the individual I2C messages to send in this transaction. Tuples should contain 4 elements: address value, flags value, buffer length, ctypes c_uint8 pointer to buffer.
Adafruit_PureIO.spi
¶
Pure python (i.e. no native extensions) access to Linux IO SPI interface that is similar to the SpiDev API. Based heavily on https://github.com/tomstokes/python-spi/.
- Author(s): Tom Stokes, Melissa LeBlanc-Williams
Implementation Notes¶
Software and Dependencies:
- Linux and Python 3.5 or Higher
-
class
Adafruit_PureIO.spi.
SPI
(device, max_speed_hz=None, bits_per_word=None, phase=None, polarity=None, cs_high=None, lsb_first=None, three_wire=None, loop=None, no_cs=None, ready=None)¶ This class is similar to SpiDev, but instead of opening and closing for each call, it is set up on initialization making it fast.
-
bits_per_word
¶ Number of bits per word of SPI transfer.
A value of 0 is equivalent to 8 bits per word
-
cs_high
¶ SPI chip select active level
-
loop
¶ SPI loopback mode
-
lsb_first
¶ Bit order of SPI word transfers
-
max_speed_hz
¶ Maximum SPI transfer speed in Hz.
Note that the controller cannot necessarily assign the requested speed.
-
mode
¶ Mode that SPI is currently running in
-
no_cs
¶ No chipselect. Single device on bus.
-
phase
¶ SPI clock phase bit
-
polarity
¶ SPI polarity bit
-
readbytes
(length, max_speed_hz=0, bits_per_word=0, delay=0)¶ Perform half-duplex SPI read as a binary string
-
ready
¶ Slave pulls low to pause
-
three_wire
¶ SPI 3-wire mode
-
transfer
(data, max_speed_hz=0, bits_per_word=0, delay=0)¶ Perform full-duplex SPI transfer
-
writebytes
(data, max_speed_hz=0, bits_per_word=0, delay=0)¶ Perform half-duplex SPI write.
-