New to microcontrollers…options for getting up and going cheaply

I've never designed a microcontroller circuit before, but have programmed them on dev boards. I've Googled around for a while, but haven't found a definitive answer. Maybe I'm missing something.

I would like to use a microprocessor to buffer the output of an ADC, and get the results back to my Raspberry Pi via SPI. However when it comes to programming the actual micro controller I don't really want to spend a lot of money on a programmer.

Surely there must be open source tools which i can use for this? If so, which chip manufacturer has the best open source support on the web?

• This post has some insight into the criteria for μC selection. If the cost of development board is a factor, you should factor in the cost of your time as well. Silicon vendors sometimes try to cover up technical deficiencies by offering dev boards at low cost (at a loss even). I saw this kind of trap a few times. – Nick Alexeev Sep 27 '13 at 3:00

AVR is one of the big ones these days, especially with the popularity of the Arduino platform.

The IDE itself is free, and ISP programmers can be had for as cheap as $2 (if you're willing to wait a bit). You can either use a full Arduino (or compatible) board, or you can use bare AVR ICs on a breadboard, either with one of the Arduino bootloaders (for direct programming) if it's large enough, or one of the aforementioned programmers. Valueline MSP430 Launchpad. 10 bucks for two microcontrollers, dev board, and programmer. Multiple free programming software (GCC, CCS, IAR, Energia[Arduino Clone]) ... buffer the output of an ADC, and get the results back to my Raspberry Pi via SPI. Why do you think that needs a microcontroller? Have you considered maybe instead using an ADC with a direct SPI interface? For example, the ADS1294, ADS1271, ADS1278, LTC2440, MAX1416, MCP3208, MCP3301, MAX1464, ZSSC3026CI4R, or any one of dozens of other SPI-interface ADC chips are available from several manufacturers via your favorite suppliers. (There are situations where a microcontroller between an ADC and a Linux box is a great idea. But there are many other situations where a microcontroller adds unnecessary complexity). • @davidcary, thanks for the suggestion! I'll need a sampling rate in the realm of 200khz, and I'm pushing what the Pi can handle already with the GUI. I'm worried that it wont be able to poll fast enough. – user1003131 Sep 27 '13 at 11:58 • Perhaps you could do the simplest thing that could possibly work and use a SPI ADC directly in the first prototype. Later, if you need buffering, see "How can I buffer SPI?". – davidcary Sep 29 '13 at 20:37 I like to use AVR chips with their Atmel studio. Their website has good documentation and because it's the platform the Arduino is based on, you'll have a lot of good example cases. The usb programmers are something like 30 dollars. Or, you could just buy yourself a smaller arduino, unless that's not "low level" enough for you. I have experience programming for chips from Microchip, Atmel, and ST. In general, you will end up getting a lot of people hating on one manufacturer and loving another. Most of the time, you end up liking the series of chips with which you are the most familiar. I will give you advice below, but please don't spend too much time worrying about making the best solution and dive in. All 3 of these choices provide: Free IDE to develop and debug your code. - PIC AVR ST Support forums online PIC AVR ST Example code to download PIC AVR ST Cheap ($30ish) programmer/debuggers PIC AVR ST

Differences:

Microchip: They provide the cheapest chips, but you do get what you pay for. IMO, they are fine parts for hobbyist work. I learned to program micros on a PIC24 using the Learn to Fly book. I found it really useful.

Atmel: They have, hands down, the best and most widely used forum in the industry. Their MEGA series have been made quite popular by the Arduino platform, so you would find a lot of people who run into your problems.

ST: I use the high end ARM core processors professionally and really like them. They have a really good forum page, which will typically get you an answer in less than 2 hours. They also have large online example libraries, for every peripheral. I haven't used the lower end chips that you would probably be wanting, so I would suggest some more research before choosing them.

All in all, I would go with an AVR (Atmel) chip.

Hope this helps

• thanks for the in depth answer, has some great points in it. I'll definitely go with Atmel, the support from the forum will be a huge help. – user1003131 Sep 27 '13 at 12:04

use ponyprog which is so cheap (isp programmer) but first see ponyprog.com site to see whether it supports the microcontroller you need or not it coast just 100RS in india