"""SPI Class for NXP LPC4330"""
from greatfet import GreatFET
+
class SPI:
"""Custom I2C Class for NXP LPC4330"""
self._gf = GreatFET()
self._frequency = None
self.buffer_size = 255
+ self._mode = 0
+ self._spi = None
self._presets = {
204000: (100, 9),
408000: (100, 4),
34000000: (2, 2),
51000000: (2, 1),
102000000: (2, 0),
- }
-
- # pylint: disable=too-many-arguments
+ }
+
+ # pylint: disable=too-many-arguments,unused-argument
def init(
self,
baudrate=100000,
polarity = int(polarity)
phase = int(phase)
self._mode = (polarity << 1) | phase
-
+
# Using API due to possible interface change
self._spi = self._gf.apis.spi
# Check baudrate against presets and adjust to the closest one
# Set the polarity and phase (the "SPI mode").
self._spi.set_clock_polarity_and_phase(self._mode)
+
# pylint: enable=too-many-arguments
def _find_closest_preset(self, target_frequency):
closest_preset = None
for frequency in self._presets:
preset = self._presets[frequency]
- if self._frequency is None or abs(frequency - target_frequency) < abs(self._frequency - target_frequency):
+ if self._frequency is None or abs(frequency - target_frequency) < abs(
+ self._frequency - target_frequency
+ ):
self._frequency = frequency
closest_preset = preset
in_end = in_end if in_end else len(buffer_in)
result = self._transmit(buffer_out[out_start:out_end], in_end - in_start)
- for i, b in enumerate(result):
- buf[start + i] = b
for i, b in enumerate(result):
buffer_in[in_start + i] = b
# Transmit our data in chunks of the buffer size.
while data_to_transmit:
# Extract a single data chunk from the transmit buffer.
- chunk = data_to_transmit[0:self.buffer_size]
- del data_to_transmit[0:self.buffer_size]
+ chunk = data_to_transmit[0 : self.buffer_size]
+ del data_to_transmit[0 : self.buffer_size]
# Finally, exchange the data.
response = self._spi.clock_data(len(chunk), bytes(chunk))