桌面屏幕开源项目工作日志
桌面屏幕小项目日志
项目技术文档
http://rongtop.cn/docs/desktopscreem
简介
历史渊源
一个桌面小摆件,起因是去年同一时间在开源平台看到了一款拟辉光管的桌面摆件,看着好玩,就想着自己也做一个,并作为一个朋友的生日礼物。于是就开始动手设计,方案设计、元器件选型、pcb板设计、结构设计(meiyou)、渲染.....然后,成为了一个饼..........就像下面这样。

然而,在这一年里我只有忙忙碌碌,比赛也是一个又一个,经常过着睡了今晚没明晚的日子,于是,他被搁置了,搁置了整整一年。

重启
忙碌之下,我似乎忘了所有,但是时间似乎还是提醒了我,7月31日,农历6月26,又到了这天。画的饼终究是画,终究不是真的,只有想了、做了,才有可能会成为现实。我重启了这个项目,并准备从头开始,将其设计出来。 -----7月20日
方案设计,元件选型

今天进行了整体方案的初步设计,桌面屏幕的主要功能也就是显示、交互。所以项目重点从显示与交互体验进行设计。
MCU选型
- 屏幕显示的刷新率以及速度的决定性因素也就是数据传输的速度,所以需要有一个高速的数据传输速度。
- 桌面屏幕有对UI图片、视频、交互界面、程序APP的存储需求,需要外挂一颗flash存储芯片,对传输速率有要求,所以单片机必须要支持QSPI接口。
- 支持SDIO
- 图像缓存需要的RAM很大
- 对时间有断电运行的要求,单片机需要有RTC时钟以及纽扣电池供电功能。
- 高主频,高性能单片机,性价比也需要高。

- 最大主频--280MHz
- 拥有OSPI、SDIO接口
- Flash -- 128KB (虽然网上说,他的可用flash有2M)
- RAM -- 1.4M (192 Kbytes of TCM RAM,1.18 Mbytes of user SRAM, 4 Kbytes of SRAM in Backup domain)
- 支持存储器内存映射
- 最重要的,如此之高的性能,只需要20块。
- 性能有一点点过剩。
存储器选型
存储器需要装一些UI文件、图片、视频、程序APP,依然选择国产兆易创新GD25Q128
.jpg)
一个拥有128M-bit(16MB)的存储器。支持四线QSPI接口的SPI NOR Flash,时钟速率可达133MHz。
屏幕选型
TFT屏幕要求:
- 边框窄
- 色彩清晰,ips面板
- 分辨率高
- 支持串行接口
综合下来,其实ips小屏幕也没有太多选项,于是选择了下面这款。中景园圆角IPS屏,分辨率172(H)*320(V)。
.jpg)
1.47寸 ips lcd显示屏
目前选型到这里,后面如果还有需要继续选型。(7月20日)
电源设计

电源也是整个电路中的核心,也是整个电路无法工作的原因之一。
- TPS74801的输出能力很强,输出电流可达1.5A,可以满足6块IPS屏幕同时工作,以及280MHz主频的单片机稳定工作。
- TPS74801是一颗LDO,具有LDO的优点,LDO使用简单且噪声小。
- 其带有偏置电压BIAS,响应速度快。
- 输出可调,且可使用pg引脚控制开关。
原理图设计
时间关系,原理图依然选择立创EDA进行设计、整合。
单片机外围
从供电、高速晶振、低速晶振、VBAT进行设计。

QPSI NOR FLASH
.jpg)
点击此处下载芯片手册
GD25Q128E (128M-bit) 支持 Quad I/O data 速度可达 532Mbit/s.
(GD25Q128E (128M-bit) Serial flash supports the standard Serial Peripheral Interface (SPI), and the Dual/Quad SPI: Serial Clock, Chip Select, Serial Data I/O0 (SI), I/O1 (SO), I/O2 (WP#), I/O3 (HOLD#/RESET#). The Dual I/O data is transferred with speed of 266Mbit/s, and the Quad I/O data is transferred with speed of 532Mbit/s.)
此存储器支持3.3V供电,支持QSPI,通过查阅stm32H7B0芯片手册引脚复用表并与PCB板布局进行匹配,决定使用OSPI1作为flash的控制器,OSPI即为OCTO SPI,向下兼容Quad SPI,且带有加解密功能。
设计如下原理图:

屏幕接口设计
屏幕最主要是可以自由插拔,所以在主板上,我选用2.54间隔的金手指插槽作为屏幕板的接口,如下。

金手指插槽的各个引脚定义如下:

背光电路

LDO电路设计
点击此处下载芯片手册
.png)

上图为TPS74801的应用电路。
- IN引脚输入输入电压,OUT引脚输出输出电压。
- BIAS为偏置电压引脚,用于误差放大器、基准电压源和内部控制电路的偏置输入电压。
- EN使能引脚,直接拉高。
- SS引脚为软启动引脚。通过此引脚接地的电容器设置启动时间。如果这个引脚未连接时,稳压器输出软启动斜坡时间通常为 200 μs。
- FB电源输出反馈引脚。
- PG软启动控制引脚。
根据芯片手册进行电路设计,设计原理图如下:

如图:
- 电压输出引脚的C in为电源滤波电容,接10uf、100nf大小电容。
- 使能引脚直接接IN,上电使能。
- 因为偏置电压使用IN引脚供电,根据手册,其C BICS电容需要4.7uf 或者更大。
- SS引脚为启动时间,根据手册:

因为电路对启动时间无要求,就按手册示例电路选择1nf软启动C SS电容,约2ms软启动时间。PG引脚直接上拉,无软起动需求,便上电启动。
- FB引脚为电路中最重要的引脚,其提供输出电压反馈,器件通过FB引脚的反馈电压调整输出电压,进而使得输出电压的稳定。
通过手册得知:
输出电压公式

反馈电阻选择与输出电压关系表

注意:In order to achieve the maximum accuracy specifications, R2 must be ≤ 4.99 kΩ.
为了达到精度,反馈电阻R2需要小于4.99K欧姆。
原理图设计按照上表,输出3.3V电压。
注意:USB2.0的输出电流为500ma,电脑usb口可能无法满足供电需求,所以需要外接充电器进行供电。后续设计也会通过PD诱骗方式提高usb口电压,进而降低usb口电流(大概思路,不知道对不对)。
DAP-Link

蔡大佬款板载DAP-Link接口,可插拔式调试器,前期开发必备佳品,坐等量产。
SD卡

SDIO标准接口。
至此,原理图设计完成
点击此处下载原理图
PCB设计
pcb设计无太多难点,需要注意:
- 电源线要满足供电需求
- OSPI、SPI、SDIO、USB差分线需要做等长,此PCB板面较大,所以我均做了10mil等长,符合文档300mil等长的要求。
正面
.png)
背面

走线

3D视图


--------2024年7月30日
生日快乐,也祝我生日快乐 ---2024-7-31
PCB、元件已在路上,接下来设计程序
PCB焊接
程序设计
底层驱动
时钟分配
主体时钟通过24MHz外部高速晶振进行提供,通过各路分频器供给CPU、外设时钟资源。
- 主频270MHz,由锁相环PLL1产生,参数如下图所示。

- CPU与系统滴答定时器使用270MHz时钟,AXI外设时钟、AHB3外设时钟、AHB1定时器时钟、AHB2定时器时钟、AHB4外设使用270MHz时钟,其余经过2分频使用135MHz时钟。

- 锁相环PLL2通过配置产生144MHz时钟,供给SPI2、SPI4时钟资源。



- 锁相环PLL3未用到
- PLL1的Q通道输出135MHz共给OctoSPI 与 SDMMC 时钟资源。



TODO
调试串口
TODO
RTC实时时钟
TODO
USB HID自定义设备
TODO
SPI TX 驱动ST7789
TODO
SPI TX +DMA 驱动ST7789
TODO
OSPI 驱动FLASH
TODO
OSPI +MDMA 驱动FLASH
TODO
外部FLASH 内存映射、下载算法、分散加载程序
TODO
SDMMC驱动
TODO
中间件
时基 MYxxx_Timerbase
TODO
动态内存管理 MYxxx_MEMPool
TODO
调试系统 MYxxx_Debug
TODO
Fatfs文件系统
TODO
UI框架 MYxxx_UI
TODO
应用
Bootloader升级
TODO
Boot + APP
TODO
交互
TODO
嵌入式GUI
TODO