BeaglePlay

Overview

BeagleBoard.org BeaglePlay is an open hardware single board computer based on a TI Sitara AM6254 quad-core ARM Cortex-A53 SoC with an external TI SimpleLink multi-standard CC1352P7 wireless MCU providing long-range, low-power connectivity.

Hardware

  • Processors

    • TI Sitara AM6252 SoC

      • 4x ARM Cortex-A53

      • ARM Cortex-R5

      • ARM Cortex-M4

      • Dual-core 32-bit RISC Programmble Real-Time Unit (PRU)

    • TI SimpleLink CC1352P7 Wireless MCU

      • ARM Cortex-M4F programmable MCU

      • ARM Cortex-M0+ software-defined radio processor

  • Memory

    • 2GB DDR4

    • 16GB eMMC flash

    • I2C EEPROM

  • Wired connectivity

    • Gigabit Ethernet (RJ45)

    • Single-pair Ethernet with 5V/250mA PoDL output (RJ11)

    • HDMI

    • USB Type-A (host)

    • USB Type-C (client/power)

  • Wireless connectivity

    • TI WL1807 2.4GHz/5GHz WiFi

    • BLE/SubG via CC1352P7

  • Expansion

    • mikroBUS

    • Grove

    • QWIIC

BeaglePlay ARM Cortex-A53 CPUs typically run Linux, while the CC1352P7 Cortex-M4 typically runs Zephyr.

Supported Features

The beagleplay board supports the hardware features listed below.

on-chip / on-board
Feature integrated in the SoC / present on the board.
2 / 2
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files.
vnd,foo
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.

beagleplay/am6254/m4 target

Type

Location

Description

Compatible

CPU

on-chip

ARM Cortex-M4F CPU1

arm,cortex-m4f

Clock control

on-chip

Generic fixed-rate clock provider1

fixed-clock

GPIO & Headers

on-chip

GPIO Controller for Davinci and Keystone devices6

ti,davinci-gpio

I2C

on-chip

TI OMAP I2C Controller5

ti,omap-i2c

Interrupt controller

on-chip

ARMv7-M NVIC (Nested Vectored Interrupt Controller)1

arm,v7m-nvic

Mailbox

on-chip

TI OMAP MAILBOX1

ti,omap-mailbox

Pin control

on-chip

TI K3 Pin Controller1

ti,k3-pinctrl

Serial controller

on-chip

ns16550 UART17

ns16550

SPI

on-chip

TI Multi Channel SPI controller for OMAP and K3 SoCs3

ti,omap-mcspi

SRAM

on-chip

Generic on-chip SRAM2

mmio-sram

Timer

on-chip

ARMv7-M System Tick1

arm,armv7m-systick

Watchdog

on-chip

K3 Watchdog timer (RTI module) available in the K3 generation of processors15

ti,j7-rti-wdt

beagleplay/cc1352p7 target

Type

Location

Description

Compatible

CPU

on-chip

ARM Cortex-M4 CPU1

arm,cortex-m4

ADC

on-chip

TI CC13XX/CC26xx family ADC1

ti,cc13xx-cc26xx-adc

Clock control

on-chip

Generic fixed-rate clock provider1

fixed-clock

Flash controller

on-chip

Texas Instruments CC13xx/CC26xx flash controller1

ti,cc13xx-cc26xx-flash-controller

GPIO & Headers

on-chip

TI SimpleLink CC13xx / CC26xx GPIO1

ti,cc13xx-cc26xx-gpio

I2C

on-chip

TI CC13xx / CC26xx I2C1

ti,cc13xx-cc26xx-i2c

IEEE 802.15.4

on-chip

TI SimpleLink CC13xx / CC26xx IEEE 802.15.4 node1

ti,cc13xx-cc26xx-ieee802154

on-chip

TI SimpleLink CC13xx / CC26xx IEEE 802.15.4 node (sub-GHz)1

ti,cc13xx-cc26xx-ieee802154-subghz

Interrupt controller

on-chip

ARMv7-M NVIC (Nested Vectored Interrupt Controller)1

arm,v7m-nvic

LED

on-board

Group of GPIO-controlled LEDs1

gpio-leds

Miscellaneous

on-board

Skyworks SKY13317 pHEMT GaAs SP3T Antenna Switch1

skyworks,sky13317

MTD

on-chip

Flash node1

soc-nv-flash

on-chip

Fixed partitions of a flash (or other non-volatile storage) memory1

fixed-partitions

Networking

on-chip

TI SimpleLink CC13xx / CC26xx radio1

ti,cc13xx-cc26xx-radio

Pin control

on-chip

TI SimpleLink CC13xx / CC26xx Pin Controller1

ti,cc13xx-cc26xx-pinctrl

PWM

on-chip

TI SimpleLink CC13xx/CC26xx GPT timer PWM Controller Node4

ti,cc13xx-cc26xx-timer-pwm

RNG

on-chip

TI SimpleLink CC13xx / CC26xx TRNG (True Random Number Generator)1

ti,cc13xx-cc26xx-trng

RTC

on-chip

TI SimpleLink CC13xx/CC26xx RTC1

ti,cc13xx-cc26xx-rtc-timer

Serial controller

on-chip

TI SimpleLink CC13xx / CC26xx UART node11

ti,cc13xx-cc26xx-uart

SPI

on-chip

TI SimpleLink CC13xx / CC26xx SPI controller2

ti,cc13xx-cc26xx-spi

SRAM

on-chip

Generic on-chip SRAM1

mmio-sram

Timer

on-chip

ARMv7-M System Tick1

arm,armv7m-systick

on-chip

TI SimpleLink CC13xx/CC26xx Timer4

ti,cc13xx-cc26xx-timer

Watchdog

on-chip

TI CC13xx/CC26xx watchdog1

ti,cc13xx-cc26xx-watchdog

Connections and IOs

CC1352 reset is connected to AM62 GPIO0_14.

Pin

Function

Usage

DIO5

N/C

DIO6

N/C

DIO7

N/C

DIO8

N/C

DIO9

N/C

DIO10

N/C

DIO11

N/C

DIO12

CC1352_RX

AM62 UART6_TXD

DIO13

CC1352_TX

AM62 UART6_RXD

DIO14

N/C

DIO15

CC1352_BOOT

AM62 GPIO0_13

DIO16

CC1352_TDO

TAG-CONNECT TDO

DIO17

CC1352_TDI

TAG-CONNECT TDI

DIO18

N/C

DIO19

N/C

DIO20

N/C

DIO21

N/C

DIO22

N/C

DIO23

N/C

DIO24

N/C

DIO25

N/C

DIO26

N/C

DIO27

LED1

CC1352_LED1 yellow LED9

DIO28

LED2

CC1352_LED2 yellow LED8

DIO29

RF_PA

SubG/PA Antenna mux PA enable

DIO30

RF_SUB1G

SubG/PA Antenna mux SubG enable

Programming and Debugging

The beagleplay board supports the runners and associated west commands listed below.

flash debug
misc-flasher ✅ (default)

Flashing

CC1352P7

To flash, disable the existing driver that ties up the serial port and use the customized BSL Python script.

  1. Ensure the bcfserial or gb-beagleplay driver isn’t blocking the serial port. This can be done by loading :file: /overlays/k3-am625-beagleplay-bcfserial-no-firmware.dtbo or selecting uboot entry which disables bcfserial/gb-beagleplay.

  2. Now reboot the board.

    sudo shutdown -r now
    
  3. Install CC1352-flasher if not already installed

    if ! command -v cc1352_flasher &> /dev/null; then pip install cc1352-flasher; fi
    
  4. Flash the CC1352P7

    west flash
    

M4F Core

The board supports remoteproc using the OpenAMP resource table.

The testing requires the binary to be copied to the SD card to allow the A53 cores to load it while booting using remoteproc.

To test the M4F core, we build the Hello World sample with the following command.

# From the root of the zephyr repository
west build -b pocketbeagle_2/am6254/m4 samples/hello_world

This builds the program and the binary is present in the build/zephyr directory as zephyr.elf.

We now copy this binary onto the SD card in the /lib/firmware directory and name it as am62-mcu-m4f0_0-fw.

# Mount the SD card at sdcard for example
sudo mount /dev/sdX sdcard
# copy the elf to the /lib/firmware directory
sudo cp --remove-destination zephyr.elf sdcard/lib/firmware/am62-mcu-m4f0_0-fw

The SD card can now be used for booting. The binary will now be loaded onto the M4F core on boot.

The binary will run and print Hello world to the MCU_UART0 port.

Debugging

CC1352P7

For debugging, you can use the serial port or JTAG. You can use OpenOCD over the Tag-Connect header on the board.

  • Tagconnect JTAG

M4F Core

The board supports debugging M4 core from the A53 cores running Linux. Since the target needs superuser privilege, OpenOCD needs to be launched separately for now:

sudo openocd -f board/ti_am625_swd_native.cfg

Start debugging

west build -b pocketbeagle_2/am6254/m4
west debug

References