From: Drew Fustini Date: Tue, 2 Apr 2019 11:14:41 +0000 (+0100) Subject: Merge pull request #102 from s-light/PocketBeagle2 X-Git-Tag: 1.3.0~3 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/1d32b1f741afd0cfc6bc338368aeb3f6440c8d1d?hp=a8b87ecacf1ddb77239f707c33ea26bedecf13ed Merge pull request #102 from s-light/PocketBeagle2 Pocket beagle2 --- diff --git a/examples/bbb_digitalio.py b/examples/bbb_digitalio.py old mode 100644 new mode 100755 index 25496d5..9d8af71 --- a/examples/bbb_digitalio.py +++ b/examples/bbb_digitalio.py @@ -1,3 +1,6 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + # Example of blinking LED on BeagleBone Black # https://www.adafruit.com/product/1876 # @@ -5,6 +8,16 @@ # 1) connect anode (+) lead of LED to P9.12 pin # 2) connect cathode (-) lead to 1K Ohm resistor # 3) connect that 1K Ohm resistor to DGND (P9.1) +# +# NOTE: the pin mode can be verified with the command line +# utility config-pin on the BeagleBoard.org Debian image +# +# To verify the pin is in GPIO mode: +# debian@beaglebone:~$ config-pin -q p9.12 +# P9_12 Mode: gpio Direction: out Value: 0 +# +# To set pin to GPIO mode: +# $ config-pin p9.12 gpio import time import board diff --git a/examples/pb_digitalio.py b/examples/pb_digitalio.py old mode 100644 new mode 100755 index 884fc00..0eb3a2b --- a/examples/pb_digitalio.py +++ b/examples/pb_digitalio.py @@ -1,3 +1,6 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + # Example of blinking LED on PocketBeagle # https://www.adafruit.com/product/4179 # diff --git a/src/adafruit_blinka/board/beaglebone_black.py b/src/adafruit_blinka/board/beaglebone_black.py index 36446f7..09f953b 100644 --- a/src/adafruit_blinka/board/beaglebone_black.py +++ b/src/adafruit_blinka/board/beaglebone_black.py @@ -2,74 +2,102 @@ from adafruit_blinka.microcontroller.am335x import pin # initial pins, to mimic bonescript demo -P8_3 = pin.P8_3 -P8_4 = pin.P8_4 -P8_5 = pin.P8_5 -P8_6 = pin.P8_6 -P8_7 = pin.P8_7 -P8_8 = pin.P8_8 -P8_9 = pin.P8_9 -P8_10 = pin.P8_10 -P8_11 = pin.P8_11 -P8_12 = pin.P8_12 -P8_13 = pin.P8_13 -P8_14 = pin.P8_14 -P8_15 = pin.P8_15 -P8_16 = pin.P8_16 -P8_17 = pin.P8_17 -P8_18 = pin.P8_18 -P8_19 = pin.P8_19 -P8_20 = pin.P8_20 -P8_21 = pin.P8_21 -P8_22 = pin.P8_22 -P8_23 = pin.P8_23 -P8_24 = pin.P8_24 -P8_25 = pin.P8_25 -P8_26 = pin.P8_26 -P8_27 = pin.P8_27 -P8_28 = pin.P8_28 -P8_29 = pin.P8_29 -P8_30 = pin.P8_30 -P8_31 = pin.P8_31 -P8_32 = pin.P8_32 -P8_33 = pin.P8_33 -P8_34 = pin.P8_34 -P8_35 = pin.P8_35 -P8_36 = pin.P8_36 -P8_37 = pin.P8_37 -P8_38 = pin.P8_38 -P8_39 = pin.P8_39 -P8_40 = pin.P8_40 -P8_41 = pin.P8_41 -P8_42 = pin.P8_42 -P8_43 = pin.P8_43 -P8_44 = pin.P8_44 -P8_45 = pin.P8_45 -P8_46 = pin.P8_46 -P9_11 = pin.P9_11 -P9_12 = pin.P9_12 -P9_13 = pin.P9_13 -P9_14 = pin.P9_14 -P9_15 = pin.P9_15 -P9_16 = pin.P9_16 -P9_17 = pin.P9_17 -P9_18 = pin.P9_18 -P9_19 = pin.P9_19 -P9_20 = pin.P9_20 -P9_21 = pin.P9_21 -P9_22 = pin.P9_22 -P9_23 = pin.P9_23 -P9_24 = pin.P9_24 -P9_25 = pin.P9_25 -P9_26 = pin.P9_26 -P9_27 = pin.P9_27 -P9_28 = pin.P9_28 -P9_29 = pin.P9_29 -P9_30 = pin.P9_30 -P9_31 = pin.P9_31 -P9_41 = pin.P9_41 -P9_42 = pin.P9_42 +# BeagleBone Black +# P8_1 = DGND # DGND +# P8_2 = DGND # DGND +P8_3 = pin.P8_3 # GPIO1_6 - GPIO_38 +P8_4 = pin.P8_4 # GPIO1_7 - GPIO_39 +P8_5 = pin.P8_5 # GPIO1_2 - GPIO_34 +P8_6 = pin.P8_6 # GPIO1_3 - GPIO_35 +P8_7 = pin.P8_7 # TIMER4 - GPIO_66 +P8_8 = pin.P8_8 # TIMER7 - GPIO_67 +P8_9 = pin.P8_9 # TIMER5 - GPIO_69 +P8_10 = pin.P8_10 # TIMER6 - GPIO_68 +P8_11 = pin.P8_11 # GPIO1_13 - GPIO_45 +P8_12 = pin.P8_12 # GPIO1_12 - GPIO_44 +P8_13 = pin.P8_13 # EHRPWM2B - GPIO_23 +P8_14 = pin.P8_14 # GPIO0_26 - GPIO_26 +P8_15 = pin.P8_15 # GPIO1_15 - GPIO_47 +P8_16 = pin.P8_16 # GPIO1_14 - GPIO_46 +P8_17 = pin.P8_17 # GPIO0_27 - GPIO_27 +P8_18 = pin.P8_18 # GPIO2_1 - GPIO_65 +P8_19 = pin.P8_19 # EHRPWM2A - GPIO_22 +P8_20 = pin.P8_20 # GPIO1_31 - GPIO_63 +P8_21 = pin.P8_21 # GPIO1_30 - GPIO_62 +P8_22 = pin.P8_22 # GPIO1_5 - GPIO_37 +P8_23 = pin.P8_23 # GPIO1_4 - GPIO_36 +P8_24 = pin.P8_24 # GPIO1_1 - GPIO_33 +P8_25 = pin.P8_25 # GPIO1_0 - GPIO_32 +P8_26 = pin.P8_26 # GPIO1_29 - GPIO_61 +P8_27 = pin.P8_27 # GPIO2_22 - GPIO_86 +P8_28 = pin.P8_28 # GPIO2_24 - GPIO_88 +P8_29 = pin.P8_29 # GPIO2_23 - GPIO_87 +P8_30 = pin.P8_30 # GPIO2_25 - GPIO_89 +P8_31 = pin.P8_31 # UART5_CTSN - GPIO_10 +P8_32 = pin.P8_32 # UART5_RTSN - GPIO_11 +P8_33 = pin.P8_33 # UART4_RTSN - GPIO_9 +P8_34 = pin.P8_34 # UART3_RTSN - GPIO_81 +P8_35 = pin.P8_35 # UART4_CTSN - GPIO_8 +P8_36 = pin.P8_36 # UART3_CTSN - GPIO_80 +P8_37 = pin.P8_37 # UART5_TXD - GPIO_78 +P8_38 = pin.P8_38 # UART5_RXD - GPIO_79 +P8_39 = pin.P8_39 # GPIO2_12 - GPIO_76 +P8_40 = pin.P8_40 # GPIO2_13 - GPIO_77 +P8_41 = pin.P8_41 # GPIO2_10 - GPIO_74 +P8_42 = pin.P8_42 # GPIO2_11 - GPIO_75 +P8_43 = pin.P8_43 # GPIO2_8 - GPIO_72 +P8_44 = pin.P8_44 # GPIO2_9 - GPIO_73 +P8_45 = pin.P8_45 # GPIO2_6 - GPIO_70 +P8_46 = pin.P8_46 # GPIO2_7 - GPIO_71 +# P9_1 = DGND # DGND +# P9_2 = DGND # DGND +# P9_3 = VDD_3V3 # VDD_3V3 +# P9_4 = VDD_3V3 # VDD_3V3 +# P9_5 = VDD_5V # VDD_5V +# P9_6 = VDD_5V # VDD_5V +# P9_7 = SYS_5V # SYS_5V +# P9_8 = SYS_5V # SYS_5V +# P9_9 = PWR_BUT # PWR_BUT +# P9_10 = SYS_RESETN # SYS_RESETn +P9_11 = pin.P9_11 # UART4_RXD - GPIO_30 +P9_12 = pin.P9_12 # GPIO1_28 - GPIO_60 +P9_13 = pin.P9_13 # UART4_TXD - GPIO_31 +P9_14 = pin.P9_14 # EHRPWM1A - GPIO_50 +P9_15 = pin.P9_15 # GPIO1_16 - GPIO_48 +P9_16 = pin.P9_16 # EHRPWM1B - GPIO_51 +P9_17 = pin.P9_17 # I2C1_SCL - GPIO_5 +P9_18 = pin.P9_18 # I2C1_SDA - GPIO_4 +P9_19 = pin.P9_19 # I2C2_SCL - GPIO_13 +P9_20 = pin.P9_20 # I2C2_SDA - GPIO_12 +P9_21 = pin.P9_21 # UART2_TXD - GPIO_3 +P9_22 = pin.P9_22 # UART2_RXD - GPIO_2 +P9_23 = pin.P9_23 # GPIO1_17 - GPIO_49 +P9_24 = pin.P9_24 # UART1_TXD - GPIO_15 +P9_25 = pin.P9_25 # GPIO3_21 - GPIO_117 +P9_26 = pin.P9_26 # UART1_RXD - GPIO_14 +P9_27 = pin.P9_27 # GPIO3_19 - GPIO_115 +P9_28 = pin.P9_28 # SPI1_CS0 - GPIO_113 +P9_29 = pin.P9_29 # SPI1_D0 - GPIO_111 +P9_30 = pin.P9_30 # SPI1_D1 - GPIO_112 +P9_31 = pin.P9_31 # SPI1_SCLK - GPIO_110 +# P9_32 = VDD_ADC # VDD_ADC +# P9_33 = AIN4 # AIN4 +# P9_34 = GNDA_ADC # GNDA_ADC +# P9_35 = AIN6 # AIN6 +# P9_36 = AIN5 # AIN5 +# P9_37 = AIN2 # AIN2 +# P9_38 = AIN3 # AIN3 +# P9_39 = AIN0 # AIN0 +# P9_40 = AIN1 # AIN1 +P9_41 = pin.P9_41 # CLKOUT2 - GPIO_20 +P9_42 = pin.P9_42 # GPIO0_7 - GPIO_7 +# P9_43 = DGND # DGND +# P9_44 = DGND # DGND +# P9_45 = DGND # DGND +# P9_46 = DGND # DGND + +# common to all beagles LED_USR0 = pin.USR0 LED_USR1 = pin.USR1 LED_USR2 = pin.USR2 @@ -92,8 +120,8 @@ LED_USR3 = pin.USR3 # SCLK_1 = pin.D21 # SCK_1 = pin.D21 -SDA = pin.P9_19 -SCL = pin.P9_20 +SDA = pin.I2C2_SDA # P9_19 +SCL = pin.I2C2_SCL # P9_20 # Refer to header default pin modes # http://beagleboard.org/static/images/cape-headers.png @@ -110,10 +138,10 @@ SCL = pin.P9_20 # 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 +CE0 = pin.SPI0_CS0 # P9_17 +MOSI = pin.SPI0_D1 # P9_18 +MISO = pin.SPI0_D0 # P9_21 +SCLK = pin.SPI0_SCLK # P9_22 # CircuitPython naming convention for SPI Clock SCK = SCLK @@ -140,25 +168,9 @@ SCK = SCLK # 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 +CE1 = pin.SPI1_CS0 # P9_28 +MOSI_1 = pin.SPI1_D0 # P9_29 +MISO_1 = pin.SPI1_D1 # P9_30 +SCLK_1 = pin.SPI1_SCLK # 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 index 8f59efd..a56e5f7 100644 --- a/src/adafruit_blinka/board/beaglebone_pocketbeagle.py +++ b/src/adafruit_blinka/board/beaglebone_pocketbeagle.py @@ -7,71 +7,83 @@ https://github.com/beagleboard/pocketbeagle/wiki/System-Reference-Manual#figure- 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 - +# PocketBeagle +# P1_1 = SYS VIN # VIN_AC +P1_2 = pin.P1_2 # GPIO2_23 - GPIO_87 +P1_3 = pin.P1_3 # USB1_VBUS_OUT - (silkscreen: USB1 V_EN) +P1_4 = pin.P1_4 # GPIO2_25 - GPIO_89 +# P1_5 = USB VBUS # USB1_VBUS_IN +P1_6 = pin.P1_6 # SPI0_CS0 - GPIO_5 +# P1_7 = USB VIN # VIN-USB +P1_8 = pin.P1_8 # SPI0_SCLK - GPIO_2 +# P1_9 = USB1 DN # USB1-DN +P1_10 = pin.P1_10 # SPI0_D0 - GPIO_3 +# P1_11 = USB1 DP # USB1-DP +P1_12 = pin.P1_12 # SPI0_D1 - GPIO_4 +# P1_13 = USB1 ID # USB1-ID +# P1_14 = SYS 3.3V # VOUT-3.3V +# P1_15 = SYS GND # GND +# P1_16 = SYS GND # GND +# P1_17 = AIN 1.8V REF- # VREFN +# P1_18 = AIN 1.8V REF+ # VREFP +P1_19 = pin.P1_19 # AIN0 +P1_20 = pin.P1_20 # GPIO0_20 - GPIO_20 +P1_21 = pin.P1_21 # AIN1 +# P1_22 = SYS GND # GND +P1_23 = pin.P1_23 # AIN2 +# P1_22 = SYS VOUT # VOUT-5V +P1_25 = pin.P1_25 # AIN3 +P1_26 = pin.P1_26 # I2C2_SDA - GPIO_12 +P1_27 = pin.P1_27 # AIN4 +P1_28 = pin.P1_28 # I2C2_SCL - GPIO_13 +P1_29 = pin.P1_29 # GPIO3_21 - GPIO_117 +P1_30 = pin.P1_30 # UART0_TXD - GPIO_43 +P1_31 = pin.P1_31 # GPIO3_18 - GPIO_114 +P1_32 = pin.P1_32 # UART0_RXD - GPIO_42 +P1_33 = pin.P1_33 # GPIO3_15 - GPIO_111 +P1_34 = pin.P1_34 # GPIO0_26 - GPIO_26 +P1_35 = pin.P1_35 # GPIO2_24 - GPIO_88 +P1_36 = pin.P1_36 # EHRPWM0A - GPIO_110 + + +P2_1 = pin.P2_1 # EHRPWM1A - GPIO_50 +P2_2 = pin.P2_2 # GPIO1_27 - GPIO_59 +P2_3 = pin.P2_3 # GPIO0_23 - GPIO_23 +P2_4 = pin.P2_4 # GPIO1_26 - GPIO_58 +P2_5 = pin.P2_5 # UART4_RXD - GPIO_30 +P2_6 = pin.P2_6 # GPIO1_25 - GPIO_57 +P2_7 = pin.P2_7 # UART4_TXD - GPIO_31 +P2_8 = pin.P2_8 # GPIO1_28 - GPIO_60 +P2_9 = pin.P2_9 # I2C1_SCL - GPIO_15 +P2_10 = pin.P2_10 # GPIO1_20 - GPIO_52 +P2_11 = pin.P2_11 # I2C1_SDA - GPIO_14 +# P2_12 = SYS PWR BTN # POWER_BUTTON +# P2_13 = SYS VOUT # VOUT-5V +# P2_14 = BAT VIN # BAT-VIN +# P2_15 = SYS GND # GND +# P2_16 = BAT TEMP # BAT-TEMP +P2_17 = pin.P2_17 # GPIO2_1 - GPIO_65 +P2_18 = pin.P2_18 # GPIO1_15 - GPIO_47 +P2_19 = pin.P2_19 # GPIO0_27 - GPIO_27 +P2_20 = pin.P2_20 # GPIO2_0 - GPIO_64 +# P2_21 = SYS GND # GND +P2_22 = pin.P2_22 # GPIO1_14 - GPIO_46 +# P2_23 = SYS 3.3V # VOUT-3.3V +P2_24 = pin.P2_24 # GPIO1_12 - GPIO_44 +P2_25 = pin.P2_25 # SPI1_CS0 - GPIO_41 +# P2_26 = SYS NRST # RESET# +P2_27 = pin.P2_27 # SPI1_D0 - GPIO_40 +P2_28 = pin.P2_28 # GPIO3_20 - GPIO_116 +P2_29 = pin.P2_29 # SPI1_SCLK - GPIO_7 +P2_30 = pin.P2_30 # GPIO3_17 - GPIO_113 +P2_31 = pin.P2_31 # SPI1_CS1 - GPIO_19 +P2_32 = pin.P2_32 # GPIO3_16 - GPIO_112 +P2_33 = pin.P2_33 # GPIO1_13 - GPIO_45 +P2_34 = pin.P2_34 # GPIO3_19 - GPIO_115 +P2_35 = pin.P2_35 # GPIO2_22 - GPIO_86 +P2_36 = pin.P2_36 # AIN7 + +# common to all beagles LED_USR0 = pin.USR0 LED_USR1 = pin.USR1 LED_USR2 = pin.USR2 @@ -82,73 +94,45 @@ LED_USR3 = pin.USR3 # 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 +SDA_1 = pin.I2C1_SDA # P2_11 data signal +SCL_1 = pin.I2C1_SCL # P2_9 clock signal +# for example compatibility we create a alias +SDA = SDA_1 +SCL = SCL_1 # 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 +SDA_2 = pin.I2C2_SDA # P1_26 data signal +SCL_2 = pin.I2C2_SCL # P1_28 clock signal # 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 +CE0 = pin.SPI0_CS0 # P1_6 - enables peripheral device +SCLK = pin.SPI0_SCLK # P1_12 - outputs data to peripheral device +MOSI = pin.SPI0_D1 # P1_10 - receives data from peripheral device +MISO = pin.SPI0_D0 # P1_8 - outputs clock signal # 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 +CE0_1 = pin.SPI1_CS1 # P2_31 - enables peripheral device +SCLK_1 = pin.SPI1_SCLK # P2_25 - outputs data to peripheral device +MOSI_1 = pin.SPI1_D1 # P2_27 - receives data from peripheral device +MISO_1 = pin.SPI1_D0 # P2_29 - outputs clock signal # CircuitPython naming convention for SPI Clock SCK_1 = SCLK_1 # UART0 -TX_0 = pin.P1_30 -RX_0 = pin.P1_32 - +TX_0 = pin.UART0_TXD # P1_30 +RX_0 = pin.UART0_RXD # P1_32 +# create alias for most of the examples TX = TX_0 RX = RX_0 - # UART2 # pins already in use by SPI0 -# TX_2 = pin.P1_8 -# RX_2 = pin.P1_10 +# TX_2 = pin.UART2_TXD # P1_8 +# RX_2 = pin.UART2_RXD # 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), -) +TX_4 = pin.UART4_TXD # P2_7 +RX_4 = pin.UART4_RXD # P2_5 diff --git a/src/adafruit_blinka/microcontroller/am335x/pin.py b/src/adafruit_blinka/microcontroller/am335x/pin.py index 71715e6..f8c1649 100644 --- a/src/adafruit_blinka/microcontroller/am335x/pin.py +++ b/src/adafruit_blinka/microcontroller/am335x/pin.py @@ -57,162 +57,289 @@ class Pin: return GPIO.input(self.id) +# names in comments copied from +# https://github.com/adafruit/adafruit-beaglebone-io-python/blob/master/source/common.c#L73 + # 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_25 = Pin('P2_25') -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') +# P1_1 = SYS VIN # VIN_AC +P1_2 = Pin('P1_2') # GPIO2_23 - GPIO_87 +P1_3 = Pin('P1_3') # USB1_VBUS_OUT - (silkscreen: USB1 V_EN) +P1_4 = Pin('P1_4') # GPIO2_25 - GPIO_89 +# P1_5 = USB VBUS # USB1_VBUS_IN +P1_6 = Pin('P1_6') # SPI0_CS0 - GPIO_5 +# P1_7 = USB VIN # VIN-USB +P1_8 = Pin('P1_8') # SPI0_SCLK - GPIO_2 +# P1_9 = USB1 DN # USB1-DN +P1_10 = Pin('P1_10') # SPI0_D0 - GPIO_3 +# P1_11 = USB1 DP # USB1-DP +P1_12 = Pin('P1_12') # SPI0_D1 - GPIO_4 +# P1_13 = USB1 ID # USB1-ID +# P1_14 = SYS 3.3V # VOUT-3.3V +# P1_15 = SYS GND # GND +# P1_16 = SYS GND # GND +# P1_17 = AIN 1.8V REF- # VREFN +# P1_18 = AIN 1.8V REF+ # VREFP +P1_19 = Pin('P1_19') # AIN0 +P1_20 = Pin('P1_20') # GPIO0_20 - GPIO_20 +P1_21 = Pin('P1_21') # AIN1 +# P1_22 = SYS GND # GND +P1_23 = Pin('P1_23') # AIN2 +# P1_22 = SYS VOUT # VOUT-5V +P1_25 = Pin('P1_25') # AIN3 +P1_26 = Pin('P1_26') # I2C2_SDA - GPIO_12 +P1_27 = Pin('P1_27') # AIN4 +P1_28 = Pin('P1_28') # I2C2_SCL - GPIO_13 +P1_29 = Pin('P1_29') # GPIO3_21 - GPIO_117 +P1_30 = Pin('P1_30') # UART0_TXD - GPIO_43 +P1_31 = Pin('P1_31') # GPIO3_18 - GPIO_114 +P1_32 = Pin('P1_32') # UART0_RXD - GPIO_42 +P1_33 = Pin('P1_33') # GPIO3_15 - GPIO_111 +P1_34 = Pin('P1_34') # GPIO0_26 - GPIO_26 +P1_35 = Pin('P1_35') # GPIO2_24 - GPIO_88 +P1_36 = Pin('P1_36') # EHRPWM0A - GPIO_110 + + +P2_1 = Pin('P2_1') # EHRPWM1A - GPIO_50 +P2_2 = Pin('P2_2') # GPIO1_27 - GPIO_59 +P2_3 = Pin('P2_3') # GPIO0_23 - GPIO_23 +P2_4 = Pin('P2_4') # GPIO1_26 - GPIO_58 +P2_5 = Pin('P2_5') # UART4_RXD - GPIO_30 +P2_6 = Pin('P2_6') # GPIO1_25 - GPIO_57 +P2_7 = Pin('P2_7') # UART4_TXD - GPIO_31 +P2_8 = Pin('P2_8') # GPIO1_28 - GPIO_60 +P2_9 = Pin('P2_9') # I2C1_SCL - GPIO_15 +P2_10 = Pin('P2_10') # GPIO1_20 - GPIO_52 +P2_11 = Pin('P2_11') # I2C1_SDA - GPIO_14 +# P2_12 = SYS PWR BTN # POWER_BUTTON +# P2_13 = SYS VOUT # VOUT-5V +# P2_14 = BAT VIN # BAT-VIN +# P2_15 = SYS GND # GND +# P2_16 = BAT TEMP # BAT-TEMP +P2_17 = Pin('P2_17') # GPIO2_1 - GPIO_65 +P2_18 = Pin('P2_18') # GPIO1_15 - GPIO_47 +P2_19 = Pin('P2_19') # GPIO0_27 - GPIO_27 +P2_20 = Pin('P2_20') # GPIO2_0 - GPIO_64 +# P2_21 = SYS GND # GND +P2_22 = Pin('P2_22') # GPIO1_14 - GPIO_46 +# P2_23 = SYS 3.3V # VOUT-3.3V +P2_24 = Pin('P2_24') # GPIO1_12 - GPIO_44 +P2_25 = Pin('P2_25') # SPI1_D1 - GPIO_41 +# P2_26 = SYS NRST # RESET# +P2_27 = Pin('P2_27') # SPI1_D0 - GPIO_40 +P2_28 = Pin('P2_28') # GPIO3_20 - GPIO_116 +P2_29 = Pin('P2_29') # SPI1_SCLK - GPIO_7 +P2_30 = Pin('P2_30') # GPIO3_17 - GPIO_113 +P2_31 = Pin('P2_31') # SPI1_CS1 - GPIO_19 +P2_32 = Pin('P2_32') # GPIO3_16 - GPIO_112 +P2_33 = Pin('P2_33') # GPIO1_13 - GPIO_45 +P2_34 = Pin('P2_34') # GPIO3_19 - GPIO_115 +P2_35 = Pin('P2_35') # GPIO2_22 - GPIO_86 +P2_36 = Pin('P2_36') # AIN7 # BeagleBone Black -P8_3 = Pin('P8_3') -P8_4 = Pin('P8_4') -P8_5 = Pin('P8_5') -P8_6 = Pin('P8_6') -P8_7 = Pin('P8_7') -P8_8 = Pin('P8_8') -P8_9 = Pin('P8_9') -P8_10 = Pin('P8_10') -P8_11 = Pin('P8_11') -P8_12 = Pin('P8_12') -P8_13 = Pin('P8_13') -P8_14 = Pin('P8_14') -P8_15 = Pin('P8_15') -P8_16 = Pin('P8_16') -P8_17 = Pin('P8_17') -P8_18 = Pin('P8_18') -P8_19 = Pin('P8_19') -P8_20 = Pin('P8_20') -P8_21 = Pin('P8_21') -P8_22 = Pin('P8_22') -P8_23 = Pin('P8_23') -P8_24 = Pin('P8_24') -P8_25 = Pin('P8_25') -P8_26 = Pin('P8_26') -P8_27 = Pin('P8_27') -P8_28 = Pin('P8_28') -P8_29 = Pin('P8_29') -P8_30 = Pin('P8_30') -P8_31 = Pin('P8_31') -P8_32 = Pin('P8_32') -P8_33 = Pin('P8_33') -P8_34 = Pin('P8_34') -P8_35 = Pin('P8_35') -P8_36 = Pin('P8_36') -P8_37 = Pin('P8_37') -P8_38 = Pin('P8_38') -P8_39 = Pin('P8_39') -P8_40 = Pin('P8_40') -P8_41 = Pin('P8_41') -P8_42 = Pin('P8_42') -P8_43 = Pin('P8_43') -P8_44 = Pin('P8_44') -P8_45 = Pin('P8_45') -P8_46 = Pin('P8_46') -P9_11 = Pin('P9_11') -P9_12 = Pin('P9_12') -P9_13 = Pin('P9_13') -P9_14 = Pin('P9_14') -P9_15 = Pin('P9_15') -P9_16 = Pin('P9_16') -P9_17 = Pin('P9_17') -P9_18 = Pin('P9_18') -P9_19 = Pin('P9_19') -P9_20 = Pin('P9_20') -P9_21 = Pin('P9_21') -P9_22 = Pin('P9_22') -P9_23 = Pin('P9_23') -P9_24 = Pin('P9_24') -P9_25 = Pin('P9_25') -P9_26 = Pin('P9_26') -P9_27 = Pin('P9_27') -P9_28 = Pin('P9_28') -P9_29 = Pin('P9_29') -P9_30 = Pin('P9_30') -P9_31 = Pin('P9_31') -P9_41 = Pin('P9_41') -P9_42 = Pin('P9_42') +# P8_1 = DGND # DGND - GPIO_0 +# P8_2 = DGND # DGND - GPIO_0 +P8_3 = Pin('P8_3') # GPIO1_6 - GPIO_38 +P8_4 = Pin('P8_4') # GPIO1_7 - GPIO_39 +P8_5 = Pin('P8_5') # GPIO1_2 - GPIO_34 +P8_6 = Pin('P8_6') # GPIO1_3 - GPIO_35 +P8_7 = Pin('P8_7') # TIMER4 - GPIO_66 +P8_8 = Pin('P8_8') # TIMER7 - GPIO_67 +P8_9 = Pin('P8_9') # TIMER5 - GPIO_69 +P8_10 = Pin('P8_10') # TIMER6 - GPIO_68 +P8_11 = Pin('P8_11') # GPIO1_13 - GPIO_45 +P8_12 = Pin('P8_12') # GPIO1_12 - GPIO_44 +P8_13 = Pin('P8_13') # EHRPWM2B - GPIO_23 +P8_14 = Pin('P8_14') # GPIO0_26 - GPIO_26 +P8_15 = Pin('P8_15') # GPIO1_15 - GPIO_47 +P8_16 = Pin('P8_16') # GPIO1_14 - GPIO_46 +P8_17 = Pin('P8_17') # GPIO0_27 - GPIO_27 +P8_18 = Pin('P8_18') # GPIO2_1 - GPIO_65 +P8_19 = Pin('P8_19') # EHRPWM2A - GPIO_22 +P8_20 = Pin('P8_20') # GPIO1_31 - GPIO_63 +P8_21 = Pin('P8_21') # GPIO1_30 - GPIO_62 +P8_22 = Pin('P8_22') # GPIO1_5 - GPIO_37 +P8_23 = Pin('P8_23') # GPIO1_4 - GPIO_36 +P8_24 = Pin('P8_24') # GPIO1_1 - GPIO_33 +P8_25 = Pin('P8_25') # GPIO1_0 - GPIO_32 +P8_26 = Pin('P8_26') # GPIO1_29 - GPIO_61 +P8_27 = Pin('P8_27') # GPIO2_22 - GPIO_86 +P8_28 = Pin('P8_28') # GPIO2_24 - GPIO_88 +P8_29 = Pin('P8_29') # GPIO2_23 - GPIO_87 +P8_30 = Pin('P8_30') # GPIO2_25 - GPIO_89 +P8_31 = Pin('P8_31') # UART5_CTSN - GPIO_10 +P8_32 = Pin('P8_32') # UART5_RTSN - GPIO_11 +P8_33 = Pin('P8_33') # UART4_RTSN - GPIO_9 +P8_34 = Pin('P8_34') # UART3_RTSN - GPIO_81 +P8_35 = Pin('P8_35') # UART4_CTSN - GPIO_8 +P8_36 = Pin('P8_36') # UART3_CTSN - GPIO_80 +P8_37 = Pin('P8_37') # UART5_TXD - GPIO_78 +P8_38 = Pin('P8_38') # UART5_RXD - GPIO_79 +P8_39 = Pin('P8_39') # GPIO2_12 - GPIO_76 +P8_40 = Pin('P8_40') # GPIO2_13 - GPIO_77 +P8_41 = Pin('P8_41') # GPIO2_10 - GPIO_74 +P8_42 = Pin('P8_42') # GPIO2_11 - GPIO_75 +P8_43 = Pin('P8_43') # GPIO2_8 - GPIO_72 +P8_44 = Pin('P8_44') # GPIO2_9 - GPIO_73 +P8_45 = Pin('P8_45') # GPIO2_6 - GPIO_70 +P8_46 = Pin('P8_46') # GPIO2_7 - GPIO_71 +# P9_1 = DGND # DGND - GPIO_0 +# P9_2 = DGND # DGND - GPIO_0 +# P9_3 = VDD_3V3 # VDD_3V3 - GPIO_0 +# P9_4 = VDD_3V3 # VDD_3V3 - GPIO_0 +# P9_5 = VDD_5V # VDD_5V - GPIO_0 +# P9_6 = VDD_5V # VDD_5V - GPIO_0 +# P9_7 = SYS_5V # SYS_5V - GPIO_0 +# P9_8 = SYS_5V # SYS_5V - GPIO_0 +# P9_9 = PWR_BUT # PWR_BUT - GPIO_0 +# P9_10 = SYS_RESETN # SYS_RESETn - GPIO_0 +P9_11 = Pin('P9_11') # UART4_RXD - GPIO_30 +P9_12 = Pin('P9_12') # GPIO1_28 - GPIO_60 +P9_13 = Pin('P9_13') # UART4_TXD - GPIO_31 +P9_14 = Pin('P9_14') # EHRPWM1A - GPIO_50 +P9_15 = Pin('P9_15') # GPIO1_16 - GPIO_48 +P9_16 = Pin('P9_16') # EHRPWM1B - GPIO_51 +P9_17 = Pin('P9_17') # I2C1_SCL - GPIO_5 +P9_18 = Pin('P9_18') # I2C1_SDA - GPIO_4 +P9_19 = Pin('P9_19') # I2C2_SCL - GPIO_13 +P9_20 = Pin('P9_20') # I2C2_SDA - GPIO_12 +P9_21 = Pin('P9_21') # UART2_TXD - GPIO_3 +P9_22 = Pin('P9_22') # UART2_RXD - GPIO_2 +P9_23 = Pin('P9_23') # GPIO1_17 - GPIO_49 +P9_24 = Pin('P9_24') # UART1_TXD - GPIO_15 +P9_25 = Pin('P9_25') # GPIO3_21 - GPIO_117 +P9_26 = Pin('P9_26') # UART1_RXD - GPIO_14 +P9_27 = Pin('P9_27') # GPIO3_19 - GPIO_115 +P9_28 = Pin('P9_28') # SPI1_CS0 - GPIO_113 +P9_29 = Pin('P9_29') # SPI1_D0 - GPIO_111 +P9_30 = Pin('P9_30') # SPI1_D1 - GPIO_112 +P9_31 = Pin('P9_31') # SPI1_SCLK - GPIO_110 +# P9_32 = VDD_ADC # VDD_ADC - GPIO_0 +# P9_33 = AIN4 # AIN4 - GPIO_0 +# P9_34 = GNDA_ADC # GNDA_ADC - GPIO_0 +# P9_35 = AIN6 # AIN6 - GPIO_0 +# P9_36 = AIN5 # AIN5 - GPIO_0 +# P9_37 = AIN2 # AIN2 - GPIO_0 +# P9_38 = AIN3 # AIN3 - GPIO_0 +# P9_39 = AIN0 # AIN0 - GPIO_0 +# P9_40 = AIN1 # AIN1 - GPIO_0 +P9_41 = Pin('P9_41') # CLKOUT2 - GPIO_20 +P9_42 = Pin('P9_42') # GPIO0_7 - GPIO_7 +# P9_43 = DGND # DGND - GPIO_0 +# P9_44 = DGND # DGND - GPIO_0 +# P9_45 = DGND # DGND - GPIO_0 +# P9_46 = DGND # DGND - GPIO_0 + + +########################################## # common to all beagles -USR0 = Pin('USR0') -USR1 = Pin('USR1') -USR2 = Pin('USR2') -USR3 = Pin('USR3') - -# all special functions (SPI / I2C) are moved to -# src/adafruit_blinka/board/beaglebone_black.py - -# # 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), -# ) +USR0 = Pin('USR0') # USR0 - GPIO_53 +USR1 = Pin('USR1') # USR1 - GPIO_54 +USR2 = Pin('USR2') # USR2 - GPIO_55 +USR3 = Pin('USR3') # USR3 - GPIO_56 + + +########################################## +# specials + +# analog input +AIN0 = Pin('AIN0') +AIN1 = Pin('AIN1') +AIN2 = Pin('AIN2') +AIN3 = Pin('AIN3') +AIN4 = Pin('AIN4') +AIN5 = Pin('AIN5') +AIN6 = Pin('AIN6') +AIN7 = Pin('AIN7') + +# PWM +EHRPWM0A = Pin('EHRPWM0A') +EHRPWM0B = Pin('EHRPWM0B') +EHRPWM1A = Pin('EHRPWM1A') +EHRPWM1B = Pin('EHRPWM1B') +EHRPWM2A = Pin('EHRPWM2A') +EHRPWM2B = Pin('EHRPWM2B') +ECAPPWM0 = Pin('ECAPPWM0') +ECAPPWM2 = Pin('ECAPPWM2') +TIMER4 = Pin('TIMER4') +TIMER5 = Pin('TIMER5') +TIMER6 = Pin('TIMER6') +TIMER7 = Pin('TIMER7') + + +# I2C1 +I2C1_SDA = Pin('I2C1_SDA') +I2C1_SCL = Pin('I2C1_SCL') + +# I2C2 +I2C2_SDA = Pin('I2C2_SDA') +I2C2_SCL = Pin('I2C2_SCL') + +# SPI0 +SPI0_CS0 = Pin('SPI0_CS0') +SPI0_SCLK = Pin('SPI0_SCLK') +SPI0_D1 = Pin('SPI0_D1') +SPI0_D0 = Pin('SPI0_D0') + +# SPI1 +SPI1_CS0 = Pin('SPI1_CS0') +SPI1_CS1 = Pin('SPI1_CS1') +SPI1_SCLK = Pin('SPI1_SCLK') +SPI1_D1 = Pin('SPI1_D1') +SPI1_D0 = Pin('SPI1_D0') + +# UART0 +UART0_TXD = Pin('UART0_TXD') +UART0_RXD = Pin('UART0_RXD') + +# UART1 +UART1_TXD = Pin('UART1_TXD') +UART1_RXD = Pin('UART1_RXD') +UART1_RTSn = Pin('UART1_RTSn') +UART1_CTSn = Pin('UART1_CTSn') + +# UART2 +UART2_TXD = Pin('UART2_TXD') +UART2_RXD = Pin('UART2_RXD') + +# UART3 +UART3_TXD = Pin('UART3_TXD') +UART3_RXD = Pin('UART3_RXD') +UART3_RTSn = Pin('UART3_RTSn') +UART3_CTSn = Pin('UART3_CTSn') + +# UART4 +UART4_TXD = Pin('UART4_TXD') +UART4_RXD = Pin('UART4_RXD') +UART4_RTSn = Pin('UART4_RTSn') +UART4_CTSn = Pin('UART4_CTSn') + +# UART5 +UART5_TXD = Pin('UART5_TXD') +UART5_RXD = Pin('UART5_RXD') +UART5_RTSn = Pin('UART5_RTSn') +UART5_CTSn = Pin('UART5_CTSn') + + +# ordered as spiId, sckId, mosiId, misoId +spiPorts = ( + (0, SPI0_SCLK, SPI0_D1, SPI0_D0), + (1, SPI1_SCLK, SPI1_D1, SPI1_D0), +) + +# ordered as uartId, txId, rxId +uartPorts = ( + # (0, UART0_TXD, UART0_RXD), + # (1, UART1_TXD, UART1_RXD), + # (2, UART2_TXD, UART2_RXD), + # (4, UART4_TXD, UART4_RXD), + # (5, UART5_TXD, UART5_RXD), +) + +# ordered as i2cId, SCL, SDA +i2cPorts = ( + (1, I2C1_SCL, I2C1_SDA), + (2, I2C2_SCL, I2C2_SDA), +) diff --git a/src/busio.py b/src/busio.py index 8810fc4..b67c4a4 100755 --- a/src/busio.py +++ b/src/busio.py @@ -93,7 +93,7 @@ class SPI(Lockable): if detector.board.any_raspberry_pi: from adafruit_blinka.microcontroller.bcm283x.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI - elif board_id == ap_board.BEAGLEBONE_BLACK: + elif detector.board.any_beaglebone: from adafruit_blinka.microcontroller.am335x.pin import Pin from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI elif board_id == ap_board.ORANGE_PI_PC: