7寸mp4播放器 - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

专业版 7寸mp4播放器

  • 1.7w
  • 17
  • 126

简介:基于ESP32S3的7寸触摸屏播放器,固件不定时更新

开源协议: MIT License

(未经作者授权,禁止转载)

已参加:星火计划2023

创建时间: 2023-03-26 09:56:14
更新时间: 2024-03-31 13:26:16
描述

项目说明

基于去年星火计划 (没搞完)桌面信息屏 - 嘉立创EDA开源硬件平台 (oshwhub.com   的升级版,加入了RGB565屏幕的支持,最高支持10.1寸1024x600,只需要浅浅调下时序,就能适配大部分海鲜市场极低的价格的拆机rgb屏,不必再用价格高昂的4.3寸MCU屏。

 

硬件上砍掉了功耗较大的毫米波雷达还有没什么用的光亮度,保留三轴重力和温湿度,新增了SD卡和单路音频。软件上基于esp-idf 5.0 驱动目前已经全部调通,固件将会逐步从桌面信息屏 - 嘉立创EDA开源硬件平台 (oshwhub.com)  移植过来。

 

受CPU性能限制,目前显示瓶颈主要在lvgl渲染部分,ESP32S3没有专用的图像处理硬件,尤其在透明opa和大量内容滚动时,FPS将≤10,关掉透明会有明显性能提升。

项目相关功能

1. 具有显示功能,能够在屏幕上显示当前的时间(年月日,时分秒,星期)、天气信息、电量信息
2. 具有离线存储功能,通过TF卡存储本地音频文件,要求能在屏幕上浏览TF卡文件信息,在不拔插TF卡的情况下对文件进行增加和删除。
3. 具备音频播放功能,能够通过耳机和扬声器播放本地音频文件、播放时屏幕要求显示当前歌曲信息(歌曲名、歌手、进度条等),具备电子书功能,可以打开TF卡中的TXT文档进行阅读。
4. 具有交互功能,通过按键或者触摸等交互方式,控制音量大小、上下曲、播放和暂停功能
5. 具备充放电功能,充一次电使用时间不能小于3小时。

 

项目属性

本项目为首次公开,为本人原创项目。项目未曾在别的比赛中获奖。

 

项目进度

Demo板硬件调试ok,lcd偏压有点偏离,色彩饱和度看着有点问题 2023/5/29

播放器v0.1完工,外壳用LCEDA专业版搞出来了,在本工程单独的那个PCB文件内。 2023/8/18

 

设计原理

附件说明:附件为800*480 1024*600 ft触摸芯片的demo,注意触摸分辨率由触摸IC提供,不支持手动修改。

 

软件说明

 

更新天气时钟固件,需使用esptouch配网,支持知心天气api,代码开源地址  panyihang/weather_screen: 7寸播放器_天气时钟版本固件_横屏 (github.com)

tSSmnH0OkIIxFbMeQVWGYHDj9uaRoFIOxAevTAXC.jpeg

初始化操作见附件视频

 

软件-SDK配置说明

 

RGB LCD屏幕的显存将全部放在MCU侧,而ESP32-S3的SRAM容量为520K,远远不足以满足需求。为此,需要将显存存储在PSRAM中。标准的SDK只提供了80MHz的PSRAM支持,但通过应用官方提供的补丁,可以启用120MHz的八线PSRAM功能。

通过打开官方补丁,可以利用ESP32-S3的PSRAM提供更高的带宽和容量,以满足LCD显存的需求。这意味着您可以使用更大的显存空间,并以更高的速度访问PSRAM。请确保您的ESP-IDF版本兼容官方补丁,并按照之前提供的步骤将补丁应用到您的ESP-IDF项目中。

需要注意的是,PSRAM的速度提升也伴随着温度风险。官方警告称,使用120MHz的PSRAM速度在温度高于65摄氏度时可能无法保证正常运行。因此,在使用120MHz的八线PSRAM功能时,请注意温度控制,以确保系统的稳定性和可靠性。

 

为了正确配置SDK,您需要使用乐鑫ESP-IDF 5.0及以上的版本,并确保芯片是ESP32-S3R8。

 

以下是将补丁esp-dev-kits/esp32-s3-lcd-ev-board/factory/bin at master · espressif/esp-dev-kits · GitHub安装到ESP-IDF项目中的步骤:

1. 确保您的ESP-IDF项目是干净的,即没有未提交的更改。可以使用以下命令检查项目状态:

   cd <ESP-IDF根目录>
   git status

   如果存在未提交的更改,请提交或撤消它们。

2. 将补丁文件(`release5.0_psram_octal_120m.patch`)复制到您的ESP-IDF项目目录中。

3. 使用终端进入到ESP-IDF项目目录:

   cd <ESP-IDF根目录>

4. 应用补丁文件。运行以下命令:

   git apply --whitespace=fix <补丁文件路径>/release5.0_psram_octal_120m.patch

   如果一切顺利,不会有输出。

5. 使用以下命令检查补丁是否成功应用:   

    git status

   输出应类似于以下内容:

   ```
   HEAD detached at f315986401
   Changes not staged for commit:
     (use "git add <file>..." to update what will be committed)
     (use "git restore <file>..." to discard changes in working directory)
           modified:   components/esp_hw_support/port/esp32s3/rtc_clk.c
           modified:   components/esp_psram/esp32s3/Kconfig.spiram
           modified:   components/hal/esp32s3/include/hal/spimem_flash_ll.h
           modified:   components/spi_flash/esp32s3/mspi_timing_tuning_configs.h
           modified:   components/spi_flash/esp32s3/spi_timing_config.c
           modified:   components/spi_flash/esp32s3/spi_timing_config.h
           modified:   components/spi_flash/spi_flash_timing_tuning.c

   Untracked files:
     (use "git add <file>..." to include in what will be committed)
           tools/test_apps/system/flash_psram/sdkconfig.ci.f8r8_120ddr
           tools/test_apps/system/flash_psram/sdkconfig.ci.f8r8_120ddr_120ddr
   ```

   这表示补丁已成功应用。

使用idf.py menuconfig进入配置界面

首先配置flash, 确保配置为STR 模式的120Mhz,具体组合限制参考下表

JeKcVsmkzA9yH08S1irYhmI0GCOdlEAXedinezJ3.png

iJPuNVNFF8r84pgG1CofKlqwhPSZDe4wVxVotia4.png

在Component config的 ESP PSRAM中,设置Set RAM clock speed (120MHz clock speed),开启ECC [*] Enable SPI RAM ECC

5lDJ0pI15aEGCIlDP8GTJ92tNpsrUitIoipoT4tP.png

在ESP System Settings的Cache config中,调整CPU缓存的容量

zn07ta9Bz5VI0o3l4UGeWsg0RccqdhpQn970O2ef.png

在Optimization Level中开启o2优化

UHkYJKydifu24dA6Nz7BDt1WJuC24nfLBOk8y0km.png

分区表选择Custom partition table CSV,内容如下

WxXRMvLOgSK8LNFB2u4fGC9jVFAzPxzKSz3qT7Ei.png

Brw5eAC8kIC7cYJAo8ROHQCzsiIg5F0Z7huCaf41.png

 

软件-屏幕设配

将PSRAM频率拉到120后,可以开启PCLK 40Mhz的输出,并且不会导致屏幕像素漂移

RGB屏的软件适配主要以修改HBP(hsync_back_porch)和VBP(vsync_back_porch)为主,其他参数可以不用大改。

具体设置参考屏厂提供的手册,也可以靠蒙。

经测试,可以点亮标准RGB 50Pin的7寸800*480,7寸1024*600屏幕。

ENt6C4WGr3CEKvTkugSoIjMEF1mVldmuBt2qsHEP.png

软件-视频播放

esp32s3硬件上并不支持mpeg的视频流解码,本项目有两种解决方法:

1.给视频浅改造下,使用jpeg流进行编解码,这套方案也是目前乐鑫播放视频流demo里面主推的方法(usb_camera),可以实现较流畅的观看体验

2.转成gif,怼进lvgl提供的gif解码器,这套方案只能播放体积很小的gif,会非常吃RAM

 

 

实物展示

提示:作品的实物图片,图片可以加上说明。

设计注意事项

硬件-关于RGB屏的配置

液晶面板的偏置电压由这两个稳压管调节,这是目前最省成本的方案,后续会使用TI的LCD偏压芯片进行改进。

更改屏幕需要设置不同偏压,但相差范围不大(1-2V)。

YV7iB1pXHvRFtWeea3cLZgmAVLqWOiQ94DqeHTcU.png

VCOM的调节需要依靠实际感觉,我手上几款屏幕的VCOM电压都在3V左右。

偏压设置不正确可能会导致屏幕色彩失真、饱和度异常等问题。

 

9aWgRYzK9aqmJslWwcntKMMo0Eoru37xKosXfJvQ.png

MODE引脚需要拉高,使用DE模式进行数据传输,这样可以节省一个GPIO引脚的使用。

SsV4mYSFnhG6wAjgvUx8YjlpdzadbfOp3CMP2lhF.png

屏幕使用这家的带电容触摸版本,仅适配了这个的触摸排线位置

SUkXpaxuFQpTfrOYHy2eXlogVopz2ymsaGnG85qs.jpeg

目前外壳的非正确用法...需要5个m3*8 沉头螺丝,左边原本是电池仓,但用PETG打的支撑根本拆不下来,只能随便放下了

yiOKSmT7Tt40mFkdJXeVqQIzHwV7AY7XcSkgcPN2.jpeg

充电功率,基本为五福一安

 

设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
工程成员
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP