标签存档: SPI

ESP32-S3 + Arduino 各种 JPEG 解码库速度对比,到底哪个才是最快的?

前段时间做了个 ESP32-S3 串流小电视(见 桌面小电视新思路,ESP32-S3 + 12864 OLED 串流视频)的项目,最近准备试试显示彩色图片,这就需要持续显示 JPEG 图片来模拟视频播放。

在 Arduino 生态中找到了好几个解码库,虽然也有一些对比测试,还是想自己实测一下,看看具体的效果怎么样 😃。

起因

在串流进行视频播放时,需要视频的每一帧解码、上屏,如果需要达到 30 FPS 的刷新率,那么解码 + 上屏的时间要在 1000 / 30 = 33.333 ms 以内。在这种情况下,图片解码性能直接影响用户体验。

另外,ESP32-S3 有双核 + 更高主频 + PSRAM + SIMD 指令支持,理论上应该可以跑得更快,但是具体能快多少,不同库之间差距多大,都需要实测数据。

测试环境

硬件平台

  • 开发板: ESP32-S3-Zero 开发板
  • PSRAM: 2MB


阅读全文 »

7毛钱的 MCU CH32V003 驱动 1.54 寸电子墨水屏

放假了玩点轻松的,最近为了玩电子墨水屏,搞了个电子墨水屏驱动板,用 ESP32 来驱动是很方便了,不过想试试用 CH32V003 这种入门级的芯片玩玩看,顺便也学习一下墨水屏的驱动。

这里使用的墨水屏是 1.54 英寸,通信接口是 SPI,驱动代码直接找了微雪的示例程序改写成使用 CH32V003 的库。

硬件连接

CH32V003 有一个 SPI 接口,这里与电子墨水屏通信使用四线 SPI,需要额外准备一个 DC 引脚,SPI MISO 不需要使用,这里直接悬空了。

除了标准的 SPI MOSI、CLK 需要使用指定的引脚,其他引脚都使用软件方式操作,特别是 SPI CS,这里连到了 PD3。

墨水屏其他几个引脚的连接:

  • CS -> PD3
  • BUSY -> PD2
  • DC -> PC4
  • RST -> PC3

ch32v003-eink-driver-1

使用 SPI 总线

SPI 驱动直接使用 CH32V003EVT 中的例程就可以了,不过需要注意的是,例程中的一些参数需要根据墨水屏的特性进行修改,主要修改有以下几个地方:

  • SPI_DataSize:需要修改为 8b


阅读全文 »