[time-nuts] Good (cheap) PIC chip choice for project?

Gary Chatters gcarlistaa at garychatters.com
Sat May 25 17:26:45 EDT 2013

On 05/25/2013 03:08 PM, Jason Rabel wrote:
> My reasoning for using a PIC (or similar) is mostly two factors.
> First, simplicity... The few things I have in my head that I've wanted to do aren't complicated or require special busses. It is
> things that you could *probably* do with a whole pile of logic chips, or keep it simple with just one PIC. ;)

Sounds like an 8-bit PIC or AVR would do for you (more detail needed to 
be sure).  But it may or may not make your project simple.  Using a 
microcontroller will, to some extent, convert the project from a 
hardware to a software project.

After one experience writing a assembler function for an 8-bit PIC, I 
decided I liked the AVR instruction set better.  The AVR data sheets are 
over 400 pages, so there is a lot of capability or a lot to learn 
depending on how you look at it.

> Second, cost... Spending $30-$40 for a one time project is fine. But say after 10 or so, the cost savings of a $2 chip vs $30
> embedded system starts to add up.

It's never just the chip.  However, there are a lot of little boards 
with the processor chip on them.  Some are down in the $10 to $20 range. 
Look through Olimex (available from Mouser) and Sparkfun.

> I agree with you that I need to figure out the project details first and what I'm trying to integrate with and work backwards. I'm
> really glad people are giving me feedback though I didn't know so many different options existed (and at so many different price
> points). If you don't ask, you will never learn. ;) Both the Arduino and TI Launchpad offerings look very intriguing.

It can be quite a task selecting the right microcontroller.  Each chip 
in a series has the same basic processing core.  Then they add memory: 
RAM, Flash for program, and EEPROM in varying amounts, then on chip 
peripherals: UARTs, counter/timers, SPI interfaces, ADCs, etc.

One thing to keep in mind is that they usually do not have enough pins 
to use all the peripherals at the same time.  Each pin may have two or 
three alternative functions, one of which must be selected by software 
at startup.  Once you select a chip with the peripherals you want, check 
to be sure all the right data lines come out to separate pins.

> I'm on no deadline, so time is not an issue. I just wanted a new challenge and this is something I've wanted to dive into for a long
> time.

I have only worked on a few AVR projects (two using Arduino boards). 
They are fun to work with if you like working close to the hardware. I 
hope we are not discouraging you at all.  Just pick something and get 

> Learning a programming language is not an issue. While I mostly write code in PHP, Perl, and shell scripts these days, I used to and
> am still somewhat familiar with C/C++. Most other programming languages I've used in the past are now probably considered archaic or
> defunct. ;)

Microcontroller development tends to be in C/C++.  You may occasionally 
find a use for assembler.

The Arduino development environment uses C/C++ code. I do not like the 
environment all that much, though.  It sets up a lot things in the 
background to make development easy for beginners.  That makes some 
tasks, such as using timers, more difficult.

> Looks like I have a lot of reading to do now. Everyone's responses have been most helpful!
> Jason

More information about the time-nuts mailing list