Browse Source
Add support for ST B-CAMS-OMV MB1683 shield. Signed-off-by: Charles Dias <charlesdias.cd@outlook.com>pull/83222/head
9 changed files with 330 additions and 0 deletions
@ -0,0 +1,5 @@
@@ -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 @@
@@ -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"; |
||||
}; |
@ -0,0 +1,153 @@
@@ -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>`_ |
After Width: | Height: | Size: 48 KiB |
@ -0,0 +1,49 @@
@@ -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"; |
||||
}; |
||||
}; |
||||
}; |
@ -0,0 +1,40 @@
@@ -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 @@
@@ -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 @@
@@ -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