[time-nuts] Good (cheap) PIC chip choice for project?
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
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!
More information about the time-nuts