]> Repositories - Adafruit_Blinka-hackapet.git/commitdiff
Merge pull request #101 from s-light/PocketBeagle
authorDrew Fustini <drew@pdp7.com>
Sun, 31 Mar 2019 22:36:35 +0000 (23:36 +0100)
committerGitHub <noreply@github.com>
Sun, 31 Mar 2019 22:36:35 +0000 (23:36 +0100)
PocketBeagle support by @s-light

src/adafruit_blinka/board/beaglebone_black.py
src/adafruit_blinka/board/beaglebone_pocketbeagle.py [new file with mode: 0644]
src/adafruit_blinka/microcontroller/am335x/pin.py
src/board.py

index 5658ffb8295a15aef9ae603db063139df9949eb9..36446f738bd43d9a95109e1fd7c4a4d76f91916c 100644 (file)
@@ -92,27 +92,73 @@ LED_USR3 = pin.USR3
 # SCLK_1 = pin.D21
 # SCK_1 = pin.D21
 
-SDA = pin.SDA
-SCL = pin.SCL
+SDA = pin.P9_19
+SCL = pin.P9_20
 
 # Refer to header default pin modes
 # http://beagleboard.org/static/images/cape-headers.png
+#
 # P9_17 (SPI0_CSO => CE0) enables peripheral device
 # P9_18 (SPI0_D1 => MOSI) outputs data to peripheral device
 # P9_21 (SPIO_DO => MISO) receives data from peripheral device
 # P9_22 (SPI0_SCLK => SCLK) outputs clock signal
-CE0 = pin.CE0
-MOSI = pin.MOSI
-MISO = pin.MISO
-SCLK = pin.SCLK
-#CircuitPython naming convention for SPI Clock
-SCK = pin.SCK
+#
+# Use config-pin to set pin mode for SPI pins
+# https://github.com/beagleboard/bb.org-overlays/tree/master/tools/beaglebone-universal-io
+# config-pin p9.17 spi_cs
+# config-pin p9.18 spi
+# config-pin p9.21 spi
+# config-pin p9.22 spi_sclk
+#
+CE0 = pin.P9_17
+MOSI = pin.P9_18
+MISO = pin.P9_21
+SCLK = pin.P9_22
+# CircuitPython naming convention for SPI Clock
+SCK = SCLK
 
-# SPI1 pins
+# Pins for SPI1
+# refer to:
 # http://beagleboard.org/static/images/cape-headers-spi.png
-CE1 = pin.CE1
-MOSI_1 = pin.MOSI_1
-MISO_1 = pin.MISO_1
-SCLK_1 = pin.SCLK_1
-#CircuitPython naming convention for SPI Clock
-SCK_1 = pin.SCK_1
+#
+# CE1 P9.28 SPI1_CS0
+# MISO_1 P9.29 SPI1_D0
+# MOSI_1 P9.30 SPI1_D1
+# SCLK_1 P9.31 SPI_SCLK
+#
+# SPI1 conflicts with HDMI Audio (McASP)
+#
+# Refer to:
+# https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#U-Boot_Overlays
+#
+# To Disable HDMI AUDIO, uncomment this line in /boot/uEnv.txt:
+# disable_uboot_overlay_audio=1
+#
+# Set pin modes for SPI1 with:
+#
+# config-pin p9.28 spi1_cs
+# config-pin p9.29 spi1
+# config-pin p9.30 spi1
+# config-pin p9.31 spi_sclk
+CE1 = pin.P9_28
+MOSI_1 = pin.P9_29
+MISO_1 = pin.P9_30
+SCLK_1 = pin.P9_31
+# CircuitPython naming convention for SPI Clock
+SCK_1 = SCLK_1
+
+
+# ordered as spiId, sckId, mosiId, misoId
+spiPorts = (
+    (0, SCLK, MOSI, MISO),
+    (1, SCLK_1, MOSI_1, MISO_1)
+)
+
+# ordered as uartId, txId, rxId
+uartPorts = (
+    (),
+)
+
+i2cPorts = (
+    (2, SCL, SDA),
+)
diff --git a/src/adafruit_blinka/board/beaglebone_pocketbeagle.py b/src/adafruit_blinka/board/beaglebone_pocketbeagle.py
new file mode 100644 (file)
index 0000000..8f59efd
--- /dev/null
@@ -0,0 +1,154 @@
+"""
+Pin definitions for the Beaglebone PocketBeagle.
+
+based on
+https://github.com/beagleboard/pocketbeagle/wiki/System-Reference-Manual#figure-42-expansion-header-popular-functions---color-coded
+"""
+from adafruit_blinka.microcontroller.am335x import pin
+
+# initial pins, to mimic bonescript demo
+P1_2 = pin.P1_2
+P1_3 = pin.P1_3
+P1_4 = pin.P1_4
+
+P1_6 = pin.P1_6
+
+P1_8 = pin.P1_8
+
+P1_10 = pin.P1_10
+
+P1_12 = pin.P1_12
+
+P1_19 = pin.P1_19
+P1_20 = pin.P1_20
+P1_21 = pin.P1_21
+
+P1_23 = pin.P1_23
+
+P1_25 = pin.P1_25
+P1_26 = pin.P1_26
+P1_27 = pin.P1_27
+P1_28 = pin.P1_28
+P1_29 = pin.P1_29
+P1_30 = pin.P1_30
+P1_31 = pin.P1_31
+P1_32 = pin.P1_32
+P1_33 = pin.P1_33
+P1_34 = pin.P1_34
+P1_35 = pin.P1_35
+P1_36 = pin.P1_36
+
+
+P2_1 = pin.P2_1
+P2_2 = pin.P2_2
+P2_3 = pin.P2_3
+P2_4 = pin.P2_4
+P2_5 = pin.P2_5
+P2_6 = pin.P2_6
+P2_7 = pin.P2_7
+P2_8 = pin.P2_8
+P2_9 = pin.P2_9
+P2_10 = pin.P2_10
+P2_11 = pin.P2_11
+
+P2_17 = pin.P2_17
+P2_18 = pin.P2_18
+P2_19 = pin.P2_19
+P2_20 = pin.P2_20
+
+P2_22 = pin.P2_22
+
+P2_24 = pin.P2_24
+
+P2_26 = pin.P2_26
+P2_27 = pin.P2_27
+P2_28 = pin.P2_28
+P2_29 = pin.P2_29
+P2_30 = pin.P2_30
+P2_31 = pin.P2_31
+P2_32 = pin.P2_32
+P2_33 = pin.P2_33
+P2_34 = pin.P2_34
+P2_35 = pin.P2_35
+P2_36 = pin.P2_36
+
+LED_USR0 = pin.USR0
+LED_USR1 = pin.USR1
+LED_USR2 = pin.USR2
+LED_USR3 = pin.USR3
+
+##########
+# Refer to header default pin modes
+# https://raw.githubusercontent.com/wiki/beagleboard/pocketbeagle/images/PocketBeagle_pinout.png
+
+# I2C1 pins
+# P2_11 (I2C1_SDA => SDA_1) data signal
+# P2_9 (I2C1_SCL => SCL_1) clock signal
+SDA_1 = pin.P2_11
+SCL_1 = pin.P2_9
+
+# I2C2 pins
+# P1_26 (I2C2_SDA => SDA_2) data signal
+# P1_28 (I2C2_SCL => SCL_2) clock signal
+SDA_2 = pin.P1_26
+SCL_2 = pin.P1_28
+
+# SPI0 pins
+# P1_6 (SPI0_CSO => CE0) enables peripheral device
+# P1_12 (SPI0_MOSI => MOSI) outputs data to peripheral device
+# P1_10 (SPIO_MISO => MISO) receives data from peripheral device
+# P1_8 (SPI0_CLK => SCLK) outputs clock signal
+CE0 = pin.P1_6
+MOSI = pin.P1_12
+MISO = pin.P1_10
+SCLK = pin.P1_8
+# CircuitPython naming convention for SPI Clock
+SCK = SCLK
+
+# SPI1 pins
+# P2_31 (SPI1_CS1 => CE1) enables peripheral device
+# P2_25 (SPI1_MOSI => MOSI) outputs data to peripheral device
+# P2_27 (SPI1_MISO => MISO) receives data from peripheral device
+# P2_29 (SPI1_CLK => SCLK) outputs clock signal
+CE1 = pin.P2_31
+MOSI_1 = pin.P2_25
+MISO_1 = pin.P2_27
+SCLK_1 = pin.P2_29
+# CircuitPython naming convention for SPI Clock
+SCK_1 = SCLK_1
+
+
+# UART0
+TX_0 = pin.P1_30
+RX_0 = pin.P1_32
+
+TX = TX_0
+RX = RX_0
+
+
+# UART2
+# pins already in use by SPI0
+# TX_2 = pin.P1_8
+# RX_2 = pin.P1_10
+
+# UART4
+TX_4 = pin.P2_7
+RX_4 = pin.P2_5
+
+
+# ordered as spiId, sckId, mosiId, misoId
+spiPorts = (
+    (0, SCLK, MOSI, MISO),
+    (1, SCLK_1, MOSI_1, MISO_1),
+)
+
+# ordered as uartId, txId, rxId
+uartPorts = (
+    (0, TX_0, RX_0),
+    (4, TX_4, RX_4),
+)
+
+i2cPorts = (
+    (1, SCL_1, SDA_1),
+    (2, SCL_2, SDA_2),
+)
index 24ae0c12820ca6594a9c2884060c413aa37484fd..b07ad0ffee2f4f462bfc6e3c04898a74ef6af364 100644 (file)
@@ -9,11 +9,11 @@ class Pin:
     PULL_NONE = 0
     PULL_UP = 1
     PULL_DOWN = 2
-    
+
     id = None
     _value = LOW
     _mode = IN
-    
+
     def __init__(self, pin_name):
         self.id = pin_name
 
@@ -41,7 +41,7 @@ class Pin:
             elif pull == self.PULL_DOWN:
                 GPIO.setup(self.id, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
             else:
-                raise RuntimeError("Invalid pull for pin: %s" % self.id)       
+                raise RuntimeError("Invalid pull for pin: %s" % self.id)
 
     def value(self, val=None):
         if val != None:
@@ -56,6 +56,75 @@ class Pin:
         else:
             return GPIO.input(self.id)
 
+
+# PocketBeagle
+P1_2 = Pin('P1_2')
+P1_3 = Pin('P1_3')
+P1_4 = Pin('P1_4')
+
+P1_6 = Pin('P1_6')
+
+P1_8 = Pin('P1_8')
+
+P1_10 = Pin('P1_10')
+
+P1_12 = Pin('P1_12')
+
+P1_19 = Pin('P1_19')
+P1_20 = Pin('P1_20')
+P1_21 = Pin('P1_21')
+
+P1_23 = Pin('P1_23')
+
+P1_25 = Pin('P1_25')
+P1_26 = Pin('P1_26')
+P1_27 = Pin('P1_27')
+P1_28 = Pin('P1_28')
+P1_29 = Pin('P1_29')
+P1_30 = Pin('P1_30')
+P1_31 = Pin('P1_31')
+P1_32 = Pin('P1_32')
+P1_33 = Pin('P1_33')
+P1_34 = Pin('P1_34')
+P1_35 = Pin('P1_35')
+P1_36 = Pin('P1_36')
+
+
+P2_1 = Pin('P2_1')
+P2_2 = Pin('P2_2')
+P2_3 = Pin('P2_3')
+P2_4 = Pin('P2_4')
+P2_5 = Pin('P2_5')
+P2_6 = Pin('P2_6')
+P2_7 = Pin('P2_7')
+P2_8 = Pin('P2_8')
+P2_9 = Pin('P2_9')
+P2_10 = Pin('P2_10')
+P2_11 = Pin('P2_11')
+
+P2_17 = Pin('P2_17')
+P2_18 = Pin('P2_18')
+P2_19 = Pin('P2_19')
+P2_20 = Pin('P2_20')
+
+P2_22 = Pin('P2_22')
+
+P2_24 = Pin('P2_24')
+
+P2_26 = Pin('P2_26')
+P2_27 = Pin('P2_27')
+P2_28 = Pin('P2_28')
+P2_29 = Pin('P2_29')
+P2_30 = Pin('P2_30')
+P2_31 = Pin('P2_31')
+P2_32 = Pin('P2_32')
+P2_33 = Pin('P2_33')
+P2_34 = Pin('P2_34')
+P2_35 = Pin('P2_35')
+P2_36 = Pin('P2_36')
+
+
+# BeagleBone Black
 P8_3 = Pin('P8_3')
 P8_4 = Pin('P8_4')
 P8_5 = Pin('P8_5')
@@ -124,75 +193,26 @@ P9_31 = Pin('P9_31')
 P9_41 = Pin('P9_41')
 P9_42 = Pin('P9_42')
 
+# common to all beagles
 USR0 = Pin('USR0')
 USR1 = Pin('USR1')
 USR2 = Pin('USR2')
 USR3 = Pin('USR3')
 
-SCL = Pin('P9_19')
-SDA = Pin('P9_20')
+# all special functions (SPI / I2C) are moved to
+# src/adafruit_blinka/board/beaglebone_black.py
 
-# Refer to header default pin modes
-# http://beagleboard.org/static/images/cape-headers.png
-#
-# P9_17 (SPI0_CSO => CE0) enables peripheral device
-# P9_18 (SPI0_D1 => MOSI) outputs data to peripheral device
-# P9_21 (SPIO_DO => MISO) receives data from peripheral device
-# P9_22 (SPI0_SCLK => SCLK) outputs clock signal
-# 
-# Use config-pin to set pin mode for SPI pins
-# https://github.com/beagleboard/bb.org-overlays/tree/master/tools/beaglebone-universal-io
-# config-pin p9.17 spi_cs
-# config-pin p9.18 spi
-# config-pin p9.21 spi
-# config-pin p9.22 spi_sclk
+# # ordered as spiId, sckId, mosiId, misoId
+# spiPorts = (
+#     (0, SCLK, MOSI, MISO),
+#     (1, SCLK_1, MOSI_1, MISO_1)
+# )
 #
-CE0 = Pin('P9_17')
-MOSI = Pin('P9_18')
-MISO = Pin('P9_21')
-SCLK = Pin('P9_22')
-#CircuitPython naming convention for SPI Clock
-SCK = Pin('P9_22')
-
-# Pins for SPI1
-# refer to:
-# http://beagleboard.org/static/images/cape-headers-spi.png
+# # ordered as uartId, txId, rxId
+# uartPorts = (
+#     (),
+# )
 #
-# CE1 P9.28 SPI1_CS0
-# MISO_1 P9.29 SPI1_D0
-# MOSI_1 P9.30 SPI1_D1
-# SCLK_1 P9.31 SPI_SCLK
-#
-# SPI1 conflicts with HDMI Audio (McASP)
-#
-# Refer to:
-# https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#U-Boot_Overlays
-#
-# To Disable HDMI AUDIO, uncomment this line in /boot/uEnv.txt:
-# disable_uboot_overlay_audio=1
-#
-# Set pin modes for SPI1 with:
-#
-# config-pin p9.28 spi1_cs
-# config-pin p9.29 spi1
-# config-pin p9.30 spi1
-# config-pin p9.31 spi_sclk
-CE1 = Pin('P9_28')
-MOSI_1 = Pin('P9_29')
-MISO_1 = Pin('P9_30')
-SCLK_1 = Pin('P9_31')
-#CircuitPython naming convention for SPI Clock
-SCK_1 = Pin('P9_31')
-
-# ordered as spiId, sckId, mosiId, misoId
-spiPorts = ((0, SCLK, MOSI, MISO), (1, SCLK_1, MOSI_1, MISO_1))
-
-# ordered as uartId, txId, rxId
-uartPorts = (
-    (),
-)
-
-i2cPorts = (
-    (2, SCL, SDA),
-)
-
+# i2cPorts = (
+#     (2, SCL, SDA),
+# )
index db6f8a4655bb5ec59b1e32b7db6d3a59895a879d..887c2967d0a37d15eaf06423d058db4aa5d861f5 100755 (executable)
@@ -55,6 +55,9 @@ elif detector.board.RASPBERRY_PI_B_REV2:
 elif board_id == ap_board.BEAGLEBONE_BLACK:
     from adafruit_blinka.board.beaglebone_black import *
 
+elif board_id == ap_board.BEAGLEBONE_POCKETBEAGLE:
+    from adafruit_blinka.board.beaglebone_pocketbeagle import *
+
 elif board_id == ap_board.ORANGE_PI_PC:
     from adafruit_blinka.board.orangepipc import *