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 |
|
Clock control |
on-chip |
Generic fixed-rate clock provider1 |
|
GPIO & Headers |
on-chip |
GPIO Controller for Davinci and Keystone devices6 |
|
I2C |
on-chip |
TI OMAP I2C Controller5 |
|
Interrupt controller |
on-chip |
ARMv7-M NVIC (Nested Vectored Interrupt Controller)1 |
|
Mailbox |
on-chip |
TI OMAP MAILBOX1 |
|
Pin control |
on-chip |
TI K3 Pin Controller1 |
|
Serial controller |
on-chip |
||
SPI |
on-chip |
TI Multi Channel SPI controller for OMAP and K3 SoCs3 |
|
SRAM |
on-chip |
Generic on-chip SRAM2 |
|
Timer |
on-chip |
ARMv7-M System Tick1 |
|
Watchdog |
on-chip |
K3 Watchdog timer (RTI module) available in the K3 generation of processors15 |
beagleplay/cc1352p7 target
Type |
Location |
Description |
Compatible |
|---|---|---|---|
CPU |
on-chip |
ARM Cortex-M4 CPU1 |
|
ADC |
on-chip |
TI CC13XX/CC26xx family ADC1 |
|
Clock control |
on-chip |
Generic fixed-rate clock provider1 |
|
Flash controller |
on-chip |
Texas Instruments CC13xx/CC26xx flash controller1 |
|
GPIO & Headers |
on-chip |
TI SimpleLink CC13xx / CC26xx GPIO1 |
|
I2C |
on-chip |
TI CC13xx / CC26xx I2C1 |
|
IEEE 802.15.4 |
on-chip |
TI SimpleLink CC13xx / CC26xx IEEE 802.15.4 node1 |
|
on-chip |
TI SimpleLink CC13xx / CC26xx IEEE 802.15.4 node (sub-GHz)1 |
||
Interrupt controller |
on-chip |
ARMv7-M NVIC (Nested Vectored Interrupt Controller)1 |
|
LED |
on-board |
Group of GPIO-controlled LEDs1 |
|
Miscellaneous |
on-board |
Skyworks SKY13317 pHEMT GaAs SP3T Antenna Switch1 |
|
MTD |
on-chip |
Flash node1 |
|
on-chip |
Fixed partitions of a flash (or other non-volatile storage) memory1 |
||
Networking |
on-chip |
TI SimpleLink CC13xx / CC26xx radio1 |
|
Pin control |
on-chip |
TI SimpleLink CC13xx / CC26xx Pin Controller1 |
|
PWM |
on-chip |
TI SimpleLink CC13xx/CC26xx GPT timer PWM Controller Node4 |
|
RNG |
on-chip |
TI SimpleLink CC13xx / CC26xx TRNG (True Random Number Generator)1 |
|
RTC |
on-chip |
TI SimpleLink CC13xx/CC26xx RTC1 |
|
Serial controller |
on-chip |
||
SPI |
on-chip |
TI SimpleLink CC13xx / CC26xx SPI controller2 |
|
SRAM |
on-chip |
Generic on-chip SRAM1 |
|
Timer |
on-chip |
ARMv7-M System Tick1 |
|
on-chip |
TI SimpleLink CC13xx/CC26xx Timer4 |
||
Watchdog |
on-chip |
TI CC13xx/CC26xx watchdog1 |
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.
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.dtboor selecting uboot entry which disables bcfserial/gb-beagleplay.Now reboot the board.
sudo shutdown -r nowInstall CC1352-flasher if not already installed
if ! command -v cc1352_flasher &> /dev/null; then pip install cc1352-flasher; fiFlash 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