| .. _nrf52_pca10040: |
| |
| nRF52-PCA10040 |
| ############## |
| |
| Overview |
| ******** |
| |
| Zephyr applications use the nrf52_pca10040 board configuration |
| to run on the nRF52 Development Kit (PCA10040) hardware. It provides |
| support for the Nordic Semiconductor nRF52832 ARM Cortex-M4F CPU and |
| the following devices: |
| |
| * :abbr:`NVIC (Nested Vectored Interrupt Controller)` |
| |
| * :abbr:`SYSTICK (System Tick System Clock)` |
| |
| * UART |
| |
| * GPIO |
| |
| More information about the board can be found at the |
| `nRF52 DK website`_. The `Nordic Semiconductor Infocenter`_ |
| contains the processor's information and the datasheet. |
| |
| Supported Features |
| ****************** |
| |
| The nrf52_pca10040 board configuration supports the following |
| hardware features: |
| |
| +-----------+------------+----------------------+ |
| | Interface | Controller | Driver/Component | |
| +===========+============+======================+ |
| | NVIC | on-chip | nested vectored | |
| | | | interrupt controller | |
| +-----------+------------+----------------------+ |
| | SYSTICK | on-chip | system clock | |
| +-----------+------------+----------------------+ |
| | UART | on-chip | serial port | |
| +-----------+------------+----------------------+ |
| | GPIO | on-chip | gpio | |
| +-----------+------------+----------------------+ |
| |
| Other hardware features are not supported by the Zephyr kernel. |
| See `nRF52 DK website`_ and `Nordic Semiconductor Infocenter`_ |
| for a complete list of nRF52 Development Kit board hardware features. |
| |
| Pin Names |
| ********* |
| |
| LED |
| === |
| |
| * LED1 (green) = P0.17 |
| * LED2 (green) = P0.18 |
| * LED3 (green) = P0.19 |
| * LED4 (green) = P0.20 |
| * LD5 (red/green) = OB LED 1/2 |
| |
| Push buttons |
| ============ |
| |
| * BUTTON1 = SW1 = P0.13 |
| * BUTTON2 = SW2 = P0.14 |
| * BUTTON3 = SW3 = P0.15 |
| * BUTTON4 = SW4 = P0.16 |
| * BOOT = SW5 = boot/reset |
| |
| External Connectors |
| =================== |
| |
| J-Link Prog Connector |
| --------------------- |
| |
| +-------+--------------+ |
| | PIN # | Signal Name | |
| +=======+==============+ |
| | 1 | VDD | |
| +-------+--------------+ |
| | 2 | IMCU_TMSS | |
| +-------+--------------+ |
| | 3 | GND | |
| +-------+--------------+ |
| | 4 | IMCU_TCKS | |
| +-------+--------------+ |
| | 5 | V5V | |
| +-------+--------------+ |
| | 6 | IMCU_TDOS | |
| +-------+--------------+ |
| | 7 | Cut off | |
| +-------+--------------+ |
| | 8 | IMCU_TDIS | |
| +-------+--------------+ |
| | 9 | Cut off | |
| +-------+--------------+ |
| | 10 | IMCU_RESET | |
| +-------+--------------+ |
| |
| Debug IN |
| -------- |
| |
| +-------+--------------+-------------------------+ |
| | PIN # | Signal Name | NRF52832 Functions | |
| +=======+==============+=========================+ |
| | 1 | VDD | N/A | |
| +-------+--------------+-------------------------+ |
| | 2 | SWDIO | SWDIO | |
| +-------+--------------+-------------------------+ |
| | 3 | GND | N/A | |
| +-------+--------------+-------------------------+ |
| | 4 | SWDCLK | SWDCLK | |
| +-------+--------------+-------------------------+ |
| | 5 | GND | N/A | |
| +-------+--------------+-------------------------+ |
| | 6 | P0.18 | P0.18 / TRACEDATA[0] / | |
| | | | SWO | |
| +-------+--------------+-------------------------+ |
| | 7 | Cut off | N/A | |
| +-------+--------------+-------------------------+ |
| | 8 | Cut off | N/A | |
| +-------+--------------+-------------------------+ |
| | 9 | GND | N/A | |
| +-------+--------------+-------------------------+ |
| | 10 | P0.21 | P0.21 / RESET | |
| +-------+--------------+-------------------------+ |
| |
| Debug OUT |
| --------- |
| |
| +-------+----------------+ |
| | PIN # | Signal Name | |
| +=======+================+ |
| | 1 | EXT_VTG | |
| +-------+----------------+ |
| | 2 | EXT_SWDIO | |
| +-------+----------------+ |
| | 3 | GND | |
| +-------+----------------+ |
| | 4 | EXT_SWDCLK | |
| +-------+----------------+ |
| | 5 | GND | |
| +-------+----------------+ |
| | 6 | EXT_SWO | |
| | | | |
| +-------+----------------+ |
| | 7 | Cut off | |
| +-------+----------------+ |
| | 8 | Cut off | |
| +-------+----------------+ |
| | 9 | EXT_GND_DETECT | |
| +-------+----------------+ |
| | 10 | EXT_RESET | |
| +-------+----------------+ |
| |
| Shield Debug and Current measurement |
| ------------------------------------ |
| |
| +-------+----------------+ |
| | PIN # | Signal Name | |
| +=======+================+ |
| | 1 | VDD_nRF | |
| +-------+----------------+ |
| | 2 | VDD | |
| +-------+----------------+ |
| | 3 | SH_VTG | |
| +-------+----------------+ |
| | 4 | SH_SWDIO | |
| +-------+----------------+ |
| | 5 | SH_SWDCLK | |
| +-------+----------------+ |
| | 6 | SH_SWO | |
| +-------+----------------+ |
| | 7 | SH_RESET | |
| +-------+----------------+ |
| | 8 | SH_GND_DETECT | |
| +-------+----------------+ |
| |
| Auxiliary |
| --------- |
| |
| +-------+--------------+-------------------------+ |
| | PIN # | Signal Name | NRF52832 Functions | |
| +=======+==============+=========================+ |
| | 1 | P0.00 | P0.00 / XL1 | |
| +-------+--------------+-------------------------+ |
| | 2 | P0.01 | P0.01 / XL2 | |
| +-------+--------------+-------------------------+ |
| | 3 | P0.21 | P0.21 / RESET | |
| +-------+--------------+-------------------------+ |
| | 4 | P0.05_C | P0.05 / AIN3 | |
| +-------+--------------+-------------------------+ |
| | 5 | P0.06_C | P0.06 | |
| +-------+--------------+-------------------------+ |
| | 6 | P0.07_C | P0.07 | |
| +-------+--------------+-------------------------+ |
| | 7 | P0.08_C | P0.08 | |
| +-------+--------------+-------------------------+ |
| | 8 | P0.09 | P0.09 / NFC1 | |
| +-------+--------------+-------------------------+ |
| | 9 | P0.10 | P0.10 / NFC2 | |
| +-------+--------------+-------------------------+ |
| |
| |
| Arduino Headers |
| =============== |
| |
| P1/P7 Power |
| ----------- |
| |
| +-------+--------------+-------------------------+ |
| | PIN # | Signal Name | NRF52832 Functions | |
| +=======+==============+=========================+ |
| +-------+--------------+-------------------------+ |
| | 1 | VDD | N/A | |
| +-------+--------------+-------------------------+ |
| | 2 | VDD | N/A | |
| +-------+--------------+-------------------------+ |
| | 3 | RESET | P0.21 / RESET | |
| +-------+--------------+-------------------------+ |
| | 4 | VDD | N/A | |
| +-------+--------------+-------------------------+ |
| | 5 | V5V | N/A | |
| +-------+--------------+-------------------------+ |
| | 6 | GND | N/A | |
| +-------+--------------+-------------------------+ |
| | 7 | GND | N/A | |
| +-------+--------------+-------------------------+ |
| | 8 | VIN | N/A | |
| +-------+--------------+-------------------------+ |
| |
| |
| P2/P8 Analog in |
| --------------- |
| |
| +-------+--------------+-------------------------+ |
| | PIN # | Signal Name | NRF52832 Functions | |
| +=======+==============+=========================+ |
| | 1 | A0 | P0.03 / AIN1 | |
| +-------+--------------+-------------------------+ |
| | 2 | A1 | P0.04 / AIN2 | |
| +-------+--------------+-------------------------+ |
| | 3 | A2 | P0.28 / AIN4 | |
| +-------+--------------+-------------------------+ |
| | 4 | A3 | P0.29 / AIN5 | |
| +-------+--------------+-------------------------+ |
| | 5 | A4 | P0.30 / AIN6 | |
| +-------+--------------+-------------------------+ |
| | 6 | A5 | P0.31 / AIN7 | |
| +-------+--------------+-------------------------+ |
| |
| P3/P9 Digital I/O |
| ----------------- |
| |
| +-------+--------------+-------------------------+ |
| | PIN # | Signal Name | NRF52832 Functions | |
| +=======+==============+=========================+ |
| | 1 | D0 (RX) | P0.11 | |
| +-------+--------------+-------------------------+ |
| | 2 | D1 (TX) | P0.12 | |
| +-------+--------------+-------------------------+ |
| | 3 | D2 | P0.13 | |
| +-------+--------------+-------------------------+ |
| | 4 | D3 | P0.14 / TRACEDATA[3] | |
| +-------+--------------+-------------------------+ |
| | 5 | D4 | P0.15 / TRACEDATA[2] | |
| +-------+--------------+-------------------------+ |
| | 6 | D5 | P0.16 / TRACEDATA[1] | |
| +-------+--------------+-------------------------+ |
| | 7 | D6 | P0.17 | |
| +-------+--------------+-------------------------+ |
| | 8 | D7 | P0.18 / TRACEDATA[3] / | |
| | | | SWO | |
| +-------+--------------+-------------------------+ |
| |
| P4/P10 Digital I/O |
| ------------------ |
| |
| +-------+--------------+-------------------------+ |
| | PIN # | Signal Name | NRF52832 Functions | |
| +=======+==============+=========================+ |
| | 1 | D8 | P0.19 | |
| +-------+--------------+-------------------------+ |
| | 2 | D9 | P0.20 / TRACECLK | |
| +-------+--------------+-------------------------+ |
| | 3 | D10 (SS) | P0.22 | |
| +-------+--------------+-------------------------+ |
| | 4 | D11 (MOSI) | P0.23 | |
| +-------+--------------+-------------------------+ |
| | 5 | D12 (MISO) | P0.24 | |
| +-------+--------------+-------------------------+ |
| | 6 | D13 (SCK) | P0.25 | |
| +-------+--------------+-------------------------+ |
| | 7 | GND | N/A | |
| +-------+--------------+-------------------------+ |
| | 8 | AREF | P0.02 / AIN0 | |
| +-------+--------------+-------------------------+ |
| | 9 | SDA | P0.26 | |
| +-------+--------------+-------------------------+ |
| | 10 | SCL | P0.27 | |
| +-------+--------------+-------------------------+ |
| |
| P5/P11 |
| ------ |
| |
| +-------+--------------+-------------------------+ |
| | PIN # | Signal Name | NRF52832 Functions | |
| +=======+==============+=========================+ |
| +-------+--------------+-------------------------+ |
| | 1 | D12 (MISO) | P0.24 | |
| +-------+--------------+-------------------------+ |
| | 2 | V5V | N/A | |
| +-------+--------------+-------------------------+ |
| | 3 | D13 (SCK) | P0.25 | |
| +-------+--------------+-------------------------+ |
| | 4 | D11 (MOSI) | P0.23 | |
| +-------+--------------+-------------------------+ |
| | 5 | RESET | N/A | |
| +-------+--------------+-------------------------+ |
| | 6 | N/A | N/A | |
| +-------+--------------+-------------------------+ |
| |
| |
| System Clock |
| ************ |
| |
| nRF52 DK has two external oscillators. The frequency of |
| the slow clock is 32.768 kHz. The frequency of the main clock |
| is 32 MHz. |
| |
| |
| Flashing Zephyr onto nRF52 DK |
| ***************************** |
| |
| Flashing the Zephyr kernel onto nRF52 DK requires both the |
| `J-Link Software and documentation pack`_ and, the nrfjprog tool, |
| which is part of the nRF5x Command Line Tools. |
| |
| Installing the J-Link Software and documentation pack |
| ===================================================== |
| |
| To install the J-Link Software and documentation pack, follow the |
| steps below: |
| |
| #. Download the appropriate package from the `J-Link Software and documentation pack`_ |
| website. |
| |
| #. Depending on your platform, install the package or |
| run the installer |
| |
| #. When connecting a J-Link-enabled device such as the nRF52 DK board, a drive |
| corresponding to a USB Mass Storage device as well as a serial port should come up. |
| |
| Installing the nRF5x Command Line Tools |
| ======================================= |
| |
| To install the nRF5x Command Line Tools, follow the steps below: |
| |
| #. Download the appropriate package from the `nRF52 DK website`_. |
| |
| #. Depending on your platform, unpack the tarball and copy the |
| contents into a folder whithin your $PATH or run the installer. |
| |
| Flashing an Application to nRF52 DK |
| =================================== |
| |
| This tutorial uses the sample application |
| shell :file:`$ZEPHYR_BASE/samples/shell`. |
| |
| #. To build the Zephyr kernel, enter: |
| |
| .. code-block:: console |
| |
| $ cd $ZEPHYR_BASE |
| $ make -C samples/shell BOARD=nrf52_pca10040 |
| |
| #. Connect the micro-USB cable to the nRF52 DK and to your computer. |
| |
| #. Erase the flash memory in the nRF52832: |
| |
| .. code-block:: console |
| |
| $ nrfjprog --eraseall -f nrf52 |
| |
| #. Flash the application using the nrfjprog tool: |
| |
| .. code-block:: console |
| |
| $ nrfjprog --program outdir/zephyr.hex -f nrf52 |
| |
| |
| #. Run your favorite terminal program to listen for output. |
| |
| .. code-block:: console |
| |
| $ minicom -D <tty_device> -b 115200 |
| |
| Replace :code:`<tty_device>` with the port where the board |
| nRF52 DK can be found. For example, under Linux, |
| :code:`/dev/ttyACM0`. |
| |
| The :option:`-b` option sets baudrate ignoring the value |
| from config. |
| |
| #. Press the Reset button and you should see the output of |
| shell application in your terminal. |
| |
| References |
| ********** |
| |
| .. target-notes:: |
| |
| .. _nRF52 DK website: http://www.nordicsemi.com/eng/Products/Bluetooth-Smart-Bluetooth-low-energy/nRF52-DK |
| .. _Nordic Semiconductor Infocenter: http://infocenter.nordicsemi.com/ |
| .. _J-Link Software and documentation pack: https://www.segger.com/jlink-software.html |
| |