.. _96b_stm32_sensor_mez:

96Boards STM32 Sensor Mezzanine
###############################

Overview
********

96Boards STM32 Sensor Mezzanine is based on the ST Microelectronics
STM32F446VE Cortex M4 CPU.

This board acts as a mezzanine platform for all 96Boards CE compliant
boards. It can also be used as a standalone board.

.. figure:: img/96b_stm32_sensor_mez.png
     :width: 998px
     :align: center
     :height: 642px
     :alt: 96Boards STM32 Sensor Mezzanine

     96Boards STM32 Sensor Mezzanine

Hardware
********

96Boards STM32 Sensor Mezzanine provides the following hardware components:

- STM32F446VE in LQFP100 package
- ARM |reg| 32-bit Cortex |reg|-M4 CPU with FPU
- 180 MHz max CPU frequency
- 1.8V work voltage
- 512 KB Flash
- 128 KB SRAM
- On board sensors:

  - Temperature/Pressure: STMicro LPS22HB
  - Acclerometer/Gyroscope: STMicro LSM6DS3H
  - Magnetometer: STMicro LIS3MDL
  - Microphone: STMicro MP34DT01

- 3User LEDs
- GPIO with external interrupt capability
- UART
- I2C (2)
- SPI (3)
- I2S (1)

Supported Features
==================

The Zephyr 96b_stm32_sensor_mez board configuration supports the following
hardware features:

+-----------+------------+-------------------------------------+
| Interface | Controller | Driver/Component                    |
+===========+============+=====================================+
| NVIC      | on-chip    | nested vector interrupt controller  |
+-----------+------------+-------------------------------------+
| SYSTICK   | on-chip    | system clock                        |
+-----------+------------+-------------------------------------+
| UART      | on-chip    | serial port                         |
+-----------+------------+-------------------------------------+
| GPIO      | on-chip    | gpio                                |
+-----------+------------+-------------------------------------+
| PINMUX    | on-chip    | pinmux                              |
+-----------+------------+-------------------------------------+
| FLASH     | on-chip    | flash                               |
+-----------+------------+-------------------------------------+
| SPI       | on-chip    | spi                                 |
+-----------+------------+-------------------------------------+
| I2C       | on-chip    | i2c                                 |
+-----------+------------+-------------------------------------+
| PWM       | on-chip    | pwm                                 |
+-----------+------------+-------------------------------------+
| I2S       | on-chip    | i2s                                 |
+-----------+------------+-------------------------------------+

The default board configuration can be found in the defconfig file:

        ``boards/arm/96b_stm32_sensor_mez/96b_stm32_sensor_mez_defconfig``

Connections and IOs
===================

LED
---

- LED1 / User1 LED = PD10
- LED2 / User2 LED = PD11
- LED3 / User3 LED = PD12

Push buttons
------------

- BUTTON = RST (BT1)
- BUTTON = USR (BT2)

System Clock
============

96Boards STM32 Sensor Mezzanine can be driven by an internal oscillator as
well as the main PLL clock. In default board configuration, the 16MHz external
oscillator is used to drive the main PLL clock to generate a System Clock
(SYSCLK) at 84MHz. On the bus side, AHB/APB2 clocks runs at 84MHz, while APB1
clock runs at 42MHz.

Serial Port
===========

On 96Boards STM32 Sensor Mezzanine, Zephyr console output is assigned to UART4
exposed via on-board Micro USB connector. Default settings are 115200 8N1.

I2C
---

96Boards STM32 Sensor Mezzanine board has up to 3 I2Cs. The default I2C
mapping is:

- I2C1_SCL  : PB6
- I2C1_SDA  : PB7
- I2C2_SCL  : PB10
- I2C2_SDA  : PC12

I2C2 goes to the Groove connectors and can be used to attach external sensors.

SPI
---
96Boards STM32 Sensor Mezzanine board has 3 SPIs. SPI1 is used in slave mode
as the communication bus with the AP. SPI2 is used in master mode to control
the LSM6DS3H sensor. SPI4 is broken out to Grove Connector J5.
The default SPI mapping is:

- SPI1_NSS  : PA4
- SPI1_SCK  : PA5
- SPI1_MISO : PA6
- SPI1_MOSI : PA7
- SPI2_NSS  : PB9
- SPI2_SCK  : PD3
- SPI2_MISO : PB14
- SPI2_MOSI : PB15
- SPI4_NSS  : PE11
- SPI4_SCK  : PE12
- SPI4_MISO : PE13
- SPI4_MOSI : PE14

PWM
---
96Boards STM32 Sensor Mezzanine board exposes 6 PWM channels on the Arduino
connector. The default PWM mapping is:

- PWM3_CH1  : PB4  : D9
- PWM3_CH3  : PC8  : D3
- PWM4_CH3  : PD14 : D6
- PWM4_CH4  : PD15 : D5
- PWM9_CH1  : PE5  : D12
- PWM9_CH2  : PE6  : D11

I2S
---

96Boards STM32 Sensor Mezzanine board exposes 1 I2S port which is connected
to the on-board ST MP34DT01 DMIC. The default I2S mapping is:

- I2S2_SD   : PC1
- I2S2_CK   : PC7

Programming and Debugging
*************************

Building
========

Here is an example for building the :ref:`hello_world` application.

.. zephyr-app-commands::
   :zephyr-app: samples/hello_world
   :board: 96b_stm32_sensor_mez
   :goals: build

Flashing
========

96Boards STM32 Sensor Mezzanine board includes an ST-LINK/V2-1 embedded
debug tool interface. This interface is supported by the openocd version
included in the Zephyr SDK.

Flashing an application to 96Boards STM32 Sensor Mezzanine
----------------------------------------------------------

Here is an example for the :ref:`hello_world` application.

Run a serial host program to connect with your 96Boards STM32 Sensor Mezzanine
board.

.. code-block:: console

   $ minicom -b 115200 -D /dev/ttyACM0

Build and flash the application:

.. zephyr-app-commands::
   :zephyr-app: samples/hello_world
   :board: 96b_stm32_sensor_mez
   :goals: build flash

You should see the following message on the console:

.. code-block:: console

   $ Hello World! 96b_stm32_sensor_mez

Debugging
=========

You can debug an application in the usual way.  Here is an example for the
:ref:`hello_world` application.

.. zephyr-app-commands::
   :zephyr-app: samples/hello_world
   :board: 96b_stm32_sensor_mez
   :maybe-skip-config:
   :goals: debug

References
**********

.. target-notes::

.. _96Boards STM32 Sensor Mezzanine website:
   https://www.96boards.org/documentation/mezzanine/stm32/

.. _STM32F446VE on www.st.com:
   http://www.st.com/en/microcontrollers/stm32f446ve.html

.. _STM32F446 reference manual:
   http://www.st.com/resource/en/reference_manual/dm00135183.pdf
