PIC vs AVR

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Robert

PIC vs AVR

Hozzászólás Szerző: Robert »

Itt lehet leírni melyik jobb, miért?
Idezet egy emailbol:
---------------------------------------cut-------------------

Teljes fejleszto redszer (szoftver, programozo, probapad) ara
====>AVR kedvezobb, programozo PIChez tipusonkent valtozik, AVR eseten nem kell ilyen trukkokhez folyamodni.
====>Szoftver eseten a Bascom free 4k kodig, e felett fizetos (Basic), de van gyogyir hozza (1.11.7.4 verziohoz)(fizetos prg ara ~20eFt)
A PIC basicja fizetos (ugy tudom fizetos teljesen minimalis kod eseten is)
C programkod mindkettore ingyenes is van.
Bascom alatt beepitett kodkonyvtar miatt a hardverek teljesen hamar beuzemelhetok. Ezert nem lett a C nyelv mellett letett voks.
====>A bascomhoz rengeteg hardvereszkozt tamogat alapban ill nagyon konnyu implementalni barmit.


Memoriak merete, sebesseg
====>AVR legkisebb 1k, legnagyobb 256k. Viszonyitaskent ~1000 soros program 8-12kByte.Alapparameterek a www.atmel.com->Products->8bit RISC, compare table.
Sebesseg max 20 MIPS (20 MHz sebesseg) jellemzoen 1 utasitas/orajel

PIC eseten: hanyagabb es bonyolultabb kodkezeles, sebeseg 20 MHz orajel eseten 4MIPS (sokszor lassu)


Analog jel tarolasa (elozoleg digitalizalt EKG ciklus - kb 1000 pont 1 kHz
mintavetel eseten), es visszajatszasa
====>AVR: Belso eeprom 128byte....4k ill kulso SPI busz Dataflash (1Mbit/350Ft....32Mbit/1000Ft vagy I2Cbusz max:512Kbit/800 Ft)
PIC eseten az SPI maceras, I2C ugynaz, belso EEPROM kb. ugyanigy.


ADC 10 bit legalabb
====>Beeepitve, pl. Mega16 eseten (~800Ft, 8 fuggetlen csatorna, max seb: 400kHz:) Na jo nem illik ennyire kihajtani, de 32kHz-t vigan visz)

Telemetria lehetosege (rfPIC, peldaul)
====>Ezt passzolom. rfPIC csaladot nem ismerem.

====>En az AVRt javaslom, mert chipbovites eseten eleg a deklaraciot kicserelni es kesz. Programozo 5 szal drot. PIC eseten uj programozo kell, es a fel programot atirni. Az AVR eseten a csaladvaltas nagyobbra ha kinovom ~10 perc. PIC eseten hetek. Nekem a gyors kodfejlesztes es az olcso tesztpanel es fejlesztokornyezet valamint a olcso programozo miatt az AVR lett. Az AVR ~6-7 eves proci, a PIC sokkal regebbi. Ennek megfelelo fejlettseggel. Az AVR sokkal jobban dokumentalt, es sokkal kifottottabb. Valamint agyoncsaphatatlanabb.

====>Nalam a projektek egy resze latszik is az oldalon. PICben ezt letrehozni ~4-5 ev lett volna. Ez ~3/4 - 1 ev volt AVR eseten.



Valaki meg eszrevetel? PIC nálam igen érintőleges.
Lardy

Hozzászólás Szerző: Lardy »

Szia Robert!

Sok szempontból egyetértünk, azonban az egyik kellemetlen tulajdonsága a PIC-eknek a RAM BANK-olás. Ha elfelejted vagy rosszul kezeled, jó esetben csak elszáll a program, rossz esetben látszólag megmagyarázhatatlan jelenségekkel találkozol;

A másik, hogy a stack nem a RAM-ban van (azaz nem elérhető PUSH vagy POP utasításokkal, melyek nem is léteznek), a szoftveres stack kezelése pedig nehézkes; 8O

Nekem nem tetszik, hogy 1, azaz egy megszakítási címe van. Ezért a kiszolgáló rutinban kell lekérdezgetni a perifériákat és kideríteni, melyik okozta az IT-t (ennek persze előnye, hogy a prioritás kérdése enyhül, mert azt kérdezem és szolgálom ki előbb, amelyiket akarom :) ) .

Na de azért néhány egyéb érv a PIC mellett:
-- a portok bitenként címezhetőek, nem kellenek függvények vagy logikai "bitvarázslatok" ahhoz, hogy beállítsak vagy töröljek egy bitet;

-- nem csak R0..R31 regisztere van, hanem az egész belső RAM-ja (file regisztere) gyakorlatilag regiszterként címezhető;

-- a W regiszterrel (akkumulátor PIC-ül :wink: ) és bármelyik fájlregiszterrel (RAM címmel ill. tartalmával) végzett művelet eredménye tetszőlegesen lehet vagy a W, vagy az adott regiszter, tehát nem kell két (vagy több) utasítás az eredméyn mozgatására;

A 18Fxxx család állítólag sok korábbi bajt orvosol...

Szumma szummarum: a PIC-eket szokni kell, na, de azért szerethetőek, nem tagadom! :)

Üdv:
Moravcsik Szilárd
Robert

Hozzászólás Szerző: Robert »

Huh, köszönöm, ebből is tanultam:)

A bankkezelést télleg kifelejtettem...
A AVR esetén a IT nem megszakítható (sorbaállítás van) és minden IT saját rutinnal bír. (A IT kezelés egy részét a Bascom elfedi, de jó tudni hogy az IT nem megszakítható, és ezért pl. a GIFR regisztert jó ismerni...


A bitszintű port címzést a Bascomban a Portd.2 utasítással meg lehet oldani, ASM alapon is mintha lenne...


A Pic 18 családdal én is hallottam hogy jobban lehet boldogulni. Egyre több helyen is jelenik meg a régebbiek helyett... Fejlődnek ott is, no:).
Válasz küldése