Skip to content

Commit 06a5841

Browse files
kowalewskijanfabiobaltieri
authored andcommitted
boards: ct: ctcc: connectivity cards documentation update
* Add documentation about nRF9161 SoC variant * Modify example apps to include both nRF9161 and nRF52840 * Switch from DFU to MCUmgr in example apps Signed-off-by: Jan Kowalewski <[email protected]>
1 parent bdc6815 commit 06a5841

File tree

2 files changed

+124
-58
lines changed

2 files changed

+124
-58
lines changed
Binary file not shown.

boards/ct/ctcc/doc/index.rst

Lines changed: 124 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,27 @@
33
Overview
44
********
55

6-
The Connectivity Card nRF52840 enables BLE and IEEE 802.15.4 connectivity
7-
over mPCIe or M.2 using USB port with on-board nRF52840 SoC.
6+
Connectivity Cards come with either M.2 or mPCIe form factor with various SoCs, enabling different
7+
radio interfaces.
88

9-
This board has following features:
9+
* The Connectivity Card nRF52840 enables BLE and IEEE 802.15.4 over mPCIe or M.2
10+
using USB device with on-board nRF52840 SoC
11+
12+
* The Connectivity Card nRF9161 enables LTE-M/NB-IoT and DECT NR+ over mPCIe or M.2
13+
using on-board USB-UART converter
14+
15+
Connectivity Card has following features:
1016

1117
* CLOCK
1218
* FLASH
1319
* :abbr:`GPIO (General Purpose Input Output)`
1420
* :abbr:`MPU (Memory Protection Unit)`
1521
* :abbr:`NVIC (Nested Vectored Interrupt Controller)`
16-
* RADIO (Bluetooth Low Energy and 802.15.4)
22+
* RADIO (Bluetooth Low Energy and 802.15.4) (only nRF52840)
23+
* RADIO (LTE-M/NB-IoT and DECT NR+) (only nRF9161)
1724
* :abbr:`RTC (nRF RTC System Clock)`
18-
* :abbr:`USB (Universal Serial Bus)`
25+
* :abbr:`USB (Universal Serial Bus)` (only nRF52840)
26+
* :abbr:`UARTE (Universal asynchronous receiver-transmitter with EasyDMA)` (only nRF9161)
1927
* :abbr:`WDT (Watchdog Timer)`
2028

2129
.. figure:: img/ctcc_nrf52840_mpcie.webp
@@ -30,13 +38,21 @@ This board has following features:
3038

3139
ctcc/nrf52840 M.2 board
3240

41+
.. figure:: img/ctcc_nrf9161_mpcie.webp
42+
:align: center
43+
:alt: CTCC nRF9161 mPCIe
44+
45+
ctcc/nrf9161 mPCIe board
46+
3347
More information about the board can be found at the
34-
`ctcc_nrf52840 Website`_ and for SoC information: `Nordic Semiconductor Infocenter`_.
48+
`Connectivity Cards Website`_ and for SoC information: `Nordic Semiconductor Infocenter`_.
3549

3650
Hardware
3751
********
3852

39-
The ``ctcc/nrf52840`` board target has one external oscillator of the 32.768 kHz.
53+
* The ``ctcc/nrf52840`` board target has one external oscillator of the 32.768 kHz.
54+
* The ``ctcc/nrf9161`` board target has one external SPI NOR 64Mbit memory and one on-board USB-UART
55+
converter (CP210X).
4056

4157
Supported Features
4258
==================
@@ -67,22 +83,61 @@ hardware features:
6783
| WDT | on-chip | watchdog |
6884
+-----------+------------+----------------------+
6985

86+
The ``ctcc/nrf9161`` board target supports the following
87+
hardware features:
88+
89+
+-----------+------------+----------------------+
90+
| Interface | Controller | Driver/Component |
91+
+===========+============+======================+
92+
| CLOCK | on-chip | clock_control |
93+
+-----------+------------+----------------------+
94+
| FLASH | on-chip | flash |
95+
+-----------+------------+----------------------+
96+
| FLASH | external | spi |
97+
+-----------+------------+----------------------+
98+
| GPIO | on-chip | gpio |
99+
+-----------+------------+----------------------+
100+
| MPU | on-chip | arch/arm |
101+
+-----------+------------+----------------------+
102+
| NVIC | on-chip | arch/arm |
103+
+-----------+------------+----------------------+
104+
| RADIO | on-chip | LTE-M/NB-IoT, |
105+
| | | DECT NR\+ |
106+
+-----------+------------+----------------------+
107+
| SPI(M/S) | on-chip | spi |
108+
+-----------+------------+----------------------+
109+
| SPU | on-chip | system protection |
110+
+-----------+------------+----------------------+
111+
| UARTE | on-chip | serial |
112+
+-----------+------------+----------------------+
113+
| RTC | on-chip | system clock |
114+
+-----------+------------+----------------------+
115+
| WDT | on-chip | watchdog |
116+
+-----------+------------+----------------------+
117+
70118
Connections and IOs
71119
===================
72120

73121
LED
74122
---
75123

76-
Note that board does not have on-board LEDs, however it exposes
124+
Note that boards do not have on-board LEDs, however they expose
77125
LED signals on mPCIe/M.2 pins.
78126

127+
nRF52840:
128+
79129
* LED1 = P0.23
80130
* LED2 = P0.22
81131

132+
nRF9161:
133+
134+
* LED1 = P0.11
135+
* LED2 = P0.12
136+
82137
Programming and Debugging
83138
*************************
84139

85-
Applications for the ``ctcc/nrf52840`` board target can be
140+
Applications for ``ctcc`` boards can be
86141
built in the usual way (see :ref:`build_an_application` for more details).
87142

88143
Flashing
@@ -91,7 +146,10 @@ Flashing
91146
The board supports the following programming options:
92147

93148
1. Using an external :ref:`debug probe <debug-probes>`
94-
2. Using MCUboot with DFU support
149+
2. Using `MCUboot`_ with MCUmgr support
150+
151+
Below instructions are provided for ``ctcc/nrf52840``, to use ``nrf9161`` target, the USB device configs have
152+
to be replaced with UART configurations.
95153

96154
Option 1: Using an External Debug Probe
97155
---------------------------------------
@@ -114,84 +172,92 @@ logs on emulated USB port.
114172
:board: ctcc/nrf52840
115173
:goals: build flash
116174

117-
Debugging
118-
=========
175+
Option 2: Using MCUboot with MCUmgr support
176+
-------------------------------------------
119177

120-
The ``ctcc/nrf52840`` board target does not have an on-board J-Link debug IC, however
121-
instructions from the :ref:`nordic_segger` page also apply to this board,
122-
with the additional step of connecting an external debugger.
178+
It is also possible to use the MCUboot bootloader with :ref:`mcu_mgr` support to flash
179+
Zephyr applications.
180+
181+
Install a MCUmgr-compatible tool from :ref:`supported list <mcumgr_tools_libraries>`
182+
and make sure MCUboot's ``imgtool`` is available for signing your binary
183+
for MCUboot as described on :ref:`west-sign`.
184+
185+
#. Compile MCUboot as a Zephyr application with ``MCUmgr`` support.
123186

124-
Option 2: Using MCUboot with DFU support
125-
----------------------------------------
187+
.. tabs::
126188

127-
It is also possible to use the MCUboot bootloader with DFU support to flash
128-
Zephyr applications. You need to flash MCUboot with DFU support and fill in slot0 with
129-
some application one-time using Option 1. Then you can re-flash an application using DFU utility
130-
by loading images to slot1. Note, it's not possible to have only MCUboot and load directly
131-
software to slot0 due to DFU implementation in Zephyr, which for present slot0 and slot1 in flash
132-
map, it assumes only slot1 partition as writeable.
189+
.. group-tab:: nRF52840
133190

134-
Install ``dfu-util`` first and make sure MCUboot's ``imgtool`` is
135-
available for signing your binary for MCUboot as described on :ref:`west-sign`.
191+
To build the MCUboot:
136192

137-
Next, do the **one-time setup** to flash MCUboot with DFU support.
138-
We'll assume you've cloned the `MCUboot`_ as a submodule when initializing
139-
Zephyr repositories using :ref:`west` tool.
193+
.. zephyr-app-commands::
194+
:app: mcuboot/boot/zephyr
195+
:board: ctcc/nrf52840
196+
:build-dir: mcuboot
197+
:goals: build
140198

141-
#. Compile MCUboot as a Zephyr application with DFU support.
199+
.. group-tab:: nRF9161
142200

143-
.. zephyr-app-commands::
144-
:app: mcuboot/boot/zephyr
145-
:board: ctcc/nrf52840
146-
:build-dir: mcuboot
147-
:goals: build
148-
:gen-args: -DCONFIG_BOOT_USB_DFU_WAIT=y
201+
To build the MCUboot:
202+
203+
.. zephyr-app-commands::
204+
:app: mcuboot/boot/zephyr
205+
:board: ctcc/nrf9161
206+
:build-dir: mcuboot
207+
:goals: build
149208

150209
#. Flash it onto the board as described in Option 1.
151210

152-
#. Flash other Zephyr application to fill in slot0 e.g:
211+
#. Flash other Zephyr application over USB using :ref:`MCUmgr-compatible tool <mcumgr_tools_libraries>` and reset target to boot into the image.
212+
213+
.. tabs::
214+
215+
.. group-tab:: nRF52840
153216

154-
.. zephyr-app-commands::
155-
:zephyr-app: samples/subsys/usb/dfu
156-
:board: ctcc/nrf52840
157-
:build-dir: dfu
158-
:goals: build
159-
:gen-args: -DCONFIG_BOOTLOADER_MCUBOOT=y -DCONFIG_MCUBOOT_SIGNATURE_KEY_FILE=\"path/to/mcuboot/boot/root-rsa-2048.pem\"
217+
Build the blinky example with MCUboot support:
160218

161-
You can now flash a Zephyr application to the board using DFU util.
162-
As an example we'll use the :zephyr:code-sample:`usb-cdc-acm-console` sample.
219+
.. zephyr-app-commands::
220+
:zephyr-app: samples/basic/blinky
221+
:board: ctcc/nrf52840
222+
:goals: build
223+
:gen-args: -DCONFIG_BOOTLOADER_MCUBOOT=y -DCONFIG_MCUBOOT_SIGNATURE_KEY_FILE=\"path/to/mcuboot/boot/root-rsa-2048.pem\"
163224

164-
.. zephyr-app-commands::
165-
:zephyr-app: samples/subsys/usb/console
166-
:board: ctcc/nrf52840
167-
:goals: build flash
168-
:gen-args: -DCONFIG_BOOTLOADER_MCUBOOT=y -DCONFIG_MCUBOOT_SIGNATURE_KEY_FILE=\"path/to/mcuboot/boot/root-rsa-2048.pem\"
225+
.. group-tab:: nRF9161
226+
227+
Build the blinky example with MCUboot support:
228+
229+
.. zephyr-app-commands::
230+
:zephyr-app: samples/basic/blinky
231+
:board: ctcc/nrf9161
232+
:goals: build
233+
:gen-args: -DCONFIG_BOOTLOADER_MCUBOOT=y -DCONFIG_MCUBOOT_SIGNATURE_KEY_FILE=\"path/to/mcuboot/boot/root-rsa-2048.pem\"
169234

170235
.. note::
171236

172237
In all examples it is assumed to use default :file:`root-rsa-2048.pem` file from ``mcuboot/boot``
173238
directory. Providing certificate in build args produces signed binary automatically.
174239
Do not use this certificate in your production firmware!
175240

176-
#. Plug in ``ctcc/nrf52840`` card to mPCIe/M.2 slot or use mPCIe/M.2 adapter to USB
177-
and plug such adapter to USB port.
241+
Debugging
242+
=========
178243

179-
You should see ``NordicSemiconductor MCUBOOT`` or ``NordicSemiconductor Zephyr DFU sample``
180-
(if you flashed ``dfu`` sample to slot0) device once plugging it into host
181-
USB port. You can check that on Linux system by entering ``lsusb`` command.
244+
These boards do not have an on-board J-Link debug IC, however
245+
instructions from the :ref:`nordic_segger` page also apply to them,
246+
with the additional step of connecting an external debugger.
182247

183-
To check if DFU device is visible you can enter ``sudo dfu-util -l`` command. Once the
184-
device is visible you can flash Zephyr image using DFU util: ``sudo dfu-util --alt 1 --download build/zephyr/zephyr.signed.bin``
248+
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.
185249

250+
* 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).
251+
* For ``ctcc/nrf9161`` it's not possible to see a change in ``lsusb`` due to the on-board USB-UART converter. Intead, connect to the UART console using a terminal emulation program of your choice.
186252

187253
References
188254
**********
189255

190256
.. target-notes::
191257

192-
.. _ctcc_nrf52840 Website:
258+
.. _Connectivity Cards Website:
193259
https://cthings.co/products/connectivity-cards
194260
.. _Nordic Semiconductor Infocenter:
195261
https://infocenter.nordicsemi.com
196262
.. _MCUboot:
197-
https://github.com/JuulLabs-OSS/mcuboot
263+
https://github.com/zephyrproject-rtos/mcuboot

0 commit comments

Comments
 (0)