Microcontrollers, USB and Linux - Embedded

This is a discussion on Microcontrollers, USB and Linux - Embedded ; Hi all, Simple question, I hope :-) What's a good architecture for 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 ...

+ Reply to Thread
Results 1 to 7 of 7

Thread: Microcontrollers, USB and Linux

  1. Microcontrollers, USB and Linux

    Hi all,

    Simple question, I hope :-)

    What's a good architecture for 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).

    I would like to use/program USB directly so no FTDI converter IC's to
    simulate RS232 ports (what's the point of USB when you simulate RS-232
    anyway? 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) 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 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". The PIC seems to be the only
    one that supports USB on a DIP package...
    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 .

    Perhaps QFP-32 is doable, but are there QFP-32 or smaller ARM IC's for
    example? 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 (assembly, architecture,
    etc.).

    I would appreciate reading your advice and experiences.

    Kind regards,
    Joost Leeuwesteijn

    Websites:
    =========

    Microchip PIC:
    http://www.microchip.com/ParamChartS...g=en&pageId=74
    http://www.embedds.com/pic18f4550-us...otyping-board/

    gcc:
    http://gcc.gnu.org/backends.html

    CREATE interface (PIC) [ SEEMS TO BE OFFLINE AT THE MOMENT? ]:
    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, HCS08, etc.):
    http://www.freescale.com/webapp/sps/...01624684491437

    ARM 7:
    http://www.embeddedartists.com/produ...ds/lpc2148.php

    Atmel 8-bit AVR:
    http://www.atmel.com/dyn/products/de...ly_id=607#1761

    Atmel AVR32:
    http://www.atmel.com/dyn/products/de...?family_id=682

    Atmel 8051:
    http://www.atmel.com/dyn/products/de...ly_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):
    http://www.cypress.com/portal/server...&rpn=CY7C637xx

    USB Micro:
    http://usbmicro.com/products.html

  2. Re: Microcontrollers, USB and Linux

    Joost Leeuwesteijn wrote:
    > 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).
    >
    > I would like to use/program USB directly so no FTDI converter IC's to
    > simulate RS232 ports (what's the point of USB when you simulate RS-232
    > anyway? Just the option of using a USB hub?).


    > Atmel 8-bit AVR:
    > http://www.atmel.com/dyn/products/de...ly_id=607#1761


    I'm using these ones and I'm happy with them. Complete toolchain and
    programming tools available under Linux.

    > Simulated USB:
    > http://obdev.at/products/avrusb/index.html
    > http://obdev.at/products/avrusb/powerswitch.html


    Very nice project. I tried it here and it works with my Atmega8 and
    Atmega16.

    JB

  3. Re: Microcontrollers, USB and Linux

    Joost Leeuwesteijn wrote:
    > What's a good architecture for 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) ?


    (If there are no additional prerequisites) you should first investigate
    what functionality you expect from the target device. Then you should
    decide what OS you want to use _on_the_target_. After that you should
    decide what processor you want to use on the target and at last what
    toolchain you use for development

    If you don't want to use Linux on the target processor you picked the
    wrong forum here.

    I suppose you can't do Linux on a PIC or other processors aiming for
    extreme low cost.

    -Michael

  4. Re: Microcontrollers, USB and Linux

    It might be a good tart to use just the development PC as a target for
    developing a Linux based device. You can port it to any other Linux
    based architecture once you decided which one to use.

    -Michael

  5. Re: Microcontrollers, USB and Linux

    Joost Leeuwesteijn wrote:

    > ARM or AVR(32) 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 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).


    Most AVRs are also avaliable in as DIP - unfortunately not the
    USB ones, but there's a solution for that problem: Ever heard of
    the term "dead bug"? You glue the chip bottom up on a piece of
    hole matrix PCB, in which you've soldered pins beforehand. Then
    connect the QFP's pins with the board pins using thin laque
    isolated wire.

    I got a *large* stockpile of AVRs here, as they are a really nice
    design, the ATMegas are also quite robust (both ESD and
    electrically). So far I accidently roasted only one ATMega8,
    with a surge coming from a powerfull DC motor, that also killed
    the Power-MOSFETs and driver circuits - I had to replace half of
    the semiconductors on the motor controller, but I also found
    out, what went wrong and now this is probably the most robust
    part of my current robot project:

    http://youtube.com/watch?v=kQi3aihMW_4
    http://youtube.com/watch?v=BX-NKgbPIpk
    http://youtube.com/watch?v=y-I-BbvXA0A

    You mentioned you want to use USB directly. The problem is, that
    USB is a tedious interface, and honestly: Before going for that
    you should familiarize with the architecture beforehand. RS232
    is much easier to use AND a lot more reliable in my experience.

    To develop software for the AVRs there's a large assortment of
    tools running under Linux:

    * avr-gcc, avr-lib make a nice C programming environment.

    * avra is a assembler compatible to
    Atmels original AVR assembler, with a few goodies added.

    * UISP is the tool of
    choice, if you want to flash/program your AVRs with the STK500
    developer board (IMHO the 150 bucks for the STK500 are worth
    every penny)

    * PonyProg is your tool of
    choice if you want to flash/program your AVRs with a cheapo
    parallel port adaptor. Works quite well, if the machine you use
    for programing is running nothing else, when using PonyProg.
    Disabling dynamic CPU clock adjustment (power management)
    while programming highly recommended. Start ponyprog with
    nice -19

    Wolfgang Draxinger
    --
    E-Mail address works, Jabber: hexarith@jabber.org, ICQ: 134682867


  6. Thanks


    Thanks for the AVR and "dead bug" info!
    I'll do a re-post in comp.arch.embedded.

    --
    J

  7. Re: Microcontrollers, USB and Linux

    hi
    i want to use netgear WG111v3 wi-fi usb adapter with powerpc board having linux 2.6.20
    how i can installed it
    thank you
    roopesh

+ Reply to Thread