Open Source Sharing: A Guide to Creating a Four-Layer Board with Allwinner H3, from Learning Allegro to Running Linux

Sharing an article from an expert, covering everything from PCB design to layout, and finally getting Linux to run. Let’s learn together!

Author: laplace

After learning Allegro, I always wanted to design a board, create the schematic, layout it myself, and finally get Linux running. I also wanted to learn a bit of Linux, and I saw the H3 projects from experts on the forum, so I wanted to give it a try. First, I found the official documentation for H3 (downloaded from Wu Chuanbin), which provided a reference for the schematic design, making it quicker. Then, I started drawing the PCB.Configuration: USB2, HDMI, headphone, button1, 1 custom LED (for learning Linux LED control, haha), 1 MPU6050 gyroscope (to further learn Linux driver usage), DDR3 512M *2, EMMC 5.0, WIFI, TF card.

The PCB uses a four-layer design.Completed board: TOP layerOpen Source Sharing: A Guide to Creating a Four-Layer Board with Allwinner H3, from Learning Allegro to Running LinuxGND layer 02Open Source Sharing: A Guide to Creating a Four-Layer Board with Allwinner H3, from Learning Allegro to Running LinuxPOWER layer 03 power distributionOpen Source Sharing: A Guide to Creating a Four-Layer Board with Allwinner H3, from Learning Allegro to Running LinuxBOTTOM layerOpen Source Sharing: A Guide to Creating a Four-Layer Board with Allwinner H3, from Learning Allegro to Running LinuxFirst, let’s talk about the DDR3 section, T topology. The board has a 50-ohm line width of 5.78 mil, which makes the routing quite compact, and I didn’t meet the 3W principle, using 2x line width instead. Referencing the manufacturer’s demo: different address lines are 600 mil long, and the same network is 50 mil longOpen Source Sharing: A Guide to Creating a Four-Layer Board with Allwinner H3, from Learning Allegro to Running LinuxData lines within the group are 50 mil longOpen Source Sharing: A Guide to Creating a Four-Layer Board with Allwinner H3, from Learning Allegro to Running LinuxClock lines are 50 mil longOpen Source Sharing: A Guide to Creating a Four-Layer Board with Allwinner H3, from Learning Allegro to Running LinuxDDR3 TOP layer routing:Open Source Sharing: A Guide to Creating a Four-Layer Board with Allwinner H3, from Learning Allegro to Running LinuxThe routing is quite messy, with small line spacing, mainly because the line width is a bit large. DDR3 BOTTOM layer routing: to ensure equal length, it also looks messy. The inner layers ensure the plane is complete: TOP layer references GND layer 02, BOTTOM layer references VCC_dram:Open Source Sharing: A Guide to Creating a Four-Layer Board with Allwinner H3, from Learning Allegro to Running LinuxToday, I used DragonHD to test DDR3, I connected USB0, but for some reason, there was no response. When I clicked start, it just showed this:Open Source Sharing: A Guide to Creating a Four-Layer Board with Allwinner H3, from Learning Allegro to Running LinuxI kindly ask the experts to explain how to use this software, do I need any drivers? I’m currently quite confused. EMMC: The EMMC is designed with 200 mil equal length, and I haven’t used EMMC yetOpen Source Sharing: A Guide to Creating a Four-Layer Board with Allwinner H3, from Learning Allegro to Running LinuxReferencing GND layer 02 VCC_IO_3.3V, ensuring the plane is complete. The TF card is also 200 mil equal length:Open Source Sharing: A Guide to Creating a Four-Layer Board with Allwinner H3, from Learning Allegro to Running LinuxHDMI: The HDMI manufacturer requires not to use serpentine routing, and the equal length requirement is relaxed; a straight connection is sufficient, which is quite simple.Open Source Sharing: A Guide to Creating a Four-Layer Board with Allwinner H3, from Learning Allegro to Running LinuxUSB has an internal 5 mil maximum issue on the wifi-sdio: firstly, the routing is messy, and secondly, the data line reference plane is crossed over the split, which I didn’t notice at the time due to lack of experience.Open Source Sharing: A Guide to Creating a Four-Layer Board with Allwinner H3, from Learning Allegro to Running LinuxBoard Layout:I believe the overall layout of the board is not problematic, but the wiring is very messy, lacking aesthetic organization, so the layout needs significant improvement. The board took a total of 10 days to complete.

Leave a Comment