blob: f157c53409d086613ea4edc68c0ee35c3e0d431b [file] [log] [blame]
.. zephyr:board:: ctcc
Overview
********
Connectivity Cards come with either M.2 or mPCIe form factor with various SoCs, enabling different
radio interfaces.
* The Connectivity Card nRF52840 enables BLE and IEEE 802.15.4 over mPCIe or M.2
using USB device with on-board nRF52840 SoC
* The Connectivity Card nRF9161 enables LTE-M/NB-IoT and DECT NR+ over mPCIe or M.2
using on-board USB-UART converter
Connectivity Card has following features:
* CLOCK
* FLASH
* :abbr:`GPIO (General Purpose Input Output)`
* :abbr:`MPU (Memory Protection Unit)`
* :abbr:`NVIC (Nested Vectored Interrupt Controller)`
* RADIO (Bluetooth Low Energy and 802.15.4) (only nRF52840)
* RADIO (LTE-M/NB-IoT and DECT NR+) (only nRF9161)
* :abbr:`RTC (nRF RTC System Clock)`
* :abbr:`USB (Universal Serial Bus)` (only nRF52840)
* :abbr:`UARTE (Universal asynchronous receiver-transmitter with EasyDMA)` (only nRF9161)
* :abbr:`WDT (Watchdog Timer)`
.. figure:: img/ctcc_nrf52840_mpcie.webp
:align: center
:alt: CTCC nRF52840 mPCIe
ctcc/nrf52840 mPCie board
.. figure:: img/ctcc_nrf52840_m2.webp
:align: center
:alt: CTCC nRF52840 M.2
ctcc/nrf52840 M.2 board
.. figure:: img/ctcc_nrf9161_mpcie.webp
:align: center
:alt: CTCC nRF9161 mPCIe
ctcc/nrf9161 mPCIe board
More information about the board can be found at the
`Connectivity Cards Website`_ and for SoC information: `Nordic Semiconductor Infocenter`_.
Hardware
********
* The ``ctcc/nrf52840`` board target has one external oscillator of the 32.768 kHz.
* The ``ctcc/nrf9161`` board target has one external SPI NOR 64Mbit memory and one on-board USB-UART
converter (CP210X).
Supported Features
==================
.. zephyr:board-supported-hw::
Connections and IOs
===================
LED
---
Note that boards do not have on-board LEDs, however they expose
LED signals on mPCIe/M.2 pins.
nRF52840:
* LED1 = P0.23
* LED2 = P0.22
nRF9161:
* LED1 = P0.11
* LED2 = P0.12
Programming and Debugging
*************************
.. zephyr:board-supported-runners::
Applications for ``ctcc`` boards can be
built in the usual way (see :ref:`build_an_application` for more details).
Flashing
========
The board supports the following programming options:
1. Using an external :ref:`debug probe <debug-probes>`
2. Using `MCUboot`_ with MCUmgr support
Below instructions are provided for ``ctcc/nrf52840``, to use ``nrf9161`` target, the USB device configs have
to be replaced with UART configurations.
Option 1: Using an External Debug Probe
---------------------------------------
Connectivity Card can be programmed using an external debug probe (Segger J-Link) by connecting
to on-board SWD test pads.
For Segger J-Link debug probes, follow the instructions in the
:ref:`nordic_segger` page to install and configure all the necessary
software. Further information can be found in :ref:`nordic_segger_flashing`.
Then build and flash applications as usual (see :ref:`build_an_application` and
:ref:`application_run` for more details).
Here is an example for the :zephyr:code-sample:`usb-cdc-acm-console` application which prints out
logs on emulated USB port.
.. zephyr-app-commands::
:zephyr-app: samples/subsys/usb/console
:board: ctcc/nrf52840
:goals: build flash
Option 2: Using MCUboot with MCUmgr support
-------------------------------------------
It is also possible to use the MCUboot bootloader with :ref:`mcu_mgr` support to flash
Zephyr applications.
Install a MCUmgr-compatible tool from :ref:`supported list <mcumgr_tools_libraries>`
and make sure MCUboot's ``imgtool`` is available for signing your binary
for MCUboot as described on :ref:`west-sign`.
#. Compile MCUboot as a Zephyr application with ``MCUmgr`` support.
.. tabs::
.. group-tab:: nRF52840
To build the MCUboot:
.. zephyr-app-commands::
:app: mcuboot/boot/zephyr
:board: ctcc/nrf52840
:build-dir: mcuboot
:goals: build
.. group-tab:: nRF9161
To build the MCUboot:
.. zephyr-app-commands::
:app: mcuboot/boot/zephyr
:board: ctcc/nrf9161
:build-dir: mcuboot
:goals: build
#. Flash it onto the board as described in Option 1.
#. Flash other Zephyr application over USB using :ref:`MCUmgr-compatible tool <mcumgr_tools_libraries>` and reset target to boot into the image.
.. tabs::
.. group-tab:: nRF52840
Build the blinky example with MCUboot support:
.. zephyr-app-commands::
:zephyr-app: samples/basic/blinky
:board: ctcc/nrf52840
:goals: build
:gen-args: -DCONFIG_BOOTLOADER_MCUBOOT=y -DCONFIG_MCUBOOT_SIGNATURE_KEY_FILE=\"path/to/mcuboot/boot/root-rsa-2048.pem\"
.. group-tab:: nRF9161
Build the blinky example with MCUboot support:
.. zephyr-app-commands::
:zephyr-app: samples/basic/blinky
:board: ctcc/nrf9161
:goals: build
:gen-args: -DCONFIG_BOOTLOADER_MCUBOOT=y -DCONFIG_MCUBOOT_SIGNATURE_KEY_FILE=\"path/to/mcuboot/boot/root-rsa-2048.pem\"
.. note::
In all examples it is assumed to use default :file:`root-rsa-2048.pem` file from ``mcuboot/boot``
directory. Providing certificate in build args produces signed binary automatically.
Do not use this certificate in your production firmware!
Debugging
=========
These boards do not have an on-board J-Link debug IC, however
instructions from the :ref:`nordic_segger` page also apply to them,
with the additional step of connecting an external debugger.
To test flashed software, plug in ``ctcc`` card to mPCIe/M.2 slot or use mPCIe/M.2 adapter to USB and plug such adapter to USB port.
* For ``ctcc/nrf52840`` check on Linux system by entering ``lsusb`` command if the following device appears: ``NordicSemiconductor MCUBOOT`` or ``NordicSemiconductor USB-DEV`` (when booted into blinky example).
* For ``ctcc/nrf9161`` it's not possible to see a change in ``lsusb`` due to the on-board USB-UART converter. Instead, connect to the UART console using a terminal emulation program of your choice.
References
**********
.. target-notes::
.. _Connectivity Cards Website:
https://cthings.co/products/connectivity-cards
.. _Nordic Semiconductor Infocenter:
https://infocenter.nordicsemi.com
.. _MCUboot:
https://github.com/zephyrproject-rtos/mcuboot