* Author(s): cefn
"""
+import threading
+
from adafruit_blinka import Enum, Lockable, agnostic
from adafruit_blinka.agnostic import board_id, detector
import adafruit_platformdetect.board as ap_board
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._i2c = _I2C(portId, mode=_I2C.MASTER, baudrate=frequency)
break
else:
- raise NotImplementedError(
+ raise ValueError(
"No Hardware I2C on (scl,sda)={}\nValid I2C ports: {}".format((scl, sda), i2cPorts)
)
+ self._lock = threading.RLock()
+
def deinit(self):
try:
del self._i2c
pass
def __enter__(self):
+ self._lock.acquire()
return self
def __exit__(self, exc_type, exc_value, traceback):
+ self._lock.release()
self.deinit()
def scan(self):
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(clock)
+ #self._pins = (SCK, MOSI, MISO)
+ return
elif detector.board.any_embedded_linux:
from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
else:
self._pins = (portSck, portMosi, portMiso)
break
else:
- raise NotImplementedError(
+ raise ValueError(
"No Hardware SPI on (SCLK, MOSI, MISO)={}\nValid SPI ports:{}".
format((clock, MOSI, MISO), spiPorts))
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
flow=None):
if detector.board.any_embedded_linux:
raise RuntimeError('busio.UART not supported on this platform. Please use pyserial instead.')
+ elif detector.board.binho_nova:
+ from adafruit_blinka.microcontroller.nova.uart import UART as _UART
else:
from machine import UART as _UART
- from microcontroller.pin import uartPorts
+
+ if detector.board.binho_nova:
+ from adafruit_blinka.microcontroller.nova.pin import uartPorts
+ else:
+ from microcontroller.pin import uartPorts
self.baudrate = baudrate
)
break
else:
- raise NotImplementedError(
+ raise ValueError(
"No Hardware UART on (tx,rx)={}\nValid UART ports: {}".format((tx, rx), uartPorts)
)
def deinit(self):
+ if detector.board.binho_nova:
+ self._uart.deinit()
self._uart = None
def read(self, nbytes=None):