]> Repositories - Adafruit_Blinka-hackapet.git/commitdiff
more u2if updates
authorcaternuson <caternuson@gmail.com>
Fri, 21 May 2021 20:59:34 +0000 (13:59 -0700)
committercaternuson <caternuson@gmail.com>
Fri, 21 May 2021 20:59:34 +0000 (13:59 -0700)
13 files changed:
src/adafruit_blinka/board/feather_u2if.py
src/adafruit_blinka/board/itsybitsy_u2if.py [new file with mode: 0644]
src/adafruit_blinka/board/qt2040_trinkey_u2if.py
src/adafruit_blinka/board/qtpy_u2if.py
src/adafruit_blinka/microcontroller/rp2040_u2if/analogio.py
src/adafruit_blinka/microcontroller/rp2040_u2if/i2c.py
src/adafruit_blinka/microcontroller/rp2040_u2if/spi.py
src/analogio.py
src/board.py
src/busio.py
src/digitalio.py
src/neopixel_write.py
src/pwmio.py

index caf2a1990b5c0560acef49ed8238c75f067a7338..d8dd84a51b81197faa34bd67ea21b93d5f66defb 100644 (file)
@@ -41,4 +41,4 @@ MOSI = pin.GP19
 MISO = pin.GP20
 
 # access u2if via pin instance to open for specifc VID/PID
 MISO = pin.GP20
 
 # access u2if via pin instance to open for specifc VID/PID
-pin.GP0._u2if_open_hid(0x239A, 0x80F2)
+pin.GP0._u2if_open_hid(0x239A, 0x00F1)
diff --git a/src/adafruit_blinka/board/itsybitsy_u2if.py b/src/adafruit_blinka/board/itsybitsy_u2if.py
new file mode 100644 (file)
index 0000000..f67c72a
--- /dev/null
@@ -0,0 +1,53 @@
+"""Pin definitions for the ItsyBitsy RP2040 with u2if firmware."""
+
+"""
+Adafruit CircuitPython 6.2.0 on 2021-04-05; Adafruit ItsyBitsy RP2040 with rp2040
+>>> import board
+>>> board.
+A0              A1              A2              A3
+BUTTON          D0              D1              D10
+D11             D12             D13             D2
+D24             D25             D3              D4
+D5              D7              D9              I2C
+LED             MISO            MOSI            NEOPIXEL
+NEOPIXEL_POWER  RX              SCK             SCL
+SDA             SPI             TX              UART
+"""
+
+
+from adafruit_blinka.microcontroller.rp2040_u2if import pin
+
+D0 = pin.GP1
+D1 = pin.GP0
+D2 = pin.GP12
+D3 = pin.GP5
+D4 = pin.GP4
+D5 = pin.GP14
+D7 = pin.GP6
+D9 = pin.GP7
+D10 = pin.GP8
+D11 = pin.GP9
+D12 = pin.GP10
+D13 = pin.GP11
+D24 = pin.GP24
+D25 = pin.GP25
+
+A0 = pin.GP26
+A1 = pin.GP27
+A2 = pin.GP28
+#A3 = pin.GP29 # not currently supported in firmware
+
+SCL = pin.GP3
+SDA = pin.GP2
+
+SCLK = SCK = pin.GP18
+MOSI = pin.GP19
+MISO = pin.GP20
+
+NEOPIXEL = pin.GP17
+NEOPIXEL_POWER = pin.GP16
+
+BUTTON = pin.GP13
+
+# access u2if via pin instance to open for specifc VID/PID
+pin.GP0._u2if_open_hid(0x239A, 0x00FD)
index 287a662248680231cefa77ac4e580ed50777177b..d48b71b4bd81189ba44630376e265a210efea2b9 100644 (file)
@@ -10,4 +10,4 @@ SDA = pin.GP16
 NEOPIXEL = pin.GP27
 
 # access u2if via pin instance to open for specifc VID/PID
 NEOPIXEL = pin.GP27
 
 # access u2if via pin instance to open for specifc VID/PID
-pin.GP0._u2if_open_hid(0x239A, 0x13C0)
+pin.GP0._u2if_open_hid(0x239A, 0x0109)
index 0f52ff43b578ed9198f057a64509d5e7c049e102..4a31d2cd224d0573505c9d265ead4c0520902759 100644 (file)
@@ -50,4 +50,4 @@ NEOPIXEL_POWER = pin.GP11
 BUTTON = pin.GP21
 
 # access u2if via pin instance to open for specifc VID/PID
 BUTTON = pin.GP21
 
 # access u2if via pin instance to open for specifc VID/PID
-pin.GP0._u2if_open_hid(0x239A, 0x80F8)
+pin.GP0._u2if_open_hid(0x239A, 0x00F7)
index 51b365b2611f4953c57f5b1436265ca9ac044000..847a3c9bcbca382e671ec6d11f94834b75d75564 100644 (file)
@@ -55,3 +55,11 @@ class AnalogIn_QTPY(AnalogIn):
         if pin.id not in (26, 27, 28):
             raise ValueError("Pin does not support ADC.")
         super().__init__(pin)
         if pin.id not in (26, 27, 28):
             raise ValueError("Pin does not support ADC.")
         super().__init__(pin)
+
+class AnalogIn_ItsyBitsy(AnalogIn):
+    """AnalogIn Base Class for ItsyBitsy 2040 u2if"""
+
+    def __init__(self, pin):
+        if pin.id not in (26, 27, 28):
+            raise ValueError("Pin does not support ADC.")
+        super().__init__(pin)
\ No newline at end of file
index ec836cebcad857a69008d4db3883619007c0252e..551274bf35837d26cb08802b13a36bf3206aa98c 100644 (file)
@@ -83,7 +83,7 @@ class I2C_Feather(I2C):
         super().__init__(index, frequency=frequency)
 
 class I2C_QTPY(I2C):
         super().__init__(index, frequency=frequency)
 
 class I2C_QTPY(I2C):
-    """I2C Class for QT2040 Trinkey u2if"""
+    """I2C Class for QT Py 2if"""
 
     def __init__(self, scl, sda, *, frequency=100000):
         index = None
 
     def __init__(self, scl, sda, *, frequency=100000):
         index = None
@@ -97,6 +97,19 @@ class I2C_QTPY(I2C):
 
         super().__init__(index, frequency=frequency)
 
 
         super().__init__(index, frequency=frequency)
 
+class I2C_ItsyBitsy(I2C):
+    """I2C Class for ItsyBitsy u2if"""
+
+    def __init__(self, scl, sda, *, frequency=100000):
+        index = None
+        if scl.id == 3 and sda.id == 2:
+            index = 1
+        if index is None:
+            raise ValueError("I2C not found on specified pins.")
+        self._index = index
+
+        super().__init__(index, frequency=frequency)
+
 class I2C_QT2040_Trinkey(I2C):
     """I2C Class for QT2040 Trinkey u2if"""
 
 class I2C_QT2040_Trinkey(I2C):
     """I2C Class for QT2040 Trinkey u2if"""
 
index ef1161d97670996f5fc43fdbbdf74e33ff275a2e..ea46c83d4cfe6a1289a47d2d04e5277287047eac 100644 (file)
@@ -64,6 +64,7 @@ class SPI:
     # pylint: enable=too-many-arguments
 
 class SPI_Pico(SPI):
     # pylint: enable=too-many-arguments
 
 class SPI_Pico(SPI):
+    """SPI Class for Pico u2if"""
 
     def __init__(self, clock, *, baudrate=100000):
         index = None
 
     def __init__(self, clock, *, baudrate=100000):
         index = None
@@ -76,6 +77,7 @@ class SPI_Pico(SPI):
         super().__init__(index, baudrate=baudrate)
 
 class SPI_Feather(SPI):
         super().__init__(index, baudrate=baudrate)
 
 class SPI_Feather(SPI):
+    """SPI Class for Feather u2if"""
 
     def __init__(self, clock, *, baudrate=100000):
         index = None
 
     def __init__(self, clock, *, baudrate=100000):
         index = None
@@ -86,6 +88,7 @@ class SPI_Feather(SPI):
         super().__init__(index, baudrate=baudrate)
 
 class SPI_QTPY(SPI):
         super().__init__(index, baudrate=baudrate)
 
 class SPI_QTPY(SPI):
+    """SPI Class for QT Py u2if"""
 
     def __init__(self, clock, *, baudrate=100000):
         index = None
 
     def __init__(self, clock, *, baudrate=100000):
         index = None
@@ -93,4 +96,15 @@ class SPI_QTPY(SPI):
             index = 0
         if index is None:
             raise ValueError("No SPI port on specified pin.")
             index = 0
         if index is None:
             raise ValueError("No SPI port on specified pin.")
+        super().__init__(index, baudrate=baudrate)
+
+class SPI_ItsyBitsy(SPI):
+    """SPI Class for ItsyBitsy u2if"""
+
+    def __init__(self, clock, *, baudrate=100000):
+        index = None
+        if clock.id == 18:
+            index = 0
+        if index is None:
+            raise ValueError("No SPI port on specified pin.")
         super().__init__(index, baudrate=baudrate)
\ No newline at end of file
         super().__init__(index, baudrate=baudrate)
\ No newline at end of file
index e6837b348455b56b79b997dfdfbc0c449534c878..3cff6b42e19fd311201f81573c4ea4c9e6789757 100644 (file)
@@ -35,5 +35,7 @@ elif detector.board.feather_u2if:
     from adafruit_blinka.microcontroller.rp2040_u2if.analogio import AnalogIn_Feather as AnalogIn
 elif detector.board.qtpy_u2if:
     from adafruit_blinka.microcontroller.rp2040_u2if.analogio import AnalogIn_QTPY as AnalogIn
     from adafruit_blinka.microcontroller.rp2040_u2if.analogio import AnalogIn_Feather as AnalogIn
 elif detector.board.qtpy_u2if:
     from adafruit_blinka.microcontroller.rp2040_u2if.analogio import AnalogIn_QTPY as AnalogIn
+elif detector.board.itsybitsy_u2if:
+    from adafruit_blinka.microcontroller.rp2040_u2if.analogio import AnalogIn_ItsyBitsy as AnalogIn
 else:
     raise NotImplementedError("analogio not supported for this board.")
 else:
     raise NotImplementedError("analogio not supported for this board.")
index 9bcc0221d5c18f310cb820257a31ab8b1125377e..eb5e7d97a13ea13884fc324e83d07da5cd2ff0e0 100755 (executable)
@@ -233,6 +233,9 @@ elif board_id == ap_board.FEATHER_U2IF:
 elif board_id == ap_board.QTPY_U2IF:
     from adafruit_blinka.board.qtpy_u2if import *
 
 elif board_id == ap_board.QTPY_U2IF:
     from adafruit_blinka.board.qtpy_u2if import *
 
+elif board_id == ap_board.ITSYBITSY_U2IF:
+    from adafruit_blinka.board.itsybitsy_u2if import *
+
 elif board_id == ap_board.QT2040_TRINKEY_U2IF:
     from adafruit_blinka.board.qt2040_trinkey_u2if import *
 
 elif board_id == ap_board.QT2040_TRINKEY_U2IF:
     from adafruit_blinka.board.qt2040_trinkey_u2if import *
 
index 8dcf6ab13fd85037bcf71cff2cc91ca1669b166e..f8598a53119c03e24bb71d0017574f9a6c168f97 100755 (executable)
@@ -66,6 +66,11 @@ class I2C(Lockable):
         if detector.board.qtpy_u2if:
             from adafruit_blinka.microcontroller.rp2040_u2if.i2c import I2C_QTPY as _I2C
 
         if detector.board.qtpy_u2if:
             from adafruit_blinka.microcontroller.rp2040_u2if.i2c import I2C_QTPY as _I2C
 
+            self._i2c = _I2C(scl, sda, frequency=frequency)
+            return
+        if detector.board.itsybitsy_u2if:
+            from adafruit_blinka.microcontroller.rp2040_u2if.i2c import I2C_ItsyBitsy as _I2C
+
             self._i2c = _I2C(scl, sda, frequency=frequency)
             return
         if detector.board.qt2040_trinkey_u2if:
             self._i2c = _I2C(scl, sda, frequency=frequency)
             return
         if detector.board.qt2040_trinkey_u2if:
@@ -215,6 +220,12 @@ class SPI(Lockable):
         if detector.board.feather_u2if:
             from adafruit_blinka.microcontroller.rp2040_u2if.spi import SPI_Feather as _SPI
 
         if detector.board.feather_u2if:
             from adafruit_blinka.microcontroller.rp2040_u2if.spi import SPI_Feather as _SPI
 
+            self._spi = _SPI(clock)  # this is really all that's needed
+            self._pins = (clock, clock, clock)  # will determine MOSI/MISO from clock
+            return
+        if detector.board.itsybitsy_u2if:
+            from adafruit_blinka.microcontroller.rp2040_u2if.spi import SPI_ItsyBitsy as _SPI
+
             self._spi = _SPI(clock)  # this is really all that's needed
             self._pins = (clock, clock, clock)  # will determine MOSI/MISO from clock
             return
             self._spi = _SPI(clock)  # this is really all that's needed
             self._pins = (clock, clock, clock)  # will determine MOSI/MISO from clock
             return
@@ -331,6 +342,10 @@ class SPI(Lockable):
             from adafruit_blinka.microcontroller.rp2040_u2if.spi import SPI_Pico as _SPI
         elif detector.board.feather_u2if:
             from adafruit_blinka.microcontroller.rp2040_u2if.spi import SPI_Feather as _SPI
             from adafruit_blinka.microcontroller.rp2040_u2if.spi import SPI_Pico as _SPI
         elif detector.board.feather_u2if:
             from adafruit_blinka.microcontroller.rp2040_u2if.spi import SPI_Feather as _SPI
+        elif detector.board.itsybitsy_u2if:
+            from adafruit_blinka.microcontroller.rp2040_u2if.spi import SPI_ItsyBitsy as _SPI
+        elif detector.board.qtpy_u2if:
+            from adafruit_blinka.microcontroller.rp2040_u2if.spi import SPI_QTPY as _SPI
         elif detector.chip.id == ap_chip.RP2040:
             from adafruit_blinka.microcontroller.rp2040.spi import SPI as _SPI
         else:
         elif detector.chip.id == ap_chip.RP2040:
             from adafruit_blinka.microcontroller.rp2040.spi import SPI as _SPI
         else:
index d67e6f6ff1135069fd9644461ea1ca8f99bf293a..c1aa7c3c32b87c393d3df46011f8ed2d738763e4 100755 (executable)
@@ -83,11 +83,8 @@ elif detector.chip.H616:
     from adafruit_blinka.microcontroller.allwinner.h616.pin import Pin
 elif detector.board.pico_u2if:
     from adafruit_blinka.microcontroller.rp2040_u2if.pin import Pin
     from adafruit_blinka.microcontroller.allwinner.h616.pin import Pin
 elif detector.board.pico_u2if:
     from adafruit_blinka.microcontroller.rp2040_u2if.pin import Pin
-elif detector.board.feather_u2if:
-    from adafruit_blinka.microcontroller.rp2040_u2if.pin import Pin
-elif detector.board.qtpy_u2if:
-    from adafruit_blinka.microcontroller.rp2040_u2if.pin import Pin
-elif detector.board.qt2040_trinkey_u2if:
+elif detector.board.feather_u2if or detector.board.qtpy_u2if or \
+     detector.board.itsybitsy_u2if or detector.board.qt2040_trinkey_u2if:
     from adafruit_blinka.microcontroller.rp2040_u2if.pin import Pin
 
 from adafruit_blinka import Enum, ContextManaged
     from adafruit_blinka.microcontroller.rp2040_u2if.pin import Pin
 
 from adafruit_blinka import Enum, ContextManaged
index d024becf85482d4ae8ac6e5a157290f754d03b18..8ab506b980bd11df9d4fb59bb82ffab770ade815 100644 (file)
@@ -14,8 +14,10 @@ from adafruit_blinka.agnostic import detector
 
 if detector.board.any_raspberry_pi:
     from adafruit_blinka.microcontroller.bcm283x import neopixel as _neopixel
 
 if detector.board.any_raspberry_pi:
     from adafruit_blinka.microcontroller.bcm283x import neopixel as _neopixel
-elif detector.board.pico_u2if or detector.board.feather_u2if or \
-     detector.board.qtpy_u2if or detector.board.qt2040_trinkey_u2if:
+elif detector.board.pico_u2if:
+    from adafruit_blinka.microcontroller.rp2040_u2if import neopixel as _neopixel
+elif detector.board.feather_u2if or detector.board.qtpy_u2if or \
+     detector.board.itsybitsy_u2if or detector.board.qt2040_trinkey_u2if:
     from adafruit_blinka.microcontroller.rp2040_u2if import neopixel as _neopixel
 elif "sphinx" in sys.modules:
     pass
     from adafruit_blinka.microcontroller.rp2040_u2if import neopixel as _neopixel
 elif "sphinx" in sys.modules:
     pass
index 5b5fb395bbea10c7ceadbc43eafc0b0ac9ba6715..f9c2394c82ad840d54ed543b236df3c5b8564c35 100644 (file)
@@ -31,7 +31,8 @@ elif detector.board.any_lubancat:
     from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
 elif detector.board.pico_u2if:
     from adafruit_blinka.microcontroller.rp2040_u2if.pwmio import PWMOut
     from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
 elif detector.board.pico_u2if:
     from adafruit_blinka.microcontroller.rp2040_u2if.pwmio import PWMOut
-elif detector.board.feather_u2if:
+elif detector.board.feather_u2if or detector.board.qtpy_u2if or \
+     detector.board.itsybitsy_u2if or detector.board.qt2040_trinkey_u2if:
     from adafruit_blinka.microcontroller.rp2040_u2if.pwmio import PWMOut
 elif "sphinx" in sys.modules:
     pass
     from adafruit_blinka.microcontroller.rp2040_u2if.pwmio import PWMOut
 elif "sphinx" in sys.modules:
     pass