arduino vs pic vs others... which should i learn?

Status
Not open for further replies.
nothing wrong with scotland, its just too far to have something shipped, im in the united states.. ill try to find a bulk supplier of component parts that would allow me to order a varying quantity of different component parts

Well fill your location in then - the USA is probably the best place to be buying components anyway.
 
Quite honestly, I started digital/embedded electronics almost 3 years ago. I started with the PIC microcontroller with the intent of using the PIC just to get my feet wet in the world of embedded electronics, then graduating to the MCS-51 family once I had a firm grasp of embedded electronics and writing my own code.

I eventually did move on to the MCS-51 family, only to discover that I should've started with the MCS-51 all along. Although the upside to that is I am now very fluent in two different assembly languages and understand two different architectures, which expands my options a bit.

For assembly coders, Intel assembly makes LOADS more sense than Microchip PIC Assembly (MPASM). Furthermore, the MCS-51 family is a CISC processor (Complex Instruction Set Computer) whereas the PIC is a RISC processor (Reduced Instruction Set Computer). Because of the CISC nature of MCS-51, there are lots of tasks which only require 1 instruction that require a few instructions to do on a PIC. For example, the MCS-51 instruction set has an instruction that will compare two values, then will skip over a code segment if the two values are not equal. For a PIC to do this, 4 instructions are required whereas the MCS-51 family can do it with one instruction.

Now lots will tell you that the MCS-51 family is old and outdated blah blah blah. Sure, it's been around since 1980, but MANY manufacturers still make MCS-51 derivatives with updated features and hardware and it is STILL to this day one of the most widely used processor families in new designs even today. And truth be told...A LOT of the AVR platform and even some of the AVR instruction set was borrowed from the MCS-51 family.

MCS-51 family is my personal favorite, but in the end it all boils down to personal taste.
 
Last edited:

(This should be split from the original thread, because it's not directly relevant)

The point above is not exactly a fair comparison.

Instructions in the PIC architecture usually take 1 cycle, with some exceptions (e.g. branching).

Instructions in the 8051 architecture take a different number of cycles, between 1-4.

Therefore it may be one assembly language "instruction" but that doesn't mean things happen any faster or slower. And neither family is better or worse for this, it is just a subtle architecture difference.
 
so, what would you guys choose in pic vs avr?... im thinking of buying a 32-bit processor, and 8 bit processor from each to experiment with on the solderless breadboard.. and pick up some other various chips and modules to play around with, to get individual features working at a time before putting any usable device together, so i think id like to play with LED controller chips, capacitive touch sensor chips, probably get a VS1053 chip for music decoding, an SD card slot, LCD display, speaker... just things im going to need for general experimentation of different features while i test and experiment not only with assembling proper circuits, but programming them to function properly as well

im not sure if i should really go this route, or just get an adruino or pickit board first to practice the programming first, and assembling boards later on though
 
Last edited:
The difference is not A vs. B.

Do you want something where you can buy a bunch of modules that plug together and come with example code? If yes, look at PICBasic, Flowcode, the Arduino etc.

Or do you want to start from scratch and learn about the processors. In which case a vanilla PIC, 8051 or AVR.
 
well, it would appear many of the parts present in the arduino and arduino-like pic based development boards are the same, as theyre both basically the chip with a USB interface and reset button... so i might as well get the components needed to assemble a dev board for each on a breadboard, and just play around with an 8 bit microcontroller from each manufacturer...

i think this should be the last question i need... whats the most versitile, all around 8 bit microcontroller by pic and atmel? that i should use for general experimentation?
 
Pick the processor based on the tutorials and support/help you can get. For the first processor these are far more important that the processor itself.
 
In either case get a device that will not run out of inputs or outputs when the requirements are so broad and undefined. 28 pin minimum, 40 or 44 pin better yet. Getting a genuine PICKit or AVRISP programmer cuts out the frustration of trying to make your own programmer, and you know there is future support for most all devices. EDIT: for a do it all processor, data and program memory comes into play for more advanced projects, like bit maps for a GLCD, so load up on that too.

In the PIC 8 bit lineup, the most versatile would be the latest lineup introduction, they just keep loading more peripherals and multiplexing more pins then ever (i.e more speed, timers, PWM etc.). It is just plain hard to stay with up with the current generation. I would tend to favor something like the 18f46K22, or the PIC18f46K22 demo board. In the AVR lineup a MegaAVR? never tried one.
 
Last edited:
well, i seem to find more support for the pic as a stand alone processor, and a lot of avr support with the large arduino fan base.. but i seem to find more support for the AVR as far as experimenting and prototyping, and more support for pic as far as actually putting something together.. its a tough decision since theyre both capable of the same things... they seem to be neck and neck... since its best to buy a programmer, i think ill just go with avr for the time being, and focus on that

well, thanks for the information everyone
 
This is a very personal decision. You talked about lists of pros and cons, but even these lists are very subjective. You can't "really" be objective at all, let alone on something like that.

The best you can get in a thread like that is people talking about why "THEY" work on the the things they work on, not which should you learn. That's for you to chose from the things you read.

For instance, I am a beginner in PICs and PCBs and that sort of things. Personally, I really do not like "kits" and "developement boards". Don't ask me "Why" as I do not have a logical answer for that, it's just deeply ingrained in me. Hell, almost the first thing I do when I buy an electronic device is to void the warranty. I LIKE to read datasheets and learn assembly because I find it fascinating that there is nothing lost in translation ... So this sort of excludes almost anything that is not a bare bone chip, that's why I don't work with kits.. For NOW.. But I'll probably buy some of them to tinker with them... Because I like to touch stuff.

But many people do very well with kits for beginning.

Now as to the question to which to chose ? Whatever suits your needs. Whatever spikes your interest. I had a project recently so I learned EAGLE (because I find it easy and intuitive and have printed, read and annotated its 72 page manual). And came to this board to get feedback from perfectionnists. The project involved PICs, and I found here all the help I needed to dispel ambiguities.

So, chose what excites you, what fits your personality and as the others said, what has a community around it.. But having a community is the case of any interesting device... So chose the one that really turns you on and suits your personality. There are plenty of fora to support any choice.

Remember, you are not a special flower .. There are more than 6 billion people on this planet .. Even if you're special enough to be 1 in a million .. There are still 6 thousands like you. That's enough for a forum, so chose what excites you
 
Last edited:
The trouble with asking your question here or anywhere is that people tend to suggest what they use even if they only know the one platform.

You many want to try the development tool chains prior to picking. Any decent toolchain should include a simulator and an in circuit debugger aka ICD.

As for support read the forums for a while and see where people are getting help and where not. Are questions from noob's answered or are they snubbed.
 
as for what id like to do with either processor, either one can do the job, either one can do the job very well, its like asking if i want a burger from mcdonalds, and trying to pick which one to go to when both are equal distances.. it seems the answer is, it doesnt really matter.. atleast, thats the impression i get
 
Reasons why I use microchip.

Traditionally the support on ETO has been much better for PIC then any other microcontroller. Microchip has also been very active in helping education with support and products.

A single $35 pickit3 from microchip will program all all PIC processors (8 to 32 bit). It also will debug most PIC processors. Microchip has been good about replacing defective programmers regardless of when you purchased them. So much so that it does not make sense to buy a clone.

A wide selection of chips from a single vendor. Microchip has been good about not discontinuing old processors. You can still buy the ancient 16F84A. The newer PICs can do some interesting stuff.

Free tools. Note that the compiler is less optimized in the free version. That is not a big deal for me in that chips with more memory are not expensive.

Note that none of the above trashes processors from other vendors. There are a lot of good ones.

EDIT: I have used controllers from Motorola, Intel and Zilog.
 
Last edited:
Speed comparisons for 8 bit micros is always amusing, it’s like comparing a 1.2 litre Ford Fiesta and a 1.2 litre Citroen Saxo – both are woefully slow but for the majority of tasks it does not matter.

I have used AVR with WinAvr (not too bad, but documentation could be a lot better), Cypress FX2 8051 based USB micro with SDCC (same), MSP430 with IAR/MSPGCC (was the best low power micro out there but the lower power PICs are a good match), a fair few TI DSPs (C2000, C6000 series), and pretty much all offerings of PICs with their matching C compilers.

I love the documentation and support libraries you get with microchip. I have never had to ask for advice on them (unlike the others). I have got a PIC32 reading a text file from an SD card and outputting each ASCII code via SPI within about 10 minutes. Literally a case of plugging LEGO block functions together from the Microchip Application Libraries which is great if your already up to speed as a engineer.

For learning I would start with an Arduino or even a PIC / AVR board on a piece of veroboard or a breadboard (these can be temperamental beasts though, especially old worn out ones!) with a C compiler + IDE to get some successful projects under your belt.

I would only recommend assembly if you want to fully understand how the micro works or if you need time critical code.

Most AVR programmers generally just use ISP, the PICKIT3 and PICKIT2 allows you to do in circuit debugging (halt the CPU and look at registers and variables ) which is a God send at times. I have a USBtiny (no ICD) for AVRs and that works pretty well, and is pretty cheap.
 
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…