An engineer who made a game machine by himself released the production procedure and circuit diagram
Instead of reproducing the game machine system on a PC like an emulator, a portable game machine that can download and customize the system for each game machine “GameslabIs being developed by Craig Bishop, a software consultant. Mr. Bishop said what kind of configuration Gameslab was designed and how it was actually assembledblogPublished in.
Gameslab project overviewCraig J. Bishop
◆ What is Gameslab?
According to Bishop, Gameslab is an open sourceKiCadARM-based processor software programmability designed withFPGACombined hardware programmabilitySoCofZynq-7000A game console based on The feature of Gameslab is that by downloading a system that matches the platform of each game or application, you can customize the specifications of the game console itself and play the game. For example, if you are playing a 2D scrolling shooter, you can download a system that implements on-screen sprite drawing settings and animation acceleration that are appropriate for the game. In addition, if you play Game Boy software, instead of emulating the Game Boy CPU and peripherals with software like an emulator, download the Game Boy specification to the FPGA and install the Game Boy system in Gameslab It seems that it can be mounted.
◆ Configuration of Gameslab
The following image is the Gameslab board. Gameslab is made up of about 360 parts.
Gameslab has a lithium polymer battery that is charged from MicroUSB. It is an IC chip that manages the batteryBQ24250With this, it is possible to supply power to the system even while the system is running from USB.
The following image is the schematic of Gameslab. Battery fuel gauge on low side of battery (IBAT)STC3115Is connected. At the time of writing the article, the following circuit diagram is before testing, "Please do not imitate," said Bishop. At the top of the schematic is a current sense amplifier for the main system rail, which is connected to all converters.
BQ24250 Rail Drives LDO to Power STM32L073 System Supervisor, Four Individual Switching Regulators for 1.0V / 1.5V / 1.8V / 3.3V Rails, LCD Backlight Driver, and 5V USB Boost Converter To do.
MCU that is responsible for the system monitoring programSTM32L073Manages the BQ24250 with I2C connections, measures the voltage and current on each rail, and launches the FPGA on each rail. Bishop says the STM32L0 series microcontrollers are ideal for applications like Gameslab due to their low power.
The Zynq FPGA subsystem includes a Zynq part with 512MB of DDR3 DRAM. DDR3 RAM operates at up to 533 MHz and provides up to 1066 Mbit / s throughput per data line. Here, 16 data lines are used for a total bandwidth of 2132 MB / s. Note that this is not the actual bandwidth, but a bandwidth that is about 80-90% efficient, optimized under all loads.
Zynq is a 32MB SPI FlashS25FL256SStart from Zynq is also connected to the STM32L073 system monitoring program via I2C and UART, so U-boot and Linux consoles can be dumped from USB.
Gameslab's liquid crystal display (LCD) is a 5 inch (800 x 480)TFT LCDAnd a multi touch panel is mounted on it. The color is 8bit / channel RGB 24bit, vertical sync line, horizontal sync line. The LCD lines are driven directly from 3.3V LVCMOS FPGA I / O ports. The backlight has a complicated structure because it requires a driver that generates a high voltage to drive the entire LED. The multi-touch interface is connected to Zynq's ARM Cortex-A9 subsystem via an I2C connection.
Gameslab has four colored buttons on the right, four gray directional buttons on the left, left and right shoulder buttons, and two sticks.
Gameslab's sound system includes a stereo codec with a built-in headphone amplifier and a Class D amplifier that drives two speakers. Before outputting to the codec via the I2S connection, flashy sound effects and mixing are performed on the FPGA side.
◆ Assembly of Gameslab
GameslabPrinted boardBishop said designing from scratch was "a patience attempt." Above all, fixing components accurately to a printed circuit board is a very important process. Bishop uses two L-brackets and tape to secure the printed circuit board at all.
On the boardMetal maskIt is said that solder paste is placed on a metal mask from something like a syringe. Bishop says he's using solder paste on cards he no longer needs.
Bishop uses an oven toaster to reflow the solder after placing the components on the board. Since it is an oven toaster that can bake up to four breads at a time, it seems to be suitable for large printed circuit boards.
On the right is Bishop's own oven controller for reflow that monitors the oven with a thermocouple and turns the oven on and off with PID control. According to the reflow process in the oven toaster, although some bridges occurred in the 0.5mm pitch LCD connector, they all worked without problems.
afterwards,RustHas set up the basic firmware for STM32L073. U-boot is configured and ported, and the Linux device tree is reconfigured from the prototype of the development board to boot Linux. "I was surprised when Gameslab launched Linux for the first time," said Bishop.
You can check the contents of Gameslab from the following movie.
(embed) https://www.youtube.com/watch?v=Ohdtz3Mil90 (/ embed)