一位业余爱好者花两年时间完成的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掌上电脑(软硬件开源)相关推荐
- 一份诚恳的互联网找工作总结和感想(附:怎样花两年时间去面试一个人)
作者:寒小阳 时间:2013年9月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/11683589. 声明:版权所有,转载请注明出处,谢谢 ...
- 转载一份诚恳的互联网找工作总结和感想(附:怎样花两年时间去面试一个人)
作者:寒小阳 时间:2013年9月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/11683589. 声明:版权所有,转载请注明出处,谢谢 ...
- 怎样花两年时间去面试一个人+前端开发类书籍
怎样花两年时间去面试一个人 BY 刘未鹏 – NOVEMBER 4, 2011POSTED IN: 学习方法, 未分类, 编程 Joel Spolsky曾经感叹:招聘难,难于上青天(此处笔者稍加演绎 ...
- 你只写了两行代码,为什么要花两天时间?
原文 | https://www.mrlacey.com 作者 | Matt Lacey 我花了两天时间,写了两行代码. 对于真正的程序员来看,这可能是一个合理的事情,但背后不理解程序员的人,往往会做 ...
- 开发无法复现是什么意思_你只写了两行代码,为什么要花两天时间?
原文 | https://www.mrlacey.com 作者 | Matt Lacey 我花了两天时间,写了两行代码. 对于真正的程序员来看,这可能是一个合理的事情,但背后不理解程序员的人,往往会做 ...
- 如何花两年时间面试一个人
原文出处:http://mindhacks.cn/2011/11/04/how-to-interview-a-person-for-two-years/ Joel Spolsky曾经感叹:招聘难,难于 ...
- 怎样花两年时间去面试一个人---刘未鹏
http://mindhacks.cn/2011/11/04/how-to-interview-a-person-for-two-years/ Joel Spolsky曾经感叹:招聘难,难于上青天(此 ...
- 怎样花两年时间去面试一个人(对于我,重点是里面提及的经典书)
Joel Spolsky曾经感叹:招聘难,难于上青天(此处笔者稍加演绎:)).他有两个辛辣但不乏洞察力的断言:真正的牛人也许一辈子就投大概4次简历,这些家伙一毕业就被好公司抢走了,并且他们的雇主会给他 ...
- (转)怎样花两年时间去面试一个人
(转载)原文地址 http://mindhacks.cn/2011/11/04/how-to-interview-a-person-for-two-years/ Joel Spolsky曾经感叹:招聘 ...
- 怎样花两年时间去面试一个人-----刘未鹏
原文地址http://mindhacks.cn/2011/11/04/how-to-interview-a-person-for-two-years/ Joel Spolsky曾经感叹:招聘难,难于上 ...
最新文章
- C++模拟游戏中鼠标点击和键盘按键
- 静态程序分析chapter5 - 常量传播分析上(Costant Propagation Analysis)
- 计算机基础教育德育教学,【家庭教育论文】计算机基础教学的德育教育(共2650字)...
- 用c语言设计如何扩充道路信息,【2017年整理】C语言设计(本)阶段练习四.doc
- SWT ScrolledComposite解释
- 【OpenCV 例程200篇】59. 非线性滤波—双边滤波
- TokenInsight:反映区块链行业整体表现的TI指数较昨日同期上涨2.62%
- CCF CSP201312-4有趣的数
- 活字格企业Web应用生成器V3.0发布更新,支持插件管理和多人协作开发
- Html查看dcm,DICOM图像浏览器(.dcm图像查看器)
- 打印机共享到网络访问不了计算机名,共享打印机XP访问Win7/Win10提示指定的网络名不再可用解决方法...
- 通过Frp内网穿透和Nginx反向代理实现不带端口号访问家里内网服务器网站
- v.douyin.com/xxx抖音网址官方生成制作抖音缩短口令网址php接口方法
- HPC高性能计算知识: HPDA新兴技术分析(附下载)
- 任务二:实现求平方根关键算法(30 分)求 n 以内(不包括 n)同时能被 3 和 7 整除的所有自然数之和的平方根 s,然后将结果s 输出。例如若 n 为 1000 时,则 s=153.909
- 华芯通关闭,华为等国产服务器芯片企业再受打击
- 白嫖服务器——搭建个人简历网站
- windows server 2012 r2 搭建企业文件共享存储
- C++lesson01
- 力扣416 二维数组解法
热门文章
- c语言编程实现合取析取,C++实现离散数学求主合取范式和主析取范式
- arcgis 经纬度转大地坐标_MapGIS实现大地坐标到经纬度(地理坐标)的换算
- VBA玩转系统剪贴板
- AT89S52单片机思维导图
- EasyCamera海康摄像机向EasyDarwin云平台推送音视频数据的缓存设计
- 机械工程c语言第一学期考试题,科学出版社机械工程图学习题集1~10章答案.ppt
- thinkPHP框架
- 底部任务栏桌面计算机怎么删除,桌面下方的任务栏总是隐藏怎么办
- ubuntu 换软件源
- splunk 日志分析软件 简介