I am looking for a good microcontroller to learn electronics.


I want develop on linux, and I wish there is a good linux supported simulator.

I want use C language.

  • \$\begingroup\$ Do you have any idea what you want to use it for, and what language you want to use to program it? \$\endgroup\$ – BG100 Jan 13 '11 at 9:42
  • 6
    \$\begingroup\$ If you are just starting out, and want the easiest entry into electronics without messing around with figuring out how to interface with a bare MCU, it is very hard to recommend anything but Arduino. The editor isn't very good, but you can get up and running very quickly, and this will enable you to have lights blinking and switch states read in minutes. Although I haven't tried very hard, I have still not gotten my Launchpad kit up and running since I had issues with the toolchain. Arduino was a piece of cake. \$\endgroup\$ – Dave Jan 13 '11 at 13:52
  • 1
    \$\begingroup\$ Define support: tools you can run on X OS for chip Y or being able to run X OS on chip Y? \$\endgroup\$ – Nick T Jan 13 '11 at 14:35
  • 2
    \$\begingroup\$ By "good linux support" do you mean you want to use Linux for development or run Linux on the chip? \$\endgroup\$ – Kevin Vermeer Jan 13 '11 at 14:59
  • \$\begingroup\$ @Dave what toolchain are you trying to get working? i have installed mspgcc on pclinux and ubuntu 8.4 through 10.10 and it worked with out a problem, minus looking up a few dev files \$\endgroup\$ – jsolarski Jan 14 '11 at 4:47

There is good Linux support for many microcontrollers:

Atmel's AVRs are well supported, with the GCC compiler and avrdude for loading code. An Arduino makes a good development board for starting out.

Microchip's PICs are supported by MPLABX which provides compilers, IDE and code loading (using a PICkit).

The SDCC compiler supports 8051, Z80, HC08 and more.

ARM microcontrollers are well supported, with GCC and OpenOCD+GDB for JTAG loading/debugging. A good precompiled GCC toolchain comes from CodeSourcery.

TI's MSP430 microcontrollers are supported with GCC and mspdebug. See, http://hackaday.com/2010/08/11/how-to-launchpad-programming-with-linux/

| improve this answer | |
  • \$\begingroup\$ You could add MSP430 from TI using mspgcc and mspdebug , but just learning I would go with PIC or Arduino. \$\endgroup\$ – jsolarski Jan 13 '11 at 11:17
  • \$\begingroup\$ Wow I had not heard of mplabx until right now. I'm downloading their linux IDE/compiler. Lack of Linux support has been one of the biggest reasons that I've stopped using them in my designs. Thanks! \$\endgroup\$ – akohlsmith Jan 13 '11 at 12:51
  • \$\begingroup\$ Simulator, the component asked for in the question, is not addressed. \$\endgroup\$ – Yann Vernier Jan 14 '11 at 10:52
  • \$\begingroup\$ @Yann I'm not convinced that the OP really meant simulator, perhaps he/she can confirm \$\endgroup\$ – Toby Jaffey Jan 14 '11 at 11:21
  • \$\begingroup\$ I'm convinced enough by OP adding "simulator" twice in their edit (including in the title). Whether that's a need is another question, but I wouldn't ignore it. \$\endgroup\$ – Yann Vernier Jan 15 '11 at 12:28

I am a big fan of the ARM-based microcontrollers; regular old GCC works (I use CodeSourcery's free compiler), regular old gdb works (as do all the gcc/gdb frontends), and JTAG interfaces such as the Olimex are inexpensive and work beautifully.

I used to be a big fan of PICs but having the development system stuck on a Windows machine just wasn't cutting it anymore. I know about sdcc and other PIC compiler efforts but let's face it, why mess around? Get something that works, has a large support base and doesn't require you to goof around. An LPC2103 is inexpensive (2101/2102 being cheaper), has a decent amount of memory and resources and is offered in an LQFP footprint which is relatively easy to work with. There are dozens of ARM7 or Cortex M3 based microcontrollers on digikey in LQFP packages. (there are also hundreds more if you are willing to work with exposed pad or BGA packages.) What you want depends on how many IO you're after, which peripherals and so on. NXP, ST Micro and TI all offer parts though digikey that are in stock right now, and I'm sure there are many more if you want to check mouser, arrow, etc.

I really like the ARMs, but if they're not your bag CodeSourcery also offers gcc for MIPS (this should include PIC32), NIOS (for your CPU embedded in an FPGA), and SuperH based microcontrollers. I have no direct experience with any of these, as I'm more than happy with ARM. You don't need to use their gcc either; you're free to build your own compiler, but I've been really happy with them and plug them whenever I can. They put out a free version that technically has no support, but they are receptive to queries from hobbyists and their mailing lists are great.

| improve this answer | |

I don't know of any quite good simulators - because the few free simulators I know of are not updated for new MCUs. For AVRs we have SimulAVR, and for PICs we have gpsim. A few manufacturers, like XMOS, make an effort to provide tools for multiple platforms. Most do not include simulators, but theirs should.

When simulating an instruction set for academic purposes, rather than an entire microcontroller, I've used GXemul. For higher performance emulation QEMU can be useful.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.