I’m looking to get started with doing my own PCB that runs embedded Linux. My needs are not particularly demanding beyond that, so I suspect there are a lot of potential solutions that could work. I’m hoping someone with the experience here can provide some quick answers and save me pain, trouble, and heartache chasing dead-ends. (Well, avoid major show-stoppers - I anticipate a good amount of work getting things functional).
-
What would be some good microcontrollers to look at? At the moment I’ve been looking at Atmel AT91SAM9260. I’m looking for microcontrollers with MMU (i.e. no ucLinux). How has the experience been with using Linux on that uC? Any other suggested vendors / uCs that have been known to work well? I don’t want to spend too much time bringing up the board so a uC that has been shown to run Linux on a reference board is a big plus. If there’s a lower pin count ARM out there that has MMU (i.e. runs standard Linux) and SDRAM interface that would be very interesting, as the SDRAM is by far my largest IO requirement. Also must not be BGA package, I don’t have capabilities to solder that right now.
-
Probably my biggest question: is it practical for me to design this board? My plan is to use gEDA / PCB tool suite, which I’m still just learning. (Most of my boards have been done in EAGLE but I’ve decided I don’t like that because of the binary / proprietary file format and vendor lock-in). I’ve done lots of boards of various sizes with various peripherals, but nothing faster than what 8-bit microcontrollers (AVR, PIC) can do. From the Atmel application note on interfacing SDRAM with AT91SAM9260:
"For proper SDRAM operation at 100 Mhz, 10 to 30 Ohm series resistors can be placed on all
the switching signals to limit the current flow into each of the outputs. The resistor placement
is to be located near the processor. The need and specific value of series termination
resistors on the signals is best determined by simulation using IBIS models and the specific
design PCB layout."
Eesh. I’m a little lost here. It’s really so fast I have to put termination resistors on … everything …? Let alone the fact that whatever software to do that simulation I’m sure is not inexpensive. (Then again, as mentioned I’ve only done slower boards with microcontroller clock rates a tenth of what the AT91SAM9260 can do and generally didn’t have to worry about speed/impedance when doing layout besides a few special traces, like Ethernet PHY in/out to RJ45). I’m quite sure I can get a PCB laid out for this, but what I don’t know is if it will work. My fear is that the fast clock rates will prevent the SDRAM (and quite possibly other things) from working. Just how justified is this? Are there some relatively easy ways to make sure the design will work without spending the money on fancy PCB design software?
- Can it be done with only a 2 layer PCB? (Remember all there would be mainly is an SDRAM and an SPI DataFlash). I have access to equipment capable of fabricating my own 2 layer PCB (8 mil clearance / trace widths, potentially less if I use different [more expensive] tools), if 4 layers are required that will make things way more unpleasant and expensive.
I’ve successfully done many 2-layer PCBs but they were slower speeds / less complicated processors than this for the most part. This will be breaking new ground for me (when I make it, it will be my first Linux board and first board with SDRAM). I do want to do it though as they are skills I would like to learn.