Another salvo in the PIC vs. AVR holy war

holy war

Ah, PIC vs. AVR, the never-ending battle of electronic design supremacy. Some people swear by Atmel’s AVR microcontrollers, while others are wrong. [majenko] is firmly planted in Microchip’s PIC camp, so he wrote up a nice comparison of Atmel’s AVR versus Microchip’s PIC family of microcontrollers. The results aren’t that surprising; PIC microcontrollers come out as a better product that no hobbyist uses because no hobbyist uses them.

Atmel and their series of AVR microcontrollers has seen a huge increase in popularity in the hobbyist market in the last few years, no doubt thanks to the Arduino and other AVR-powered dev boards. This isn’t to say Microchip and PIC haven’t seen their time in the lime light; there was a time when you could actually buy electronic components at Radio Shack, including kits containing Microchip’s very popular but somewhat outdated Basic Stamp.

After going over the capabilities of the Atmel AVR ATMega328p, the similarly equipped Microchip’s PIC PIC18F25K80, and TI’s MSP430G2533, [majenko] found the perennial favorite, the AVR, lacked in some very important categories. The AVR has a lower resolution ADC, fewer PWM pins, fewer 16-bit timers, while costing about $0.75 more.

Of course [majenko]‘s analysis doesn’t take into account the intangibles of choosing a PIC over an AVR. Thanks to the Arduino’s adoption of the AVR, there are many, many more code and schematic examples floating around on the Internet for just about every project imaginable. The development tools for PIC are a bit more expensive than their AVR equivalents; A PICkit2 runs about $50 while AVR ISP programmers can be found just about everywhere for pocket change.

It’s a lazy Sunday, so all ‘yall can go on and argue in the comments.

Comments

  1. fatmanx says:

    Funny thing is the article never touches the important problem of Atmels having poor or completely missing USB stack on their micro controllers. For instance, take a cheap PIC18F2550 and in a few minutes you’ll have a fully compliant HID device of your liking (keyboard, mouse, joystick, display, etc), working on any PC or tablet that supports USB HID (which means ANYTHING). Does any Atmel chip have this? (Not talking about the FTDI crappy solution or bitbanging the port both of them requiring some drivers installed on the PC)

  2. tz2026 says:

    The specs are mostly irrelevant. I think ST is coming out with an ARM in a DIP.

    Is the toolchain opensource so can run on Linux, Mac, Windows? Can I actually program the chip (arduino bootloader, avrdude for ARM) easily including the other members of its family using opensource?

    I haven’t checked recently, but the GCC toolchain earlier seemed to be worse than an afterthought – they wanted you to use windows and their IDE. I don’t know how to actually flash a PIC under Linux. There was nothing I could find like the AVR Dragon that would do all the programming modes across a broad set of chips inexpensively.

    The Raspberry PI is ARM6 not ARM7, but is taking off not because of the hardware but the software.

    I should note that AVR has the really nice XMega that has all kinds of extra peripherals onchip and capabilities, but no toolchain, yet another programming interface (with limited support), and I’m not sure GCC supports it yet.

  3. Chuckt says:

    I have six different microcontrollers so I don’t care what all of your arguments are. Life is too short to hate so if you don’t like it then don’t use it. My friends’ views are that microcontrollers all basically do the same thing so unless you are an engineer and have a hardware or price requirement, I don’t care.
    This reminds me of the computer wars of the 80’s. The fight was between Atari, IBM, Commodore and Apple. Here we are 30 years later and two of those companies don’t exist anymore and they will be sorely missed. The reason why is because no one really makes that stuff anymore. If one of the computer platforms that I didn’t own won out then I would be using their hardware today.
    I like what people make and people’s finished projects are more important to me than your silly microcontroller arguments. I also have online friends and acquaintances that use everything because they try to get experience with everything.
    What isn’t to be liked about some of those companies is how they treat their customers because some of them are more worried about selling their product as a wind bagged classroom course than teaching the average hobbyist on the street. Other companies won’t pay their customers the time of day. I dislike the price gouging going on because they have forgotten that there are people to teach but their objective is to take my money and make me a consumer instead of teach.
    The forums have a bunch of elitists and people who aren’t concerned about teaching the art of microcontroller use. Focus your efforts on some of these rude people who are takers and not givers.
    Please get back to making new products because if you want to change other people, you have to start with changing yourselves by delivering good products that change people’s minds.

  4. rue_mohr says:

    Mhz, funny, PICS still run 1 instruction for every 4 clock cycles? 64Mhz, so, thats 16Mips, the avr with 1instruction/cycle…
    Microchip decided to a) change a lot for dev software, b) change dev hardware standards.
    Atmel donated code to gcc for free, they posted the standards for programming, which is why everyone makes programmers.
    I dont think PICS are worth the free samples.

  5. Telimektar says:

    And what about Silabs 8051?

  6. Eric Gregori says:

    I coded for PIC’s for 4 years (if you have a garage door opener, there is a good chance you are running my code). The PIC16 and 18’s are great parts for programming in assembly language. The IDE and tools (for assembly language) are solid and work very well. The PIC16 and 18 fall apart when it comes to C programming. The architecture was never designed for C (no real stack). The PIC24 and 32 were designed for C programming, I have not used these families.
    I am curious about Atmel tools. When I evaluated Atmel for my products, the tools (debugger primarily) was terrible. The only option seemed to be “turn and burn”. I am curious, do the low cost Atmel tools support things like breakpoints and single stepping through code?
    In terms of tools and C “compatibility” I found the MSP430G series could not be beat. The launchpad comes with free Eclipse based tools with a real debugger 9multiple breakpoints, single step, watch, … ). If you are just blinking a LED you may not need good tools. If you are doing anything serious, nothing beats good tools.

    • bandit, Albuquerque says:

      The AVRStudio is a good IDE (personally, I am a CLI guy), and the tools for downloading support hardware breakpoints. I think the Dragon ($50) supports one. The highest end is the AVR JTAGICE mkII at $400. These are JTAG devices. I am trying to roll a board right now with the ICP (in circuit programmer) interface – Adafruit or Cornfield sells a $20 downloader that has both interfaces, and you use avrdude with a CLI.

      Personally, I always setup a serial port with a CLI and an LED. Developed and debugged a *lot* of professional systems that way. YMMV.

    • bandit, Albuquerque says:

      > If you are doing anything serious, nothing beats good tools.

      Absolutely. I have not always had that luxury, which taught me how to use the CLI and a bit. But, an IDE that will let you easily see the device registers when you are doing device drivers – golden. Or see a dump of memory spaces. I have CLI tools to do that, but the IDE execution-time tools are great (if they don’t lie to you – had that happen).

      OTOH, the IDE editors suck. vi all the way, baby! YMMV

  7. scatterbrained says:

    I’m a pro and I refuse to use Microchip any more. I had so much trouble with the parts (low voltage programming, I2C bugs), datasheets (crap), compilers (buggy C), dev tools (pickit 3 just didn’t work), and support never answering that I swore them off for good. I always cringe when they buy another company, because I know they’ll ruin it.

    • bandit, Albuquerque says:

      Amen, brother! I had to resoer to but-banging the SPI because their peripheral would intermittently drop a bit, and things would hang. Everything was in spec – clock, rise/fall, and we were not running it as fast as we could. Pissed me off.

      Everything you mentioned, and more, is what pushed me to Atmel. Otherwise, I really didn’t care, but when I have to fight bogus problems that seriously impact schedule…

  8. Totoxa says:

    I have made a test on PIC18F4550 and an Atmega1284p. On both micros i hava programmed a code that calculate fractals and the PIC run faster than the AVR…
    I was using mplabc18 lite and avr-gcc
    I was expecting the AVR to be more fast…
    Any one can explain this?

  9. One point for PIC having SOIC (1.27mm) packages. They are large enough for toner transfer but still smd. Atmel TQFP (0.80mm) is doable, but require more manual fixing on PCB.

  10. dan says:

    To be completely fair.

    Saying a PICKIT2 costs $50 and that’s a bad thing is a little bit crazy.

    First it ignores that the official dragon AVR programmer (most comparable to the linked kit) is also $50
    http://store.atmel.com/PartDetail.aspx?q=p:10500053#tc:description

    Second, if you want to buy just the official programmer, (not a starter kit) it’s $34
    http://www.microchipdirect.com/ProductSearch.aspx?Keywords=PG164120
    which is exactly the same as the AVR programmer from Atmel
    http://store.atmel.com/CBC.aspx?q=c:100115

    And third, the board linked is the most expensive.
    Microchip produce a version that has dev board and programmer for less than just the AVR programmer:
    http://www.microchipdirect.com/ProductSearch.aspx?Keywords=DV164221

    Also if you’ll happily use a generic clone AVR programmer (which you must be if you say they can happily be gotten for much less), then why not use a generic PICKit2 programmer?

    My pic kit 2 clone cost £15 ($23) and as the pic kit2 tool, that programs in circuit with the ISCP header, also the PICkit 2 is a logic analyser, and the tool i bought came with a few different ZIF sockets each to program PIC16, pic32 and EEproms…

    So my less than half the price of the official dragon AVR tool has three functions, (mcu programming, EEprom reading/writing, and logic analysing)…

    Of course, if you have a computer with a (proper) hardware serial port, you can build the JDM programmer with a piece of vero board, 2 transistors and six diodes and a couple of resistors and capacitors, (which was the first programmer that I had -and still have).

    As for the tool chain, the official tool chain, IDE, compilers and linkers etc is now fully free from Microchip supported on windows, and Linux, and Mac, and their forums, are full of code samples also.

    Which I guess brings everything back to the real world…

    If you’re a hobby engineer starting out, then you chose Arduino, -Why? because there are code samples littered all over the internet, you’re real hobby is watching lights flash in a sequence of whatever, the Arduino is a tool to get it done. a tool that you can pick up in five minutes, cobble together some code based on other peoples work and have a working “thing” pretty easily within a day or so. after you’ve learned a little bit about the actual code and start being able to write your own code instead of taking others, you’re probably going to want to do something that’s bare chip (not a dev board -not arduino) so you likely should chose AVR, why should you chose AVR, well, the extra cost doesn’t matter, you’re only making one, the tool chains are going to be vaguely familiar, and your programmer is going to actually be useful to burn boot loaders onto new chips when you break your existing chips -meaning you don’t need to buy pre-burned chips.

    The only place where PICs genuinely make sense is:
    >If like me, it’s what you started on so you’re already invested.
    >You’re making a tens or hundreds, thousand or millions for production, (then that extra few dollars per chip is a few tens, few hundred few thousand or few million dollars of lost profit.)
    >or you genuinely _need_ those few extra pins to do this, or to do that…. and I’ll guess that most hobby projects do not need 3 different 16 bit timers or an extra 2 ADCs, will the extra 1 IO pin really make that much difference?

    The long and the short of it is…
    for a hobby use whatever you’re comfortable with. (don’t care if it’s PIC, ATMEL, STMicro etc)
    for a large scale profession, use the best tool for the job. -that’s the tool that gets the job done with the least high volume cost. (also don’t care if that’s PIC/ATMEL/STMicro etc.)

  11. xcoder says:

    Well, In university I had to do both of them. This is what I think of them.

    -PIC C18 compiler is crap, accidentally make wrong casting it will take days until you find why your code in simulation is working and in real life, not at all.
    -Datasheets are slightly harder to understand than for AVR, AVR has a lot of nice example
    -Assembly for PIC is nightmare
    -IDE with C18 compiler is not free (for uni I had to use C18)

    -AVR has a very nice IDE, and easy to code in C, very robust as well.
    -Assembly is much more straight forward than PIC
    -Datasheet is very easy to read, and has example codes in both assembly and C
    -Even C is more polished, so far haven’t had the need to us #pragma, like I had for PIC just to make an interrupt function

    In any case, use what ever you like most, I think the end product matters rather than the platform. And I might be wrong, it’s just maybe I’m more familiar with AVR series uC

  12. Leif Burrow says:

    “there was a time when you could actually buy electronic components at Radio Shack, including kits containing Microchip’s very popular but somewhat outdated Basic Stamp.”

    Actually, I’ve been to several Rat Shacks that recently that still sell that same outdated Basic Stamp for way too much money. They also sell Arduinos now, at pretty much their standard price which to me is also too much considering what I am acustomed to paying to Mouser for a 328, a crystal plus two caps giving me the exact same capabilities.

  13. George says:

    majenko’s article is worthless. Never seen such inflamed misinformation and general lack of understanding of architecture.

  14. IJ Dee-Vo says:

    I know how end this war…dont want someone using chip a over chip b? buy the chip for them!

  15. Roadrunner84 says:

    EEVblog rants Atmel too >:D http://youtu.be/DBftApUQ8QI

  16. Ren says:

    “there was a time when you could actually buy electronic components at Radio Shack, including kits containing Microchip’s very popular but somewhat outdated Basic Stamp.”

    The last time I was in the local Radio Shack, they had Arduino and Propeller kits…
    (as well as other electronic components). Has “the Shack” changed that much in the past month or so?

  17. Josh says:

    The basic stamp is a Parallax product… Yes it has a PIC with custom firmware at its core. But it is not microchips product. And you can still buy them at radio shack ;)

  18. jacques says:

    Pic is a living dead, because they did chose the wrong path to 32 bits, and there is no future for 8 bits devices

    • bandit, Albuquerque says:

      There is plenty of future for 8-bit devices. I am a pro, and I choose which micro will be best for the application and client, which includes things like toolchains, availability, cost of materials, cost of labor, applicability, power consumption, etc

      For these reasons, I chose Atmel over PICs. They even have ARM versions, if I need the speed and power.

      Shucks – most doorknobs have 4-bit chips in them.

      Dude – pick the right tool for the job. A 3-lb sledge is not the tool for a finishing nail.

  19. ftorama says:

    Now Cortex-M0 and M0+ and this old war will finish with no winner (except an advantage for AVR of course :-D )

  20. WhiteCrane says:

    The parallax propeller eats the arduino for breakfast, as far as being a hobbyist. Arduino is great for being lazy because you can just slap alot of stuff together. But the prop chip, i can actually program on that and its far more powerful.

  21. Scott Harden says:

    I’m internally TORN and CONFLICTED, full of YEARNING and FRUSTRATION.

    I’m a simple guy, know a little code, and a little electronics. I learned AVR quite well (not arduino) and enjoy rapidly developing prototypes of things with it using AVR-GCC. I WANT TO USE PIC! Their chips are indeed cheaper and they have neater peripherals (higher resolution ADCs, USB in DIP chips, etc)… but there are twenty different “getting started” guides, I’ve blinked an LED ten different ways, and my “stuck” moment (where I go straight back to AVR) comes at the end where it seems like “to continue from here, pay $$$ for compiler XYZ”.

    Is this REALLY the case? Can I simply not write full-punch programs for PIC chips for free, whereas I can fully utilize AVR chips for free? If this is the case, that’s cool, but *someone needs to straight-up say it* so I don’t keep wasting my time. I’m a college student, not even engineering major – I’m simply not going to pay for compiling software. If an AVR is 50 cents more, and I don’t have to deal with a crippled compiler, it kinda almost seems worth it… but I still REALLY wish I could at least give PIC a solid fair shot.

    I don’t mean to start a flame war. I’m truly inquisitive and a bit desperate. I have a PicKit2, handful of 16F and 18F chips, and really want to give a good stab at this. Is the free lite version of MPLAB the best option stability-wise for free? I know there are a little more open source options (SDCC?) but from what I read a lot of people complain about bugginess.

    I legitimately would like an objective, rational guide for developing for PIC using free software. Although I do all my AVR development on ‘nix, I’m even okay with migrating to windows it it would let me give PIC a fair shot. Any advice?

    • Jon says:

      For PIC18F-series chips, there are some alternative programming languages to consider. The first is Swordfish Basic. The Special Edition is free and has extremely generous limits on the amount of code that can be compiled. Many people use only the free version and never bump up against any limits.

      The second alternative is Amicus Basic. This is a full and complete version of Proton Basic, but limited to only the PIC18F25K22. This is a 28 pin chip with a wide range of features and lots of memory.

  22. Hussam says:

    The whole Atmel vs Microchip discussion is vastly outdated!!! Which Atmel Chip vs Which Microchip Chip ? AVR vs PIC18 ? AVR vs PIC24? AVR32 vs PIC32? XMEGA vs ? ATMEL ARM vs PIC32 ?
    The microcontroller world is currently being dominated by 32-bit Microcontrollers and specifically the Cortex-M family. Having said that the PIC32 and AVR32 fit nicely within the same performance category. They all have good development tools and adequate support and really what it comes down to is price.

    In terms of the programming experience , we have C/C++. And as we move into 32-bit (ARM, ATMEL, PIC32/MIPS or anyone else) the hardware differences tend to be less significant due to the abstraction of using high level languages.

    At this point in my hobbyist life, I’m spending a lot of time learning linux and using embedded linux platforms such as the Raspberry Pi and the Beaglebone. I still dabble in 32-bit Microcontrollers, primarily the STM32F families and the PIC32.

    The AVR and PIC16/18 are not even on the radar and shouldn’t be for any intermediate to advanced Microcontroller / Electronics hobbyist.

  23. Guan Yang says:

    I’m a little confused by the argument that PICs are cheaper. It may be true in general, but not in his example for Americans and others who buy from Digi-Key.

    First of all, if DIP is a requirement, do you really care about single quantity pricing? I would only use DIP in small quantities and then it doesn’t matter if a part costs $1 more. Even for prototypes I tend to solder up an ATmega328P in TQFP these days.

    Second, on Digi-Key, ATmega328P is $3.16 @1 and $1.7628 @100. PIC18F25K80 is $3.64 @1 and $2.37 @100. The PIC part is a lot more expensive.

    I’ve never used PIC, so I may be missing something—is that the case? I selected the cheapest DIP PIC18F25K80 that was in stock.

    • dan says:

      the extra 50cents gets you… (just looking at the quick specs)

      an extra 2 bits of ADC resolutions (10 bit for Atmel 12 bit for PIC)
      an additional 1k of RAM 2k for Atmel 3K for PIC)
      1 less PWM channel (4 for Atmel 5 for PIC)
      a hardware CAN bus interface, (not available on the Atmel chip, present on the PIC)
      half as many touch channels (16 on the Atmel, 8 on the PIC)
      4 less pins (32 on the Atmel 28 on the PIC)
      2 more timers (3 on the Atmel, 5 on the PIC)

      well, there’s a whole heap of differences. some of the differences will be useful,

      lets assume that my project needs to measure and record data, and I need at least 2.5k… if I use the Atmel then I’ll need to buy a whole other chip to store data on.
      if my measurements are analogue then is a higher resolution useful? if so does that atmel chip provide the resolution that I want with only 10 bits?
      It might be a foolish choice to pick the Atmel chip for my data logger, it can’t measure with the same resolution, it can’t store as much data etc.

      on the other hand, lets assume that 10 bit ADC is fine, in face 8 bit would be fine.
      what if my project doesn’t use any memory and just measures and immediately transmits data to a computer, say via serial…
      well in that case it’s be wasting money if I chose the PIC.

      There are quite a few differences between those chips. and the 50c difference could Prove something either way for example, if I go and pick an atmel chip with at least 12 bit ADC it costs more than the PIC.

      But if the feature isn’t useful, who cares?

      What if my board is really densely populated, and that extra few mm from the extra 4 pins made a huge difference to my board layout? and I end up saving 50c on the chip, but spend $1 more on the board fab?

      Which is what a load of people have tried to say…
      choose the best chip for the job. where price power and performance features etc are taken into account.

      • guan says:

        If space is tight on your board, you should be comparing QFN or even flat pack prices. Conditional on using DIP chips, you are probably dealing with low quantities and shouldn’t care so much about component cost (unless you’re building a kit).

        I agree about choosing the best chip for the job, also considering the price, but it would help to get the (approximate) prices right first. Otherwise your total comparison will be garbage in, garbage out. For the author of the original article similarly specified PICs are cheaper, but for people who buy from Digi-Key or Mouser (a lot of Hack a Day’s readership) the AVR is cheaper.

        Not every design can benefit from 2 extra bits of ADC resolution because of noise if the analog side isn’t well designed. Now I know that the AVR ADC is slow compared to a lot of alternatives (not sure about PIC). That’s a separate issue not mentioned at all.

    • dan says:

      >Not every design can benefit from 2 extra bits of ADC resolution because of noise if the analog side isn’t well designed. Now I know that the AVR ADC is slow compared to a lot of alternatives (not sure about PIC). That’s a separate issue not mentioned at all.
      ok, let’s say that 8bit resolution is fine, (both chips can easily do this, but I need 3k of data memory to store.
      I either use the atmel AND a second chip for storage or I use the PIC, and that second chip is likely more than 50c extra…

      The specific point isn’t that the Atmel wasn’t as good, or that the PIC was justifiably more expensive, it was that you should chose arts based on requirement and cost,

      even if the Atmel was more expensive in this case you could argue that even with less ADC resolution, less PWM channels, less timers etc it was worth it because it had twice the amount of touch channels.

      but mainly the point I thought should have been obvious was. you;re not comparing like for like.
      go find an Atmel chip with 12bit ADC and compare the cost.
      or find an Atmel chip with the extra timers, or the extra PWM channels and then compare cost. then you;re going to find that the Atmels are more expensive.

      or go find a PIC chip with 16 touch channels, suddenly it won’t just be 50c more expensive!

      >I agree about choosing the best chip for the job, also considering the price, but it would help to get the (approximate) prices right first. Otherwise your total comparison will be garbage in, garbage out. For the author of the original article similarly specified PICs are cheaper, but for people who buy from Digi-Key or Mouser (a lot of Hack a Day’s readership) the AVR is cheaper.

      You’re approaching the problem from the wrong end, don’t let the price dictate what part you chose.
      Generally, if you’re trying to source parts.
      firstly you have a list, it has every part in the world on it. and you narrow down from there.
      I want 12 bitADC, (but could settle for as little as 8 bit), I need 2 timers, I need 5PWM channels, but could maybe be clever and arrange a switching system to reduce the amount of PWN pins I need, (maybe all my PWM outputs don’t need to be on at once) so maybe the list is ideally 5, but 3 will do. then you end up with a list of suitable parts.

      Then you look at the costs involved in the part. (you don’t start with the costs, and say I want to build xyz but I only want to spend $3.50, what parts should I use. you should be saying I want to build XYZ, then if it comes out as costing $7 you can say, it’s not worth it I’ll buy a commercial equivalent, or it’s not an economically viable product for market as it’s price point would be too high.

      after you refined your list down from all the parts in the world to the ones that will at least do the job, your list of applicable parts include pretty much all the more expensive parts, AND those two parts.

      That bit of the selection process should be the same regardless of whether you’re a hobby electronics guy or a professional engineer.

      Next you need to consider how you’re going to use the parts.

      this is where it can start getting a little more subjective. and the process is going to differ between home and industrial processes.

      for example I want to drive 5 servo motors with PWM, but only ever one at a time, could I create a switching selection circuit and be happy with the 3 pwn pins the atmel provides? usnig a few 1/10th penny FETs to produce a switching block.

      if my scale of manufacture is 1, if I spend any more than 3 minutes designing, everything to do with that switching block, I’ve already lost that 50c in time!

      if my scale is 3 billion, (ignoring that Atmel couldn’t provide that many!) then if I spend two hours and 3c or parts to make that switching block so that I can get away with fewer pins, then I’ve probably saved the company a few billion dollars.

      if I have to buy a new programmer, learn a new style of coding, get familiar with a new compiler for the sake of saving 50c then I’m onto a real loser.
      but again, if the manufacturing quantity is 3 billion, then I’m pretty sure than for the sake of 1.5billion dollars in part saving, the company would happily pay for training in a new product. or give me time away from design to upskill.

      • guan says:

        I didn’t pick those parts for comparison, the author of the original article did! You may or not agree that those two parts are comparable for your application, but once they’re selected, we should get the prices right.

        Price should definitely be part of the tradeoff. And as you hint at, it’s often hard to find two parts that are exactly comparable, but once you have two that you want to compare, it helps to know which one is cheaper.

        Here are two examples that you bring up: For ADC, I can potentially use oversampling to get 2 extra bits of resolution. That doesn’t work for applications where the ADC needs to be fast, of course, but for some applications I can perhaps live with less ADC resolution and oversample if the microcontroller is cheaper.

        For PWM, I might have applications where software based PWM is good enough (implemented with some clever timer ISRs), and I can save some money with a part that has fewer PWM channels. In other applications, I really do need hardware PWM.

  24. dan says:

    For the above comment of mine TL:DR you;re not comparing like for like parts.

    I could pull two random parts and say look this one costs more than that one.

  25. Chris says:

    I don’t know whether someone already have commented on this, but this comparison is quite useless since the author doesn’t have enough knowledge about what he’s comparing.

    To start off: RISC is a software architecture, Harvard is a hardware architecture. BIG difference, and cannot be compared like that. The opposite of RISC (Reduced instruction set computing) would be CISC (complex instruction set computing). The Harvard architecture basically means that the storage and signal pathways for instructions and data are physically separated. I.E: You can’t say that Harvard is better than RISC, since that’s comparing apples and…basil. PIC and AVR are completely equal on this point, BOTH have separate buses for data and instructions. And, a PIC is most definitely a RISC-chip!

    Next line is the RAM, and again the author shows lack of knowledge, because he’s totally missing the fact that on an AVR, the RAM can only be used with TWO instructions (store and load), if one wishes to actually do anything with the data, it has to be moved around. On the PIC however, ALL instructions can work on ALL 3684 registers. That is a HUGE difference, that is not even mentioned. That is also the reason that the AVR got 131 instructions, and the PIC(18) only got 75…(or 83 if you turn on the extended instruction set). So, going back to the first point, the PIC would be “twice” as much RISC as the AVR….

    Then he’s comparing the “Max MHz”, a completely uninteresting number! It makes a huge difference if one instruction takes one or four clock cycles to run…it also makes a big difference how the architecture of the µCU is arranged, if data has to be moved back and forth, and so on. Comparing the “Max MHz” means nothing, absolutely nothing.

    I don’t have energy to go on, I just wanted to show that this “article” is in fact based on lack of knowledge, and that it really doesn’t mean anything.

  26. Zardoz says:

    You should read about pinguino (http://www.pinguino.cc/). It’s a proyect that allow to use Arduino code and libraries with some microchip PICs uC, using SDCC (GCC for PIC32 uC) for c Compiler.

  27. Travis Griggs says:

    I’m somewhat of an embedded neophyte, having hailed for a long while in the “high level” world. We use both on a project here, and I hate the PIC. I’m not an EE turned programmer, so a lot of the things people get excited about don’t make much difference to me. I have real world problems I have to write code for. And for me, MPLAB-X sucks. I hate it. I mean, it’s OK. But it, and the whole tool chain lock in drive me nuts. Supposedly they’re making it more pluggable, but I’d have to become a Java hacker to do so (heck). Writing code for our megas (at and x), I can use gcc, unixy stdlib libraries, make or python to script builds. I can use QT Creator which is much faster, lighter, and featured than MPLAB is.

  28. qwerty1234 says:

    Been working for 10years with PIC, briefly “dating” AVr during 2006 for a ATMega128 project, now returning to AVR.
    A a side note, I’m also exploring the chinese Elan micros, bec they’re cheaper and more suitable to simple retail products -Not sure I’d use them for a pacekeeper though.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s