1.. zephyr:board:: contextualelectronics_abc
2
3Overview
4********
5
6The Contextual Electronics ABC (PCA10056) hardware provides support for the
7Nordic Semiconductor nRF52840 ARM Cortex-M4F CPU and the following devices:
8
9* CLOCK
10* FLASH
11* :abbr:`GPIO (General Purpose Input Output)`
12* :abbr:`I2C (Inter-Integrated Circuit)`
13* :abbr:`MPU (Memory Protection Unit)`
14* :abbr:`NVIC (Nested Vectored Interrupt Controller)`
15* :abbr:`PWM (Pulse Width Modulation)`
16* Segger RTT (RTT Console)
17* :abbr:`SPI (Serial Peripheral Interface)`
18* :abbr:`UART (Universal asynchronous receiver-transmitter)`
19* Quectel BG95 Modem
20
21More information about the board can be found at the `ABC Board website`_.
22The `Nordic Semiconductor Infocenter`_ contains the processor's information
23and the datasheet.
24
25Hardware
26********
27
28ABC board has two external oscillators. The frequency of the slow clock
29is 32.768 kHz. The frequency of the main clock is 32 MHz.
30
31- nRF52840 ARM Cortex-M4F processor at 64 MHz
32- 1 MB flash memory and 256 KB of SRAM
33- SWD connector
34
35Supported Features
36==================
37
38The contextualelectronics_abc board configuration supports the following
39hardware features:
40
41+-----------+------------+----------------------+
42| Interface | Controller | Driver/Component     |
43+===========+============+======================+
44| CLOCK     | on-chip    | clock_control        |
45+-----------+------------+----------------------+
46| FLASH     | on-chip    | flash                |
47+-----------+------------+----------------------+
48| GPIO      | on-chip    | gpio                 |
49+-----------+------------+----------------------+
50| I2C(M)    | on-chip    | i2c                  |
51+-----------+------------+----------------------+
52| MPU       | on-chip    | arch/arm             |
53+-----------+------------+----------------------+
54| NVIC      | on-chip    | arch/arm             |
55+-----------+------------+----------------------+
56| PWM       | on-chip    | pwm                  |
57+-----------+------------+----------------------+
58| RTC       | on-chip    | system clock         |
59+-----------+------------+----------------------+
60| RTT       | Segger     | console              |
61+-----------+------------+----------------------+
62| SPI(M)    | on-chip    | spi                  |
63+-----------+------------+----------------------+
64| UART      | on-chip    | serial               |
65+-----------+------------+----------------------+
66| Modem     | on-board   | quectel_bg9x         |
67+-----------+------------+----------------------+
68
69Other hardware features have not been enabled yet for this board.
70See `ABC Board website`_ for more details on this board, and
71`Nordic Semiconductor Infocenter`_ for a complete list of SoC
72features.
73
74Programming and Debugging
75*************************
76
77Applications for the ``contextualelectronics_abc`` board configuration can be
78built and flashed in the usual way (see :ref:`build_an_application`
79and :ref:`application_run` for more details).
80
81Flashing
82========
83
84Flashing Zephyr onto the ``contextualelectronics_abc`` board requires
85an external programmer. The programmer is attached to the SWD header.
86
87Build the Zephyr kernel and the :zephyr:code-sample:`hello_world` sample application.
88
89   .. zephyr-app-commands::
90      :zephyr-app: samples/hello_world
91      :board: contextualelectronics_abc
92      :goals: build
93      :compact:
94
95Flash the image.
96
97   .. zephyr-app-commands::
98      :zephyr-app: samples/hello_world
99      :board: contextualelectronics_abc
100      :goals: flash
101      :compact:
102
103To see the output, run your favorite terminal program.
104
105.. code-block:: console
106
107   $ minicom -D <tty_device> -b 115200
108
109Replace :code:`<tty_device>` with the port where the ABC board
110can be found. For example, under Linux, :code:`/dev/ttyACM0`.
111
112Debugging
113=========
114
115Refer to the :ref:`nordic_segger` page to learn about debugging Nordic boards with a
116Segger IC.
117
118Selecting the pins
119==================
120
121Pins can be configured in the board pinctrl file. To see the available mappings,
122open the `nRF52840 Product Specification`_, chapter 7 'Hardware and Layout'.
123In the table 7.1.1 'aQFN73 ball assignments' select the pins marked
124'General purpose I/O'.  Note that pins marked as 'low frequency I/O only' can only be used
125in under-10KHz applications. They are not suitable for 115200 speed of UART.
126
127References
128**********
129
130.. target-notes::
131
132.. _ABC Board website: https://contextualelectronics.com/courses/advanced-ble-cell-abc-board/
133.. _Nordic Semiconductor Infocenter: https://infocenter.nordicsemi.com
134.. _J-Link Software and documentation pack: https://www.segger.com/jlink-software.html
135.. _nRF52840 Product Specification: http://infocenter.nordicsemi.com/pdf/nRF52840_PS_v1.0.pdf
136