Microcontrollers, USB and Linux
- From: Joost Leeuwesteijn <joost@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Fri, 28 Dec 2007 12:56:56 +0100
Hi all,
[ re-post from comp.os.linux.embedded ]
Simple question, I hope :-)
What's a good architecture for simple embedded/microcontroller software
development (in C) _under Linux_, with respect to the toolchain (C
cross-compiler, assembler, linker, etc.); nativly without using things
like Wine) ?
Background info:
I would like to develop a _simple_ and low-cost microcontroller hard-
and software platform for study/training purposes, for my colleagues (and myself :-) ). The focus is software and the hardware should be as
simple/breadboardable as possible, i.e. DIP packages instead of QFP or
BGA. Just basic I/O, perhaps add simple SPI/I2C peripherals, etc. at some point. I would also like to include USB in it, which is available on plenty 8-bit controller (and an interesting challenge I've seen).
We currently have an embedded ARM Linux board and it would be nice if we could stick to a single architecture (i.e. ARM) so we can re-use code, tools, hardware and most importantly knowledge (assembly language, architecture, etc.).
I would like to use/program USB directly so no FTDI converter IC's to
simulate RS232 ports (What's the point of USB anyway when the first thing you do is simulate RS-232? Just the option of using a USB hub?).
I've looked at _many_ websites (see below) but I haven't been able to
find what I'm looking for. Does anybody already have any experience in
this area? How active is SDDC for example?
ARM or AVR(32-UC3*) look nice but they all have QFP or similar packages so that's not really an option. The Freescale Blackfin controllers start at BGA packages. Even the Atmel 8051's with USB are large QFP packages. The starter-kits or experiment boards all start at 40+ euros on pre-built rather large boards with extra peripherals which make them unsuitable for real simple experiments or applications (e.g. a simple switch controlled via USB; which is <1 euro when using RS-232).
The Microchip PIC 18F4550 looks great, and only costs a few dollars, but
I don't believe it's possible to develop under Linux (in C), or is it?
The SDDC site says "under construction" for PIC support. The PIC seems to be the only one that supports USB on a DIP package though...
How difficult would it be to solder a QFP or SOIC package to a DIP
connector (for an electronics no-no like me), or get them pre-soldered;
is that a common thing to do or buy? Ah, I just found http://www.schmartboard.com/index.asp?page=products_qfp .
[ somebody in comp.os.linux.embedded also suggested the "dead bug" approach, thanks Wolfgang ]
Perhaps SOIC and QFP are doable, but are there QFP32/48 or SOIC ARM IC's for example, preferably with USB? An ARM similar to the AVR32 AT32UC3B164 (QFP48)
http://www.atmel.com/dyn/products/product_card.asp?part_id=4183
That would be ideal...
I would appreciate reading your advice and experiences.
Kind regards,
Joost Leeuwesteijn
Websites:
=========
Microchip PIC:
http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=111&mid=10&lang=en&pageId=74
http://www.embedds.com/pic18f4550-usb-prototyping-board/
gcc:
http://gcc.gnu.org/backends.html
CREATE interface (PIC):
http://www.create.ucsb.edu/~dano/CUI/
SDDC (Small Device C Compiler)
http://sdcc.sourceforge.net/
(AVR no longer supported? What's the link between SDDS and gcc?):
Freescale (Motorola, 68HC, HC08JB/JG/JT/JW Family, etc.):
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=S08JM&nodeId=01624684491437
ARM 7:
http://www.embeddedartists.com/products/boards/lpc2148.php
Atmel 8-bit AVR:
http://www.atmel.com/dyn/products/devices.asp?family_id=607#1761
Atmel AVR32:
http://www.atmel.com/dyn/products/devices.asp?family_id=682
AT32UC3B164 (QFP48):
http://www.atmel.com/dyn/products/product_card.asp?part_id=4183
Atmel 8051:
http://www.atmel.com/dyn/products/devices.asp?family_id=604#1686
Simulated USB:
http://obdev.at/products/avrusb/index.html
http://obdev.at/products/avrusb/powerswitch.html
Arduino:
http://www.arduino.cc/
Cypres CY7C637xx (DIP or SOIC package):
(not sure if you can program this using Linux tools)
http://www.cypress.com/portal/server.pt?space=CommunityPage&control=SetCommunity&CommunityID=209&PageID=259&fid=16&rpn=CY7C637xx
USB Micro:
http://usbmicro.com/products.html
Schmartboard:
http://www.schmartboard.com/index.asp?page=products_qfp
Futurlec:
http://www.futurlec.com/SMD_Adapters.shtml
.
- Follow-Ups:
- Re: Microcontrollers, USB and Linux
- From: DJ Delorie
- Re: Microcontrollers, USB and Linux
- From: Grant Edwards
- Re: Microcontrollers, USB and Linux
- From: Frank-Christian Kruegel
- Re: Microcontrollers, USB and Linux
- From: larwe
- Re: Microcontrollers, USB and Linux
- From: cs_posting
- Re: Microcontrollers, USB and Linux
- From: David Brown
- Re: Microcontrollers, USB and Linux
- From: Arlet Ottens
- Re: Microcontrollers, USB and Linux
- Prev by Date: Opinions about AVR32 for Voice Recorder?
- Next by Date: Re: 1st Time PCB Design
- Previous by thread: Opinions about AVR32 for Voice Recorder?
- Next by thread: Re: Microcontrollers, USB and Linux
- Index(es):
Relevant Pages
|