I had to slap together a GPS board and made the mistake of routing TX to TX and RX to RX. Unfortunately it's relative, unlike MISO/MOSI designation. I had to cut traces and cross the connections. Yes, I literally had "measured once, cut twice", lol. Lesson to make absolutely sure before cutting the board. But also cheap insurance to have zero-ohm jumpers to make it easier to correct any crossed connections.
MDC/MDIO form a management interface for Ethernet PHY, it uses signalling somewhat similar to (but not compatible with) I2C, and is used to access Ethernet PHY's registers to configure all aspects of their functionality. Part of them are standardized, but many are device-specific. You can read more about this interface in IEEE 802.3, clause 22.2.4. This bus is very slow (< 1MHz), so you don't have to worry about routing it - as long as pins connect - it will work.
Good question. Do you have certain places in mind? For the PCBs (without assembly) I checked PCBWay, and the price was nearly triple ($290 USD at PCBWay, $108 at JLCPCB). I can check some other manufacturers, too.
I prefer assembling my prototypes manually. It can be a pain to manually place 200+ components per side before reflow, but I still enjoy the process, and my wife helps me out when I need to take breaks. It does take quite a bit of time (about 5-6 hrs per side with 200-300 components, most of which are 0402s), so I usually do it over the weekend.
Regarding fan PWM - since you have free GPIOs, you can use one of them to drive a MOSFET which would control the fan. Make sure it defaults to always-on when there are no control signals from the CPU via a pullup, and don't forget to add a reverse-protection diode across the fan to make sure fan coil's inductance won't destroy the MOSFET.
DDR3 has a minimum frequency of 303 MHz. You can't run it slower than that - at least according to specification. And I wouldn't worry about it too much anyway - 533 MHz is fairly slow by DDR3 standards (it can go as high as 933 MHz per JEDEC), so you can get away with some amount of sloppinness 😀
I placed it on the bottom to make the routing easier. From the top side, I'd have to get all of the traces swapped in order (left to right). Possibly, the pinout on the SoC could be changed to address this, but having the HDMI connector on the bottom is easy for me.
I had to slap together a GPS board and made the mistake of routing TX to TX and RX to RX. Unfortunately it's relative, unlike MISO/MOSI designation. I had to cut traces and cross the connections. Yes, I literally had "measured once, cut twice", lol. Lesson to make absolutely sure before cutting the board. But also cheap insurance to have zero-ohm jumpers to make it easier to correct any crossed connections.
MDC/MDIO form a management interface for Ethernet PHY, it uses signalling somewhat similar to (but not compatible with) I2C, and is used to access Ethernet PHY's registers to configure all aspects of their functionality. Part of them are standardized, but many are device-specific. You can read more about this interface in IEEE 802.3, clause 22.2.4. This bus is very slow (< 1MHz), so you don't have to worry about routing it - as long as pins connect - it will work.
It would be interesting to see and compare what other online PCB manufactures would quote.
Good question. Do you have certain places in mind? For the PCBs (without assembly) I checked PCBWay, and the price was nearly triple ($290 USD at PCBWay, $108 at JLCPCB). I can check some other manufacturers, too.
I prefer assembling my prototypes manually. It can be a pain to manually place 200+ components per side before reflow, but I still enjoy the process, and my wife helps me out when I need to take breaks. It does take quite a bit of time (about 5-6 hrs per side with 200-300 components, most of which are 0402s), so I usually do it over the weekend.
Honestly, I'd like to do both -- have a set assembled and try to assemble one myself. I figure I will learn from both approaches.
Cool progress. And yes, slow down your DDR if you have issues. Getting it to run at full spec speed can be some black magic.
This SoC runs DDR3 at relatively pedestrian 533 MHz, so you can get away with quite a bit of sloppinness in layout.
Regarding fan PWM - since you have free GPIOs, you can use one of them to drive a MOSFET which would control the fan. Make sure it defaults to always-on when there are no control signals from the CPU via a pullup, and don't forget to add a reverse-protection diode across the fan to make sure fan coil's inductance won't destroy the MOSFET.
DDR3 has a minimum frequency of 303 MHz. You can't run it slower than that - at least according to specification. And I wouldn't worry about it too much anyway - 533 MHz is fairly slow by DDR3 standards (it can go as high as 933 MHz per JEDEC), so you can get away with some amount of sloppinness 😀
Nice, almost done! What’s the reason the HDMI is positioned like that?
I placed it on the bottom to make the routing easier. From the top side, I'd have to get all of the traces swapped in order (left to right). Possibly, the pinout on the SoC could be changed to address this, but having the HDMI connector on the bottom is easy for me.
@@rehsd would you need to swap positions within differential pairs aswell?
@@trippycat Right, each of the pairs would need to be moved around.
You will definitely need a fan, unless your heatsink is going to be giant 😀 Just run Linux 😁
Ya', I can see how running Linux would push it harder than I have in the past. :)