首页 » 人工智能 » 做一台基于 ESP32 DIY 复古游戏机MicroByte,暗记是什么意思。

做一台基于 ESP32 DIY 复古游戏机MicroByte,暗记是什么意思。

中建八局装饰工程通讯 2024-09-25 0

扫一扫用手机浏览

文章目录 [+]

MicroByte 是一款mini主机,能够运行 NES、GameBoy、GameBoy Color、Game Gear 和 Sega Master 系统的游戏,所有元器件都设计在这 78 x 17 x 40 mm 的封装中。
只管成品尺寸很小,但它符合 SNES 游戏板的布局并且具有操作按钮。
它还配有一个清晰的 1.3 英寸 IPS 显示屏,可以看到游戏的所有细节。

随后还会更新 Python 和 Arduino 库以便进行游戏以外的开拓事情。

做一台基于 ESP32 DIY 复古游戏机MicroByte 做一台基于 ESP32 DIY 复古游戏机MicroByte 人工智能

作者的GitHub仓库:https://github.com/jfm92/microByte

做一台基于 ESP32 DIY 复古游戏机MicroByte 做一台基于 ESP32 DIY 复古游戏机MicroByte 人工智能
(图片来自网络侵删)

视频加载中...

固件、PCB 设计、外壳 3D 文件等可以在文末下载。

BOM 清单:https://github.com/jfm92/microByte_PCB/blob/main/microByte_BOM.xlsx

项目架构

常日开始一个电子项目时,首先会创建一个框图,设置项目所需的功能及交互的办法,然后绘制事理图。
在事理图上,选择符合哀求的元器件并进行电气连接,之后进行 PCB 布局设计。
末了,按照设计规则和物理设计准则设置每个元器件基座的位置。

上面因此面包板为原型的原始版本,下面是终极版本。

此处将按照模块化思想进行项目开拓,辅以事理图设计和 PCB 布局设计。

该项目事理图和 PCB 布局是用 Kicad 设计的,下载链接:https://github.com/jfm92/microByte_PCB/tree/5cb0fcf7a9658e331d677588a7f35327a7d491d7

要打开它,只需安装 Kicad 并双击 .pro 文件。

ESP32 微掌握器

首先选择得当的微掌握器,对付该项目,选择 ESP32 Wrover E 模块。

该模块/微掌握器特点:具有 240 MHZ 双核、16 MB 闪存、8 MB RAM、超低功耗协处理器、支持 Wi-Fi 和蓝牙以及全套外围设备和 GPIO,仿真性能极佳。

设计中可参考 Espressif,数据表如下:https://www.espressif.com/sites/default/files/documentation/esp32-wrover-e_esp32-wrover-ie_datasheet_en.pdf

电路板模块的事理图:

中间是与外围设备连接的 ESP32 模块。

引脚 25 是 IO 0 引脚。
该引脚为选择设备的勾引状态,可以闪存新固件或启动已闪存的固件。
旗子暗记为高,启动已闪存的固件;旗子暗记为低,启动勾引模式,并等待新固件。

引脚 3 是启用引脚(别号复位)。
如果这个引脚是高电平,微掌握器将事情,否则不事情。
为了避免旗子暗记弹跳,此处有一个 RC 电路(电阻/电容),在板启动或跳变时产生干净的旗子暗记,以防止意外复位。
由于该电路没有复位按钮,因此并不是完备必要,但最好保持谨慎。

引脚 24 是 IO 2 引脚,连接了一个带电阻器的蓝色 LED,起到显示关照的浸染。
让我们看看引脚 2 或 VDD 3V3。
这引脚是给芯片供电的,电压 3.3 V。
把稳并联电容器,这些电容器是去耦电容器,用于打消寄生滋扰。

下面是 PCB 设计布局和 PCB 板中重点研究的部分。

除此之外,干系的组件必须尽可能靠近。

添加 USB 模块

USB 收发器是一个将 USB 旗子暗记转换为串行、RS232 或其他类似协议的芯片。
在市场上,有各种各样的型号可供选择,此处利用 CH340C。

CH340C 不须要像 CH340G 一样的外部时钟,其用法大略,价格是 CP2102 或 FT232 的一小部分。

图的右侧所示。
它的设计非常大略,只有一块芯片,上面有两个去耦电容和一个 0 欧姆的电阻。
如果不愿定是否必须进行连接,则将这种电阻器用作电桥。

右边是 USB-C 连接器的示意图。
其浸染是连接到 PC 并给电池充电。
在 PCB 布线时,利用 USB-C 更具寻衅性,由于须要添加双连接,可以在任何方向利用导线。

提示:USB 旗子暗记是并行高速旗子暗记,必须只管即便平行布线,避免旗子暗记间的串扰,并只管即便将旗子暗记线布在靠近数字逻辑芯片的地方。

电池与电源管理

此处罚为三个部分:电池充电和保护电路、电源管理和电池电量掌握。
电池充电和保护电路:

对付 Li-Po 电池的利用,安全第一,须要做一个精确的恒流充电掌握器,使它不要在 4.2 V 以上充电或在 2.8 V 以下对电池放电,以免破坏电池。

TP4056 是一个锂聚合物电池充电器芯片,可供应恒定的线性电压电流,还可以通过修正 R 2 的阻值设置充电电流。
牢记充电电流应为电池容量的 25 % 旁边。
此芯片连接到 LED D1,以显示电池的充电状态。

FS312F-G 是一个电池保护电路芯片,如果检测到电池过度充电或过度放电,它会割断电池的利用。
这样可以避免破坏电池。

FS8205 是一个集成两个 MOSFET 晶体管以选择电路功率的芯片,如果电池处于得当的范围内,它将从电池中获取能量,如果将设备连接到 USB 端口,它将直策应用 USB 的能量事情。

电源管理:

该模块是电压转换器的升压电路,可供应 3.3 V 的恒定电压。
锂电池的最大充电电压为 4.2 V,最小安全电压为 2.8 V。
因此,须要供应恒定电压以避免微掌握器不稳定或显示器上的亮度较低。
为办理这个问题,此处利用 MT3608,它是一种可配置的升压电压转换器。
在该电路的输出端,电压为 4.2 V,高于器件所需的 3.3 V,以是利用 MCP1700 电压转换器将电压从 4.2 V 转换为 3.3 V。

这个方案可能存在过度设计或效率低下的问题,但这是最便宜有效的办理方案。

电池电量掌握:

就像升压电路前的分压器一样大略。
此点的电压最大将达到 4.2 V,因此仅需设计一个降至 3.3 V 的分压器以遵守 ESP32 的逻辑电平并将其连接到 ADC GPIO 即可丈量仿照电平旗子暗记。

设计 SD 卡模块

SD 卡利用 SPI 协议,这是一种双向通信,可实现高速通信。
利用外设时,不必担心串扰,由于它的速率不敷以产生磁场(至少此处没有任何问题)。

电路也非常大略,将每条线连接到 MCU 的 SPI GPIO 口并添加一个上拉电阻。
该电阻对付保持线路上的恒定高电平并避免可能毁坏数据传输的中间电平旗子暗记很主要。

此处还有我们的老朋友去耦电容器。

音频输出

利用 ESP32,有两种办法输出音频。
通过检讨数据表,此处可以利用集成的 I2S 到 DAC 转换器或直策应用 I2S 外设。

得到音频输出的最大略方法是利用 I2S 到 DAC 转换器,由于可以将扬声器直接连接到 GPIO,如果音频音量很低,则可以利用仿照音频放大器,这非常随意马虎履行。
但是这种办理方案也带来了一些不便。
DAC 仅利用 I2S 16 位中的 8 位,这意味着将丢失很多音频信息,导致音频质量非常差。

I2S 是一种数字音频协议,可担保高保真音频,而不造成质量丢失或噪声。
但须要一个转换器仿照转换器和放大器收到的东西。
此处采取 MAX98357 音频放大器。
该放大器将 I2S 旗子暗记转换为仿照旗子暗记,并将其放大以直接用于接扬声器或耳机。
该放大器/转换器可为我们供应 6.4W 的输出功率,并具有可配置的输出选择——在单声道或立体声音频之间进行选择和阻抗选择。

作者免责声明:"我对音频的理解不是很深,以是一些音频数据可能是缺点的,仅供参考。
"

添加按键

ESP32 是一个不错的模块,但它的 GPIO 端口数量很少。
但是不用担心,我们有 TCA9555 办理方案。

TCA9555 是 I2C GPIO 多路复用器。
该器件最多许可利用 18 个额外的 GPIO。
这些 GPIO 可用作输入或输出,并可通过 I2C 进行掌握或检讨。
因此,仅利用两个 GPIO(I2C SDA 和 I2C SCLK),就有了 18 个额外的 GPIO!
延迟不是问题,由于可以读取或写入高达 400 Khz的数据,这意味着每秒 400000 次!

让我们看一下事理图。
该多路复用器可与 I2C 一起利用,因此须要上拉每个旗子暗记以避免线路上的噪声。
它也有一个中断引脚,但未利用。
I2C 旗子暗记为 SCL 和 SDA 引脚(19 和 20)。
须要通过硬件配置设备的地址,此配置通过设置引脚 A0、A1 和 A2 的逻辑电平来完成。
此处只有一个 I2C 设备,因此给出地址 0x00。

末了,所有开关按钮都直接连接到芯片,我们通过软件配置设置了上拉或下拉电阻,由于该多路复用用具有可配置的内部电阻。

该设备的有趣之处之一是电感式按钮,它们是没有丝印层的 PCB 布线,因此,带有碳膜的橡胶按钮可以用作开关按钮。
这是游戏手柄上的常规配置。
如果要在设计中利用,可以在项目附带的库中找到。

配一款亮丽的显示屏

显示器采取 IPS 1.3 英寸屏幕,分辨率为 240 x 240 px,可以供应非常俊秀的色彩和清晰的图像。
通信协议是 SPI,可以实现高达 70 FPS 的帧速率(数据表中注明)。
另一方面,可以掌握显示器的背光以选择亮度等级。
通过 BS138 MOSFET 晶体管完成掌握显示屏上嵌入的 LED 的电流。

完成

现在就可以运行这台复古游戏机了,开启你的复古游戏回顾之旅吧!

原文地址:https://www.instructables.com/MicroByte-DIY-Retro-Console/

项目作者:JuanF92

译文首发于:DF创客社区 https://mc.dfrobot.com.cn/thread-318443-1-1.html

转载请注明来源信息

标签:

相关文章