1.. _actinius_icarus_som_dk:
2
3Actinius Icarus SoM DK
4######################
5
6Overview
7********
8
9.. figure:: img/icarus-som-dk.jpg
10     :width: 450px
11     :align: center
12     :alt: Icarus SoM DK
13
14     Icarus SoM Development Kit (nRF9160)
15
16The Icarus SoM DK is a single board development kit for
17evaluation and development on the Icarus SoM (`Icarus SoM Docs`_).
18The Icarus SoM features the nRF9160 SiP from Nordic Semiconductor,
19a low-power 3-axis accelerometer and an on-board eSIM.
20The development kit provides interfacing to the SoM through USB-C,
21a set of user LEDs, a reset and a user button, a battery charging port,
22and a external nano SIM connector.
23The board is also Arduino Uno Rev3 compatible which makes
24using external shields possible.
25
26The main uController is the Nordic Semiconductor nRF9160, with
27ARM Cortex-M33F CPU, ARMv8-M Security Extension and the
28following devices (provided directly by Nordic):
29
30* :abbr:`ADC (Analog to Digital Converter)`
31* CLOCK
32* FLASH
33* :abbr:`GPIO (General Purpose Input Output)`
34* :abbr:`I2C (Inter-Integrated Circuit)`
35* :abbr:`MPU (Memory Protection Unit)`
36* :abbr:`NVIC (Nested Vectored Interrupt Controller)`
37* :abbr:`PWM (Pulse Width Modulation)`
38* :abbr:`RTC (nRF RTC System Clock)`
39* Segger RTT (RTT Console)
40* :abbr:`SPI (Serial Peripheral Interface)`
41* :abbr:`UARTE (Universal asynchronous receiver-transmitter with EasyDMA)`
42* :abbr:`WDT (Watchdog Timer)`
43* :abbr:`IDAU (Implementation Defined Attribution Unit)`
44
45.. figure:: img/icarus-som-dk-block-diagram.jpg
46     :width: 450px
47     :align: center
48     :alt: Icarus SoM DK Block Diagram
49
50     Icarus SoM DK Block Diagram
51
52Hardware
53********
54
55The detailed information about the on-board hardware can be found at the `Icarus SoM Product Website`_
56and the `Icarus SoM DK Product Website`_.
57
58Pin description
59===============
60
61External Pins available to user:
62
63+----+-------+------------------------------------+------------------+
64| #  | Label | Description                        | Device-tree node |
65+====+=======+====================================+==================+
66|  1 | NC    | Not Connected                      | -                |
67+----+-------+------------------------------------+------------------+
68|  2 | IOREF | I/O reference, connected to 3.3V   | -                |
69+----+-------+------------------------------------+------------------+
70|  3 | RST   | Reset of the nRF9160               | -                |
71+----+-------+------------------------------------+------------------+
72|  4 | 3.3V  | 3.3V Power output                  | -                |
73+----+-------+------------------------------------+------------------+
74|  5 | 4.4V  | Power output between Vbat and 4.4V | -                |
75+----+-------+------------------------------------+------------------+
76|  6 | GND   | Ground pin                         | -                |
77+----+-------+------------------------------------+------------------+
78|  7 | GND   | Ground pin                         | -                |
79+----+-------+------------------------------------+------------------+
80|  8 | VIN   | Power input pin (4.35V to 10.5V)   | -                |
81+----+-------+------------------------------------+------------------+
82|  9 | A2    | AIN2 / nRF9160 P0.15               | gpio0            |
83+----+-------+------------------------------------+------------------+
84| 10 | A3    | AIN3 / nRF9160 P0.16               | gpio0            |
85+----+-------+------------------------------------+------------------+
86| 11 | A4    | AIN4 / nRF9160 P0.17               | gpio0            |
87+----+-------+------------------------------------+------------------+
88| 12 | A5    | AIN5 / nRF9160 P0.18               | gpio0            |
89+----+-------+------------------------------------+------------------+
90| 13 | A6    | AIN6 / nRF9160 P0.19               | gpio0            |
91+----+-------+------------------------------------+------------------+
92| 14 | A7    | AIN7 / nRF9160 P0.20               | gpio0            |
93+----+-------+------------------------------------+------------------+
94| 15 | P4    | nRF9160 P0.04                      | gpio0            |
95+----+-------+------------------------------------+------------------+
96| 16 | P5    | nRF9160 P0.05                      | gpio0            |
97+----+-------+------------------------------------+------------------+
98| 17 | P2    | nRF9160 P0.02                      | gpio0            |
99+----+-------+------------------------------------+------------------+
100| 18 | P1    | nRF9160 P0.01                      | gpio0            |
101+----+-------+------------------------------------+------------------+
102| 19 | P23   | nRF9160 P0.23                      | gpio0            |
103+----+-------+------------------------------------+------------------+
104| 20 | P0    | nRF9160 P0.00                      | gpio0            |
105+----+-------+------------------------------------+------------------+
106| 21 | P26   | nRF9160 P0.26                      | gpio0            |
107+----+-------+------------------------------------+------------------+
108| 22 | P27   | nRF9160 P0.27                      | gpio0            |
109+----+-------+------------------------------------+------------------+
110| 23 | P30   | nRF9160 P0.30                      | gpio0            |
111+----+-------+------------------------------------+------------------+
112| 24 | P31   | nRF9160 P0.31                      | gpio0            |
113+----+-------+------------------------------------+------------------+
114| 25 | P7    | nRF9160 P0.07                      | gpio0            |
115+----+-------+------------------------------------+------------------+
116| 26 | P13   | nRF9160 P0.13 or NC (Jumper-dependent) | gpio0        |
117+----+-------+------------------------------------+------------------+
118| 27 | P14   | nRF9160 P0.14 or NC (Jumper-dependent) | gpio0        |
119+----+-------+------------------------------------+------------------+
120| 28 | P3    | nRF9160 P0.03                      | gpio0            |
121+----+-------+------------------------------------+------------------+
122| 29 | GND   | Ground pin                         | -                |
123+----+-------+------------------------------------+------------------+
124| 30 | AREF  | NC or AIN1 (Jumper-dependent)      | gpio0            |
125+----+-------+------------------------------------+------------------+
126| 31 | SDA   | I2C SDA pin                        | i2c2             |
127+----+-------+------------------------------------+------------------+
128| 32 | SCL   | I2C SCL pin                        | i2c2             |
129+----+-------+------------------------------------+------------------+
130|  - | TS    | Pin for optional battery thermistor| -                |
131+----+-------+------------------------------------+------------------+
132|  - | CHG   | Pin for battery charging indication| -                |
133+----+-------+------------------------------------+------------------+
134|  - | CE    | Pin for enabling/disabling charging| -                |
135+----+-------+------------------------------------+------------------+
136
137
138nRF9160 pins connected internally:
139
140+--------------+------------------------------+---------------------+
141| nRF9160 pin  | Function                     | Device-tree node    |
142+==============+==============================+=====================+
143| P0.03        | Blue LED                     | led0 / pwm-led0     |
144+--------------+------------------------------+---------------------+
145| P0.08        | NeoPixel RGB LED             | spi1                |
146+--------------+------------------------------+---------------------+
147| P0.12        | SIM select pin               | gpio0               |
148+--------------+------------------------------+---------------------+
149| P0.23        | Connected to the user button | gpio0 / button0     |
150+--------------+------------------------------+---------------------+
151| P0.24        | SPI NOR Flash chip select    | gpio0 / spi3        |
152+--------------+------------------------------+---------------------+
153| P0.28        | Accelerometer Interrupt 2    | lis2dh12-accel      |
154+--------------+------------------------------+---------------------+
155| P0.29        | Accelerometer Interrupt 1    | lis2dh12-accel      |
156+--------------+------------------------------+---------------------+
157
158Supported Features
159==================
160
161The actinius_icarus_som_dk board configuration supports the following
162hardware features:
163
164+-----------+------------+----------------------+
165| Interface | Controller | Driver/Component     |
166+===========+============+======================+
167| ADC       | on-chip    | adc                  |
168+-----------+------------+----------------------+
169| CLOCK     | on-chip    | clock_control        |
170+-----------+------------+----------------------+
171| FLASH     | on-chip    | flash                |
172+-----------+------------+----------------------+
173| GPIO      | on-chip    | gpio                 |
174+-----------+------------+----------------------+
175| I2C(M)    | on-chip    | i2c                  |
176+-----------+------------+----------------------+
177| MPU       | on-chip    | arch/arm             |
178+-----------+------------+----------------------+
179| NVIC      | on-chip    | arch/arm             |
180+-----------+------------+----------------------+
181| PWM       | on-chip    | pwm                  |
182+-----------+------------+----------------------+
183| SPI(M/S)  | on-chip    | spi                  |
184+-----------+------------+----------------------+
185| SPU       | on-chip    | system protection    |
186+-----------+------------+----------------------+
187| UARTE     | on-chip    | serial               |
188+-----------+------------+----------------------+
189| ACCEL     | st         | lis2dh               |
190+-----------+------------+----------------------+
191
192SIM selection
193*************
194
195The sim choice (eSIM or nano-SIM) can be configured in Devicetree by adjusting
196the ``sim`` property in the ``sim_select`` node.
197
198Security components
199===================
200
201- Implementation Defined Attribution Unit (`IDAU`_).  The IDAU is implemented
202  with the System Protection Unit and is used to define secure and non-secure
203  memory maps.  By default, all of the memory space  (Flash, SRAM, and
204  peripheral address space) is defined to be secure accessible only.
205- Secure boot.
206
207Building Secure/Non-Secure Zephyr applications
208==============================================
209
210The process requires the following steps:
211
2121. Build the Secure Zephyr application using ``-DBOARD=actinius_icarus_som_dk``.
2132. Build the Non-Secure Zephyr application using ``-DBOARD=actinius_icarus_som_dk/ns``.
2143. Merge the two binaries together.
215
216If you are using Segger Embedded Studio v4.18 or later, the two binaries are built, merged, and
217burned automatically, unless you have disabled the feature.
218
219When building a Secure/Non-Secure application, the Secure application will
220have to set the IDAU (SPU) configuration to allow Non-Secure access to all
221CPU resources utilized by the Non-Secure application firmware. SPU
222configuration shall take place before jumping to the Non-Secure application.
223
224More information can be found in the `Icarus SoM Product Website`_,
225the `Icarus SoM DK Product Website`_ or the `Actinius Documentation Portal`_.
226
227References
228**********
229
230.. target-notes::
231
232.. _IDAU:
233   https://developer.arm.com/docs/100690/latest/attribution-units-sau-and-idau
234
235.. _Icarus SoM Product Website:
236   https://www.actinius.com/icarus-som
237
238.. _Icarus SoM DK Product Website:
239   https://www.actinius.com/icarus-som-dk
240
241.. _Icarus SoM Docs:
242   https://docs.actinius.com/icarus-som/introduction
243
244.. _Actinius Documentation Portal:
245   https://docs.actinius.com
246