Fórum témák

» Több friss téma
Cikkek » PIC vs. AVR, kezdő vagyok, melyiket válasszam?
PIC vs. AVR, kezdő vagyok, melyiket válasszam?
Szerző: Topi, idő: Aug 9, 2008, Olvasva: 44327, Oldal olvasási idő: kb. 4 perc
Lapozás: OK   1 / 1
Ebben a rövidke kis cikkben megpróbálok pártatlanul választ találni, e sokszor vitába torkolló kérdésre. Az itt leírt dolgokat kb. 10 év használat és mindkét processzorra való nem kevés fejlesztés után írom, így nagyjából pártatlanul állok a dologhoz.

Azt hiszem, a vitát érvekkel és ellenérvekkel lehet a legjobban elkerülni. Jópár éves tapasztalatom van már mindkét gyártó, mindkét fentebb említett processzorából. Ezek nem hobbi szintű tapasztalatok, hanem a termékfejlesztéseim közben felhalmozódott észrevételek.

Mindenre ki szeretnék térni, ami hirtelen megfogalmazódik bennem, és egy pont ide, egy pont oda módszerrel értékeljük a végén. (PIC16F877 vs. ATmega16)

A korrekt összehasonlítás miatt mindkettő azonos lábszámú, és azonos elterjedtségű, továbbá közel azonos belső perifériájú.

 Kérdés Válasz PIC esetén Válasz AVR esetén Győztes
Prog. memória/ár arány (mindenhol az olcsóbb SMD-t választva)

PIC16F877 = 14K/1350Ft =>

96,4 Ft/kB

Atmega16 = 16K/600Ft =>

37,5 Ft/kB

AVR
Típusválaszték Csak 8-16K-ig kategóriában: 84 féle processzor 8-16K-s kategóriában:
4-5 féle processzor
PIC 
Programozhatóság, programozók Jóformán a misztikumba merülő programozó hardverek.
Rengeteg hibás, nem működő kapcsolás kering a neten.
Rendkívül egyszerű, és stabil programozás. Kevés számú programozó kering a neten, szinte mind stabilan működik.
Gyártó oldalán rengeteg féle, az USB-stől kezdve a sorosig, teljes dokumentációval rendelkezésre áll ingyen.
AVR
Fejlesztői eszköz Egyazon tudás alapján:
ICD2
MPLAB ICD2 = 27 000 Ft
AVRDragon
ATAVR Dragon = 13 000 Ft
AVR
Célspecifikusság Rengeteg típus, rengeteg féle processzor.
Ezernyi lábszám variáció.
Kevés processzortípus, pár célspecifikus verzió (PWM, USB, CAN, stb). PIC
Fordítók:
Assembly fordító mindegyik esetben ingyenes, így a C fordítókat vesszük szemügyre
HITECH - PICC = Fizetős, veszett drága
CCS-C = Fizetős, olcsó
AVR-GCC = Ingyenes, nyílt forrású - GPL
CodeVision = Fizetős, de olcsó
AVR
"Strapabírás"
Túlfesz védelem, tápzavarokra való érzékenység
Ritkán, de kibírja a hibás tápfeszültséget.
Tápfeszültség-zavarokra jobban érzékeny, könnyebben reset-el.
Sok esetben tartósan is kibírja a túlfeszültséget. Feszültségzavarokra minimálisan érzékeny.
Automotive minősítés!
AVR
Dokumentáltság Rengeteg dokumentáció, sokféle nyelven, magyarul is sok dokumentáció áll rendelkezésre! Kevés dokumentáció, magyar nyelven szinte alig. PIC
Elterjedtség  Magyarországon jelenleg a PIC.
Mivel összehasonlításunkban Magyarországot nézzük: győztes.
Mindenhol máshol, egyre jobban utat tör magának az AVR. PIC
Programozhatóság, célhardver Szanaszét pakolják a programozó lábakat, nehéz bekötés (1-esen reset, 39-40-esen PGD PGC, középtájon a tápfesz). Atmega16-nál is, mind egy sorban van: GND, VCC, RST, SCK, MOSI, MISO.
Könnyen tervezhető NYÁK, könnyű használat próbapanelen.
AVR
Programozás és debugolás Egy és ugyan azon vezetéken folyik a programozás és a debug
ICSP.
Külön interfészen folyik a programozás és a debugolás. ISP - JTAG
(persze kivétel ezalól a debugWire).
PIC
Sebesség 4 órajel = 1 utasítás 1 órajel = 1 utasítás!! AVR 
Programozás sebessége Lassabb. Gyorsabb, AVR-nél a cél a gyártásban való maximális sebesség.
Gyártásban, ipari célokra előszeretettel használják.
AVR
Programozás, órajel Programozáshoz nincs szüksége a processzornak futó oszcillátorra. A programozáshoz szükséges az oszcillátor futása SPI (általában használt) programozási módban.
Párhuzamos programozásnál nincs szükség rá.
PIC 
Belső RC Néhány, kiválasztott típusban van beépített RC oszcillátor. Minden típusban van, beépített nagypontosságú RC oszcillátor. Szinte kivétel nélkül, a 8 lábú tiny szériában is 8MHz-es!
Ez pont az előbb említett "hátránya" miatt van.
AVR
Belső perifériák, felhúzó ellenállás Csak adott portokon, adott lábakon.

Minden porton, minden lábon van kapcsolható felhúzó ellenállás =>

=> Költségmegtakarítás

AVR
Belső perifériák, timer Maximum = F_CPU/4 
Timerek nem képesek a rendszer órajel 1/4-énél gyorsabb járásra.
Maximum = F_CPU
Tehát, a timer képes a rendszer oszcillátor-sebességével járni.
AVR
Belső perifériák, PWM, compare Compare modulban kevés funkció. Compare modulban rengeteg funkció.
Fast PWM, Phase Corrected PWM, Normal PWM, toggle funkciók, stb.
AVR
Regiszterek hozzáférhetősége Rengeteg BANK-re szétbontva össze-vissza. Egyik ezen a BANK-en, másik azon a BANK-en. Nincs BANK-elés, minden regiszter mindenhol elérhető. AVR 
Assembly tanulhatóság Egyértelműen, a PIC saját assembly nyelve könnyebb. Az AVR Harvard architectúrájából eredő 8051-es* széria alkotta nyelv nehezebben tanulható. (* javítva. Elírt, 8050-ről) PIC 
       
Összeg: 7 érv  13 érv  

Ezek, amiket felsorakoztattam érveket, csupán a legsűrűbben előforduló, bár kevesebbekben megfogalmazódott kérdések.
Tekintettel arra, hogy nem kevés időt töltöttem már mindkét processzor-architektúrára való fejlesztéssel, így megtapasztaltam dolgokat. Így nem az egyik / másik mellett lévő szavazat letétel volt a cél, csupán választ adtam egy-két döntő kérdésre.

Remélem, ez a kis összehasonlítás segít a kezdőknek eldönteni, hogy melyik processzor-architectúrát válasszák. Abban, azt hiszem összegzésként egyet érthetünk, hogy az ár szempontjából az AVR ver minden PIC-et, viszont ez az arány pont fordított a magyar nyelvű dokumentáltság terén, ahol is a PIC fölényes győzelmet arat.

Mielőtt valaki, olyan hangnemű levelet írna, mint az előbb egyik drága fórumozó kolléga, hogy "hogy írhatom, hogy a PIC-ben nincs belső RC", meg "Láttam már PIC-et, hogy ilyeneket írok?". Ezen személyeknek javaslom, hogy nézze át a hobbielektronikát, cikkek után kutatva, ugyanis cca. 10 év PIC ismeret és egy több mint 60 oldalas cikksorozat után írom ezeket. Továbbá, mivel gyártással és termék fejlesztéssel foglalkozom, tudom melyik processzor való tömeges gyártásra és melyik nem.
Hogy ki írt gusztustalan hangnemben, azt nem teszem közzé. De mindenesetre az elvakultsága meglep tisztességesen. Főleg, "Az AVR-ekben meg max 1MHz a belső RC" féle mondatok. Mert ugye, drága kollégánknak ezt úgy "mondták".
Szóval, minden észrevételt szívesen fogadok, de kérem csak az írjon aki legalább 5-10 évet fejlesztett már mindkét processzor architektúrára.

Egy szó, mint száz, bármelyiket is választod, rengeteg tapasztalattal és élménnyel fogsz gazdagodni. Mindegyik processzorral csodálatos dolgokat lehet alkotni.

Ha ki akarod magad próbálni mindkettőben, szeretnél tapasztalatot szerezni, akkor javaslom előbb a PIC-ekkel való foglalkozást, majd azután az AVR-ek megismerését. Így Te döntesz melyiket használod, merthogy ismerni fogod mindkettőt.

Módosítva: 2010.09.29
Programozás órajelénél kiegészítés.
Ajánlom a kedves olvasó figyelmébe, hogy a cikkben szereplő összehasonlítás mára már részben érvényét vesztette, ugyanis a PIC16F széria messze kifutottá vált.

Következő: »»   1 / 1
Értékeléshez bejelentkezés szükséges!
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem