Microcontrollers, USB and Linux



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
.



Relevant Pages

  • Re: Microcontrollers, USB and Linux
    ... Just the option of using a USB hub?). ... If you want good Linux development support, ARM and AVR are both well- ... but you won't get ARMs in DIP nor will you get ...
    (comp.arch.embedded)
  • Microcontrollers, USB and Linux
    ... What's a good architecture for embedded/microcontroller software ... I would like to use/program USB directly so no FTDI converter IC's to ... ARM or AVRlook nice but they all have QFP or similar packages so ... I don't believe it's possible to develop under Linux, ...
    (comp.os.linux.embedded)
  • Microcontrollers, USB and Linux
    ... What's a good architecture for embedded/microcontroller software ... I would like to use/program USB directly so no FTDI converter IC's to ... ARM or AVRlook nice but they all have QFP or similar packages so ... I don't believe it's possible to develop under Linux, ...
    (comp.os.linux.embedded)
  • Microcontrollers, USB and Linux
    ... I would also like to include USB in it, which is available on plenty 8-bit controller. ... ARM or AVRlook nice but they all have QFP or similar packages so ... I don't believe it's possible to develop under Linux, ... We currently have an embedded ARM Linux board and it would be nice if we could stick to a single architecture so we can re-use code, tools, hardware and most importantly knowledge. ...
    (comp.os.linux.embedded)
  • HIGHMEM slows down 2.6.11-rc3-bk7 machine
    ... disabled in BIOS, mainly USB/NET/FIREWIRE/SATA stuff. ... Linux agpgart interface v0.100 Dave Jones ... usbcore: registered new driver hub ... ehci_hcd 0000:00:1d.7: new USB bus registered, ...
    (Linux-Kernel)