"""SPI Class for FT232H"""
from adafruit_blinka.microcontroller.ft232h.pin import Pin
+from adafruit_blinka.microcontroller.ft232h.url import get_ftdi_url
# pylint: disable=protected-access
class SPI:
# pylint: enable=import-outside-toplevel
self._spi = SpiController(cs_count=1)
- self._spi.configure("ftdi://ftdi:ft232h/1")
+ self._spi.configure(get_ftdi_url())
self._port = self._spi.get_port(0)
self._port.set_frequency(100000)
self._port._cpol = 0
chunk_end = chunk_start + self._spi.PAYLOAD_MAX_LENGTH
self._port.write(buf[chunk_start:chunk_end])
if rest:
- self._port.write(buf[-1 * rest :])
+ rest_start = start + chunks * self._spi.PAYLOAD_MAX_LENGTH
+ self._port.write(buf[rest_start:end])
# pylint: disable=unused-argument
def readinto(self, buf, start=0, end=None, write_value=0):
"""Read data from SPI and into the buffer"""
end = end if end else len(buf)
- result = self._port.read(end - start)
+ buffer_out = [write_value] * (end - start)
+ result = self._port.exchange(buffer_out, end - start, duplex=True)
for i, b in enumerate(result):
buf[start + i] = b