桌面屏幕小项目日志

项目技术文档

http://rongtop.cn/docs/desktopscreem

简介

历史渊源

一个桌面小摆件,起因是去年同一时间在开源平台看到了一款拟辉光管的桌面摆件,看着好玩,就想着自己也做一个,并作为一个朋友的生日礼物。于是就开始动手设计,方案设计、元器件选型、pcb板设计、结构设计(meiyou)、渲染.....然后,成为了一个饼..........就像下面这样。

然而,在这一年里我只有忙忙碌碌,比赛也是一个又一个,经常过着睡了今晚没明晚的日子,于是,他被搁置了,搁置了整整一年。
屏幕截图 2024-07-20 162630.png

重启

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

方案设计,元件选型

ddl2.png
今天进行了整体方案的初步设计,桌面屏幕的主要功能也就是显示、交互。所以项目重点从显示与交互体验进行设计。

MCU选型

  1. 屏幕显示的刷新率以及速度的决定性因素也就是数据传输的速度,所以需要有一个高速的数据传输速度。
  2. 桌面屏幕有对UI图片、视频、交互界面、程序APP的存储需求,需要外挂一颗flash存储芯片,对传输速率有要求,所以单片机必须要支持QSPI接口。
  3. 支持SDIO
  4. 图像缓存需要的RAM很大
  5. 对时间有断电运行的要求,单片机需要有RTC时钟以及纽扣电池供电功能。
  6. 高主频,高性能单片机,性价比也需要高。

stm32H7B0.png

STM32H7B0VBT6
  • 最大主频--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

gd25q128(1).jpg

gd25q128

一个拥有128M-bit(16MB)的存储器。支持四线QSPI接口的SPI NOR Flash,时钟速率可达133MHz。

屏幕选型

TFT屏幕要求:

  1. 边框窄
  2. 色彩清晰,ips面板
  3. 分辨率高
  4. 支持串行接口
    综合下来,其实ips小屏幕也没有太多选项,于是选择了下面这款。中景园圆角IPS屏,分辨率172(H)*320(V)。
    ips(1).jpg
    1.47寸 ips lcd显示屏

    目前选型到这里,后面如果还有需要继续选型。(7月20日)

电源设计

tps74801.png

TPS74801

电源也是整个电路中的核心,也是整个电路无法工作的原因之一。

  • TPS74801的输出能力很强,输出电流可达1.5A,可以满足6块IPS屏幕同时工作,以及280MHz主频的单片机稳定工作。
  • TPS74801是一颗LDO,具有LDO的优点,LDO使用简单且噪声小。
  • 其带有偏置电压BIAS,响应速度快。
  • 输出可调,且可使用pg引脚控制开关。

原理图设计

时间关系,原理图依然选择立创EDA进行设计、整合。

单片机外围

从供电、高速晶振、低速晶振、VBAT进行设计。
mcu原理图.png

QPSI NOR FLASH

gd25q128(1).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,且带有加解密功能。
设计如下原理图:
flash原理图.png

屏幕接口设计

屏幕最主要是可以自由插拔,所以在主板上,我选用2.54间隔的金手指插槽作为屏幕板的接口,如下。
goldhead.jpg
金手指插槽的各个引脚定义如下:
屏幕接口.png
背光电路
blk.png

LDO电路设计

点击此处下载芯片手册
tps特性(1).png
应用电路.png
上图为TPS74801的应用电路。

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

如图:

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

因为电路对启动时间无要求,就按手册示例电路选择1nf软启动C SS电容,约2ms软启动时间。PG引脚直接上拉,无软起动需求,便上电启动。

  • FB引脚为电路中最重要的引脚,其提供输出电压反馈,器件通过FB引脚的反馈电压调整输出电压,进而使得输出电压的稳定。
    通过手册得知:
    输出电压公式
    tps公式.png
    反馈电阻选择与输出电压关系表
    tps反馈.png
    注意: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.png
蔡大佬款板载DAP-Link接口,可插拔式调试器,前期开发必备佳品,坐等量产。

SD卡

SD.png
SDIO标准接口。
至此,原理图设计完成
点击此处下载原理图

PCB设计

pcb设计无太多难点,需要注意:

  • 电源线要满足供电需求
  • OSPI、SPI、SDIO、USB差分线需要做等长,此PCB板面较大,所以我均做了10mil等长,符合文档300mil等长的要求。
    正面
    正面(1).png
    背面
    背面.png
    走线
    走线.png
    3D视图
    3wei.png
    ips.png

--------2024年7月30日

生日快乐,也祝我生日快乐 ---2024-7-31

PCB、元件已在路上,接下来设计程序

PCB焊接

程序设计

底层驱动

时钟分配

主体时钟通过24MHz外部高速晶振进行提供,通过各路分频器供给CPU、外设时钟资源。

  1. 主频270MHz,由锁相环PLL1产生,参数如下图所示。
    主频.png
  2. CPU与系统滴答定时器使用270MHz时钟,AXI外设时钟、AHB3外设时钟、AHB1定时器时钟、AHB2定时器时钟、AHB4外设使用270MHz时钟,其余经过2分频使用135MHz时钟。
    外设时钟.png
  3. 锁相环PLL2通过配置产生144MHz时钟,供给SPI2、SPI4时钟资源。
    PLL2.png
    SPI2.png
    SPI4.png
  4. 锁相环PLL3未用到
  5. PLL1的Q通道输出135MHz共给OctoSPI 与 SDMMC 时钟资源。
    PLL1Q.png
    octospi.png
    SDMMC.png

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

文章作者: 戎劲羽
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 羽老板的心事
GD32 屏幕 开源 小项目
喜欢就支持一下吧