end = end if end else len(buffer)
- result = self._nova.readBytesI2C(0, address, len(buffer(start:end)))
+ result = self._nova.readBytesI2C(0, address, len(buffer[start:end]))
resp = result.split(" ")
- for i in range(len(buffer(start:end))):
+ for i in range(len(buffer[start:end])):
buffer[start+i] = resp[2+i]
def writeto_then_readfrom(self, address, buffer_out, buffer_in, *,
self._nova.endI2C(0, True)
- result = self._nova.readBytesI2C(0, address, len(buffer_in(in_start:in_end)))
+ result = self._nova.readBytesI2C(0, address, len(buffer_in[in_start:in_end]))
resp = result.split(" ")
- for i in range(len(buffer_in(in_start:in_end))):
+ for i in range(len(buffer_in[in_start:in_end])):
buffer_in[in_start+i] = resp[2+i]
MSB = 0
def __init__(self):
- from pyftdi.spi import SpiController
- self._spi = SpiController(cs_count=1)
- self._spi.configure('ftdi:///1')
- self._port = self._spi.get_port(0)
- self._port.set_frequency(100000)
- self._port._cpol = 0
- self._port._cpha = 0
- # Change GPIO controller to SPI
- Pin.ft232h_gpio = self._spi.get_gpio()
+ from binhoHostAdapter import binhoHostAdapter
+ from binhoHostAdapter import binhoUtilities
+
+ utilities = binhoUtilities.binhoUtilities()
+ devices = utilities.listAvailableDevices()
+
+ if len(devices) > 0:
+
+ self._nova = binhoHostAdapter.binhoHostAdapter(devices[0])
+ self._nova.setOperationMode(0, 'SPI')
+ self._nova.setClockSPI(0, 12000000)
+ self._nova.setModeSPI(0, 0)
+ self._nova.setIOpinMode(0, 'DOUT')
+ self._nova.setIOpinValue(0, 'HIGH')
+ # Cpol and Cpha set by mode
+ # Mode Cpol Cpha
+ # 0 0 0
+ # 1 0 1
+ # 2 1 0
+ # 3 1 1
+
+ else:
+ raise RuntimeError('No Binho host adapter found!')
def init(self, baudrate=100000, polarity=0, phase=0, bits=8,
firstbit=MSB, sck=None, mosi=None, miso=None):
- self._port.set_frequency(baudrate)
- self._port._cpol = polarity
- self._port._cpha = phase
+ self._nova.setClockSPI(0, baudrate)
+ self._nova.setModeSPI(0, (polarity<<1) | (phase))
@property
def frequency(self):
- return self._port.frequency
+ return self._nova.getClockSPI(0)
def write(self, buf, start=0, end=None):
end = end if end else len(buf)
- chunks, rest = divmod(end - start, self._spi.PAYLOAD_MAX_LENGTH)
- for i in range(chunks):
- chunk_start = start + i * self._spi.PAYLOAD_MAX_LENGTH
- 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:])
+ #chunks, rest = divmod(end - start, self._spi.PAYLOAD_MAX_LENGTH)
+ #for i in range(chunks):
+ # chunk_start = start + i * self._spi.PAYLOAD_MAX_LENGTH
+ # 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:])
def readinto(self, buf, start=0, end=None, write_value=0):
end = end if end else len(buf)
- result = self._port.read(end-start)
- for i, b in enumerate(result):
- buf[start+i] = b
-
+ self._nova.setIOpinValue(0, 'LOW')
+ for i in range(start, end):
+ buf[start+i] = int(getSpiReceivedData(self._nova.transferSPI(0, 0x00)), 16)
+ self._nova.setIOpinValue(0, 'HIGH')
+"""
def write_readinto(self, buffer_out, buffer_in, out_start=0, out_end=None, in_start=0, in_end=None):
out_end = out_end if out_end else len(buffer_out)
in_end = in_end if in_end else len(buffer_in)
in_end-in_start, duplex=True)
for i, b in enumerate(result):
buffer_in[in_start+i] = b
+"""
\ No newline at end of file
from adafruit_blinka.microcontroller.ft232h.i2c import I2C
self._i2c = I2C()
return
+ elif detector.board.binho_nova:
+ from adafruit_blinka.microcontroller.nova.i2c import I2C
+ self._i2c = I2C()
+ return
elif detector.board.any_embedded_linux:
from adafruit_blinka.microcontroller.generic_linux.i2c import I2C as _I2C
else:
self._spi = _SPI()
self._pins = (SCK, MOSI, MISO)
return
+ elif detector.board.binho_nova:
+ from adafruit_blinka.microcontroller.nova.spi import SPI as _SPI
+ #from adafruit_blinka.microcontroller.nova.pin import SCK, MOSI, MISO
+ self._spi = _SPI()
+ #self._pins = (SCK, MOSI, MISO)
+ return
elif detector.board.any_embedded_linux:
from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
else:
elif detector.board.ftdi_ft232h:
from adafruit_blinka.microcontroller.ft232h.spi import SPI as _SPI
from adafruit_blinka.microcontroller.ft232h.pin import Pin
+ elif detector.board.binho_nova:
+ from adafruit_blinka.microcontroller.nova.spi import SPI as _SPI
+ from adafruit_blinka.microcontroller.nova.pin import Pin
else:
from machine import SPI as _SPI
from machine import Pin