Design challenge idea: Linux-capable SBC without BGA - Page 1
Forum section: electronics / projects

author: technix
author_rank: Super Contributor
timestamp: January 22, 2017, 08:54:47 am
content: I have scored most of the components except the display subsystem. Do you have any idea how to add graphics to this system? I would prefer some kind of framebuffer on the parallel EBI over SPI or I2C solutions.Current component list for the ARM9EJ-S platform:* SoC: AT91SAM9260-QU (ARM926EJ-S @200MHz)* RAM: 2x MT48LC32M16A2P-75 (32-bit bus, 128MiB total)* NAND Flash (Data): K9F4G08U0B-PCB0 (512MiB SLC)* NOR Flash (Boot): AT45DB321E-SU (4MiB)* Graphics:I can source larger LCD modules but that needs an external frame buffer chip. Small screens don't look that good and isn't exactly convenient to use.* Ethernet: DP83848 Fast Ethernet PHY over RMII* Wireless: RTL8723BS module (IEEE 802.11b/g/n over SDIO + Bluetooth 4.0 over UART)* Sound: CS4272 Codec over I2S* OS: Linux 4.12, running a Debian armel derivative distribution (so I won't have to bother recompiling absolutely everything)* Peripherals: microSD card slot, resistive touchscreen, headphones, line input, 4x USB host ports over a hub, a USB slave portCurrent component list for the ARM Cortex-A7 system:* SoC: Allwinner V3s (Cortex-A7 MP1 @1.2GHz + 64MB LPDDR2-533 built in)* NOR Flash (Boot and data): Cypress S25FL512S (64MiB)* Graphics: Forlinx 4.3in LCD with resistive touchscreen* Camera: OV5640 module in MIPI CSI-2 mode* Ethernet: V3s built-in 100BASE-TX Ethernet* Wireless: RTL8723BS module (IEEE 802.11b/g/n over SDIO + Bluetooth 4.0 over UART)* Sound: V3s built-in sound* OS: Linux 4.12, running a Debian armhf derivative distribution (so I won't have to bother recompiling absolutely everything)Original Post:This is a design challenge I want to try: a Linux-capable SBC without the use of any BGA packages.The difficult part here is RAM. I would like to use the Allwinner A13 but that calls for LPDDR2 or DDR3 RAM. There is no cheap TQFP package for this. This older technology required.Going back in time, SDR SDRAM is available in TQFP. Maybe I can use that with one of those few ARM MPU in TQFP package. And then I decided on this setup:* PCB: 2 layers preferred, 4 layers maximum* MPU: Atmel AT91SAM9260 (ARM9 @200MHz) in TQFP-208* RAM: 64MB SDRAM in TSOP-48* NAND: Samsung 2GB SLC in TSOP-48 (maybe not: if I can implement an SD boot loader in the boot ROM chip I will leave this out)* Boot ROM: AT45DB321E in SO-8 (maybe not: if I can get NAND boot with JLink flashing to work I will leave this out)* Ethernet: RTL8201 100BASE-TX PHY over MII in TQFP-48, maybe with 802.3af isolated PoE* 1x microSD card slot, 1x USB Host, 1x USB Device (built-in hub for slave port, debug and primary serial ports converters)* Hopefully Arduino-compatible pinout* Hopefully some SPI LCD display with touch* Maybe an STM32F103CBT6 as platform controllerI was investigating i.MX 233 too. Which of the two have a better shot at this in your opinion?

author: timb
author_rank: Super Contributor
timestamp: January 22, 2017, 09:27:27 am
content: Someone sells a module based version of the TI Sitara SoC, complete with memory, decoupling, etc. all ready to go. This is the same SoC used in the BeagleBone Black, so you'd have instant software support.The modules use an LGA footprint, with only a few of the pads in the center (which are connected to ground, if memory serves) meaning you don't have to worry about a complex fanout.Using a SoC-on-Module is about your only hope of doing this on a two layer board.

author: technix
author_rank: Super Contributor
timestamp: January 22, 2017, 10:24:43 am
content: Quote from: timb on January 22, 2017, 09:27:27 amI can live without NAND (DataFlash ROM boot + microSD card for operating system) so fanout may not be that tediousas you think. The entire point of this is hand soldering the assembly.

author: Spikee
author_rank: Frequent Contributor
timestamp: January 22, 2017, 12:42:03 pm
content: The CHIP GR8 might be a good place to start, the difficult things have been done for you. yes it is BGA but only 0.8 mm pitch. Easy to with specs from cheap(er) pcb services on 4 layer.

author: daveshah
author_rank: Unknown
timestamp: January 22, 2017, 12:58:53 pm
content: I'd probably go for the iMX233, because the performance is slightly better, although IIRC it's now gone NRND. It uses DDR rather than SDR memory which is still TSSOP but a 4 layer board would definitely be preferred (Olimex may have done it with 2 before though).I wonder if hypothetically you could use SODIMM DDR3 (ignoring most of the bytes) to make an Allwinner A13 design without any BGA parts... That would have an order of magnitude better performance and compatibility with modern software.This was my iMX233 project from a while back:https://www.eevblog.com/forum/projects/is-this-i-mx233-design-ok/

author: technix
author_rank: Super Contributor
timestamp: January 22, 2017, 02:41:55 pm
content: Quote from: daveshah on January 22, 2017, 12:58:53 pmI do have some spare 2GB DDR3-1333 SODIMMs taken out of my MacBook Pro (it came with 2x 2GB sticks. I am using 2x 4GB now.) in previous upgrades, and I believe if I used the A13 I can hack Das U-boot into using the information in the SPD EEPROM to initialize the RAM.That will be my next design challenge in queue: Linux-based SBC without BGA Round 2: Cortex-A7, lots of RAM, Touch LCD with OpenGL, maybe tablet form factor, and add in a lot of good connectivity options like Wi-Fi over SDIO and wired gigabit Ethernet

author: MarkL
author_rank: Unknown
timestamp: January 22, 2017, 08:48:00 pm
content: It's a good challenge!I did a very similar board several years ago with no BGAs. Here's the major components:- 2 layer PCB, 4.25" x 6.25"- NXP/Freescale iMX233 (128 LQFP, MCIMX233DAG4B)- Micron 64MB DDR (TSOP-66, MT46V32M16P-6T:F)- Micro-SD- Microchip 16KB EEPROM (SO-8, 24LC128)- SMSC combo 4-port USB hi-speed hub + 10/100 Ethernet w/built-in MAC (QFN 64, LAN9514-JZX)- SMSC 4-port hi-speed USB HUB (QFN 36, USB2514-AEZG)(between the above 2 chips, the system exposed a total of 6 hi-speed USB host ports)- 128x64 monochrome LCD (lame, but that's all the app required)- 7-button keypad input- RTC w/built-in crystal (18 SOW, M41T81SMY6F)- Maxim/DS 1-wire controller (SO-8, DS2482S-100+)- On-board temperature sensor (SO-8, LM75AD)Runs Linux 2.6.31 with Busybox 1.18.2, boots via Uboot.I also looked at the Atmel AT91SAM9260 and the Allwinner A13. I settled on the iMX233 because it was in Freescale's longevity program and it was for a client project with expected orders over several years.The SAM9260 didn't make the cut for me because it didn't have hi-speed USB. Also, at the time 5 or 6 years ago, the "B" version couldn't boot from NAND flash, and Atmel was having some some major distribution issues for this processor and many of their other parts. I wasn't going to design in a parts availability issue.The Allwinner chip was very nice, but unfortunately there were no longevity guarantees. I have eval boards of all 3 (iMX233, A13, SAM9260), and the Allwinner had the best overall performance.The iMX233 has its share of quirks, mostly surrounding their "bootlets" and encrypted boot system (which I think was a hangover from Freescale's acquisition of SigmaTel). Early versions of the silicon also had issues booting directly from the SD card and had to boot a patch from the EEPROM first (errata 2229). But once running it does work quite well and has a small footprint.I got everything except the DDR on one side of the PCB and there's nothing under the LCD. Everything else had to be on the other side for user access.

author: technix
author_rank: Super Contributor
timestamp: January 27, 2017, 01:15:12 am
content: I would definitely prefer Allwinner A13 for this project if I can manage the signal integrity of those DDR2/DDR3 signals. It is a much more modern chip after all, with support of the latest Linux kernel available. Using SO-DIMM modules for memory may not be that bad after all, and the SPD chip probably contained all information I needed to be aware of regarding the datasheet of the chips (so I can write my own SPD-aware DRAM initialization code to run before u-boot.)

author: daveshah
author_rank: Unknown
timestamp: January 27, 2017, 03:00:28 pm
content: I'd be really interested in seeing that project if you decide to do it.Signal integrity and timing might be a bit of a problem as the A13 is obviously designed for chips rather than modules; and I'm not sure if it's OK with the fly-by routing topology used on modules. In particular it seems like read/write levelling might need to be done manually; but I suspect with enough tuning it should all work. This is a useful resource I found (ignore the A10 in the title, it applies to the A13 as well)http://linux-sunxi.org/A10_DRAM_Controller_Calibration

author: Scrts
author_rank: Frequent Contributor
timestamp: January 27, 2017, 04:17:34 pm
content: About 6-7 years ago we did a 2 layer board like 160mmx100mm single side component load with AT90SAM9260 in TQFP package (I soldered that by hand) plus 2x SDRAM & 10/100Mb Ethernet. So I'd say it's doable.

author: daveshah
author_rank: Unknown
timestamp: February 07, 2017, 05:43:46 pm
content: Another idea, just spotted while browsing the internet - new Allwinner V3s.http://linux-sunxi.org/V3sIt's a 1.2GHz Cortex-A7 in a 128-pin QFP with 64MB of DDR2 built in. Might play around with it at some point as it opens up some interesting opportunities, particularly as it has H264 encoding/decoding, LCD I/F and camera port with ISP.

author: MagicSmoker
author_rank: Super Contributor
timestamp: February 07, 2017, 06:47:02 pm
content: Quote from: technix on January 22, 2017, 08:54:47 amYou can forget about a 2 layer board here; you will need at least 4 layers to maintain signal integrity (by dedicating one of the middle layers to ground) and route all the traces. ESPECIALLY with DDR memory... good grief that stuff is hard to get working right!

author: technix
author_rank: Super Contributor
timestamp: February 26, 2017, 11:47:36 pm
content: Quote from: daveshah on January 27, 2017, 03:00:28 pmI wonder how long would this calibration take, and whether I can automate it with as little extra hardware as possible. If it is a quick procedure it can be useful art of the POST sequence that follows initialization of DRAM controller with SPD data.

author: technix
author_rank: Super Contributor
timestamp: June 17, 2017, 05:41:20 pm
content: Quote from: evb149 on June 17, 2017, 04:48:43 pmA13 requires RAM that is only available in BGA. GR8 itself is BGA. If you want to build something without BGA you are more or less likely stuck with Alwinner V3s (64MB DDR2 built in as MCM,) Microchip AT91SAM9260 (uses SDR SDRAM which is available in TSSOP,) NXP i.MX233 (uses first generation DDR SDRAM that is available in TSSOP,) Loongson LS1C0300 (uses SDR SDRAM,) and now also Microchip PIC32MZ DA line (LPDDR2 built in as MCM.)Quote from: evb149 on June 17, 2017, 04:48:43 pmEither you speak Chinese, have a company registered in China and are willing to order the chips in bulk, or you will probably have to go through Taobao or Aliexpress. Allwinner have no interest talking to individuals, foreigners or about less than a few hundred chips. (They have no interest in GPL too, holding GPL licensed code behind NDA which is fundamentally incompatible with GPL, and will probably not budge even if someone decided to sue.)I can source some samples of this chip for you, but I cannot guarantee the supply chain is reliable (unlike my 2DW23x diode order aggregation which I contacted the factory directly and they bothered to respond me,) and I have to pay taxes for this (since Chinese law have next to no consumer tax but a hefty sales tax to compensate.)Quote from: evb149 on June 17, 2017, 04:48:43 pmYou may want to check this website out:http://www.linux-sunxi.orgQuote from: evb149 on June 17, 2017, 04:48:43 pmYes they are.

author: technix
author_rank: Super Contributor
timestamp: June 17, 2017, 05:46:33 pm
content: Project update: I have secured all but one of the components. Suggestions needed!

author: technix
author_rank: Super Contributor
timestamp: June 18, 2017, 01:53:39 am
content: Quote from: evb149 on June 17, 2017, 08:00:07 pmWow this is a long reply.Quote from: evb149 on June 17, 2017, 08:00:07 pmAllwinner isn't really friendly to community developers and individuals. They do have nice, convenient and cheap chips.Quote from: evb149 on June 17, 2017, 08:00:07 pmIf you are using 4L boards the NXP or Microchip parts would be easier to use for the availability and documentation on the software side. For 2L boards the V3s may be easier to use for less burden on the board layout.Quote from: evb149 on June 17, 2017, 08:00:07 pmThere are modules based on Mediatek MT7688 and Qualcomm AR9331. You may want to hunt around for the modules to find one that brings all the features out (e.g. PCIe and 5 Ethernet ports for MT7688.)Quote from: evb149 on June 17, 2017, 08:00:07 pmFPGA in QFP are almost always guaranteed to have not enough logic elements to implement a Linux-capable processor, let alone peripherals.Quote from: evb149 on June 17, 2017, 08:00:07 pmThat defeats the point of this design challenge.Quote from: evb149 on June 17, 2017, 08:00:07 pmI would not worry too much about the supply rails on V3s even for a 2L board:* The 1.8V rail is only used by the RAM and have its pins lumped together in a corner.* The 1.2V core and PLL as well as 1.1V Ethernet can share one voltage rail (since 1.2V is also within tolerances fr the 1.1V Ethernet rail.)* If you don't mind the output audio quality you can lump all I/O voltage to 3.3V too using one regulator.* The battery backup can go to the 3.3V rail too if you don't use the internal RTC.Quote from: evb149 on June 17, 2017, 08:00:07 pmI am running V3s and AT91SAM9260 projects in parallel. The Atmel part have good software support. The Allwinner one have really good performance.Quote from: evb149 on June 17, 2017, 08:00:07 pmThe price will vary. It may be a better idea to investigate board-level modules (and the castellated edge modules) before going down the rabbit hole of cooking up a board of your own de novo.Quote from: evb149 on June 17, 2017, 08:00:07 pmThere is Mediatek MT7688 and Qualcomm AR9331 that I have seen castellated SOM modules of.Quote from: evb149 on June 17, 2017, 08:00:07 pmThere are FPGA boards based on Zynq or Cyclone V SoC out there, which have both FPGA fabric and ARM Cortex-A core in the same time. You can try investigate that.Quote from: evb149 on June 17, 2017, 08:00:07 pmI am running V3s and AT91SAM9260 projects in parallel. The Atmel part have good software support. The Allwinner one have really good performance.

author: technix
author_rank: Super Contributor
timestamp: June 18, 2017, 04:19:40 am
content: Quote from: blueskull on June 18, 2017, 03:10:11 amThe problem is not routing, but soldering. If I have the tools to solder BGA I would prefer PoP over this awkward setup.Quote from: blueskull on June 18, 2017, 03:10:11 amIf I were okay with PoP BGA I would shoot straight for MediaTek Helio X20. Those chips are flooding the Chinese markets at cheap as LeTV, the original buyer of this chip, refused to pay for the chip and MediaTek have to seek other outlets to blow off the million chips in their stock. That thing is a ARMv8-A big.LITTLE 10-core (Cortex-A72 MP2 @2.3GHz + Cortex-A53 MP4 @1.85GHz + Cortex-A53 MP4 @1.4GHz) with LPDDR3 PoP @933MHz (DDR3-1866.)Too bad I am not okay with BGA in general. Or that chip would be absolutely fantastic.

author: technix
author_rank: Super Contributor
timestamp: June 18, 2017, 04:32:45 am
content: Quote from: blueskull on June 18, 2017, 04:26:06 amI have no idea how to solder BGA with hot air gun...

author: technix
author_rank: Super Contributor
timestamp: June 18, 2017, 02:38:25 pm
content: Quote from: evb149 on June 18, 2017, 06:51:52 amGiven MTK, I doubt if they would even bother responding to Bunnie/Sparkfun/Adafruit/Olimex.

author: daveshah
author_rank: Unknown
timestamp: June 18, 2017, 04:38:44 pm
content: Curious if you have access to a proper datasheet for the X20? Even if you had one I'd be a bit wary designing one into a project in case the surplus does run out.

author: technix
author_rank: Super Contributor
timestamp: June 18, 2017, 11:34:39 pm
content: Quote from: daveshah on June 18, 2017, 04:38:44 pmI believe some kind of contract have to be signed with MTK before they would fess up the datasheets and the SDK.

author: technix
author_rank: Super Contributor
timestamp: June 19, 2017, 03:36:36 am
content: Quote from: blueskull on June 18, 2017, 11:38:45 pmI am not going to bother thinking about X20 for now.