

PCEHD
PC Engine HDMI
- Size
- 118.2 × 73 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 165
- Nets
- 192
- Pads
- 946
- Tracks, vias
- 3,091, 414
- Pours
- 6
- Routed
- Yes
- KiCad
- KiCad 5 (file 20171130)
- Created
- 3 Jan 2020
- Updated
- 20 Jan 2020
Overview
PCEHD is an open-source printed circuit board by wifiber, from the wifiber/PCEHD repository on GitHub. It is a 2-layer board of 118.2 × 73 mm with 165 parts on 192 nets, routed with 3,091 tracks and 414 vias.
It is built around the SN74LVC2G17DBV, IS25LP016D-JBLE and SN74LVCC4245APW, with the TLV70012DCK, AP7361-33E and FS7140-01G-XTD among its other parts. Its parts include 93 capacitors, 32 resistors, 20 ICs, 4 diodes and 3 transistors. It belongs with the interfaces and adapters boards of this library.
Main components
12SN74LVC2G17DBV
SOT-23-6-40℃~+85℃ 1 1.65V~5.5V 10uA 2 32mA 32mA 5.4ns@3.3V,50pF 74LVC Schmitt trigger SOT-23-6 Buffers, Drivers, Receivers, Transceivers ROHSTexas InstrumentsBuffers, Drivers, Receivers, TransceiversIS25LP016D-JBLE
SOIC-8-208mil100,000 cycles 133MHz 16Mbit 2.3V~3.6V 20 Years 200us 5uA Power-on reset、Hardware write protection、Software write protection、Write enable latch SPI SOIC-8-208mil NOR FLASH ROHSISSINOR FLASHSN74LVCC4245APW
TSSOP-24-40℃~+85℃ 1 2.7V~5.5V 4.5V~5.5V 8 Bidirectional Tri-State TSSOP-24 Translators, Level Shifters ROHSTexas InstrumentsTranslators, Level ShiftersTLV70012DCK
SC-70-5-40℃~+125℃@(Tj) 1 1.2V 200mA 31uA 48uVrms 5.5V 68dB@(1kHz) Fixed Positive Under Voltage Lockout、Over Current Protection、Over Temperature Protection、Enable SC-70-5 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSTexas InstrumentsVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsAP7361-33E
SOT-223-40℃~+85℃@(Ta) 1 1A 3.3V 500mV@(1A) 65dB@(1kHz) 6V 70uA Fixed Over Current Protection、Over Temperature Protection、Short Circuit Protection Positive SOT-223 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSDiodes IncorporatedVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsFS7140-01G-XTD
SOIC-16-208mil0℃~+70℃ 2 300MHz 3V~3.6V 50ps CMOS、PECL External、Built-in I2C SOIC-16-208mil Clock Generators, PLLs, Frequency Synthesizers ROHSonsemiClock Generators, PLLs, Frequency SynthesizersSI5351C-B-GM
QFN-20(4x4)-40℃~+85℃ 1.71V~3.6V 200MHz 70ps 70ps 8 Built-in phase-locked loop、Spread spectrum、Built-in clock monitoring and loss-of-lock detection、Multi-source clock input CMOS External I2C Support QFN-20(4x4) Clock Generators, PLLs, Frequency Synthesizers ROHSSkyworks SolutionsClock Generators, PLLs, Frequency SynthesizersTLV70018DCK
SC-70-5-40℃~+125℃@(Tj) 1 1.8V 200mA 250mV@(200mA) 31uA 48uVrms 5.5V 68dB@(1kHz) Fixed Positive Under Voltage Lockout、Over Current Protection、Over Temperature Protection、Enable SC-70-5 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSTexas InstrumentsVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsTLV70025DCK
SC-70-5-40℃~+125℃@(Tj) 1 2.5V 200mA 250mV@(200mA) 31uA 48uVrms 5.5V 68dB@(1kHz) Fixed Over Current Protection、Over Temperature Protection、Thermal Shutdown Positive SC-70-5 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSTexas InstrumentsVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsBC847
SOT-231 NPN 100MHz 100mA 100nA 110 200mW 45V 500mV 6V NPN SOT-23 Bipolar (BJT) ROHSShikuesBipolar (BJT)RCLAMP0524P
DFN2510-10-55℃~+125℃ 0.35pF、0.8pF 17V 4.5A 5V 6.8V 80nA ESD Four channels IEC 61000-4-2 Unidirectional DFN2510-10 ESD and Surge Protection (TVS/ESD) ROHSTECH PUBLICESD And Surge Protection (TVS/ESD)MF-FSMF020X-2
0603-40℃~+85℃ 0.65mm 1.05mm 1.85mm 200mA 40A 500mA 500mW 600ms 900mΩ 9V 0603 Resettable Fuses ROHSBournsResettable Fuses
README
README.mdPC Engine / Turbo Grafx HDMI output board (PCEHD)
Overview
PCEHD is a project to deliver HDMI video/audio from the PC Engine/Turbo-Grafx utilizing the digital video bus exposed on the expansion connector. The goal is to take the digital video directly from the console and upscale it to 1080p.
Features
- None yet
TODO
- Finish initial verion of schematic (DONE)
- Finish initial verion of HDL code (need help here)
- Get test PCBs made (PENDING)
- Get HDMI video output working (PENDING)
- Get analog audio encoded into HDMI stream (PENDING)
Long Term TODO
- Optical Drive Emulation (PENDING)
- Flash cart / SD card option (PENDING)
Installation
Attach PCEHD to the expansion port on your PC Engine or Turbo-Grafx console. Enjoy lag free 1080p.
Usage
More info and discussion
See the docs folder for a collection of PC Engine dev material. There are good schematics online and the TurboGrafx-16 Unit Service Manual provides an excellent block diagram that really makes understanding the interaction of the 3 main HuC62xx chips much easier.
The aim of the PCEHD project is to reproduce the IC112 (HuC6260) inside the FPGA on the PCEHD. HuC6260, the Video Color Encoder, has an internal palette used for the background and sprites. It is made up of 512 9-bit entries. The first 256 entries are for the backgrounds and the last 256 are for the sprites. When the console first boots up, the VCE is initialized with palette data from the Hu Card by the CPU. According to the schematics, the data lines from the HU card all have pull-ups to 5v. This is why when you start the console with no game inserted you get a white screen - the VCE palette get filled with all 0xFF for the RGB data, which then returns white on the screen.
Requirement 1. - The FPGA needs to snoop on the CPU -> VCE communication when the console first boots. The FPGA needs to see what the CPU is loading into the VCE internal palette (All 512 entries). This is possible since both the data and address bus are exposed on the expansion connector. So the FPGA should have insight to the CPU -> VCE communication. Using the FPGA core for the HuC6260, if we are connected to the same address and data bus as the physical VCE, we should be able to get the CPU to update both the physical VCE and the FPGA-VCE at the same time, since the FPGA-VCE is listening at the same address as the VCE inside the console.
Once the console boots up and the CPU has successfully loaded the VCE pallette, the VDC now comes into play. The VDC and VCE share a 9-bit video bus (This is separate from the data bus the CPU used to load the palette in the steps above). The VDC will be placing data on the video bus, this data is a 9-bit address into the VCE palette (9-bits = 512 entries). The VCE takes these addresses, does the lookup into its palette and returns the 9-bit RGB code.
Requirement 2. - The FPGA needs to snoop on the VDC -> VCE communication. The VDC will be placing addresses on the video bus. Those addresses reference colors stored in the 512 entry VCE palette table. Once the VCE looks up the address, the data it returns is 9-bit RGB data. This 9-bit RGB data is used inside the HuC6260 to generate the analog RGB and composite signals. Assuming the FPGA knows what RGB values are stored in each VCE table entry.(Req 1) Also, assuming the FPGA knows what the VCE will display next based on what palette address the VDC was placing on the video bus - we should be able to recreate the scanline that the VCE would have displayed. From there its a matter of line-doubling and tweaking to fit the 1080p standard. Again, using the FPGA core for the HuC6260 should give us a VCE that acts just like the phyiscal one inside the console. Once we have the VCE outputting the RGB data, its a matter of formatting it into the correct HDMI standard.
Thanks to marqs for the OSSC/CPS2_HDMI projects that are the majority of the base material for this project https://github.com/marqs85
Thanks to the FPGAPCE project on github for a nice HDL example of the entire console. https://github.com/Torlus/FPGAPCE
Thanks to skum for the very clean and well layed out KiCad symbol and footprint of the expansion connector. Its 69 pins but somehow his symbol is manageable. https://github.com/skumlos/pcengine-rgb-addon
Parts
165| Qty | Value | Footprint | References |
|---|---|---|---|
| 71 | 0.1u | custom_components:SM0603_Capa_libcms | C3, C10, C11, C12, C13, C14, C15, C17, C19, C20, C23, C24, C28, C29, C31, C32 +55 |
| 12 | 10K | custom_components:SM0603_Resistor_libcms | R17, R19, R20, R21, R22, R25, R26, R27, R28, R29, R30, R32 |
| 11 | 10u | custom_components:SM0603_Capa_libcms | C1, C2, C5, C8, C16, C18, C25, C26, C30, C67, C69 |
| 10 | 1u | custom_components:SM0603_Capa_libcms | C21, C22, C70, C71, C72, C74, C75, C76, C77, C79 |
| 6 | 10k | custom_components:SM0603_Resistor_libcms | R5, R7, R8, R12, R13, R14 |
| 6 | SN74LVCC4245APW | custom_components:SN74LVCC4245APW | U9, U10, U11, U14, U18, U19 |
| 5 | 2.2k | custom_components:SM0603_Resistor_libcms | R1, R3, R4, R9, R10 |
| 4 | MPZ1608S221A | custom_components:SM0603_Resistor_libcms | FB1, FB2, FB3, FB4 |
| 4 | SolderJumper_2_Open | Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm | JP1, JP2, JP3, JP5 |
| 3 | 1K | custom_components:SM0603_Resistor_libcms | R23, R24, R31 |
| 3 | 4.7k | custom_components:SM0603_Resistor_libcms | R6, R16, R18 |
| 3 | BC847 | Package_TO_SOT_SMD:SOT-23 | Q1, Q2, Q3 |
| 2 | RClamp0524P | custom_components:SLP2510P8 | D2, D3 |
| 2 | TLV70012 | custom_components:SOT-23-5_Handsoldering | U15, U17 |
| 1 | 10CL025YE144C8N | custom_components:TQFP-144_thermal | U12 |
| 1 | 1k | custom_components:SM0603_Resistor_libcms | R11 |
| 1 | 25 | custom_components:SM0603_Resistor_libcms | R15 |
| 1 | 25.000MHz | Crystal:Crystal_SMD_SeikoEpson_FA238-4Pin_3.2x2.5mm_HandSoldering | Y1 |
| 1 | 47u | custom_components:SM0603_Capa_libcms | C27 |
| 1 | 74153 | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U8 |
| 1 | 887 | custom_components:SM0603_Resistor_libcms | R2 |
| 1 | ADV7513 | custom_components:LQFP-64-1EP_10x10mm_Pitch0.5mm_Handsoldering | U2 |
| 1 | AP7361 | custom_components:SOT-223_Handsoldering | U1 |
| 1 | FS7140-01G-XTD | custom_components:FS7140-01G-XTD | U5 |
| 1 | HDMI_CONN | custom_components:HDMI_CONN-10029449-111RLF | J1 |
| 1 | IS25LP016D-JBLE | custom_components:SOIC-8_3.9x4.9mm_Pitch1.27mm_Handsoldering | U13 |
| 1 | JTAG_CONN | Connector_IDC:IDC-Header_2x05_P2.54mm_Vertical | P1 |
| 1 | MF-FSMF020X-2 | custom_components:SM0603_Resistor_libcms | F1 |
| 1 | Micro_SD_Card | Connector_Card:microSD_HC_Hirose_DM3D-SF | J2 |
| 1 | PCEngineExpansion | pcengine_expansion:PCEngineExpansion | U4 |
| 1 | PCM1808PWR | custom_components:PCM1808PWR | U6 |
| 1 | SD05-7 | custom_components:SOD-323_Handsoldering | D4 |
| 1 | SI5351C-B | custom_components:QFN-20-1EP_4x4mm_Pitch0.5mm_Handsoldering | U7 |
| 1 | SN74LVC2G17 | custom_components:SOT-23-6_Handsoldering | U20 |
| 1 | TLV70018 | custom_components:SOT-23-5_Handsoldering | U3 |
| 1 | TLV70025 | custom_components:SOT-23-5_Handsoldering | U16 |
| 1 | ZHCS400TA | custom_components:SOD-323_Handsoldering | D1 |
Questions
How big is the PCEHD PCB?
It measures 118.2 × 73 mm and has 2 copper layers, 1.6 mm thick.
What parts does the PCEHD use?
165 parts, built around the SN74LVC2G17DBV, IS25LP016D-JBLE, SN74LVCC4245APW and TLV70012DCK. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the PCEHD KiCad files?
From the wifiber/PCEHD repository on GitHub, at the commit this page was made from: the board is pcb/pcehd.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the PCEHD design in my own project?
Its repository states no licence, so its author keeps all rights: ask wifiber before reusing the design.
Similar boards
- 2 layers103.9 × 43.5 mm

- 4 layers124.6 × 68.7 mm

- 2 layers212.5 × 99.5 mm

- 4 layers42 × 44.4 mm

STM32 FlightController
JLjoestar23/STM32_FlightController
PCB, software, firmware, and other files related to a custom made STM32-based flight controller.
56 parts1 - 4 layers

- 4 layers100 × 68 mm

Basic ecp5-pcb
mattvenn/basic-ecp5-pcb
Reference design for Lattice ECP5 FPGA. Featuring Raspberry Pi interface and 6 PMODs
75 parts144CC0-1.0 - 2 layers100 × 68 mm

- 2 layers35.6 × 18.8 mm

Samd51 micropython 9
gnilsson2/YAPP_Box_KiCad_Generator
Generate Openscad boxes from KiCad PCB files.
22 partsMIT