NerdKits - electronics education for a digital generation

You are not logged in. [log in]

NEW: Learning electronics? Ask your questions on the new Electronics Questions & Answers site hosted by CircuitLab.

Support Forum » Why not PIC?

March 11, 2010
by ravism7
ravism7's Avatar

I was wondering why NerdKits use Atmel microcontroller instead of PIC. Are there any specific reasons? like cost, more resources etc. How different are they? Atmel vs PIC.

March 12, 2010
by treymd
treymd's Avatar

I imagine the differences are small. the instruction set differs, but you don't see that too much if you are programming in C. If you dove into the assembly you would see the difference. AVR has it's instruction set, PIC has it's own, and the Intel processors and clones have a different and larger instruction set. the instructions are basically human friendly(ish) op codes that are translated by the assembler into machine useable binary.

Both instruction sets have a huge following and alot of open source and free tools to program with, so I don't believe that was the deciding factor. My guess is ... they flipped a coin!

March 12, 2010
by Phrank916
Phrank916's Avatar

This is from a book I picked up recently called : AVR: An Introductory Course by John Morton:

"Basically, the AVRs are based on a more advanced underlying architecrture, and can execute an instruction every clock cycle (as opposed to PICs which execute one every four clock cycles). So for the same oscillator frequency, the AVRs will run four times as fast. Furthermore they also offer 32 working registers (compared to the one PICs have), and about three times as many instructions, so programs will almost always be shorter. It is worth noting, however, that although the datasheets boast 90-120 instructions, there is considerable repetition and redundancy, and so in my view there are more like 50 distinct instructions.

Furthermore, what are known as special function registers on PICs (and known as input/output registers on the AVR) can be directly accessed with PICs (e.g. you can write directly to the ports), and this cannot be done to the same extent with AVRs. However, these are minor quibbles, and AVR programs will be more efficient on the whole. All AVRs have flash programming memory (so can be rewritten repeatedly), and finally, as the different PICs have been developed over a period of many years there are some annoying compatibility issues between some models which the AVRs have managed to avoid so far."

That info answered the question for me. Hope that all makes sense. :)

Ted

Post a Reply

Please log in to post a reply.

Did you know that microcontrollers have two different kinds of memory, program space (flash) and SRAM? Learn more...