【EPS32S3学习笔记】OV2640+OLED的图像刷新率

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

之前将OLED+OV2640调通了之后,做了一个小Demo,一开始的显示效果并不是很好,刷新率上不了,而且拖影挺明显。后面来回调整了以下,速度上没有理想的那样好,但是勉强可以接受。下面是一些可以帮助提升刷新率的点。


提示:以下是本篇文章正文内容,下面案例可供参考

一、任务的分配

任务在创建的时候是可以指定其运行的CPU的,像这个应用中,如果把GUI和Camera都放在同一个CPU里运行,必然会有所卡顿,所以要对CPU合理的进行利用。
再一个ESP32S3的CPU频率可以配置到240MHz,SDK配置里默认好像是160MHz,性能既然有富裕,别浪费了,直接全速跑起。虽然对GUI的刷新率影响不大,但是实际的效果会好一点。

二、Camera的配置

对Camera速度影响最大的,或者根本。其实是XCLK的速度。这一点没有深入研究,但是提高速度后运行会异常,可能是硬件本身的限制。
其次是一些应用层面的。
如果是做图传,显示的硬件与ESP32是分离的,可以设置Camera以JPEG来传输图像,这样数据量低,同等时钟下,采集一张图片的速度会快很多。
实测:以FRAMESIZE_QVGA的设置下(320*240),PIXFORMAT_RGB565模式下图像的采集帧率大概是每秒钟13张左右,PIXFORMAT_JPEG模式下图像的采集帧率大概是每秒钟25张左右。

三、GUI相关的配置

影响GUI部分的刷新率主要是SPI的速率,之前SDK里面默认的应该是20MHz的频率,这样的速率一般的情况还好,但这里是用来刷新图像,每次都是对整屏进行刷新,因此SPI速度的快慢直接影响屏幕刷新率。所以也是简单的直接将SDK配置里的SPI速率提高到40MHz,这个其实已经超过显示IC规格书里面的最大的频率,而且实际看SPI SCK的波形已经失真严重了,但是竟然一切显示运行正常,也是万幸。
另外稍微注意一下,用来做图像显示的这个组件不要加别的处理了,例如翻转之类的,会大大影响速率。如果需要翻转、亮度调节的,可以直接设定图像传感器。

总结

提示:这里对文章进行总结:

最后实测了下,GUI刷新率能保持33帧。图像勉强可以看,主要还是受制于camera这块的采集速率,后面还有一些优化方法的也继续分享出来。

### ESP32-S3 控制 OV2640 摄像头模块的电路原理图连接方式 对于ESP32-S3控制OV2640摄像头模块,两者之间的接口主要依赖于SCCB(I²C兼容)总线用于配置摄像头参数以及DVP(Digital Video Port)数据传输接口来获取图像数据。具体来说: - **电源管理**:确保给OV2640提供合适的供电电压,通常为3.3V,并且有良好的去耦电容以稳定工作电压[^1]。 - **信号接地**:所有GND端子应当相互连接并保持低阻抗路径以便减少噪声干扰。 - **时钟与复位线路**: - XCLK引脚接收来自处理器产生的像素时钟。 - RESET引脚可以用来重新启动传感器芯片内部逻辑状态机;此引脚需拉高使能正常操作模式。 - **SCCB/IIC通信**:SIOC(SCL) 和 SIOD(SDA) 是两个双向串行通讯管脚,通过这两个管脚可设置分辨率、帧率等参数。 - **DVP 数据输出**: - VSYNC 表示垂直同步脉冲,在每一帧开始前触发一次。 - HREF/HSYNC 定义水平有效期内的数据窗口。 - PCLK 提供逐个字节读取图像所需的时间基准。 - D[7:0] 或者更少数量的数据线负责实际传送RGB或者YUV格式化后的视频流信息。 为了实现上述功能,硬件设计上会遵循这些原则构建相应的PCB布局。然而具体的布板细节可能会因制造商而异,建议查阅官方文档或参考已有的开源项目实例了解更加详尽的设计指南[^2]。 ```cpp // 示例代码展示如何初始化相机 #include "esp_camera.h" camera_config_t config; config.ledc_channel = LEDC_CHANNEL_0; config.ledc_timer = LEDC_TIMER_0; config.pin_d0 = Y2_GPIO_NUM; // 根据实际情况调整GPIO编号 config.pin_d1 = Y3_GPIO_NUM; config.pin_d2 = Y4_GPIO_NUM; config.pin_d3 = Y5_GPIO_NUM; config.pin_d4 = Y6_GPIO_NUM; config.pin_d5 = Y7_GPIO_NUM; config.pin_d6 = Y8_GPIO_NUM; config.pin_d7 = Y9_GPIO_NUM; config.pin_xclk = XCLK_GPIO_NUM; config.pin_pclk = PCLK_GPIO_NUM; config.pin_vsync = VSYNC_GPIO_NUM; config.pin_href = HREF_GPIO_NUM; config.pin_sscb_sda = SIOD_GPIO_NUM; config.pin_sscb_scl = SIOC_GPIO_NUM; config.pin_pwdn = PWDN_GPIO_NUM; config.pin_reset = RESET_GPIO_NUM; if (psramFound()) { config.frame_size = FRAMESIZE_UXGA; } else { config.frame_size = FRAMESIZE_SVGA; } config.pixel_format = PIXFORMAT_JPEG; config.grab_mode = CAMERA_GRAB_LATEST; config.fb_location = CAMERA_FB_IN_PSRAM; config.jpeg_quality = 12; config.fb_count = 1; // 初始化相机 esp_err_t err = esp_camera_init(&config); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔跑的Lunzi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值