Skip to content

Commit 52cfe28

Browse files
rerickson1carlescufi
authored andcommitted
boards: Add MG100
Add Laird Connectivity MG100 board. Signed-off-by: Ryan Erickson <[email protected]>
1 parent b8f9d8a commit 52cfe28

File tree

11 files changed

+668
-0
lines changed

11 files changed

+668
-0
lines changed

boards/arm/mg100/Kconfig

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Copyright (c) 2022 Laird Connectivity
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
config BOARD_ENABLE_DCDC
5+
bool "DCDC mode"
6+
select SOC_DCDC_NRF52X
7+
default y
8+
depends on BOARD_MG100

boards/arm/mg100/Kconfig.board

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Copyright (c) 2022 Laird Connectivity
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
config BOARD_MG100
5+
bool "MG100"
6+
depends on SOC_NRF52840_QIAA

boards/arm/mg100/Kconfig.defconfig

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Copyright (c) 2022 Laird Connectivity
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
if BOARD_MG100
5+
6+
config BOARD
7+
default "mg100"
8+
9+
config MODEM
10+
default NETWORKING
11+
12+
config MODEM_HL7800
13+
default NETWORKING
14+
15+
config NORDIC_QSPI_NOR
16+
default BOOTLOADER_MCUBOOT
17+
18+
config NORDIC_QSPI_NOR_FLASH_LAYOUT_PAGE_SIZE
19+
default 4096 if NORDIC_QSPI_NOR
20+
21+
config BT_CTLR
22+
default BT
23+
24+
endif # BOARD_MG100

boards/arm/mg100/board.cmake

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Copyright (c) 2022 Laird Connectivity
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
board_runner_args(jlink "--device=nRF52840_xxAA" "--speed=4000")
5+
board_runner_args(pyocd "--target=nrf52840" "--frequency=4000000")
6+
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
7+
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
8+
include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake)

boards/arm/mg100/doc/img/mg100.jpg

65.3 KB
Loading

boards/arm/mg100/doc/index.rst

Lines changed: 249 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,249 @@
1+
.. _mg100:
2+
3+
Laird Connectivity Sentrius™ MG100 Gateway
4+
##########################################
5+
6+
Overview
7+
********
8+
The Sentrius™ MG100 Gateway offers a compact, out of box Bluetooth to low power cellular gateway
9+
solution.
10+
11+
Based on the Pinnacle 100 socket modem, the Sentrius™ MG100 gateway captures data from any
12+
Bluetooth 5 modules or devices and sends it to the cloud via a global low power cellular
13+
(LTE-M/NB-IoT) connection. The MG100 seamlessly incorporates a powerful Cortex M4F controller,
14+
full Bluetooth 5 connectivity, and dual-mode LTE-M/NB-IoT capabilities. The MG100 has full regulatory
15+
and network certifications and End Device carrier approvals.
16+
17+
Develop your application directly on the integrated Cortex M4F microcontroller using Zephyr RTOS,
18+
enabling your application development with a secure, open source RTOS with more than just kernel
19+
services. Remotely debug your fleet of devices with the `Memfault Platform`_. Take advantage of the
20+
Zephyr community and Laird Connectivity’s multi featured Out of Box (OOB) sample source code
21+
covering all aspects of the product's capabilities and hardware interfaces. The MG100 also delivers
22+
complete antenna flexibility with internal or external antenna options available, and the optional
23+
battery backup provides uninterrupted reporting of remote Bluetooth sensor data.
24+
25+
More information about the board can be found at the `MG100 website`_.
26+
27+
The MG100 hardware provides support for the Nordic Semiconductor `nRF52840`_ ARM Cortex-M4F CPU,
28+
`Sierra Wireless HL7800`_
29+
and the following devices:
30+
31+
* :abbr:`ADC (Analog to Digital Converter)`
32+
* CLOCK
33+
* FLASH
34+
* :abbr:`GPIO (General Purpose Input Output)`
35+
* :abbr:`I2C (Inter-Integrated Circuit)`
36+
* :abbr:`MPU (Memory Protection Unit)`
37+
* :abbr:`NVIC (Nested Vectored Interrupt Controller)`
38+
* :abbr:`PWM (Pulse Width Modulation)`
39+
* RADIO (Bluetooth Low Energy and 802.15.4)
40+
* :abbr:`RTC (nRF RTC System Clock)`
41+
* :abbr:`SPI (Serial Peripheral Interface)`
42+
* :abbr:`UART (Universal asynchronous receiver-transmitter)`
43+
* :abbr:`WDT (Watchdog Timer)`
44+
* :abbr:`QSPI (Quad Serial Peripheral Interface)`
45+
* :abbr:`LIS3DH (ST Micro 3-axis MEMS accelerometer)`
46+
* :abbr:`HL7800 (Sierra Wireless HL7800 LTE-M1/NB-IoT modem)`
47+
* :abbr:`SD Card`
48+
49+
.. figure:: img/mg100.jpg
50+
:align: center
51+
:alt: MG100
52+
53+
MG100 (450-00054-K1)
54+
55+
Hardware
56+
********
57+
58+
Supported Features
59+
==================
60+
61+
The MG100 board configuration supports the following
62+
hardware features:
63+
64+
+-----------+------------+----------------------+
65+
| Interface | Controller | Driver/Component |
66+
+===========+============+======================+
67+
| ADC | on-chip | adc |
68+
+-----------+------------+----------------------+
69+
| CLOCK | on-chip | clock_control |
70+
+-----------+------------+----------------------+
71+
| FLASH | on-chip | flash |
72+
+-----------+------------+----------------------+
73+
| GPIO | on-chip | gpio |
74+
+-----------+------------+----------------------+
75+
| I2C(M) | on-chip | i2c |
76+
+-----------+------------+----------------------+
77+
| MPU | on-chip | arch/arm |
78+
+-----------+------------+----------------------+
79+
| NVIC | on-chip | arch/arm |
80+
+-----------+------------+----------------------+
81+
| PWM | on-chip | pwm |
82+
+-----------+------------+----------------------+
83+
| RADIO | on-chip | Bluetooth, |
84+
| | | ieee802154 |
85+
+-----------+------------+----------------------+
86+
| RTC | on-chip | system clock |
87+
+-----------+------------+----------------------+
88+
| SPI(M/S) | on-chip | spi |
89+
+-----------+------------+----------------------+
90+
| UART | on-chip | serial |
91+
+-----------+------------+----------------------+
92+
| WDT | on-chip | watchdog |
93+
+-----------+------------+----------------------+
94+
| QSPI | on-chip | qspi/MX25R64(8MB) |
95+
+-----------+------------+----------------------+
96+
| LIS3DH | I2C(M) | sensor/lis3dh |
97+
+-----------+------------+----------------------+
98+
| HL7800 | UART | HL7800 modem driver |
99+
+-----------+------------+----------------------+
100+
| SDMMC | SPI(M) | SD Card via SPI |
101+
+-----------+------------+----------------------+
102+
103+
See `MG100 website`_ for a complete list
104+
of MG100 hardware features.
105+
106+
Connections and IOs
107+
===================
108+
109+
LED
110+
---
111+
112+
* LED1 (red) = P1.7
113+
* LED2 (blue) = P1.6
114+
* LED3 (green) = P1.5
115+
116+
Push buttons
117+
------------
118+
119+
* BUTTON1 = P0.3
120+
121+
External flash memory
122+
---------------------
123+
124+
A 64Mbit external flash memory part is available for storage of application
125+
images and data. Refer to the `Macronix MX25R6435F datasheet`_ for further
126+
details.
127+
128+
The flash memory is connected to the on-board QSPI device controller.
129+
130+
* MX25R64 = QSPI
131+
132+
SCK = P0.19
133+
IO0 = P0.20
134+
IO1 = P0.21
135+
IO2 = P0.22
136+
IO3 = P0.23
137+
CSN = P0.17
138+
139+
LIS3DH Motion Sensor
140+
--------------------
141+
142+
Motion sensor to detect if the gateway moves.
143+
144+
IRQ IO = P0.28
145+
I2C SDA = P0.26
146+
I2C SCL = P0.27
147+
148+
SD Card
149+
-------
150+
151+
SD card used to store large amounts of data.
152+
153+
SPI CS = P0.29
154+
SPI SCK = P1.09
155+
SPI MOSI = P0.11
156+
SPI MISO = P0.12
157+
158+
Programming and Debugging
159+
*************************
160+
161+
Applications for the ``mg100`` board configuration can be
162+
built and flashed in the usual way. (see :ref:`build_an_application`
163+
and :ref:`application_run` for more details)
164+
165+
The `Laird Connectivity USB-SWD Programming Kit`_ contains all the necessary
166+
hardware to enable programming and debugging an MG100.
167+
168+
Flashing
169+
========
170+
171+
Follow the instructions in the :ref:`nordic_segger` page to install
172+
and configure all the necessary software. Further information can be
173+
found in :ref:`nordic_segger_flashing`. Then build and flash
174+
applications as usual (see :ref:`build_an_application` and
175+
:ref:`application_run` for more details).
176+
177+
Here is an example for the :ref:`hello_world` application.
178+
179+
First, run your favorite terminal program to listen for output.
180+
181+
.. note:: On the MG100,
182+
the USB connector should be used to access the UART console.
183+
184+
.. code-block:: console
185+
186+
$ minicom -D <tty_device> -b 115200
187+
188+
Replace :code:`<tty_device>` with the port where the board MG100
189+
can be found. For example, under Linux, :code:`/dev/ttyUSB0`.
190+
191+
Then build and flash the application in the usual way.
192+
193+
.. zephyr-app-commands::
194+
:zephyr-app: samples/hello_world
195+
:board: mg100
196+
:goals: build flash
197+
198+
Debugging
199+
=========
200+
201+
Refer to the :ref:`nordic_segger` page to learn about debugging Nordic boards with a
202+
Segger IC.
203+
204+
Software
205+
********
206+
207+
MG100 Out-of-Box Demo Software
208+
==============================
209+
The MG100 ships with an out of the box software demo.
210+
Check out the `BLE Gateway OOB Demo`_ source code and documentation.
211+
212+
Testing Bluetooth on the MG100
213+
==============================
214+
Many of the Bluetooth examples will work on the MG100.
215+
Try them out:
216+
217+
* :ref:`ble_peripheral`
218+
* :ref:`bluetooth-eddystone-sample`
219+
* :ref:`bluetooth-ibeacon-sample`
220+
221+
Testing the LEDs and buttons in the MG100
222+
====================================================
223+
224+
There are 2 samples that allow you to test that the buttons (switches) and LEDs on
225+
the board are working properly with Zephyr:
226+
227+
.. code-block:: console
228+
229+
samples/basic/blinky
230+
samples/basic/button
231+
232+
You can build and flash the examples to make sure Zephyr is running correctly on
233+
your board. The button and LED definitions can be found in
234+
:zephyr_file:`boards/arm/mg100/mg100.dts`.
235+
236+
References
237+
**********
238+
239+
.. target-notes::
240+
241+
.. _MG100 website: https://www.lairdconnect.com/iot-devices/iot-gateways/sentrius-mg100-gateway-lte-mnb-iot-and-bluetooth-5
242+
.. _nRF52840 Product Specification: https://infocenter.nordicsemi.com/pdf/nRF52840_PS_v1.1.pdf
243+
.. _Sierra Wireless HL7800: https://source.sierrawireless.com/devices/hl-series/hl7800/#sthash.641qTTwA.dpbs
244+
.. _J-Link Software and documentation pack: https://www.segger.com/jlink-software.html
245+
.. _BLE Gateway OOB Demo: https://github.com/LairdCP/Pinnacle-100-Firmware-Manifest
246+
.. _Macronix MX25R6435F datasheet: https://www.macronix.com/Lists/Datasheet/Attachments/7913/MX25R6435F,%20Wide%20Range,%2064Mb,%20v1.5.pdf
247+
.. _Laird Connectivity USB-SWD Programming Kit: https://www.lairdconnect.com/wireless-modules/programming-kits/usb-swd-programming-kit
248+
.. _Memfault Platform: https://docs.memfault.com/docs/mcu/pinnacle-100-guide
249+
.. _nRF52840: https://www.nordicsemi.com/products/nrf52840

0 commit comments

Comments
 (0)