X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/blobdiff_plain/a3770186a94117be56a8d9a8038a2d540bd2884c..06f3dea48645ab3963bb400c6057a1049bb2c75e:/src/adafruit_blinka/microcontroller/ft232h/spi.py diff --git a/src/adafruit_blinka/microcontroller/ft232h/spi.py b/src/adafruit_blinka/microcontroller/ft232h/spi.py index bd4a53b..fd16b39 100644 --- a/src/adafruit_blinka/microcontroller/ft232h/spi.py +++ b/src/adafruit_blinka/microcontroller/ft232h/spi.py @@ -1,5 +1,6 @@ """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: @@ -14,7 +15,7 @@ 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 @@ -22,7 +23,7 @@ class SPI: # Change GPIO controller to SPI Pin.ft232h_gpio = self._spi.get_gpio() - # pylint: disable=too-many-arguments + # pylint: disable=too-many-arguments,unused-argument def init( self, baudrate=100000, @@ -60,13 +61,15 @@ class SPI: 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