boards: shields: add suport for st_b_cams_omv_mb1683
Add support for ST B-CAMS-OMV MB1683 shield. Signed-off-by: Charles Dias <charlesdias.cd@outlook.com>
This commit is contained in:
parent
96a235499b
commit
435b6f6cb9
5
boards/shields/st_b_cams_omv_mb1683/Kconfig.shield
Normal file
5
boards/shields/st_b_cams_omv_mb1683/Kconfig.shield
Normal file
@ -0,0 +1,5 @@
|
||||
# Copyright (c) 2025 Charles Dias <charlesdias.cd@outlook.com>
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config SHIELD_ST_B_CAMS_OMV_MB1683
|
||||
def_bool $(shields_list_contains,st_b_cams_omv_mb1683)
|
||||
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright (c) 2025 Charles Dias <charlesdias.cd@outlook.com>
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
*/
|
||||
|
||||
&st_cam_i2c {
|
||||
pinctrl-0 = <&i2c4_scl_pd12 &i2c4_sda_pd13>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
clock-frequency = <I2C_BITRATE_FAST>;
|
||||
};
|
||||
|
||||
&st_cam_dvp {
|
||||
pinctrl-0 = <&dcmi_hsync_pa4 &dcmi_pixclk_pa6 &dcmi_vsync_pb7
|
||||
&dcmi_d0_pc6 &dcmi_d1_pc7 &dcmi_d2_pg10 &dcmi_d3_pc9
|
||||
&dcmi_d4_pc11 &dcmi_d5_pd3 &dcmi_d6_pb8 &dcmi_d7_pb9>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
dmas = <&dma1 0 75 (STM32_DMA_PERIPH_TO_MEMORY | STM32_DMA_PERIPH_NO_INC |
|
||||
STM32_DMA_MEM_INC | STM32_DMA_PERIPH_8BITS | STM32_DMA_MEM_32BITS |
|
||||
STM32_DMA_PRIORITY_HIGH) STM32_DMA_FIFO_1_4>;
|
||||
};
|
||||
|
||||
&dma1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&dmamux1 {
|
||||
status = "okay";
|
||||
};
|
||||
153
boards/shields/st_b_cams_omv_mb1683/doc/index.rst
Normal file
153
boards/shields/st_b_cams_omv_mb1683/doc/index.rst
Normal file
@ -0,0 +1,153 @@
|
||||
.. _st_b_cams_omv_mb1683:
|
||||
|
||||
ST B-CAMS-OMV-MB1683
|
||||
####################
|
||||
|
||||
Overview
|
||||
********
|
||||
|
||||
The camera module bundle (B-CAMS-OMV) provides extension connectors
|
||||
for the MB1379 STMicroelectronics camera module daughterboard or
|
||||
third-party modules like OpenMV and Waveshare modules. It can be used
|
||||
with the STM32 boards featuring a 1 x 30 pin ZIF connector for the
|
||||
connection of multiple cameras to implement computer vision on STM32
|
||||
microcontrollers easily.
|
||||
|
||||
The camera module bundle is compatible with all STM32 Discovery kits and
|
||||
Evaluation boards featuring a ZIF connector, such as the STM32H747I-DISCO,
|
||||
STM32H7B3I-DK, and 32L4R9IDISCOVERY Discovery kits.
|
||||
|
||||
.. figure:: st_b_cams_omv.webp
|
||||
:width: 600px
|
||||
:align: center
|
||||
:alt: B-CAMS-OMV-MB1683
|
||||
|
||||
B-CAMS-OMV MB1683 Image (Credit: STMicroelectronics.)
|
||||
|
||||
The camera signals go into the shield from one of the supported input
|
||||
connectors (CN1, CN2, CN4), and out of the shield towards Zephyr through
|
||||
the output 30-pin ZIF connector CN5.
|
||||
|
||||
Refer to the `User manual`_ for the pinout of CN1 and CN2.
|
||||
|
||||
Waveshare camera board connector CN4 (camera input)
|
||||
***************************************************
|
||||
|
||||
+------------+-----------------+------------+--------------+
|
||||
| Pin number | Description | Pin number | Description |
|
||||
+============+=================+============+==============+
|
||||
| 1 | GND | 2 | VCAM |
|
||||
+------------+-----------------+------------+--------------+
|
||||
| 3 | I2C_SDA | 4 | I2C_SCL |
|
||||
+------------+-----------------+------------+--------------+
|
||||
| 5 | DCMI_HSYNC | 6 | DCMI_VSYNC |
|
||||
+------------+-----------------+------------+--------------+
|
||||
| 7 | Camera_CLK | 8 | DCMI_PIXCLK |
|
||||
+------------+-----------------+------------+--------------+
|
||||
| 9 | DCMI_D6 | 10 | DCMI_D7 |
|
||||
+------------+-----------------+------------+--------------+
|
||||
| 11 | DCMI_D4 | 12 | DCMI_D5 |
|
||||
+------------+-----------------+------------+--------------+
|
||||
| 13 | DCMI_D2 | 14 | DCMI_D3 |
|
||||
+------------+-----------------+------------+--------------+
|
||||
| 15 | DCMI_D0 | 16 | DCMI_D1 |
|
||||
+------------+-----------------+------------+--------------+
|
||||
| 17 | PWR_EN / LED1 | 18 | RESET# |
|
||||
+------------+-----------------+------------+--------------+
|
||||
|
||||
ZIF connector CN5 (camera output)
|
||||
*********************************
|
||||
|
||||
+------------+-----------------+
|
||||
| Pin number | Description |
|
||||
+============+=================+
|
||||
| 1 | 3V3 |
|
||||
+------------+-----------------+
|
||||
| 2 | GND |
|
||||
+------------+-----------------+
|
||||
| 3 | I2C_SCL |
|
||||
+------------+-----------------+
|
||||
| 4 | I2C_SDA |
|
||||
+------------+-----------------+
|
||||
| 5 | RESET# |
|
||||
+------------+-----------------+
|
||||
| 6 | PWR_EN / LED1 |
|
||||
+------------+-----------------+
|
||||
| 7 | SHUTTER |
|
||||
+------------+-----------------+
|
||||
| 8 | GND |
|
||||
+------------+-----------------+
|
||||
| 9 | PULLDOWN / LED2 |
|
||||
+------------+-----------------+
|
||||
| 10 | Camera_CLK |
|
||||
+------------+-----------------+
|
||||
| 11 | 3V3 |
|
||||
+------------+-----------------+
|
||||
| 12 | DCMI_VSYNC |
|
||||
+------------+-----------------+
|
||||
| 13 | 5V (RSU) |
|
||||
+------------+-----------------+
|
||||
| 14 | DCMI_HSYNC |
|
||||
+------------+-----------------+
|
||||
| 15 | GND |
|
||||
+------------+-----------------+
|
||||
| 16 | DCMI_PIXCK |
|
||||
+------------+-----------------+
|
||||
| 17 | GND |
|
||||
+------------+-----------------+
|
||||
| 18 | SPI_MISO |
|
||||
+------------+-----------------+
|
||||
| 19 | SPI_CS |
|
||||
+------------+-----------------+
|
||||
| 20 | DCMI_D7 |
|
||||
+------------+-----------------+
|
||||
| 21 | DCMI_D6 |
|
||||
+------------+-----------------+
|
||||
| 22 | DCMI_D5 |
|
||||
+------------+-----------------+
|
||||
| 23 | DCMI_D4 |
|
||||
+------------+-----------------+
|
||||
| 24 | DCMI_D3 |
|
||||
+------------+-----------------+
|
||||
| 25 | DCMI_D2 |
|
||||
+------------+-----------------+
|
||||
| 26 | DCMI_D1 |
|
||||
+------------+-----------------+
|
||||
| 27 | DCMI_D0 |
|
||||
+------------+-----------------+
|
||||
| 28 | SPI_MOSI |
|
||||
+------------+-----------------+
|
||||
| 29 | SPI_CLK |
|
||||
+------------+-----------------+
|
||||
| 30 | GND |
|
||||
+------------+-----------------+
|
||||
|
||||
Requirements
|
||||
************
|
||||
|
||||
The camera module bundle is compatible with all STM32 Discovery kits and
|
||||
Evaluation boards featuring a ZIF connector, such as the STM32H747I-DISCO,
|
||||
STM32H7B3I-DK, and 32L4R9IDISCOVERY Discovery kits.
|
||||
|
||||
Usage
|
||||
*****
|
||||
|
||||
The shield can be used in any application by setting ``SHIELD`` to
|
||||
``_st_b_cams_omv_mb1683`` and adding the necessary device tree properties.
|
||||
|
||||
Set ``--shield "st_b_cams_omv_mb1683"`` when you invoke ``west build``. For example:
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/drivers/video/capture_to_lvgl
|
||||
:board: stm32h7b3i_dk
|
||||
:shield: st_b_cams_omv_mb1683
|
||||
:goals: build
|
||||
|
||||
References
|
||||
**********
|
||||
|
||||
- `Product page <https://www.st.com/en/evaluation-tools/b-cams-omv.html>`_
|
||||
|
||||
- `Databrief <https://www.st.com/resource/en/data_brief/b-cams-omv.pdf>`_
|
||||
|
||||
- `User manual <https://www.st.com/resource/en/user_manual/um2779-camera-module-bundle-for-stm32-boards-stmicroelectronics.pdf>`_
|
||||
BIN
boards/shields/st_b_cams_omv_mb1683/doc/st_b_cams_omv.webp
Normal file
BIN
boards/shields/st_b_cams_omv_mb1683/doc/st_b_cams_omv.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 48 KiB |
@ -0,0 +1,49 @@
|
||||
/*
|
||||
* Copyright (c) 2025 Charles Dias <charlesdias.cd@outlook.com>
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
*/
|
||||
|
||||
#include <zephyr/dt-bindings/video/video-interfaces.h>
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
zephyr,camera = &st_cam_dvp;
|
||||
};
|
||||
};
|
||||
|
||||
&st_cam_i2c {
|
||||
|
||||
ov5640: ov5640@3c {
|
||||
compatible = "ovti,ov5640";
|
||||
reg = <0x3c>;
|
||||
status = "okay";
|
||||
reset-gpios = <&dmci_camera_connector 5 GPIO_ACTIVE_LOW>;
|
||||
powerdown-gpios = <&dmci_camera_connector 6 GPIO_ACTIVE_HIGH>;
|
||||
|
||||
port {
|
||||
ov5640_ep_out: endpoint {
|
||||
remote-endpoint-label = "dcmi_ep_in";
|
||||
bus-type = <VIDEO_BUS_TYPE_PARALLEL>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&st_cam_dvp {
|
||||
status = "okay";
|
||||
sensor = <&ov5640>;
|
||||
|
||||
bus-width = <8>;
|
||||
hsync-active = <0>;
|
||||
vsync-active = <0>;
|
||||
pixelclk-active = <1>;
|
||||
capture-rate = <1>;
|
||||
|
||||
port {
|
||||
dcmi_ep_in: endpoint {
|
||||
remote-endpoint-label = "ov5640_ep_out";
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -75,6 +75,28 @@
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
dmci_camera_connector: connector_dcmi_camera {
|
||||
compatible = "st,stm32-dcmi-camera-fpu-330zh";
|
||||
#gpio-cells = <2>;
|
||||
gpio-map-mask = <0xffffffff 0xffffffc0>;
|
||||
gpio-map-pass-thru = <0 0x3f>;
|
||||
gpio-map = <3 0 &gpiod 12 0>, /* I2C4_SCL */
|
||||
<4 0 &gpiod 13 0>, /* I2C4_SDA */
|
||||
<5 0 &gpioa 0 0>, /* RESET# */
|
||||
<6 0 &gpioa 7 0>, /* PWDN_EN */
|
||||
<12 0 &gpiob 7 0>, /* DCMI_VSYNC */
|
||||
<14 0 &gpioa 4 0>, /* DCMI_HSYNC */
|
||||
<16 0 &gpioa 6 0>, /* DCMI_PIXCK */
|
||||
<20 0 &gpiob 9 0>, /* DCMI_D7 */
|
||||
<21 0 &gpiob 8 0>, /* DCMI_D6 */
|
||||
<22 0 &gpiod 3 0>, /* DCMI_D5 */
|
||||
<23 0 &gpioc 11 0>, /* DCMI_D4 */
|
||||
<24 0 &gpioc 9 0>, /* DCMI_D3 */
|
||||
<25 0 &gpiog 10 0>, /* DCMI_D2 */
|
||||
<26 0 &gpioc 7 0>, /* DCMI_D1 */
|
||||
<27 0 &gpioc 6 0>; /* DCMI_D0 */
|
||||
};
|
||||
|
||||
aliases {
|
||||
led0 = &blue_led;
|
||||
led1 = &red_led;
|
||||
@ -278,3 +300,7 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
st_cam_i2c: &i2c4 {};
|
||||
|
||||
st_cam_dvp: &dcmi {};
|
||||
|
||||
40
dts/bindings/gpio/st,dcmi-camera-fpu-330zh.yaml
Normal file
40
dts/bindings/gpio/st,dcmi-camera-fpu-330zh.yaml
Normal file
@ -0,0 +1,40 @@
|
||||
# Copyright (c) 2025 Charles Dias
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
description: |
|
||||
GPIO pins exposed on the 30-pin ZIF connector (CN5) of the B-CAMS-OMV.
|
||||
Connector layout:
|
||||
(1) 3V3
|
||||
(2) GND
|
||||
(3) I2C_SCL
|
||||
(4) I2C_SDA
|
||||
(5) RESET#
|
||||
(6) PWR_EN / LED1
|
||||
(7) SHUTTER
|
||||
(8) GND
|
||||
(9) PULLDOWN / LED2
|
||||
(10) Camera_CLK
|
||||
(11) 3V3
|
||||
(12) DCMI_VSYNC
|
||||
(13) 5V (RSU)
|
||||
(14) DCMI_HSYNC
|
||||
(15) GND
|
||||
(16) DCMI_PIXCK
|
||||
(17) GND
|
||||
(18) SPI_MISO
|
||||
(19) SPI_CS
|
||||
(20) DCMI_D7
|
||||
(21) DCMI_D6
|
||||
(22) DCMI_D5
|
||||
(23) DCMI_D4
|
||||
(24) DCMI_D3
|
||||
(25) DCMI_D2
|
||||
(26) DCMI_D1
|
||||
(27) DCMI_D0
|
||||
(28) SPI_MOSI
|
||||
(29) SPI_CLK
|
||||
(30) GND
|
||||
|
||||
compatible: "st,dcmi-camera-fpu-330zh"
|
||||
|
||||
include: [gpio-nexus.yaml, base.yaml]
|
||||
@ -0,0 +1,11 @@
|
||||
#
|
||||
# Copyright (c) 2025 Charles Dias <charlesdias.cd@outlook.com>
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
CONFIG_LOG_BUFFER_SIZE=2048
|
||||
|
||||
CONFIG_VIDEO_WIDTH=480
|
||||
CONFIG_VIDEO_HEIGHT=272
|
||||
CONFIG_VIDEO_BUFFER_POOL_SZ_MAX=262144
|
||||
@ -0,0 +1,14 @@
|
||||
/*
|
||||
* Copyright (c) 2025 Charles Dias <charlesdias.cd@outlook.com>
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
*/
|
||||
|
||||
/delete-node/ &sram1;
|
||||
/delete-node/ &sram2;
|
||||
|
||||
/* Increase the SRAM0 bank memory size to accommodate the VIDEO_BUFFER_POOL_SZ_MAX configuration. */
|
||||
&sram0 {
|
||||
reg = <0x24000000 DT_SIZE_K(1024)>;
|
||||
};
|
||||
Loading…
Reference in New Issue
Block a user