一位业余爱好者花两年时间完成的STM32H7掌上电脑(软硬件开源)

Posted 果果小师弟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一位业余爱好者花两年时间完成的STM32H7掌上电脑(软硬件开源)相关的知识,希望对你有一定的参考价值。

1、项目背景

幼儿时期,还记得一个孩子用泡沫、马达和电池做了一艘电动快艇在河里转着圈圈,泛起的淡淡涟漪让我心潮起伏,驻足河边流连忘返。童年时期,一盒四驱车,让我体验到了毫不起眼的小零件可以组装出这么一台强劲的四驱车。再后来,小霸王学习机风靡时期,经常赖在大孩子家看着别人打游戏自己也感到无比兴奋。初中时期,受风靡一时的文曲星、步步高电子词典中“英雄坛说”、“伏魔记”、“魔塔”带来的深深痴迷,孩提时代就梦想着自己有一天能亲手打造一台硬件软件全自主设计的掌机。

这个梦伴随着我的成长,让我在大学时代选择了研究电子电路设计、PCB layout、嵌入式编程,直至工作业余时间持续学习实践,终于在 2019 年 7 月 1 日,正式建立工程文件,花费了足足 2 年业余时间,一点一滴全程设计出名为 ALTA-STM32H7 掌上电脑,纯粹为了好玩。软件框架使用的安富莱 V7 例程,uCOS-III+emWin+FatFs+ST_USB,只差 LWIP 集齐全部。在自己设计的掌机上开发了 10 个 APP,分别是:时钟 APP、音乐 APP、图库 APP、设置 APP、文件 APP、版本 APP、电影 APP、游戏 APP、U 盘 APP、波形 APP。演示视频和图片如下:

2、硬件设计

硬件构架采用核心板+底板+屏幕,使用 Alitum 软件绘制原理图,PADS 绘制 PCB 板。核心板为金手指 6 层设计,底板为 2 层设计,屏幕为 2 层设计。具体硬件明细如下。

2-1、核心板配置

  • CPU : STM32H743XIH6(M7 核心、480MHz 主频、2MB Flash,1MB RAM)
  • SDRAM : IS42S32800G-6BLI(32 位,32MB)
  • QSPI Flash : W25Q256JVEIQ(4 线总线宽度,容量 32MB,支持 XIP,即可运行程序)
  • SPI Flash : W25Q64JVZEIQ(容量 8MB)
  • NAND Flash : MT29F4G08ABADAWP:IT(8 位总线宽度,容量 512MB)
  • SD 卡座:Micro SD Card
  • 显示器接口:RGB 24bit、I2C 触摸、背光可调
  • Typec-C 型 USB 口:1 个 USB Device 全速
  • LED 灯 : 2 个指示灯
  • 串行接口 : 1 个
  • SWD 下载接口 : 1 个
  • 按键 : 1 个复位键,1 个唤醒按键

2-2、底板配置

  • 二合一锂电池充电升压 IC : TP5400/TP5410 (充电:4.2V/1A,输出 5V/1A)
  • 二合一锂电池保护 IC : DW06D
  • 电量监控 IC : STC3100
  • 线性 LDO IC : AMS1117-3.3
  • 电压参考 IC : LM285D-2.5
  • 光照强度 IC : BH1730FVC
  • EEPROM : AT24C02C-STUM-T
  • 实时时钟 IC : DS3231M
  • 以太网 IC : LAN8720A
  • 音频 IC : WM8978CGEFL(24 位 ADC 与 DAC)
  • Typec-C 型 USB 口 : 1 个 USB Device 全速,1 个串行接口(CH340G USB 转串口芯片)
  • A 型 USB 口 : 1 个 USB HOST 全速
  • 电池座子 : 1 个双 18650 锂电池座子,1 个 CR1220 纽扣电池底座
  • 无线模块 : NRF24L01(2.4GHz、SPI 接口驱动)
  • 温度模块 : DS18B20
  • 湿度模块 : DHT11
  • 耳机插座 : 1 个音源输入,1 个音源输出
  • 按键 : 1 个开机键,1 个确认键,1 个取消键,1 个 ISP 下载键,1 个复位键
  • LED 灯 : 1 个电源灯,3 个指示灯
  • 蜂鸣器 : 1 个(9055 有源蜂鸣器 3V 9*5.5MM)
  • 麦克风 : 1 个(6 * 2.2mm咪头 6022 尺寸)
  • SWD 下载接口 : 1 个
  • 扬声器 : 1 个(8 欧姆)

2-3、屏幕配置

  • RGB 电容触摸屏(并行 24 位 RGB 接口、分辨率 800*480、全视角 IPS、5 英寸、GT911 电容触摸)

3、软件设计

3-1、软件版本

软件框架为 uCOS-III+emWin+FatFs+ST_USB,还差网络没有加上,具体软件版本见如下列表

  • ST_HAL 库 版本:V1.10.0
  • BSP 驱动包 版本:V1.2
  • uCOS-III 版本:V3.08.00
  • uC/CPU 版本: V1.32.00
  • uC/LIB 版本: V1.39.00
  • emWin 版本:V6.10
  • FatFS 版本:V0.14
  • ST_USBD 版本:V2.7.1
  • ST_USBH 版本:V3.3.4

3-2、掌机主界面及应用 APP 介绍

基于ALTA-STM32H7 掌机开发的 10 个 APP 分别是:时钟 APP、音乐 APP、图库 APP、设置 APP、文件 APP、版本 APP、电影 APP、游戏 APP、U 盘 APP、波形 APP。

  • 主机面左侧透明区域为锂电池监测信息、emWin 的剩余内存(emWin 总共分配了 24MB)、和传感器(光照强度、温度、湿度)数据显示
  • 主界面右侧区域为 APP 布局界面,采用 ICONVIEW 控件,一共显示了 12 个 APP
  • 主界面下册区域为任务栏,有关机 Win 键和时间日期的同步显示

3-2-1、时钟 APP
  • 时钟主界面左侧显示表盘,模拟时、分、秒指针,右侧显示时间、日期和时钟芯片温度
  • 时钟子界面采用 LISTWHEEL 控件,实现调整年、月时,自动调整日的最大值。如:将日期 2020-02-29 调整年为 2021,则天自动调整为 28

3-2-2、音乐 APP
  • 音乐主界面碟片是打开列表的按钮。主界面有音量、进度调节、耳机与外放切换,上一曲、下一曲、播放、暂停功能
  • 音乐子界面采用 LISTVIEW 控件,显示音乐列表

3-2-3、图库 APP
  • 图库主界面采用 LISTVIEW 控件,显示图片列表
  • 选择图片后全屏显示。点击图片左侧,向上切换图片。点击图片右侧,向下切换图片。点击图片中间,关闭图片

3-2-4、设置 APP
  • 调节系统背光和系统音量,自动调节背光功能待开发

3-2-5、文件 APP
  • 文件主界面显示内部储存设备(3 个内部储存设备并未开发)和移动储存设备(SD 卡和 U 盘容量显示)
  • 文件子界面采用 CHOOSEFILE 控件,仅用于浏览 SD 卡和 U 盘中文件内容,但不能打开文件

3-2-6、版本 APP
  • 显示硬件和软件设计版本,手机扫描二维码会进入个人网站:www.mazirong.com

3-2-7、电影 APP
  • 电影 APP 为双图层(图层 1 底层,图层 2 上层。程序默认运行在图层 1)设计,有关操作的按钮和进度条均在图层 2,电影播放在图层 1
  • 注意使用格式工厂软件转化视频时,视频分辨率为 800*480,且每秒帧数不推荐超过 30 帧,防止帧率太高无法播放

3-2-8、游戏 APP
  • 移植自网友 ye781205 的 nes 模拟器,实现外界 USB 游戏手柄畅玩 nes 类游戏
  • 游戏主界面采用 LISTVIEW 控件,显示游戏列表。选择进入游戏后,运行 nes 模拟器

3-2-9、U 盘 APP
  • 使用 Type-C 的 USB 数据线连接板子插入电脑,点击 USB Open 按钮,过几秒中电脑会显示出 SD 卡磁盘
  • 在与电脑连接状态下,点击 USB Close,立刻从电脑移除 SD 卡磁盘

3-2-10、波形 APP
  • 波形主界面模拟 2 个波形,波形幅度设置为 120 至 220
  • 波形子界面采用三原色配置背景、栅格、波形等颜色


自此,ALTA-STM32H7 掌机项目软硬件设计介绍完毕,这代表这我目前的软硬件综合能力的最高水平。后续可能全部开源,欢迎各位电子爱好者,极客朋友留言交流。个人网址:www.mazirong.com,B站:芯跳不止,期待你们来信!

以上是关于一位业余爱好者花两年时间完成的STM32H7掌上电脑(软硬件开源)的主要内容,如果未能解决你的问题,请参考以下文章

STM32H7第19章 ThreadX信号量

STM32H7教程第14章 STM32H7的电源,复位和时钟系统

STM32H7教程第39章 STM32H7的DMAMUX基础知识(重要)

STM32H7教程第92章 STM32H7的FDCAN总线应用之双FDCAN实现(支持经典CAN)

STM32H7的DSP教程第33章 STM32H7不限制点数FFT实现

STM32H7教程第89章 STM32H7的CAN FD总线基础之前世今生