boards: arm: arduino_nano_33_ble: Add support for sense version of board
This commit adds support for the Arduino Nano 33 BLE Sense board. The DTS is separated into a common dtsi and one DTS for each version of the board. The sensors with existing drivers: hts221, lps22hb and apds9960 are added to the DTS of the Sense version. A startup delay is added to the vdd_env node. This is done to give some time for the sensors VDD/VCC to go high before the sensor drivers are initialized. The functionality was verified using the driver sample of each sensor. Signed-off-by: Benjamin Björnsson <benjamin.bjornsson@gmail.com>
This commit is contained in:
parent
0c23a02c8d
commit
e9ab9990d4
9 changed files with 242 additions and 142 deletions
|
@ -4,3 +4,7 @@
|
|||
config BOARD_ARDUINO_NANO_33_BLE
|
||||
bool "Arduino Nano 33 BLE board"
|
||||
depends on SOC_NRF52840_QIAA
|
||||
|
||||
config BOARD_ARDUINO_NANO_33_BLE_SENSE
|
||||
bool "Arduino Nano 33 BLE Sense board"
|
||||
depends on SOC_NRF52840_QIAA
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
# Copyright (c) 2020 Jefferson Lee.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
if BOARD_ARDUINO_NANO_33_BLE
|
||||
if BOARD_ARDUINO_NANO_33_BLE || BOARD_ARDUINO_NANO_33_BLE_SENSE
|
||||
|
||||
config BOARD
|
||||
default "arduino_nano_33_ble"
|
||||
default "arduino_nano_33_ble" if BOARD_ARDUINO_NANO_33_BLE
|
||||
default "arduino_nano_33_ble_sense" if BOARD_ARDUINO_NANO_33_BLE_SENSE
|
||||
|
||||
config BT_CTLR
|
||||
default BT
|
||||
|
@ -12,4 +13,4 @@ config BT_CTLR
|
|||
config REGULATOR
|
||||
default y if SENSOR
|
||||
|
||||
endif # BOARD_ARDUINO_NANO_33_BLE
|
||||
endif # BOARD_ARDUINO_NANO_33_BLE || BOARD_ARDUINO_NANO_33_BLE_SENSE
|
||||
|
|
144
boards/arm/arduino_nano_33_ble/arduino_nano_33_ble-common.dtsi
Normal file
144
boards/arm/arduino_nano_33_ble/arduino_nano_33_ble-common.dtsi
Normal file
|
@ -0,0 +1,144 @@
|
|||
/*
|
||||
* Copyright (c) 2020 Jefferson Lee
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
zephyr,console = &uart0;
|
||||
zephyr,shell-uart = &uart0;
|
||||
zephyr,uart-mcumgr = &uart0;
|
||||
zephyr,bt-mon-uart = &uart0;
|
||||
zephyr,bt-c2h-uart = &uart0;
|
||||
zephyr,sram = &sram0;
|
||||
zephyr,flash = &flash0;
|
||||
zephyr,code-partition = &code_partition;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
led0: led_0 {
|
||||
gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
|
||||
label = "Red LED";
|
||||
};
|
||||
led1: led_1 {
|
||||
gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
|
||||
label = "Green LED";
|
||||
};
|
||||
led2: led_2 {
|
||||
gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
|
||||
label = "Blue LED";
|
||||
};
|
||||
led4: led_4 {
|
||||
gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
|
||||
label = "User LED";
|
||||
};
|
||||
};
|
||||
|
||||
vdd_env: vdd-env {
|
||||
compatible = "regulator-fixed";
|
||||
label = "vdd_env";
|
||||
regulator-name = "vdd_env";
|
||||
enable-gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>;
|
||||
regulator-boot-on;
|
||||
startup-delay-us = <5000>;
|
||||
};
|
||||
|
||||
zephyr,user {
|
||||
/* I2C pull-ups are connected to VDD via pin voltage level */
|
||||
pull-up-gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
/* These aliases are provided for compatibility with samples */
|
||||
aliases {
|
||||
led0 = &led0;
|
||||
led1 = &led1;
|
||||
led2 = &led2;
|
||||
led4 = &led4;
|
||||
spi = &spi2;
|
||||
};
|
||||
};
|
||||
|
||||
&flash0 {
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
boot_partition: partition@0 {
|
||||
label = "sam-ba";
|
||||
reg = <0x00000000 0x00010000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
code_partition: partition@10000 {
|
||||
label = "code";
|
||||
reg = <0x00010000 0x000e8000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
/*
|
||||
* The flash starting at 0x000f8000 and ending at
|
||||
* 0x000fffff is reserved for use by the application.
|
||||
*
|
||||
* Storage partition will be used by FCB/LittleFS/NVS
|
||||
* if enabled.
|
||||
*/
|
||||
storage_partition: partition@f8000 {
|
||||
label = "storage";
|
||||
reg = <0x000f8000 0x00008000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&adc {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
compatible = "nordic,nrf-uart";
|
||||
current-speed = <115200>;
|
||||
status = "okay";
|
||||
pinctrl-0 = <&uart0_default>;
|
||||
pinctrl-1 = <&uart0_sleep>;
|
||||
pinctrl-names = "default", "sleep";
|
||||
};
|
||||
|
||||
arduino_i2c: &i2c0 {
|
||||
compatible = "nordic,nrf-twim";
|
||||
status = "okay";
|
||||
pinctrl-0 = <&i2c0_default>;
|
||||
pinctrl-1 = <&i2c0_sleep>;
|
||||
pinctrl-names = "default", "sleep";
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
compatible = "nordic,nrf-twim";
|
||||
status = "okay";
|
||||
pinctrl-0 = <&i2c1_default>;
|
||||
pinctrl-1 = <&i2c1_sleep>;
|
||||
pinctrl-names = "default", "sleep";
|
||||
};
|
||||
|
||||
/* SPI2 is used because SPI1/0 shares conflicts with I2C1/0 */
|
||||
arduino_spi: &spi2 {
|
||||
compatible = "nordic,nrf-spim";
|
||||
status = "okay";
|
||||
pinctrl-0 = <&spi2_default>;
|
||||
pinctrl-1 = <&spi2_sleep>;
|
||||
pinctrl-names = "default", "sleep";
|
||||
};
|
||||
|
||||
&gpio0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gpio1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
zephyr_udc0: &usbd {
|
||||
compatible = "nordic,nrf-usbd";
|
||||
status = "okay";
|
||||
};
|
|
@ -5,146 +5,11 @@
|
|||
*/
|
||||
/dts-v1/;
|
||||
#include <nordic/nrf52840_qiaa.dtsi>
|
||||
#include "arduino_nano_33_ble-common.dtsi"
|
||||
#include "arduino_nano_33_ble-pinctrl.dtsi"
|
||||
#include "arduino_nano_r3_connector.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Arduino Nano 33 BLE (Sense)";
|
||||
model = "Arduino Nano 33 BLE";
|
||||
compatible = "arduino,arduino_nano_33_ble";
|
||||
|
||||
chosen {
|
||||
zephyr,console = &uart0;
|
||||
zephyr,shell-uart = &uart0;
|
||||
zephyr,uart-mcumgr = &uart0;
|
||||
zephyr,bt-mon-uart = &uart0;
|
||||
zephyr,bt-c2h-uart = &uart0;
|
||||
zephyr,sram = &sram0;
|
||||
zephyr,flash = &flash0;
|
||||
zephyr,code-partition = &code_partition;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
led0: led_0 {
|
||||
gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
|
||||
label = "Red LED";
|
||||
};
|
||||
led1: led_1 {
|
||||
gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
|
||||
label = "Green LED";
|
||||
};
|
||||
led2: led_2 {
|
||||
gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
|
||||
label = "Blue LED";
|
||||
};
|
||||
led4: led_4 {
|
||||
gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
|
||||
label = "User LED";
|
||||
};
|
||||
};
|
||||
|
||||
vdd_env: vdd-env {
|
||||
compatible = "regulator-fixed-sync", "regulator-fixed";
|
||||
label = "vdd_env";
|
||||
regulator-name = "vdd_env";
|
||||
enable-gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
zephyr,user {
|
||||
/* I2C pull-ups are connected to VDD via pin voltage level */
|
||||
pull-up-gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
/* These aliases are provided for compatibility with samples */
|
||||
aliases {
|
||||
led0 = &led0;
|
||||
led1 = &led1;
|
||||
led2 = &led2;
|
||||
led4 = &led4;
|
||||
spi = &spi2;
|
||||
};
|
||||
};
|
||||
|
||||
&flash0 {
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
boot_partition: partition@0 {
|
||||
label = "sam-ba";
|
||||
reg = <0x00000000 0x00010000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
code_partition: partition@10000 {
|
||||
label = "code";
|
||||
reg = <0x00010000 0x000e8000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
/*
|
||||
* The flash starting at 0x000f8000 and ending at
|
||||
* 0x000fffff is reserved for use by the application.
|
||||
*
|
||||
* Storage partition will be used by FCB/LittleFS/NVS
|
||||
* if enabled.
|
||||
*/
|
||||
storage_partition: partition@f8000 {
|
||||
label = "storage";
|
||||
reg = <0x000f8000 0x00008000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&adc {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
compatible = "nordic,nrf-uart";
|
||||
current-speed = <115200>;
|
||||
status = "okay";
|
||||
pinctrl-0 = <&uart0_default>;
|
||||
pinctrl-1 = <&uart0_sleep>;
|
||||
pinctrl-names = "default", "sleep";
|
||||
};
|
||||
|
||||
arduino_i2c: &i2c0 {
|
||||
compatible = "nordic,nrf-twim";
|
||||
status = "okay";
|
||||
pinctrl-0 = <&i2c0_default>;
|
||||
pinctrl-1 = <&i2c0_sleep>;
|
||||
pinctrl-names = "default", "sleep";
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
compatible = "nordic,nrf-twim";
|
||||
status = "okay";
|
||||
pinctrl-0 = <&i2c1_default>;
|
||||
pinctrl-1 = <&i2c1_sleep>;
|
||||
pinctrl-names = "default", "sleep";
|
||||
};
|
||||
|
||||
/* SPI2 is used because SPI1/0 shares conflicts with I2C1/0 */
|
||||
arduino_spi: &spi2 {
|
||||
compatible = "nordic,nrf-spim";
|
||||
status = "okay";
|
||||
pinctrl-0 = <&spi2_default>;
|
||||
pinctrl-1 = <&spi2_sleep>;
|
||||
pinctrl-names = "default", "sleep";
|
||||
};
|
||||
|
||||
&gpio0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gpio1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
zephyr_udc0: &usbd {
|
||||
compatible = "nordic,nrf-usbd";
|
||||
status = "okay";
|
||||
};
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
identifier: arduino_nano_33_ble
|
||||
name: Arduino Nano 33 BLE (Sense)
|
||||
name: Arduino Nano 33 BLE
|
||||
type: mcu
|
||||
arch: arm
|
||||
toolchain:
|
||||
|
|
39
boards/arm/arduino_nano_33_ble/arduino_nano_33_ble_sense.dts
Normal file
39
boards/arm/arduino_nano_33_ble/arduino_nano_33_ble_sense.dts
Normal file
|
@ -0,0 +1,39 @@
|
|||
/*
|
||||
* Copyright (c) 2020 Jefferson Lee
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
/dts-v1/;
|
||||
#include <nordic/nrf52840_qiaa.dtsi>
|
||||
#include "arduino_nano_33_ble-common.dtsi"
|
||||
#include "arduino_nano_33_ble-pinctrl.dtsi"
|
||||
#include "arduino_nano_r3_connector.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Arduino Nano 33 BLE Sense";
|
||||
compatible = "arduino,arduino_nano_33_ble_sense";
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
hts221: hts221@5f {
|
||||
compatible = "st,hts221";
|
||||
status = "okay";
|
||||
reg = <0x5f>;
|
||||
label = "HTS221";
|
||||
};
|
||||
|
||||
lps22hb: lps22hb-press@5c {
|
||||
compatible = "st,lps22hb-press";
|
||||
status = "okay";
|
||||
reg = <0x5c>;
|
||||
label = "LPS22HB";
|
||||
};
|
||||
|
||||
apds9960: apds9960@39 {
|
||||
compatible = "avago,apds9960";
|
||||
status = "okay";
|
||||
reg = <0x39>;
|
||||
label = "APDS9960";
|
||||
int-gpios = <&gpio0 19 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
|
||||
};
|
||||
};
|
|
@ -0,0 +1,20 @@
|
|||
identifier: arduino_nano_33_ble_sense
|
||||
name: Arduino Nano 33 BLE Sense
|
||||
type: mcu
|
||||
arch: arm
|
||||
toolchain:
|
||||
- zephyr
|
||||
- gnuarmemb
|
||||
- xtools
|
||||
supported:
|
||||
- adc
|
||||
- ble
|
||||
- i2c
|
||||
- ieee802154
|
||||
- pwm
|
||||
- serial
|
||||
- spi
|
||||
- uart
|
||||
- usb_cdc
|
||||
- usb_device
|
||||
- watchdog
|
|
@ -0,0 +1,26 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
CONFIG_SOC_SERIES_NRF52X=y
|
||||
CONFIG_SOC_NRF52840_QIAA=y
|
||||
CONFIG_BOARD_ARDUINO_NANO_33_BLE_SENSE=y
|
||||
|
||||
# Enable MPU
|
||||
CONFIG_ARM_MPU=y
|
||||
CONFIG_HW_STACK_PROTECTION=y
|
||||
|
||||
# enable peripherals
|
||||
CONFIG_GPIO=y
|
||||
CONFIG_SERIAL=y
|
||||
|
||||
# enable console
|
||||
CONFIG_CONSOLE=y
|
||||
CONFIG_UART_CONSOLE=y
|
||||
|
||||
# enable sam-ba bootloader on legacy mode
|
||||
CONFIG_BOOTLOADER_BOSSA=y
|
||||
CONFIG_BOOTLOADER_BOSSA_LEGACY=y
|
||||
|
||||
# additional board options
|
||||
CONFIG_GPIO_AS_PINRESET=y
|
||||
|
||||
CONFIG_PINCTRL=y
|
|
@ -51,6 +51,7 @@
|
|||
defined(CONFIG_BOARD_BT510) || \
|
||||
defined(CONFIG_BOARD_PINNACLE_100_DVK) || \
|
||||
defined(CONFIG_BOARD_ARDUINO_NANO_33_BLE) || \
|
||||
defined(CONFIG_BOARD_ARDUINO_NANO_33_BLE_SENSE) || \
|
||||
defined(CONFIG_BOARD_UBX_BMD300EVAL_NRF52832) || \
|
||||
defined(CONFIG_BOARD_UBX_BMD330EVAL_NRF52810) || \
|
||||
defined(CONFIG_BOARD_UBX_BMD340EVAL_NRF52840) || \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue