boards: introduce bytesatwork byteSENSI-L
The byteSENSI-L is a fun LoRa device based on nRF52 MCU that integrates many sensors. Signed-off-by: Rico Ganahl <rico.ganahl@bytesatwork.ch> Signed-off-by: Guy Morand <guy.morand@bytesatwork.ch>
This commit is contained in:
parent
a9be65bec5
commit
45795d35b6
14 changed files with 449 additions and 0 deletions
8
boards/bytesatwork/bytesensi_l/Kconfig
Normal file
8
boards/bytesatwork/bytesensi_l/Kconfig
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
# Copyright (c) 2024 bytesatwork AG
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config BOARD_ENABLE_DCDC
|
||||
bool "DCDC mode"
|
||||
select SOC_DCDC_NRF52X
|
||||
default y
|
||||
depends on BOARD_BYTESENSI_L
|
||||
6
boards/bytesatwork/bytesensi_l/Kconfig.bytesensi_l
Normal file
6
boards/bytesatwork/bytesensi_l/Kconfig.bytesensi_l
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
# Copyright (c) 2024 bytesatwork AG
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config BOARD_BYTESENSI_L
|
||||
bool "bytesatwork bytesSENSI-L nRF52832"
|
||||
select SOC_NRF52832_QFAA
|
||||
9
boards/bytesatwork/bytesensi_l/Kconfig.defconfig
Normal file
9
boards/bytesatwork/bytesensi_l/Kconfig.defconfig
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
# Copyright (c) 2024 bytesatwork AG
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
if BOARD_BYTESENSI_L
|
||||
|
||||
config BT_CTLR
|
||||
default BT
|
||||
|
||||
endif # BOARD_BYTESENSI_L
|
||||
5
boards/bytesatwork/bytesensi_l/board.cmake
Normal file
5
boards/bytesatwork/bytesensi_l/board.cmake
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
# Copyright (c) 2024 bytesatwork AG
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
board_runner_args(jlink "--device=nRF52832_xxAA" "--speed=4000")
|
||||
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
|
||||
7
boards/bytesatwork/bytesensi_l/board.yml
Normal file
7
boards/bytesatwork/bytesensi_l/board.yml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
# Copyright (c) 2024 bytesatwork AG
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
board:
|
||||
name: bytesensi_l
|
||||
vendor: bytesatwork
|
||||
socs:
|
||||
- name: nrf52832
|
||||
151
boards/bytesatwork/bytesensi_l/bytesensi_l.dts
Normal file
151
boards/bytesatwork/bytesensi_l/bytesensi_l.dts
Normal file
|
|
@ -0,0 +1,151 @@
|
|||
/*
|
||||
* Copyrigtt (c) 2024 bytesatwork AG
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include <nordic/nrf52832_qfaa.dtsi>
|
||||
#include "bytesensi_l_pinctrl.dtsi"
|
||||
|
||||
#include <zephyr/dt-bindings/gpio/gpio.h>
|
||||
|
||||
/ {
|
||||
model = "bytesatwork BLE/LORA sensor board";
|
||||
compatible = "bytesatwork,bytesensi-l";
|
||||
|
||||
chosen {
|
||||
zephyr,console = &uart0;
|
||||
zephyr,sram = &sram0;
|
||||
zephyr,flash = &flash0;
|
||||
zephyr,code-partition = &slot0_partition;
|
||||
};
|
||||
|
||||
aliases {
|
||||
/* Alias for lora samples */
|
||||
lora0 = &lora;
|
||||
};
|
||||
};
|
||||
|
||||
&flash0 {
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
boot_partition: partition@0 {
|
||||
label = "mcuboot";
|
||||
reg = <0x00000000 0xc000>;
|
||||
};
|
||||
slot0_partition: partition@c000 {
|
||||
label = "image-0";
|
||||
reg = <0x0000C000 0x32000>;
|
||||
};
|
||||
slot1_partition: partition@3e000 {
|
||||
label = "image-1";
|
||||
reg = <0x0003E000 0x32000>;
|
||||
};
|
||||
scratch_partition: partition@70000 {
|
||||
label = "image-scratch";
|
||||
reg = <0x00070000 0xa000>;
|
||||
};
|
||||
storage_partition: partition@7a000 {
|
||||
label = "storage";
|
||||
reg = <0x0007a000 0x00005000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&gpiote {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gpio0 {
|
||||
status = "okay";
|
||||
|
||||
/* Enable 1-wire to enable i2c bus as well */
|
||||
one-wire-gpio {
|
||||
gpio-hog;
|
||||
gpios = <7 GPIO_ACTIVE_HIGH>;
|
||||
output-high;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
compatible = "nordic,nrf-twi";
|
||||
status = "okay";
|
||||
clock-frequency = <I2C_BITRATE_STANDARD>;
|
||||
pinctrl-0 = <&i2c0_default>;
|
||||
pinctrl-1 = <&i2c0_sleep>;
|
||||
pinctrl-names = "default", "sleep";
|
||||
|
||||
light_sensor: apds9960@39 {
|
||||
status = "okay";
|
||||
compatible = "avago,apds9960";
|
||||
reg = <0x39>;
|
||||
int-gpios = <&gpio0 25 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
|
||||
};
|
||||
|
||||
temperature_sensor: tmp116@4a {
|
||||
status = "okay";
|
||||
compatible = "ti,tmp116";
|
||||
reg = <0x4a>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
eeprom: ti_tmp116_eeprom@0 {
|
||||
compatible = "ti,tmp116-eeprom";
|
||||
reg = <0x0>;
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
|
||||
gas_sensor: ccs811@5a {
|
||||
status = "okay";
|
||||
compatible = "ams,ccs811";
|
||||
reg = <0x5a>;
|
||||
irq-gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
|
||||
wake-gpios = <&gpio0 27 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
pressure_sensor: lps22hb-press@5c {
|
||||
status = "okay";
|
||||
compatible = "st,lps22hb-press";
|
||||
reg = <0x5c>;
|
||||
};
|
||||
};
|
||||
|
||||
&spi1 {
|
||||
status = "okay";
|
||||
compatible = "nordic,nrf-spi";
|
||||
pinctrl-0 = <&spi1_default>;
|
||||
pinctrl-1 = <&spi1_sleep>;
|
||||
pinctrl-names = "default", "sleep";
|
||||
cs-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>,
|
||||
<&gpio0 5 GPIO_ACTIVE_LOW>;
|
||||
|
||||
lora: lora@0 {
|
||||
status = "okay";
|
||||
compatible = "semtech,sx1276";
|
||||
reg = <0>;
|
||||
reset-gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
|
||||
dio-gpios =
|
||||
<&gpio0 19 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>,
|
||||
<&gpio0 20 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>,
|
||||
<&gpio0 22 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>,
|
||||
<&gpio0 23 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>;
|
||||
spi-max-frequency = <1000000>;
|
||||
power-amplifier-output = "pa-boost";
|
||||
};
|
||||
|
||||
nor_flash: mx25r6435f@1 {
|
||||
status = "okay";
|
||||
compatible ="jedec,spi-nor";
|
||||
size = <0x4000000>;
|
||||
reg = <1>;
|
||||
spi-max-frequency = <8000000>;
|
||||
status = "okay";
|
||||
jedec-id = [c2 28 17];
|
||||
};
|
||||
};
|
||||
18
boards/bytesatwork/bytesensi_l/bytesensi_l.yaml
Normal file
18
boards/bytesatwork/bytesensi_l/bytesensi_l.yaml
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
# Copyright (c) 2024 bytesatwork AG
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
identifier: bytesensi_l
|
||||
name: bytesatwork byteSENSI-L
|
||||
type: mcu
|
||||
arch: arm
|
||||
toolchain:
|
||||
- zephyr
|
||||
- gnuarmemb
|
||||
ram: 64
|
||||
flash: 512
|
||||
supported:
|
||||
- ble
|
||||
- gpio
|
||||
- i2c
|
||||
- lora
|
||||
- spi
|
||||
vendor: bytesatwork
|
||||
16
boards/bytesatwork/bytesensi_l/bytesensi_l_defconfig
Normal file
16
boards/bytesatwork/bytesensi_l/bytesensi_l_defconfig
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# Copyright (c) 2024 bytesatwork AG
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# Enable MPU
|
||||
CONFIG_ARM_MPU=y
|
||||
|
||||
# enable GPIO
|
||||
CONFIG_GPIO=y
|
||||
|
||||
# Enable hardware stack protection
|
||||
CONFIG_HW_STACK_PROTECTION=y
|
||||
|
||||
# enable console over segger RTT
|
||||
CONFIG_CONSOLE=y
|
||||
CONFIG_RTT_CONSOLE=y
|
||||
CONFIG_USE_SEGGER_RTT=y
|
||||
54
boards/bytesatwork/bytesensi_l/bytesensi_l_pinctrl.dtsi
Normal file
54
boards/bytesatwork/bytesensi_l/bytesensi_l_pinctrl.dtsi
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
/*
|
||||
* Copyrigtt (c) 2024 bytesatwork AG
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
&pinctrl {
|
||||
uart0_default: uart0_default {
|
||||
group1 {
|
||||
psels = <NRF_PSEL(UART_TX, 0, 11)>,
|
||||
<NRF_PSEL(UART_RX, 0, 12)>;
|
||||
};
|
||||
};
|
||||
|
||||
uart0_sleep: uart0_sleep {
|
||||
group1 {
|
||||
psels = <NRF_PSEL(UART_TX, 0, 11)>,
|
||||
<NRF_PSEL(UART_RX, 0, 12)>;
|
||||
low-power-enable;
|
||||
};
|
||||
};
|
||||
|
||||
i2c0_default: i2c0_default {
|
||||
group1 {
|
||||
psels = <NRF_PSEL(TWIM_SDA, 0, 16)>,
|
||||
<NRF_PSEL(TWIM_SCL, 0, 15)>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c0_sleep: i2c0_sleep {
|
||||
group1 {
|
||||
psels = <NRF_PSEL(TWIM_SDA, 0, 16)>,
|
||||
<NRF_PSEL(TWIM_SCL, 0, 15)>;
|
||||
low-power-enable;
|
||||
};
|
||||
};
|
||||
|
||||
spi1_default: spi1_default{
|
||||
group1 {
|
||||
psels = <NRF_PSEL(SPIM_SCK, 0, 2)>,
|
||||
<NRF_PSEL(SPIM_MOSI, 0, 3)>,
|
||||
<NRF_PSEL(SPIM_MISO, 0, 4)>;
|
||||
};
|
||||
};
|
||||
|
||||
spi1_sleep: spi1_sleep{
|
||||
group1 {
|
||||
psels = <NRF_PSEL(SPIM_SCK, 0, 2)>,
|
||||
<NRF_PSEL(SPIM_MOSI, 0, 3)>,
|
||||
<NRF_PSEL(SPIM_MISO, 0, 4)>;
|
||||
low-power-enable;
|
||||
};
|
||||
};
|
||||
};
|
||||
BIN
boards/bytesatwork/bytesensi_l/doc/img/byteSENSI-L.jpg
Normal file
BIN
boards/bytesatwork/bytesensi_l/doc/img/byteSENSI-L.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 39 KiB |
157
boards/bytesatwork/bytesensi_l/doc/index.rst
Normal file
157
boards/bytesatwork/bytesensi_l/doc/index.rst
Normal file
|
|
@ -0,0 +1,157 @@
|
|||
.. _bytesensi_l:
|
||||
|
||||
bytesatwork byteSENSI-L
|
||||
#######################
|
||||
|
||||
Overview
|
||||
********
|
||||
|
||||
The byteSENSI-L is a fun LoRa device based on nRF52 MCU that integrates many
|
||||
sensors.
|
||||
|
||||
.. image:: img/byteSENSI-L.jpg
|
||||
:width: 800px
|
||||
:align: center
|
||||
:alt: byteSENSI-L
|
||||
|
||||
Hardware
|
||||
********
|
||||
|
||||
Supported Features
|
||||
==================
|
||||
|
||||
+-----------+------------+----------------------+
|
||||
| Interface | Controller | Driver/Component |
|
||||
+===========+============+======================+
|
||||
| CLOCK | on-chip | clock_control |
|
||||
+-----------+------------+----------------------+
|
||||
| FLASH | on-chip | flash |
|
||||
+-----------+------------+----------------------+
|
||||
| GPIO | on-chip | gpio |
|
||||
+-----------+------------+----------------------+
|
||||
| I2C(M) | on-chip | i2c |
|
||||
+-----------+------------+----------------------+
|
||||
| MPU | on-chip | arch/arm |
|
||||
+-----------+------------+----------------------+
|
||||
| NVIC | on-chip | arch/arm |
|
||||
+-----------+------------+----------------------+
|
||||
| RADIO | on-chip | Bluetooth |
|
||||
+-----------+------------+----------------------+
|
||||
| RADIO | Semtech | LoRa |
|
||||
+-----------+------------+----------------------+
|
||||
| RTC | on-chip | system clock |
|
||||
+-----------+------------+----------------------+
|
||||
| RTT | Segger | console |
|
||||
+-----------+------------+----------------------+
|
||||
| WDT | on-chip | watchdog |
|
||||
+-----------+------------+----------------------+
|
||||
|
||||
Connections and IOs
|
||||
===================
|
||||
|
||||
External Connectors
|
||||
-------------------
|
||||
|
||||
External Supply @ X1
|
||||
|
||||
+-------+--------------+---------------------------------------+
|
||||
| PIN # | Signal Name | Function |
|
||||
+=======+==============+=======================================+
|
||||
| 1 | VBAT | Power input instead of CR2477 battery |
|
||||
+-------+--------------+---------------------------------------+
|
||||
| 2 | GND | Ground |
|
||||
+-------+--------------+---------------------------------------+
|
||||
|
||||
Programming Connector @ SL1
|
||||
|
||||
+-------+--------------+
|
||||
| PIN # | Signal Name |
|
||||
+=======+==============+
|
||||
| 1 | VBAT |
|
||||
+-------+--------------+
|
||||
| 2 | SWDIO |
|
||||
+-------+--------------+
|
||||
| 3 | GND |
|
||||
+-------+--------------+
|
||||
| 4 | SWDCLK |
|
||||
+-------+--------------+
|
||||
| 5 | GND |
|
||||
+-------+--------------+
|
||||
| 6 | NC (SWO) |
|
||||
+-------+--------------+
|
||||
| 7 | NC (Key) |
|
||||
+-------+--------------+
|
||||
| 8 | NC |
|
||||
+-------+--------------+
|
||||
| 9 | GND |
|
||||
+-------+--------------+
|
||||
| 10 | nReset |
|
||||
+-------+--------------+
|
||||
|
||||
I2C Sensor @ X3
|
||||
|
||||
+-------+--------------+-------------------------+
|
||||
| PIN # | Signal Name | Function |
|
||||
+=======+==============+=========================+
|
||||
| 1 | VBAT | Power out |
|
||||
+-------+--------------+-------------------------+
|
||||
| 2 | SCL | I2C clock at P0.15 |
|
||||
+-------+--------------+-------------------------+
|
||||
| 3 | SDA | I2C data at P0.16 |
|
||||
+-------+--------------+-------------------------+
|
||||
| 4 | INT | Interrupt at P0.13 |
|
||||
+-------+--------------+-------------------------+
|
||||
| 5 | I2C_ADDR | tied to VBAT |
|
||||
+-------+--------------+-------------------------+
|
||||
| 6 | GND | Ground |
|
||||
+-------+--------------+-------------------------+
|
||||
|
||||
One Wire Sensor @ X2
|
||||
|
||||
+-------+----------------+-------------------------+
|
||||
| PIN # | Signal Name | Function |
|
||||
+=======+================+=========================+
|
||||
| 1 | VDD | 4V8 |
|
||||
+-------+----------------+-------------------------+
|
||||
| 2 | IO | One Wire |
|
||||
+-------+----------------+-------------------------+
|
||||
| 3 | GND | Ground |
|
||||
+-------+----------------+-------------------------+
|
||||
|
||||
External BLE Antenna @ J1
|
||||
|
||||
External LoRa Antenna @ J2
|
||||
|
||||
External GPS Antenna @ J3
|
||||
|
||||
Programming and Debugging
|
||||
*************************
|
||||
|
||||
Flashing
|
||||
========
|
||||
The byteSENSI-L board can be flashed with the SEGGER JLink programmer.
|
||||
|
||||
You can build and flash applications in the usual way. Here is an example for
|
||||
the :ref:`hello_world` application.
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/hello_world
|
||||
:board: bytesensi_l
|
||||
:goals: build flash
|
||||
:compact:
|
||||
|
||||
Debugging
|
||||
=========
|
||||
|
||||
Debugging your application can be done with ``west debug``.
|
||||
|
||||
Serial console
|
||||
==============
|
||||
|
||||
The byteSENSI-L board only uses Segger's RTT console for providing serial
|
||||
console. There is no physical serial port available.
|
||||
|
||||
References
|
||||
**********
|
||||
* `bytesatwork website <https://www.bytesatwork.io/>`_
|
||||
* `bytesatwork wiki <https://wiki.bytesatwork.io/>`_
|
||||
7
boards/bytesatwork/bytesensi_l/pre_dt_board.cmake
Normal file
7
boards/bytesatwork/bytesensi_l/pre_dt_board.cmake
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
# Copyright (c) 2024 bytesatwork AG
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# Suppress "unique_unit_address_if_enabled" to handle the following overlaps:
|
||||
# - power@40000000 & clock@40000000 & bprot@40000000
|
||||
# - acl@4001e000 & flash-controller@4001e000
|
||||
list(APPEND EXTRA_DTC_FLAGS "-Wno-unique_unit_address_if_enabled")
|
||||
10
boards/bytesatwork/index.rst
Normal file
10
boards/bytesatwork/index.rst
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
.. _boards-bytesatwork:
|
||||
|
||||
bytesatwork
|
||||
###########
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:glob:
|
||||
|
||||
**/*
|
||||
|
|
@ -111,6 +111,7 @@ broadmobi Shanghai Broadmobi Communication Technology Co.,Ltd.
|
|||
bticino Bticino International
|
||||
buffalo Buffalo, Inc.
|
||||
bur B&R Industrial Automation GmbH
|
||||
bytesatwork bytesatwork AG
|
||||
calaosystems CALAO Systems SAS
|
||||
calxeda Calxeda
|
||||
canaan Canaan, Inc.
|
||||
|
|
|
|||
Loading…
Reference in a new issue