树莓派CM3 掌上游戏机DIY全记录

MAKER:DeanChu,译文:冗长的的兴味 Cherry

这部写作的灵感来自于皮格尔。 Zero,韦米的最初的游戏男孩 Zero连同GreatScottLab的掌上游戏机。它们都是鉴于检验体系的游戏机。,十足应用呸声派零(W)平台。又,我尿了两下。 零游戏机以前,见了两个首要成绩。。

1、Raspberry Pi 零(W)刚才单核细胞皮质-A7和512MB RAM,这是为了运转NES / SNES / GB这些按次依然构成疑问句和否定句。又,当我沉思运转ps时 / N64 电动车组时期,那种纸板盒的体会真是难以忍受。。甚至有些GBA游戏也不克不及平稳地运转(有些音频推延),在什么价钱新兽穴手势中,譬如金属 slug还推延处置复杂事件。);
2、块游戏机的显示分界线应用SPI或TV鼻子输出。 SPI陈列品必要CPU来帮忙图片缓冲促动器,这会使游戏体会很坏了。,帧速率也受SPI记下时间击毁的限度局限。。电视节目鼻子输出的显示十足的不敷好。。

为了处理大概成绩,敝用呸声皮 Module 3和具有DPI鼻子的逆命题游戏机。它本应可以企图高分辨能力和高帧速率。,而且顺利的运转领地仿效者。

工序1:记入项主词所需议会

以下执意包装掌上游戏机所需的议会。倘若已确定的构成的您没,请用其它构成的来险胜。

    木莓 CM3 Lite 版

  • 少量 LCD带RGB / DPI鼻子

  • 吃或喝鞭打

  • 键什么价钱

  • 8欧发言人

  • 1000mAh锂离子电池

  • IC什么价钱, STM32F103C8T6,IP5306,TDA2822,NC7WZ16,SY8113,PT4103等

  • 配合者什么价钱,USB-Micro Female,PJ-237(话筒使想起),TF-Card Jack,DDR2 SODIMM等

  • 钝态议会什么价钱,抵抗器,蓄电器和圣职授予的人

  • 专用化PCB

  • 3D冲床,选择可以用誊写版印刷机印刷出份量为152 66 10毫米汞柱的零件

工序2:木莓 CM3

木莓 CM3 是一款效能很很的果心板,依从的举行典型设计的什么价钱小玩意。该模块应用DDR2 SODIMM型配合者,该款应用起来短时间有些难事。同时, BCM2837内核的BANK1和BANK0的领地GPIO引脚均导出。

开端应用计算模块时,敝必要企图几种多种多样的的矛盾:,,和。穿着,和用于什么价钱350mA的超国家政治实体外围的供电。 用于开车电视节目输出DAC,因敝不必要电视节目输出效能,因而可以直跑步接到。 本应衔接到VBAT的引脚上,并为其果心供电。 VBAT输出接到的矛盾漫游为~,须确保电源输出要跑到。敝应用 CMOS,VCCIO引脚(GPIO_XX-XX_VREF)衔接到,SDX_VREF引脚也衔接到。

领地的HDMI,DSI和CAM引脚在这一步都不要衔接。请将EMMC_DISABLE_N引脚衔接到,因敝将要把TF卡作为硬盘促动器,而挑剔USB启动效能。

将SDX_XXX引脚衔接到TF卡插槽上的响应引脚,不必要上拉或下拉抵抗。在这一步,敝预备启动Raspberry Pi CM3.从最大电源按次开启:5V→→,与体系可以启动,又鉴于没输出素养,敝还不觉悟它设想经常地任务。因而,敝必要鄙人一步添加第一显示来反省它。

在持续领先,敝必要透露木莓中每个GPIO的效能。我将企图了什么价钱证件,取第一新的TF卡,在启动证件夹中放入“”,“”和“”。将“”放在/boot/overlay证件夹中。 解释每个GPIO的默许效能。敝必要将GPIO14/15与LCD衔接,把GPIO14/15更代替普通GPIO,并将UART0效能移至GPIO32/33。把GPIO40/41作为pwm效能,并将它们辨别设置为右舷和靠人行道的音频输出。是device-tree互搭证件,敝将把GPIO0-25作为DPI效能。

写“dtoverly = dcdpi”来透露木莓负荷敝企图的dtoverly证件。
OK,木莓的每个GPIO每个详细资料都交代透明的了,敝持续前进吧!:)

工序3:衔接LCD模块

鉴于在这里可能性应用到多种多样的的DPI/RGB鼻子的LCD模块,依据敝将以本身应用的模块为例。倘若您选择以此类推的,请注重模块的引脚,并理由引脚系统命名法举行衔接。

比如: LCD模块上有两个鼻子:SPI和DPI。 SPI用于配给LCD开车IC的初始设置。,敝可以将它们衔接到究竟哪一个未应用的GPIO。仅衔接重排,CS,MOSI(SDA) / 未应用SDI和SCL引脚MISO(SDO)引脚。设定初值LCD开车按次,敝应用BCM2535 C库开车GPIO并输出考虑到的设定初值序列prov。可以在记入项主词证件库中找到源证件。

还应注重的是:理由阐明,将BCM2835固着到另第一呸声派3上 C库。与应用命令gcc -o lcd_init lcd_init.c lbcm2835汇编源证件。与在死亡 在/etc/证件的0领先添加一排:“/home/pi/lcd_init”(授予已将汇编好的应用按次放在/home/pi证件夹下)。

在这里加强的是,源证件仅用于我应用的考虑到模块,倘若应用多种多样的的LCD模块,请设定初值序列并响应地修正源证件。大概奔流很复杂。,因庇护上没显示。,这执意为什么我强烈提议您在RPI-CMIO板上执行此伪造。,因它输出领地的gpio,依据,您可以应用UART或WLAN举行调试。

与很简略。,将液晶陈列品模块衔接到靠人行道的缝合裂口。。详细然而停止您的LCD模块,选择RGB花样是睿智的。对我就,我选择了DPI_OUTPUT_FORMAT_18BIT_666_CFG2(花样6)。您可以理由您的选择更改“dpi_output_format = 0x078206”。倘若您的LCD模块应用多种多样的的分辨能力,请健康状况HDMI计时 = 480 0 41 60 20 800 0 5 10 10 0 0 0 60 0 32000000请参阅此处的文档。。

倘若领地设置都一直,因而下次你开端圆周率的时辰,注意30-40秒的黑屏(从loadi的初始本子开端,它将显示在庇护上。。

工序4:电子琴和音频

在下面的两个工序中,敝早已执行了果心和输出。。如今敝来谈谈输出党派。。
A.游戏机钥匙和紧固件。
敝必要10个触摸鞭打作为顶部/原因/右舷/靠人行道的,LR和A/B/X/Y紧固件。以此类推紧固件应用普通的6 x 6电子琴粒子,比如,开端/选择和音量扩大某人的权力/缩减。
有两种办法可以将紧固件衔接到呸声派。

    将紧固件直跑步接到PI上的GPIO。

  1. 将紧固件衔接到MCU并应用USB HID拟定议定书和PI衔接。
    我选择后者。,因敝必要第一庞大的机来处置序列上的电源。,使Pi远离人体的触摸,非常的更使安全。

依据,将键衔接到STM32F103C8T6,与将MCU衔接到Pi的USB上。在本工序完毕后可以找到MCU按次的第一围住。修正中间的管脚解释,见庞大的机 汇编USB库。或许,文字后在略图中共享等于的管脚解释,您可以率直的将hex证件下载到mcu。

音频输出。
Raspberry Pi 3B的权力略图举办了过滤pwm的好办法,异样的线路在在这里也能晴朗的地任务。。必要指数的少数是,请铭记不忘在最后的事物处添加“audio_pwm_mode = 2”,以贬值底噪。

我选择了TDA2822为发言人促动器,线路是权力的BTL线路。请注重,耳机使想起PJ-327在右舷输出端有第一非本意的动作准假引脚。当没耳机插领导时尚的人,引脚3衔接到右声道。一旦耳机拔出,该引脚就从右声道准假。此引脚构成疑问句和否定句作发言人输出引脚,发言人将在耳机插领导时尚的人哑巴。

工序5:电源党派

全部地设计了3个供电党派:MCU电源,委托者和DC-DC改革者。
电源与领地以此类推电源划分,因敝必要它执行预刺激按次。

当按下电源紧固件时,PMOS将LDO的EN引脚衔接到电池以启用LDO。与MCU刺激(紧固件依然按下)。在MCU启动时,要反省电源紧固件设想按下十足长时期。大概2秒后,倘若MCU电源紧固件依然发生按下状况,它将拉高 “PWR_CTL”引脚到PMOS。此刻,MCU适应物MCU电源的把持。

再次按下电源紧固件两秒钟后,庞大的机将执行关机按次。在断电按次完毕时,MCU将安心PWR U CTL引脚,断开PMOS,庞大的机电源闭上。

b.应用IC的委托者议会 IP5306。

该集成线路应用高压地带集成的SOC举行充电和放电。,依从的更电源,它完整适合敝的必要。。IC可以给电池充电。,企图5伏输出,并同时企图4个LED指示盘的电荷量。

改革者,应用两台SY8113高效3A改革者。

输出矛盾可由两个抵抗器设置。。确保电源按次,敝必要庞大的机先启动热情的支持者。 key_ip导火线将模仿key-to-key-pin的IP5306,翻开内地的5伏用机器加工。以前,庞大的机将可以完成增加RASP-en引脚来贬值矛盾。。供电矛盾后,弛压的en针举起,输出启用。。

D.电池。
两个1000mAh的锂离子电池,50mmx34mmx5mm。

工序6:固着体系

这一步,敝要将领地的东西固着执行。
a.将RetroPie图像下载并刷写到新的TF卡。
刷体系一道菜可以在在这里找到。下载Raspberrypi 2/3版本。在图像闪烁后您会查看2个分区:FAT16体式的“导致”分区和EXT4体式的“Retropie”分区。

b.执行后,不要立刻将其拔出木莓,因敝必要为该ROM添加FAT32分区。
应用DiskGenius等分区器将EXT4分区健康状况为大概5-6GB,与加工第一新的FAT32分区,并在TF卡上保持健康领地构成疑问句和否定句以一定间隔排列。请参阅我上传的数据的图片。
确保您的体系可以将TF读卡器辨认为USB-HDD素养,而且您将在探针中查看3个分区。穿着两个是可采访的,Windows会断言你体式化在左边的。不要体式化它!

c.率先翻开“导致”分区并如工序2设置引脚配给。
您可以在此工序下失压,并将领地证件和证件夹完全一样的东西到启动分区。请取消将已汇编的lcd_init本子也完全一样的东西到启动分区。

d.预备第一流的启动。
鉴于没显示,我强烈提议您应用带有USB wlan素养的RPI-CMIO板。与你可以配给wpa_supplicant证件并在这一步启用ssh。又,倘若你不计划非常的,GPIO32/33也可以用作UART端子。将TX(GPIO32)和RX(GPIO33)引脚衔接到USB转卡钓模块,并以115200的波特率采访端子。但不论何种采取哪种方法,你都必要采访端子。

在第一流的启动时,体系在尝试范围证件体系时会锁上。疏忽它,按开端(USB HID的输出键)偏重启。在端子上,将lcd_init本子完全一样的东西到用户“pi”的主证件夹,并如工序3设置非本意的动作启动。重行开始后,您本应查看庇护亮起并显示什么价钱实质。

e.游戏机已预备好演奏。
为了将ROM和BIOS负荷到TF卡中,每回都必要采访端子。为了简略起见,我提议你设置FAT32分区。
率先将/home/pi下的RetroPie证件夹支持到RetroPie-bck:“cp -r RetroPie RetroPie-bck”。与在/etc /fstab中添加一排:“/dev/mmcblk0p3/home/pi/RetroPie defaults,uid = 1000,gid = 1000 0 2”将FAT32分区非本意的动作挂载到RetroPie证件夹并将领地者设置为用户“PI”。重行开始后,您会见RetroPie证件夹的实质十足消逝(倘若挑剔,请重行开始),并在庇护上显示什么价钱笔误。将RetroPie-bck中间的领地证件完全一样的东西回RetroPie偏重行开始。笔误本应处理,您可以如庇护上的阐明配给输出素养。

倘若你想添加游戏的ROM或BIOS证件,请在断电时拔掉闩TF卡并将其衔接到电脑。翻开第三个分区(铭记不忘要疏忽体式化准时的!!!)并将证件完全一样的东西到响应的证件夹。

工序7:3D用誊写版印刷机印刷外壳和键

a.GameBoy Micro作风外壳。
b.以此类推必要用誊写版印刷机印刷的冠词

    ABXY键吃或喝鞭打 x4

  • LR键 吃或喝鞭打x2

  • CROSS键 触摸鞭打X1

  • TOP键 触摸鞭打X1

  • 底键 触摸鞭打X1

每把钥匙都是用PLA用誊写版印刷机印刷的,20% Fill, 厚,确保它们十足巩固。

用誊写版印刷机印刷前请先用检验性的用誊写版印刷机印刷什么价钱立方形来反省冲床的诚实。
必要3根5mm长的φ3mm的带帽螺栓和4根10mm长的φ3mm的带帽螺栓包装被拖。

工序8:将领地的计算机硬件、软件结成被拖

鉴于线路非常复杂,因而最好做什么价钱PCB预备任务。十足线路图和我本身的PCB版本在记入项主词证件库中。倘若您计划应用我的PCB版本,请不要裁剪Top_Solder图层上我的拉环。
倘若您是本身专用化(最好的选择),把您本身的PCB证件柄本地的制造厂来做,因很难依靠机械力移动到我在PCB上应用的领地构成的。
领地议会焊到PCB上并举行检验。

    将hex证件下载到MCU。

  1. 将LCD模块贴在PCB上。 LCD模块本应装在盒子的PCB在上的3mm处。用地层厚厚的可逆的胶带粘在下面那就够了。

  2. 将FPC衔接到配合者并拔出CM3L和TF卡。先不要焊电池,拔出USB电源并将其启动!反省领地紧固件和显示。测BAT+和GND当中的矛盾,反省矛盾设想在摆布。倘若矛盾经常地,拔下USB电缆并焊电池。试着按下电源紧固件。

  3. 将CROSS和ABXY紧固件放入TOP盒中,与将PCB放入盒子中。用3颗扭将PCB扣紧在机箱中。在领地SKPDACD010紧固件的反面粘上什么价钱厚厚的可逆的胶带,并将电池扣紧在下面。请应用厚胶带防止SKPDACD010的引脚损坏电池。

  4. 将发言人贴在BOTTOM盒子上。在闭上它领先,您可能性必要尝试领地紧固件,反省它们设想经常地任务并突然出现。与用4个扭扣紧外壳。
    到此领地工序早已十足执行,感激的样子病人一直挺到结束!Enjoy!

毛病温馨准时的

1)重行反省略图和PCB上LCD模块的引脚衔接。
2)反省LCD导火线线金属线缝合术胶料。
3)当你半信半疑电源党派时,请如电源按次举行焊和检验。在前的5V,与是和。领地功率党派完成检验后,再焊以此类推构成的。
4)倘若陈列品有构架的频繁含糊,请尝试完成设置dpi_output_format来混乱的PCLK导火线的机性。
5)倘若陈列品起程结心,请尝试混乱的HSYNC或VSYNC导火线的对立。
6)倘若指示盘短时间起程结心,请尝试健康状况扫描过的设置。
7)倘若陈列品显示为黑色,请尝试注意体系启动到本子。倘若你必要从陈列品开端,请尝试将SPI衔接到MCU,并应用MCU设定初值LCD模块。
8)倘若指示盘一直是黑色的,请再次反省设定初值按次。

本记入项主词所用到的PCB证件、3D以前的等资源可在记入项主词证件库中找到:

更多精彩实质

3D用誊写版印刷机印刷 Switch Joy-Con 勒缰绳使停步

PiSwitch:用木莓加工Switch游戏机

用PS4勒缰绳使停步做Arduino的把持器

用Arduino DIY 70后的复旧游戏机