Contextual Eletronics Advanced BLE Cell¶
Overview¶
The Contextual Eletronics ABC (PCA10056) hardware provides support for the Nordic Semiconductor nRF52840 ARM Cortex-M4F CPU and the following devices:
CLOCK
FLASH
GPIO
I2C
MPU
NVIC
PWM
Segger RTT (RTT Console)
SPI
UART
Quectel BG95 Modem
More information about the board can be found at the ABC Board website 1. The Nordic Semiconductor Infocenter 2 contains the processor’s information and the datasheet.
Hardware¶
ABC board has two external oscillators. The frequency of the slow clock is 32.768 kHz. The frequency of the main clock is 32 MHz.
nRF52840 ARM Cortex-M4F processor at 64 MHz
1 MB flash memory and 256 KB of SRAM
SWD connector
Supported Features¶
The contextualelectronics_abc board configuration supports the following hardware features:
Interface |
Controller |
Driver/Component |
---|---|---|
CLOCK |
on-chip |
clock_control |
FLASH |
on-chip |
flash |
GPIO |
on-chip |
gpio |
I2C(M) |
on-chip |
i2c |
MPU |
on-chip |
arch/arm |
NVIC |
on-chip |
arch/arm |
PWM |
on-chip |
pwm |
RTC |
on-chip |
system clock |
RTT |
Segger |
console |
SPI(M) |
on-chip |
spi |
UART |
on-chip |
serial |
Modem |
on-board |
quectel_bg9x |
Other hardware features are not supported by the Zephyr kernel. See ABC Board website 1 for more details on this board, and Nordic Semiconductor Infocenter 2 for a complete list of SoC features.
Programming and Debugging¶
Applications for the contextualelectronics_abc
board configuration can be
built and flashed in the usual way (see Building an Application
and Run an Application for more details).
Flashing¶
Flashing Zephyr onto the contextualelectronics_abc
board requires
an external programmer. The programmer is attached to the SWD header.
Build the Zephyr kernel and the Hello World sample application.
west build -b contextualelectronics_abc samples/hello_world
Flash the image.
west build -b contextualelectronics_abc samples/hello_world west flash
To see the output, run your favorite terminal program.
$ minicom -D <tty_device> -b 115200
Replace <tty_device>
with the port where the ABC board
can be found. For example, under Linux, /dev/ttyACM0
.
Debugging¶
Refer to the Nordic nRF5x Segger J-Link page to learn about debugging Nordic boards with a Segger IC.
Selecting the pins¶
To select the pin numbers for tx-pin and rx-pin:
tx-pin = <pin_no>
Open the nRF52840 Product Specification 3, chapter 7 ‘Hardware and Layout’. In the table 7.1.1 ‘aQFN73 ball assignments’ select the pins marked ‘General purpose I/O’. Note that pins marked as ‘low frequency I/O only’ can only be used in under-10KHz applications. They are not suitable for 115200 speed of UART.
Translate the ‘Pin’ into number for devicetree by using the following formula:
pin_no = b\*32 + a
where a
and b
are from the Pin value in the table (Pb.a).
For example, for P0.1, pin_no = 1
and for P1.0, pin_no = 32
.