17 Dec 2014: 2nd Revision back from assembly
Good news: the 2nd revision EOMA68-IC3128 CPU Card with the MCS7832 USB Ethernet IC and its functionality, has been preliminarily confirmed working. More testing is needed (including soak and performance testing) to ensure stability, however there have been no hardware faults found which is great.
Some very early pictures below were used to confirm that components on TOP and BOTTOM layers are within the height restrictions (2.0mm and 1.6mm) so that the CPU Card will fit inside the Litkconn casework. With a 1.2mm PCB the total is 4.8mm and the casework is 0.1mm thick steel, giving a total height of 5.0mm. The inductors shown bottom left (especially the 4.7uH one) are not final production components: much lower-profile ones will be used.
18 Nov 2014: Routing completed with MCS7832 and GL850G USB Hub
The routing of the MCS7832 has been completed: the schematics and layout now need review. One small inconvenience is that the MCS7832 Reference Schematic requires a 12mhz XTAL for the USB side that has under 90 Ohms ESR (equivalent series resistor). The space considerations being so small, the standard XTALs used here with the required specification are far too large (12mm x 5mm typically) and the 3.2 x 2.5mm XTALs are typically 120 to 200 ohms at 12mhz. A 4025 (4mm x 2.5mm) XTAL was therefore (eventually) located which is only 0.5mm larger and so was small enough to fit.
Also many many thanks to ICubeCorp for doing a quick ping test and confirming once again that a MCS7832 USB Dongle works great with the IC3128 EVB. A preliminary test had been done months back but it is nice to double-check with the latest software. After schematic verification and PCB checks this board will go to assembly.
16 Nov 2014: Decision made to switch to MCS7832 and GL850G USB Hub
A decision's been made due to the difficulties of working with a combination of unknown hardware, unknown software and unproven layout to switch to a combination of known-good hardware, known-good software where at least an unproven (first revision) layout may be fully tested. Later when there are more units in the field and there are Software Libre developers using this hardware a return to the more integrated LAN9512/4 IC can be considered.
It turns out that with the Engineering Team at ICubeCorp focussing on providing ultra-low-cost Android support, one of the software engineers happened to test an MCS7832 USB Ethernet dongle as a cross-check of the Ethernet and IPFilter kernel code. This test was successful. So, it makes sense to go with what is known to work.
The space available is very tight (which is why the LAN9512 was initially selected). Now a 12mm QFP and 40 associated support components need to fit into a space approximately 18mm x 22mm, including ground and power planes on a 4 layer PCB. This space is completely inadequate to fit the GL850G USB Hub, so that has been moved to the opposite end of the board. This makes for some challenges with routing of USB because there need to be three sets of USB differential pairs across the top of the 4-layer PCB as well as seven SD/MMC tracks. Two of those USB signal pairs go to the EOMA68 connector; the other goes to the MCS7832. It's quite tight, and a bit messy in places as a result: just have to see what happens.
Using the MCS7832 itself, despite the tiny space, actually has several advantages. Primarily it looks like the MCS7832 has been extremely well designed. It is quite clear that the chip is divided into separate areas internally, covering USB and Ethernet, from the way that the pins are arranged, so that separate power and ground planes may be easily placed around different parts of the IC. It has no internal power regulator, which means that an external 2.5V regulator (an AP130) is needed. This is good because the AP130 can much more efficiently provide stable power for the Ethernet side of the MCS7832 (around 100mA is required), and the 3.3V USB side only requires 40mA which is tiny. Relatively speaking the MCS7832 draws significantly less power than the LAN9512/4. When including the GL850G (around 80mA at 3.3V) the power draw is only slightly less, but the important thing is that all that heat is not in the same place, and the LAN9512 is known for getting pretty hot.
13 Nov 2014: LAN9514 Ethernet hardware circuit confirmed working
This is complicated: the LAN9514 is not operational when connected to the IC3128: the exact reasons have yet to be determined. Reports on the Internet for LAN9512 / LAN9514 show that when too much power is drained an error "unexpected URB of length 0" occurs intermittently: this error is occurring all the time.
However, when cutting off the pins of the IC3128 IC for the USB+/- signals and wiring a USB cable directly to the PCB and plugging it into a standard x86 laptop, everything is fine.
So whilst the hardware circuit is correct, what is not determined is whether the linux kernel port to the MVP architecture is working nor whether the SI2301 3.3V MOSFET is providing sufficient power to supply the IC3128, the SD/MMC TSSOP-48 and the LAN9514.
Also not known is whether, after plugging in a known good USB DM9601 Dongle, the timeouts that occurred are again due to software, hardware, or to power.
So the next phase of investigation is to take a second EOMA68-IC3128, cut its USB+/- pins as well, and wire a USB socket to it, then begin investigating plugging in USB devices directly, bypassing the LAN9514's hub ports. That will include plugging in the LAN9514 of a separately powered (second) EOMA68-IC3128 board! Both have their USB tracks cut, but one has a plug going to the LAN9514, and the other will have a socket to the IC3128. It will be particularly interesting to see if this particular arrangement works.
11 Nov 2014: 1280x800@60fps (8bpp) confirmed working
Using the Micro-Desktop VGA circuits exploration has been taking place to get the 400mhz IC3128 to drive 1280x800 at 60hz. This is the minimum requirement for VGA output. However there has been some difficulty hitting this target: the published spec is 800x600 at 60hz, 24-bit. The DDR3 IC on the PCB whilst it is listed as a 1600mhz DDR3 RAM IC is only being driven at a clock rate of 266mhz. In investigations so far it has not yet been established whether this is related, howerver: it has been found that reducing the number of bytes per pixel to only one (RGB332 - 3 red, 3 green, 2 blue) the output remains stable!
The limit for 1024x768 using 16 bit colour (2 bytes per pixel) appears to be around 53hz, which is stable (but below the spec for VGA which requires 60hz). Out of two monitors tested both just about worked at 53hz. However occasionally there were drop-outs (errors requiring a reset) indicating that an internal bus speed limit somewhere is being hit. However by successfully running at the much faster pixel clock rate (83 mhz) required for 1280x800 at 60hz it can be reasonably be deduced that the actual LCD silicon circuit itself is not one of the limiting factors. There are two other internal buses possible to investigate as the source of the limit: one of them is the DDR3 RAM speed (a modest increase will be tested shortly) and the other is an internal system bus. Investigations are underway but at the very least it may be claimed that IC3128 is at least EOMA68 compliant to a minimalist degree by being capable of doing 8 bits per pixel at a 1280x800 resolution at 60hz. This is good news.
24 Oct 2014: Confirmation of board-bringup using Micro-Desktop prototype
Thanks to the team at ICube Corp the boards have arrived, and console access confirmed. A console first boot log is publicly available for the first time for this completely innovative 176-pin $USD 2 QFP SoC, the IC3138. Work can now proceed, in parallel with the Revision 2.2 A20 CPU Card, to confirm remaining interfaces (RGB/TTL, USB, Ethernet).
14 Oct 2014: Successful board-bringup using Micro-Desktop prototype
Congratulations to the team at ICube Corp for a successful board bring-up over Micro-SD and reaching the stage of console access over RS232. As this was done from the Micro-Desktop prototype it also confirms some of the functions of that board as well: not least the 5.0V power but also the Micro-SD slot.
A few mistakes were found that will need correcting for a re-spin (on both boards), however these are fairly minor:
one of the power lines was not connected to 3.3V: the 5 prototypes
have this fixed with a flying lead
the "boot mode" pins had not been connected: again, flying leads
fixed these by pulling them to GND.
the BAT54S shottky protection diodes of the Micro-Desktop had been
found to be inverted. Putting these face-down on the prototypes solved
All of these have already been corrected ready for the next re-spin. 4 sets of the PCBs have been kindly shipped by ICubeCorp: further testing work will take place next week when they arrive.
09 Oct 2014: PCBs back from Assembly
Thanks to ICubeCorp the EOMA68-IC1t boards are back from assembly: board bring-up has begun. Note there have been some minor design changes: a lower-cost SD/MMC compatible TSSOP-48 was found instead of a BGA169 eMMC, because eMMC ICs have a very high minimum capacity (several Gb), whereas the TSSOP-48 SD/MMC ICs are available in capacities of 256Mb upwards. As this CPU Card is designed to be low-cost, adding a high-end eMMC NAND Flash IC would be incompatible with that goal.
11 Jul 2014: Routing Completed
A lot of work has gone into this CPU Card over the past few weeks: here is the result of the routing having been completed thanks to the provision of working EVB Schematics and PCB CAD/CAM files from ICubeCorp.
Top left is the BGA-169 eMMC NAND area. Below that is a single DDR3 x16 RAM IC. To the right of that in the centre is the main QFP SoC. Top right is the SMIC 9514 4-port USB Hub and 10/100 Ethernet Controller.
Due to the low speed (and high degree of parallelism) this is such an ultra-low power processor even in 55nm that there is very little in the way of Power Management ICs required. In fact, the SoC itself provides three pins for managing its own power startup. Three low-cost discrete Power Regulators are therefore normally all that is required. In the case of this board however the 3.3V regulator has been replaced with a SY6280 in order to provide extra power needed for the SMIC 9514 Ethernet Hub as well.