V2M Beetle

ARM V2M Beetle

Overview

The v2m_beetle board configuration is used by Zephyr applications that run on the V2M Beetle board. It provides support for the Beetle ARM Cortex-M3 CPU and the following devices:

  • Nested Vectored Interrupt Controller (NVIC)

  • System Tick System Clock (SYSTICK)

  • Cortex-M System Design Kit GPIO

  • Cortex-M System Design Kit UART

ARM V2M Beetle

More information about the board can be found at the V2M Beetle Website.

Hardware

ARM V2M BEETLE provides the following hardware components:

  • ARM Cortex-M3

  • ARM IoT Subsystem for Cortex-M

  • CORDIO Bluetooth Smart radio

  • Memory

    • 256KB of embedded flash

    • 128KB SRAM

    • 2MB of external QSPI flash.

  • Debug

    • JTAG, SWD & 4 bit TRACE

    • CMSIS-DAP with a virtual UART port

  • Arduino interface

    • GPIO, UART, SPI, I2C

    • Analog signals

Supported Features

The v2m_beetle 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.
v2m_beetle/beetle_r0 target

Type

Location

Description

Compatible

CPU

on-board

ARM Cortex-M3 CPU1

arm,cortex-m3

ARM architecture

on-board

ARM V2M Beetle System Control1

arm,beetle-syscon

Clock control

on-board

Generic fixed-rate clock provider1

fixed-clock

Counter

on-board

ARM CMSDK timer2

arm,cmsdk-timer

on-board

ARM CMSDK dual timer1

arm,cmsdk-dtimer

GPIO & Headers

on-board

ARM CMSDK GPIO4

arm,cmsdk-gpio

Interrupt controller

on-chip

ARMv7-M NVIC (Nested Vectored Interrupt Controller)1

arm,v7m-nvic

MTD

on-board

Flash node1

soc-nv-flash

Pin control

on-board

Arm MPS3 Pin Controller1

arm,mps3-pinctrl

Serial controller

on-board

ARM CMSDK UART2

arm,cmsdk-uart

SRAM

on-board

Generic on-chip SRAM1

mmio-sram

Timer

on-chip

ARMv7-M System Tick1

arm,armv7m-systick

Watchdog

on-board

ARM CMSDK watchdog1

arm,cmsdk-watchdog

Interrupt Controller

Beetle is a Cortex-M3 based SoC and has 15 fixed exceptions and 45 IRQs.

A Cortex-M3/4-based board uses vectored exceptions. This means each exception calls a handler directly from the vector table.

Handlers are provided for exceptions 1-6, 11-12, and 14-15. The table here identifies the handlers used for each exception.

Exc#

Name

Remarks

Used by Zephyr Kernel

1

Reset

system initialization

2

NMI

system fatal error

3

Hard fault

system fatal error

4

MemManage

MPU fault

system fatal error

5

Bus

system fatal error

6

Usage fault

undefined instruction, or switch attempt to ARM mode

system fatal error

11

SVC

system calls, kernel run-time exceptions, and IRQ offloading

12

Debug monitor

system fatal error

14

PendSV

context switch

15

SYSTICK

system clock

Pin Mapping

The ARM V2M Beetle Board has 4 GPIO controllers. These controllers are responsible for pin muxing, input/output, pull-up, etc.

All GPIO controller pins are exposed via the following sequence of pin numbers:

  • Pins 0 - 15 are for GPIO 0

  • Pins 16 - 31 are for GPIO 1

Mapping from the ARM V2M Beetle Board pins to GPIO controllers:

  • D0 : P0_0

  • D1 : P0_1

  • D2 : P0_2

  • D3 : P0_3

  • D4 : P0_4

  • D5 : P0_5

  • D6 : P0_6

  • D7 : P0_7

  • D8 : P0_8

  • D9 : P0_9

  • D10 : P0_10

  • D11 : P0_11

  • D12 : P0_12

  • D13 : P0_13

  • D14 : P0_14

  • D15 : P0_15

  • D16 : P1_0

  • D17 : P1_1

  • D18 : P1_2

  • D19 : P1_3

  • D20 : P1_4

  • D21 : P1_5

  • D22 : P1_6

  • D23 : P1_7

  • D24 : P1_8

  • D25 : P1_9

  • D26 : P1_10

  • D27 : P1_11

  • D28 : P1_12

  • D29 : P1_13

  • D30 : P1_14

  • D31 : P1_15

Peripheral Mapping:

  • UART_0_RX : D0

  • UART_0_TX : D1

  • SPI_0_CS : D10

  • SPI_0_MOSI : D11

  • SPI_0_MISO : D12

  • SPI_0_SCLK : D13

  • I2C_0_SCL : D14

  • I2C_0_SDA : D15

  • UART_1_RX : D16

  • UART_1_TX : D17

  • SPI_1_CS : D18

  • SPI_1_MOSI : D19

  • SPI_1_MISO : D20

  • SPI_1_SCK : D21

  • I2C_1_SDA : D22

  • I2C_1_SCL : D23

For more details please refer to Beetle Technical Reference Manual (TRM).

System Clock

V2M Beetle has one external and two on-chip oscillators. The slow clock is 32.768 kHz, and the main clock is 24 MHz. The processor can set up PLL to drive the master clock.

Serial Port

The ARM Beetle processor has two UARTs. Both the UARTs have only two wires for RX/TX and no flow control (CTS/RTS) or FIFO. The Zephyr console output, by default, is utilizing UART1.

Programming and Debugging

Flashing

CMSIS DAP

V2M Beetle provides:

  • A USB connection to the host computer, which exposes a Mass Storage and an USB Serial Port.

  • A Serial Flash device, which implements the USB flash disk file storage.

  • A physical UART connection which is relayed over interface USB Serial port.

This interfaces are exposed via CMSIS DAP. For more details please refer to CMSIS-DAP Website.

Flashing an application to V2M Beetle

You can build applications in the usual way. Here is an example for the Hello World application.

# From the root of the zephyr repository
west build -b v2m_beetle samples/hello_world

Connect the V2M Beetle to your host computer using the USB port and you should see a USB connection which exposes a Mass Storage (MBED) and a USB Serial Port. Copy the generated zephyr.bin in the MBED drive. Reset the board and you should be able to see on the corresponding Serial Port the following message:

Hello World! arm