1 """SPI Classes for RP2040s with u2if firmware"""
2 from .rp2040_u2if import rp2040_u2if
4 # pylint: disable=protected-access, no-self-use
6 """SPI Base Class for RP2040 u2if"""
10 def __init__(self, index, *, baudrate=100000):
12 self._frequency = baudrate
13 rp2040_u2if.spi_set_port(self._index)
14 rp2040_u2if.spi_configure(self._frequency)
16 # pylint: disable=too-many-arguments,unused-argument
28 """Initialize the Port"""
29 self._frequency = baudrate
30 rp2040_u2if.spi_set_port(self._index)
31 rp2040_u2if.spi_configure(self._frequency)
33 # pylint: enable=too-many-arguments
37 """Return the current frequency"""
38 return self._frequency
40 def write(self, buf, start=0, end=None):
41 """Write data from the buffer to SPI"""
42 rp2040_u2if.spi_write(buf, start=start, end=end)
44 def readinto(self, buf, start=0, end=None, write_value=0):
45 """Read data from SPI and into the buffer"""
46 rp2040_u2if.spi_readinto(buf, start=start, end=end, write_value=write_value)
48 # pylint: disable=too-many-arguments
50 self, buffer_out, buffer_in, out_start=0, out_end=None, in_start=0, in_end=None
52 """Perform a half-duplex write from buffer_out and then
53 read data into buffer_in
55 rp2040_u2if.spi_write_readinto(
64 # pylint: enable=too-many-arguments
67 """SPI Class for Pico u2if"""
69 def __init__(self, clock, *, baudrate=100000):
76 raise ValueError("No SPI port on specified pin.")
77 super().__init__(index, baudrate=baudrate)
79 class SPI_Feather(SPI):
80 """SPI Class for Feather u2if"""
82 def __init__(self, clock, *, baudrate=100000):
87 raise ValueError("No SPI port on specified pin.")
88 super().__init__(index, baudrate=baudrate)
91 """SPI Class for QT Py u2if"""
93 def __init__(self, clock, *, baudrate=100000):
98 raise ValueError("No SPI port on specified pin.")
99 super().__init__(index, baudrate=baudrate)
101 class SPI_ItsyBitsy(SPI):
102 """SPI Class for ItsyBitsy u2if"""
104 def __init__(self, clock, *, baudrate=100000):
109 raise ValueError("No SPI port on specified pin.")
110 super().__init__(index, baudrate=baudrate)