PA0 = pin.PA0
PA3 = pin.PA3
PC0 = pin.PC0
+MOSI = pin.PC0
PC1 = pin.PC1
+MISO = pin.PC1
PC2 = pin.PC2
+SCK = pin.PC2
+SCLK = pin.PC2
PA19 = pin.PA19
PA7 = pin.PA7
PA8 = pin.PA8
PA20 = pin.PA20
PA13 = pin.PA13
+TX = pin.PA13
PA14 = pin.PA14
+RX = pin.PA14
PD14 = pin.PD14
PC4 = pin.PC4
PC7 = pin.PC7
PA9 = Pin(9)
PA10 = Pin(10)
PA11 = Pin(11)
+TWI0_SCL = PA11
PA12 = Pin(12)
+TWI0_SDA = PA12
PA13 = Pin(13)
+UART3_TX = PA13
PA14 = Pin(14)
+UART3_RX = PA14
PA18 = Pin(18)
PA19 = Pin(19)
PA20 = Pin(20)
PA21 = Pin(21)
PC0 = Pin(64)
+SPI0_MOSI = PC0
PC1 = Pin(65)
+SPI0_MISO = PC1
PC2 = Pin(66)
+SPI0_SCLK = PC2
PC3 = Pin(67)
+SPI0_CS = PC3
PC4 = Pin(68)
PC7 = Pin(71)
PG7 = Pin(199)
PG8 = Pin(200)
PG9 = Pin(201)
+
+i2cPorts = ( (0, TWI0_SCL, TWI0_SDA), )
+# ordered as spiId, sckId, mosiId, misoId
+spiPorts = ( (0, SPI0_SCLK, SPI0_MOSI, SPI0_MISO), )
+# ordered as uartId, txId, rxId
+uartPorts = ( (3, UART3_TX, UART3_RX), )
def init(self, mode=IN, pull=None):
if not self._line:
self._line = self._chip.get_line(int(self.id))
- print("init line: ", int(self.id), self._line)
+ #print("init line: ", int(self.id), self._line)
if mode != None:
if mode == self.IN:
flags = 0
if pull != None:
if pull == self.PULL_UP:
- flags |= gpiod.LINE_REQ_FLAG_ACTIVE_LOW
+ raise NotImplementedError("Internal pullups not supported in libgpiod, use physical resistor instead!")
elif pull == self.PULL_DOWN:
- flags |= gpiod.LINE_REQ_FLAG_ACTIVE_HIGH
+ raise NotImplementedError("Internal pullups not supported in libgpiod, use physical resistor instead!")
else:
raise RuntimeError("Invalid pull for pin: %s" % self.id)
from adafruit_blinka.board.raspi_23 import *
elif board_id == "beaglebone_black":
from adafruit_blinka.board.beaglebone_black import *
+elif board_id == "orangepipc":
+ from adafruit_blinka.board.orangepipc import *
elif "sphinx" in sys.modules:
pass
else:
def init(self, scl, sda, frequency):
self.deinit()
- if board_id == "raspi_3" or board_id == "raspi_2" or board_id == "beaglebone_black":
+ if board_id == "raspi_3" or board_id == "raspi_2" or board_id == "beaglebone_black" or board_id == "orangepipc":
from adafruit_blinka.microcontroller.generic_linux.i2c import I2C as _I2C
else:
from machine import I2C as _I2C
class SPI(Lockable):
def __init__(self, clock, MOSI=None, MISO=None):
- print("SPI(): __init()")
self.deinit()
- if board_id == "raspi_3" or board_id == "raspi_2" or board_id == "beaglebone_black":
+ if board_id == "raspi_3" or board_id == "raspi_2" or board_id == "beaglebone_black" or board_id == "orangepipc":
from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
else:
from machine import SPI as _SPI
from microcontroller.pin import spiPorts
- print("spiPorts: {0}".format(spiPorts))
- print("for:")
for portId, portSck, portMosi, portMiso in spiPorts:
- print(portId, portSck, portMosi, portMiso)
if ((clock == portSck) and # Clock is required!
(MOSI == portMosi or MOSI == None) and # But can do with just output
(MISO == portMiso or MISO == None)): # Or just input
- print("Line 91")
- print(_SPI)
- print(_SPI(portId))
self._spi = _SPI(portId)
self._pins = (portSck, portMosi, portMiso)
break
# reuse the raspberry pi class as both boards use Linux spidev
from adafruit_blinka.microcontroller.beaglebone_black.pin import Pin
from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
+ elif board_id == "orangepipc":
+ from adafruit_blinka.microcontroller.allwinner_h3.pin import Pin
+ from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
else:
from machine import SPI as _SPI
from machine import Pin
from adafruit_blinka.agnostic import board_id
if board_id == "raspi_3" or board_id == "raspi_2":
from adafruit_blinka.microcontroller.raspi_23.pin import Pin
-if board_id == "beaglebone_black":
+elif board_id == "beaglebone_black":
from adafruit_blinka.microcontroller.beaglebone_black.pin import Pin
+elif board_id == "orangepipc":
+ from adafruit_blinka.microcontroller.allwinner_h3.pin import Pin
elif board_id == "pyboard":
from machine import Pin
from adafruit_blinka import Enum, ContextManaged
from adafruit_blinka.microcontroller.raspi_23 import *
elif board_id == "beaglebone_black":
from adafruit_blinka.microcontroller.beaglebone_black import *
+ elif board_id == "orangepipc":
+ from adafruit_blinka.microcontroller.allwinner_h3 import *
else:
raise NotImplementedError("Board not supported:", board_id)
else:
# We intentionally are patching into this namespace so skip the wildcard check.
# pylint: disable=unused-wildcard-import,wildcard-import
-
if agnostic.platform == "esp8266":
from adafruit_blinka.microcontroller.esp8266.pin import *
elif agnostic.platform == "stm32":
from adafruit_blinka.microcontroller.raspi_23.pin import *
elif agnostic.board_id == "beaglebone_black":
from adafruit_blinka.microcontroller.beaglebone_black.pin import *
+ elif agnostic.board_id == "orangepipc":
+ from adafruit_blinka.microcontroller.allwinner_h3.pin import *
else:
raise NotImplementedError("Board not supported: ", agnostic.board_id)
else: