8

I like how simple an Atmel AVR setup can be for hobbyist assembly language programming. For example:

  • Put a plain ATmega DIP chip {A} on a breadboard
  • Connect 6 pins to a USB programmer {B} connected to a computer (e.g.) . (The chip is powered by part of this connection both during writing and normal operation).
  • Write an assembly language program using any text editor.
  • Assemble the program using avra {C}
  • Write the program to the chip using avrdude {D}

Is the ARM world just fundamentally higher-level/more-complex or can you tell me equivalents for {A} {B} {C} and {D} that would allow a similar simple setup? Anything Windows-only is not relevant for me.

Thank you.

Note: The motive of the simple setup is assembly programming and I want to sidestep compilers and IDEs completely.

xyz
  • 183
  • 5

3 Answers3

6

ARM microcontroller development is a little more complex. But, only really because DIP packages are generally not available.

If you're willing to use a development board, ARM development can be even easier.

The mbed is an ARM microcontroller on a breadboardable DIP shaped board.

The C/C++ compiler is web based and the board appears as a USB mass storage device. You download code by saving from your browser to the mbed. Even easier than a basic AVR setup.

Once you outgrow this setup, you can run gcc locally on your PC and still upload via USB. After that, you can move to JTAG using OpenOCD.

Toby Jaffey
  • 28,796
  • 19
  • 96
  • 150
  • Thank you. The motive of the simple setup is assembly programming and I want to sidestep compilers and IDEs completely. – xyz Aug 23 '12 at 12:08
  • The mbed would still be a good fit. Download a toolchain (eg. codesourcery) and use the GNU assembler to produce an ELF binary, then copy it to the mbed over USB. – Toby Jaffey Aug 23 '12 at 12:11
  • Does anyone know if Arduino was EMC tested [like mbed](http://mbed.org/blog/entry/EMC-Testing-mbed/)? – Federico Russo Aug 23 '12 at 12:47
  • There are much more inexpensive options than mbed - $10 eval/programmer modules and cortex M3 or M0 chips with UART boot roms that require only a single resistor and the usual bypass caps to run. This makes the transition from experiment to application much easier. – Chris Stratton Aug 23 '12 at 13:22
  • mbed is software, not a board or chip. – Melab Sep 08 '19 at 00:53
5

Have a look at mbed. It uses an online IDE, so you're not restricted to Windows; any platform which offers a browser will do. You simply drag your compiled code to the mbed controller which appears as a USB storage device on your computer.

Software to install: zero. Hardware requirements: a USB port.

stevenvh
  • 145,145
  • 21
  • 455
  • 667
  • Thank you. The mbed looks interesting, and I'm taking a look based at it based on your and Toby's answers. – xyz Aug 23 '12 at 12:19
5

a) either buy an LPC1114 (DIP28W), solder an ARM chip onto an appropriate DIP bereakout board, or buy a ready-made header board

b) connect the appropriate pins to an appropriate programmer. for most LPC chips an usb-to-3v3-serial converter will do

c) compile your program using an appropriate toolchain. Codesourcery is my favourite. Forget about asm, switch to C++ (or to C if you don't want to make the big step righ now). (You don't even have to switch to ARM to do this)

d) use the appropriate tool based on your choice at b). My favourite is lpc21isp. If you use an LPC1343 you simply connect it to USB, copy your application to it (it will show as a mass storage device) and off you go.

If you are in love with canned IDE based solutions (I am not), you could consider for instance this LPC1343 board.

Wouter van Ooijen
  • 48,407
  • 1
  • 63
  • 136
  • Thank you. I'm checking out that range. I program C on my "normal computer" and consider hobbyist microcontrollers a fun way to explore assembly. – xyz Aug 23 '12 at 12:44
  • The good thing about lpc2isp is that is fully automatic. The mass storage approach was too much of a hassle for me, as you need to change a jumper back and forth (with this little Olimex board: https://www.olimex.com/dev/lpc-p1343.html). – starblue Aug 23 '12 at 16:37
  • The LPC1343 usb-trick is easy to set up, but cumbersome for development use. I use lpc21isp for nearly everything. Its killer feature for me is total 'hands off' programing (using the handshake lines for reset & bootloader activation), plus serial communication (debug log) using the same serial line. – Wouter van Ooijen Aug 23 '12 at 17:29