查看原文
其他

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

The following article is from 芯跳电子 Author 梓芯电子

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。演示图片如下:
整体系统展示
游戏运行展示
硬件设计展示
IPS屏幕展示
金手指核心板正面展示
金手指核心板背面展示

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 个唤醒按键
核心板正面PCB图
核心板背面PCB图

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 欧姆)
底板正面PCB图
底板背面PCB图

2-3、屏幕配置

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

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 卡磁盘
U 盘主界面

3-2-10、波形 APP

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

自此,ALTA-STM32H7 掌机项目软硬件设计介绍完毕,后续可能全部开源,欢迎各位电子爱好者,极客朋友留言交流。


End


推荐好文  点击蓝色字体即可跳转

【收藏】烂大街的ESP82666该咋玩
☞【鸡汤】一个普通人的大学四年
☞【干货】基于STM32的PS2遥控小车
☞【干货】手把手教你写一个安卓APP
☞【干货】手把手教你写单片机的指针
☞【干货】手把手教你写一个串口调试助手

欢迎转发、留言、点赞、分享感谢您的支持!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存