Skip to content

Commit e7108fc

Browse files
mah-eiSmartMaureenHelm
authored andcommitted
boards: Add Proteus-II board file
Add a new board file of the Proteus-II radio module Signed-off-by: Matthias Hauser <[email protected]>
1 parent 6d7d414 commit e7108fc

File tree

11 files changed

+431
-0
lines changed

11 files changed

+431
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Proteus-II-EV board configuration
2+
3+
# Copyright (c) 2016 Nordic Semiconductor ASA
4+
# SPDX-License-Identifier: Apache-2.0
5+
6+
if BOARD_WE_PROTEUS2EV_NRF52832
7+
8+
config BOARD_ENABLE_DCDC
9+
bool "DCDC mode"
10+
select SOC_DCDC_NRF52X
11+
default y
12+
depends on BOARD_WE_PROTEUS2EV_NRF52832
13+
14+
endif # BOARD_WE_PROTEUS2EV_NRF52832
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Copyright (c) 2022 Nordic Semiconductor ASA
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
config BOARD_WE_PROTEUS2EV_NRF52832
5+
bool "we_proteus2ev_nrf52832"
6+
depends on SOC_NRF52832_CIAA
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Copyright (c) 2022 Nordic Semiconductor ASA
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
if BOARD_WE_PROTEUS2EV_NRF52832
5+
6+
config BOARD
7+
default "we_proteus2ev_nrf52832"
8+
9+
config BT_CTLR
10+
default BT
11+
12+
endif
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Copyright (c) 2022 Nordic Semiconductor ASA
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
board_runner_args(jlink "--device=nrf52" "--speed=4000")
5+
board_runner_args(pyocd "--target=nrf52832" "--frequency=4000000")
6+
7+
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
8+
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
9+
include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake)
60 KB
Loading
Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
.. _we_proteus2ev_nrf52832:
2+
3+
Würth Elektronik Proteus-II-EV
4+
##############################
5+
6+
Overview
7+
********
8+
9+
The Proteus-II-EV hardware provides
10+
support for the Proteus-II radio module that uses the Nordic Semiconductor nRF52832 ARM Cortex-M4F CPU and
11+
the following devices:
12+
13+
* :abbr:`ADC (Analog to Digital Converter)`
14+
* CLOCK
15+
* FLASH
16+
* :abbr:`GPIO (General Purpose Input Output)`
17+
* :abbr:`I2C (Inter-Integrated Circuit)`
18+
* :abbr:`MPU (Memory Protection Unit)`
19+
* :abbr:`NVIC (Nested Vectored Interrupt Controller)`
20+
* :abbr:`PWM (Pulse Width Modulation)`
21+
* RADIO (Bluetooth Low Energy)
22+
* :abbr:`RTC (nRF RTC System Clock)`
23+
* Segger RTT (RTT Console)
24+
* :abbr:`SPI (Serial Peripheral Interface)`
25+
* :abbr:`UART (Universal asynchronous receiver-transmitter)`
26+
* :abbr:`WDT (Watchdog Timer)`
27+
28+
.. figure:: img/we_proteus2ev_nrf52832.jpg
29+
:width: 642px
30+
:align: center
31+
:alt: Proteus-II EV
32+
33+
Proteus-II-EV (Credit: Würth Elektronik)
34+
35+
More information about the radio module can be found the Würth Elektronik web page https://www.we-online.com/katalog/de/PROTEUS-II .
36+
37+
38+
Hardware
39+
********
40+
41+
Proteus-II radio module provides only the internal oscillators. The frequency of the slow clock
42+
is 32.768 kHz. The frequency of the main clock is 32 MHz.
43+
44+
Supported Features
45+
==================
46+
47+
The we_proteus2ev_nrf52832 board configuration supports the following
48+
hardware features:
49+
50+
+-----------+------------+----------------------+
51+
| Interface | Controller | Driver/Component |
52+
+===========+============+======================+
53+
| ADC | on-chip | adc |
54+
+-----------+------------+----------------------+
55+
| CLOCK | on-chip | clock_control |
56+
+-----------+------------+----------------------+
57+
| FLASH | on-chip | flash |
58+
+-----------+------------+----------------------+
59+
| GPIO | on-chip | gpio |
60+
+-----------+------------+----------------------+
61+
| I2C(M) | on-chip | i2c |
62+
+-----------+------------+----------------------+
63+
| MPU | on-chip | arch/arm |
64+
+-----------+------------+----------------------+
65+
| NVIC | on-chip | arch/arm |
66+
+-----------+------------+----------------------+
67+
| PWM | on-chip | pwm |
68+
+-----------+------------+----------------------+
69+
| RADIO | on-chip | Bluetooth |
70+
+-----------+------------+----------------------+
71+
| RTC | on-chip | system clock |
72+
+-----------+------------+----------------------+
73+
| RTT | Segger | console |
74+
+-----------+------------+----------------------+
75+
| SPI(M/S) | on-chip | spi |
76+
+-----------+------------+----------------------+
77+
| UART | on-chip | serial |
78+
+-----------+------------+----------------------+
79+
| WDT | on-chip | watchdog |
80+
+-----------+------------+----------------------+
81+
82+
Other hardware features are not supported by the Zephyr kernel.
83+
84+
Connections and IOs
85+
===================
86+
87+
LED
88+
---
89+
90+
* LED1 = P0.00
91+
* LED2 = P0.01
92+
93+
Push buttons
94+
------------
95+
96+
* BUTTON1 = SW1 = P0.29
97+
98+
99+
Programming and Debugging
100+
*************************
101+
102+
Applications for the ``we_proteus2ev_nrf52832`` board configuration can be
103+
built, flashed, and debugged in the usual way. See
104+
:ref:`build_an_application` and :ref:`application_run` for more details on
105+
building and running.
106+
107+
Flashing
108+
========
109+
110+
Follow the instructions in the :ref:`nordic_segger` page to install
111+
and configure all the necessary software. Further information can be
112+
found in :ref:`nordic_segger_flashing`. Then build and flash
113+
applications as usual (see :ref:`build_an_application` and
114+
:ref:`application_run` for more details).
115+
116+
Here is an example for the :ref:`hello_world` application.
117+
118+
First, run your favorite terminal program to listen for output.
119+
120+
.. code-block:: console
121+
122+
$ minicom -D <tty_device> -b 115200
123+
124+
Replace :code:`<tty_device>` with the port where the board Proteus-II-EV
125+
can be found. For example, under Linux, :code:`/dev/ttyACM0`.
126+
127+
Then build and flash the application in the usual way.
128+
129+
.. zephyr-app-commands::
130+
:zephyr-app: samples/hello_world
131+
:board: we_proteus2ev_nrf52832
132+
:goals: build flash
133+
134+
Debugging
135+
=========
136+
137+
Refer to the :ref:`nordic_segger` page to learn about debugging Nordic boards with a
138+
Segger IC.
139+
140+
141+
Testing the LEDs and buttons in the Proteus-II-EV
142+
*************************************************
143+
144+
There are 2 samples that allow you to test that the buttons (switches) and LEDs on
145+
the board are working properly with Zephyr:
146+
147+
.. code-block:: console
148+
149+
samples/basic/blinky
150+
samples/basic/button
151+
152+
You can build and flash the examples to make sure Zephyr is running correctly on
153+
your board. The button and LED definitions can be found in
154+
:zephyr_file:`boards/arm/nrf52dk_nrf52832/nrf52dk_nrf52832.dts`.
155+
156+
References
157+
**********
158+
159+
.. target-notes::
160+
161+
.. _Proteus-II radio module website: https://www.we-online.com/katalog/de/PROTEUS-II
162+
.. _nRF52 DK website: https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52-DK
163+
.. _Nordic Semiconductor Infocenter: https://infocenter.nordicsemi.com
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
&pinctrl {
2+
uart0_default: uart0_default {
3+
group1 {
4+
psels = <NRF_PSEL(UART_TX, 0, 2)>,
5+
<NRF_PSEL(UART_RTS, 0, 4)>;
6+
};
7+
group2 {
8+
psels = <NRF_PSEL(UART_RX, 0, 3)>,
9+
<NRF_PSEL(UART_CTS, 0, 28)>;
10+
bias-pull-up;
11+
};
12+
};
13+
14+
uart0_sleep: uart0_sleep {
15+
group1 {
16+
psels = <NRF_PSEL(UART_TX, 0, 2)>,
17+
<NRF_PSEL(UART_RX, 0, 3)>,
18+
<NRF_PSEL(UART_RTS, 0, 4)>,
19+
<NRF_PSEL(UART_CTS, 0, 28)>;
20+
low-power-enable;
21+
};
22+
};
23+
24+
i2c0_default: i2c0_default {
25+
group1 {
26+
psels = <NRF_PSEL(TWIM_SDA, 0, 2)>,
27+
<NRF_PSEL(TWIM_SCL, 0, 3)>;
28+
};
29+
};
30+
31+
i2c0_sleep: i2c0_sleep {
32+
group1 {
33+
psels = <NRF_PSEL(TWIM_SDA, 0, 2)>,
34+
<NRF_PSEL(TWIM_SCL, 0, 3)>;
35+
low-power-enable;
36+
};
37+
};
38+
39+
spi0_default: spi0_default {
40+
group1 {
41+
psels = <NRF_PSEL(SPIM_SCK, 0, 28)>,
42+
<NRF_PSEL(SPIM_MOSI, 0, 2)>,
43+
<NRF_PSEL(SPIM_MISO, 0, 3)>;
44+
};
45+
};
46+
47+
spi0_sleep: spi0_sleep {
48+
group1 {
49+
psels = <NRF_PSEL(SPIM_SCK, 0, 28)>,
50+
<NRF_PSEL(SPIM_MOSI, 0, 2)>,
51+
<NRF_PSEL(SPIM_MISO, 0, 3)>;
52+
low-power-enable;
53+
};
54+
};
55+
56+
};
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
/* Copyright (c) 2022 Nordic Semiconductor ASA */
2+
/* SPDX-License-Identifier: Apache-2.0 */
3+
4+
/dts-v1/;
5+
#include <nordic/nrf52832_ciaa.dtsi>
6+
#include "we_proteus2ev_nrf52832-pinctrl.dtsi"
7+
8+
/ {
9+
model = "we_proteus2ev_nrf52832";
10+
compatible = "we,we-proteus2ev-nrf52832";
11+
12+
chosen {
13+
zephyr,console = &uart0;
14+
zephyr,shell-uart = &uart0;
15+
zephyr,uart-mcumgr = &uart0;
16+
zephyr,bt-mon-uart = &uart0;
17+
zephyr,bt-c2h-uart = &uart0;
18+
zephyr,sram = &sram0;
19+
zephyr,flash = &flash0;
20+
zephyr,code-partition = &slot0_partition;
21+
};
22+
23+
leds {
24+
compatible = "gpio-leds";
25+
led0: led_0 {
26+
gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>;
27+
label = "LED 0";
28+
};
29+
led1: led_1 {
30+
gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
31+
label = "LED 1";
32+
};
33+
};
34+
35+
buttons {
36+
compatible = "gpio-keys";
37+
button0: button_0 {
38+
gpios = <&gpio0 29 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
39+
label = "Wake-up";
40+
};
41+
};
42+
43+
/* These aliases are provided for compatibility with samples */
44+
aliases {
45+
led0 = &led0;
46+
led1 = &led1;
47+
sw0 = &button0;
48+
bootloader-led0 = &led0;
49+
};
50+
};
51+
52+
&adc {
53+
status = "okay";
54+
};
55+
56+
&gpiote {
57+
status = "okay";
58+
};
59+
60+
&gpio0 {
61+
status = "okay";
62+
};
63+
64+
&uart0 {
65+
compatible = "nordic,nrf-uarte";
66+
status = "okay";
67+
current-speed = <115200>;
68+
pinctrl-0 = <&uart0_default>;
69+
pinctrl-1 = <&uart0_sleep>;
70+
pinctrl-names = "default", "sleep";
71+
};
72+
73+
&i2c0 {
74+
compatible = "nordic,nrf-twi";
75+
/* Cannot be used together with spi1. */
76+
/* status = "okay"; */
77+
pinctrl-0 = <&i2c0_default>;
78+
pinctrl-1 = <&i2c0_sleep>;
79+
pinctrl-names = "default", "sleep";
80+
};
81+
82+
&spi0 {
83+
compatible = "nordic,nrf-spi";
84+
/* Cannot be used together with i2c0. */
85+
/* status = "okay"; */
86+
pinctrl-0 = <&spi0_default>;
87+
pinctrl-1 = <&spi0_sleep>;
88+
pinctrl-names = "default", "sleep";
89+
};
90+
91+
&flash0 {
92+
partitions {
93+
compatible = "fixed-partitions";
94+
#address-cells = <1>;
95+
#size-cells = <1>;
96+
97+
boot_partition: partition@0 {
98+
label = "mcuboot";
99+
reg = <0x00000000 0xc000>;
100+
};
101+
slot0_partition: partition@c000 {
102+
label = "image-0";
103+
reg = <0x0000C000 0x32000>;
104+
};
105+
slot1_partition: partition@3e000 {
106+
label = "image-1";
107+
reg = <0x0003E000 0x32000>;
108+
};
109+
scratch_partition: partition@70000 {
110+
label = "image-scratch";
111+
reg = <0x00070000 0xa000>;
112+
};
113+
storage_partition: partition@7a000 {
114+
label = "storage";
115+
reg = <0x0007a000 0x00006000>;
116+
};
117+
};
118+
};

0 commit comments

Comments
 (0)