Fórum témák
» Több friss téma |
Fórum » PIC vagy AVR
Témaindító: (Felhasználó 466), idő: Okt 5, 2005
Témakörök:
Idézet: „Hát éppen ez az! Legalább a 8088 valahol a Pentium őse, pontosabban a Pentium ősének, a 8086-nak egy oldalága, de a 8050 (ami nem széria!) és az AVR-ek semmilyen rokonságban nincsenek egymással.” Mondjuk a legelso AVR lab kompatibilis volt a 8051-el. Utasitas stilusaban, regiszterek hasznalataban nem vagyok biztos, hogy onnan meritettek-e az alapokat, de nem lepodnek meg. Amugy azt nyilvan tudod, hogy az Atmel korabban 8051 klonban (is) utazott ![]() Idézet: „Mondjuk a legelso AVR lab kompatibilis volt a 8051-el.” Ezt speciel nem tudtam. De ez nyilván egy ugyes uzleti fogas volt. Idézet: „Utasitas stilusaban, regiszterek hasznalataban nem vagyok biztos, hogy onnan meritettek-e az alapokat, de nem lepodnek meg.” Semmi hasonlosag nincs a ketto kozott. Vagy legalabbis nem tobb, mint bamelyik masik processzorral osszehasonlitva. Idézet: „Amugy azt nyilvan tudod, hogy az Atmel korabban 8051 klonban (is) utazott.” Az atmel sok MCS-51 alapu mikrokontrollert csinalt, ezt tudom. Ez az AT89.. sorozat. Szerintem a mai napig csinal is. Masok is hasznalnak MCS-51 core-t. A Philips (NXP) is pl. Vagy van egy Texas chip, HighSpeed USB van benne meg egy ATA-66 interface es nem mellesleg egy MCS-51 core + flash + RAM. Az MCS-48 volt talan az elso mikrokontroller csalad a vilagon, nem csoda hogy elterjedt.
Sziasztok!
Viszonylag gyorsan keresem a választ arra a kérdésre, hogy melyik az a PIC típust, ami képességeiben (memóriák mérete, lábszám, kb. a perifériák, pl. ADC) egy súlycsoportban van az ATmega16-at 8esetleg ATmega8-al). Össze akarok hasonlítani egy PIC-et és egy AVR-t, és annak csak akkor van értelme, ha kb. azonos súlycsoportból választok. Viszont nem volt még dolgom PIC-kel, és a neten elég hosszadalmas megfelelő típust keresni. Amit eddig találtam: ATmega16 vs. PIC16C74-63 74B-04I/L Van esetleg modernebb PIC ebben a kategóriában. Ami érdekes, bár még nem mélyedtem bele a feladatba, hogy az AVR mindenben erősebbnek tűnik, az ára viszont a harmada(!) hol van a kutya elásva? üdv Gábor Minél gyorsabb a válasz, annál inkább köszönöm! ![]() Idézet: „ Amit eddig találtam: ATmega16 vs. PIC16C74-63 74B-04I/L Van esetleg modernebb PIC ebben a kategóriában. Ami érdekes, bár még nem mélyedtem bele a feladatba, hogy az AVR mindenben erősebbnek tűnik, az ára viszont a harmada(!) hol van a kutya elásva?” Gratulálok, sikerült kiválasztanod az egyik legkisebb tudású, End of Life kategóriás, EEPROM programmemóriás chipet, és azt összehasonlítottad egy modern AVR-el, és ebből leszűrted azt, hogy az AVR erősebb. Kb. mintha összehasonlítanád a H Astrat a T-Modellel... Olvass vissza itt a témában, már voltak javaslatok összehasonlításra alkalmas chipekről.
Szia!
Először is köszi a gyors választ. Szeretném leszögezni, hogy annak ellenére, hogy eddig AVR-t használtam, nem vagyok AVR fanatikus - PIC ellenes. Egészen egyszerűen eddig csak AVR-t használtam, ami jó, ezért nem akartam másra váltani. Én teljes mértékben meg vagyok róla győződve, hogy a PIc is lehet annyira jó, mint az AVR. Nem tudom, de elhiszem. Viszont semmilyen ismeretem nincs PIC-ről. Úgy adódott, hogy házit kell írnom egyetemre, és ezért akarok összehasonlítani két architektúrát. Egy általam jól ismertet egy ismeretlennel. Ezzel az a célom, hogy a házi írása közben a PIC-et is (ha csak elméletben) egy picit megismerem. Nem úgy indultam neki az egésznek, hogy a PIC biztos ***. Viszont keresnem kell egy olyan típust, ami összehasonlítható az ATmegákkal. Rengeteg PIC van a neten, és mindet végignézni... Már csinálom néhány órája. Ezért kértem párhuzamosan a fórumozók segítségét is. Egyébként már találtam jobbat: PIC 16F877A-I/P Ez majdnem ATmega16, a főbb paramétereket tekintve. Csak a MIPS és az ára marad el az AVR-től. De biztos előnye is van. De még keresek egy kicsit, ha nem lesz más, ezeket vetem össze. És persze visszaolvasok. üdv u.i.: Nem azt akartam leszűrni, hogy minden AVR erősebb, hanem a két konkrét típusra céloztam. Egyébként miért lehet még régi, elavultnak számító uC-t vásárolni? A csereszavatoság miatt? - moderálva, Norberto Idézet: „nem volt még dolgom PIC-kel” Ehhez képest meglepő, hogy: "Össze akarok hasonlítani egy PIC-et és egy AVR-t". ![]() Az ATmega16 és társai tudtommal 16 bites szószélességűek. Akkor mit akarsz a 14 bites szószélességű PIC16-tól? A PIC18-ak között keresgélj. Felületes adatlap-összehasonlítás alapján a PIC1846K20,PIC18F45K20,PIC18F44K20 család tagjai mérhetők hozzá: 40 láb, 16MIPS, 16k-64K programmemória, 768-3936 byte RAM, 256-1024 byte EEPROM stb.
Szia!
Van a Microchipnek egy online ún. Product Selection Tools nevű segédprogramja annak érdekében, hogy megkönnyítse a megfelelő mikrokontroller kiválasztását. Szerintem ezzel a legegyszerűbb kiválasztani azt a uC-t, amely a legjobban hasonlít az Atmegahoz, és legyen értelme az összevetésnek. Bővebben: Link Üdv. Idézet: „Egyébként már találtam jobbat: PIC 16F877A-I/P Ez majdnem ATmega16, a főbb paramétereket tekintve. Csak a MIPS és az ára marad el az AVR-től. De biztos előnye is van.” Uj chipek kozul valogass, azoknak a szilikonja is mar jobb es olcsobbak is. Azonkivul ne a mid-range-bol, hanem a high-performance-bol. Amugy mi ez a MIPS mania? Milyen algoritmust akarsz futtatni ahol a nyers regiszter-regiszter muvelet lesz majd a donto? Hany clock kell az AVR-nek ket RAM teruleten levo 8 bites szam osszeadasahoz es RAM-ra torteno kiirasahoz? Mennyi kell a PIC-nek ugyanehhez? Es ami meg talan ennel is lenyegesebb kerdes: Mi az a _valos_ alkalmazas amit PIC-kel nem, viszont AVR-rel meg tudsz valositani es forditva? Valoban ezek a parameterek azok amik egy aramkor eseteben celiranyositjak a felhasznalasi teruletet?
Teljesen igazad van. Az útmutatásod alapján akkor a PIC18f442-t választom, vs. ATmega16L
Itt viszont már kifejezett előnyei is vannak a PIC-nek, meglepett a PLL és a hardveres szorzó. Idézet: „„nem volt még dolgom PIC-kel” Ehhez képest meglepő, hogy: "Össze akarok hasonlítani egy PIC-et és egy AVR-t".” Miért? Ebből is tanulok. adatlap alapján az architektúra, utasításkészlet, perifériák összehasonlíthatóak, ha nem is mindenre kiterjedően. Ja, és bocs mindenkitől a három piros csillagért, megszaladt a kezem a billentyűzeten...
A 18F442 is már "Mature Product" kategóriás. Olcsóbb és valamivel többet is tud a 18F4420.
A MIPS egy mérőszám a sok közül. Nem a legfontosabb.
Szerintem az azonban lényeges paraméter, hogy hány órajelperiódus kell egy utasítás végrehajtásához. Ugyanis ha a feladat jellegéből adódóan a MIPS-et tűzzük ki célul (pl. egy adott számítás legyen kész 1ms alatt), akkor nem mindegy, hogy ehhez 8, 16 vagy 40MHz-n ketyeg a processzor. Mikrokontrolleres alkalmazásban használva sokszor kritikus szempont a fogyasztás. De nem, nem hasonlítottam össze, hogy mennyi a konkrét fogyasztása a PIC-nek és AVR-nek adott frekvencián... Nem mondom, hogy valamelyik jobb. Csak elvi szempontból jegyeztem meg.
Aha...
Köszi az észrevételt. Nem célom a legújabb kiválasztása, az ATmega sem mai darab. Egyébként mennyivel olcsóbb? És miben tudd többet? Belenéztem az adatlapokba, és a lényeges elemek tekintetében első ránézésre nagyon hasonlónak tűntek. Az újabbnak kisebb a fogyasztása? Egyébként az architektúra összehasonlítása a célom, tehát ilyen szempontból már mindegy, hogy melyik altípus altípusának hányadik verzióját választom. Az fontos, hogy mitől PIC a PIC.ill. AVR az AVR (és hogy melyik célra melyik az előnyösebb). Nem is adatlapokat kéne böngésznem, elég, ha átolvasom ezt a fórumot ![]() Idézet: „Szerintem az azonban lényeges paraméter, hogy hány órajelperiódus kell egy utasítás végrehajtásához. Ugyanis ha a feladat jellegéből adódóan a MIPS-et tűzzük ki célul (pl. egy adott számítás legyen kész 1ms alatt), akkor nem mindegy, hogy ehhez 8, 16 vagy 40MHz-n ketyeg a processzor. Mikrokontrolleres alkalmazásban használva sokszor kritikus szempont a fogyasztás.” Pontosan! MIPS-et sokszor Meaningless Indicator of Processor Speed-nek is szoktak csufolni. Hogy miert? Nem veletlen kerdeztem, hogy ket RAM terulet osszeadasa es tarolasa RAM teruleten az AVR es a PIC eseteben is majdnem ugyanannyi oraciklus alatt tortenik meg. Pl. AVR-ben beolvasod az elso RAM tartalmat, 2 ciklus; beolvasod a masodikat, megint 2 ciklus, ossze adod, 1 ciklus, kiirod 2 ciklus. Ez osszesen 7. PICnel ket utasitasbol meguszod, betoltod W-be 4 ciklus (1 ciklu de 4 ora utem), osszeadod es az eredmeny a RAM-ban tarolodik egy masik utasitas szinten 4 ciklussal, ez osszesen 8. Tehat hiaba az 4MHz/4MIPS az AVR-nel es a 4MHz/1MIPS a PIC-nel, a feladat teljesitesenek szempontjabol nincs lenyeges kulonbseg. Fogyasztasban pedig kb ugyanott vannak, tehat azonos MIPS-nel hasonlo a fogyasztas. Tehat ha az AVR 1MHz-en ketyeg, akkor kb hasonlo fogyasztast lehet vele elerni, mint a PIC-nel 4MHz-es oraval. Idézet: „Egyébként mennyivel olcsóbb?” A ChipCAD árlistáján: PIC18F442-I/P 1 290 Ft+ÁFA PIC18F4420-I/P 840 Ft +ÁFA más tokozásban: PIC18F442-I/PT 1 490 Ft+ÁFA PIC18F4420-I/PT 820 Ft +ÁFA Idézet: „És miben tud többet?” Az egyik CCP (Capture/Compare/PWM) modul a 4420-ban "továbbfejlesztett" (ECCP) típus lett. Több analóg bemenet (8 helyett 13 csatorna). Két analóg komparátor.
Sziasztok!
MOst fogotk lehurrogni, de ilyen emberek is vannak mint én, akik ősz fejjel kezdenek el a vezérlőkkel foglalkozni, és nem is olyan mélységben mint ahogy Ti azt teszitek. Amit tudok mondani: hosszú ideig rejtette a fiókom az anno még sampleként kapott kétféle típusú PIC-et. (már meg sem tudom mondani melyik tipus is volt. Az egyik kollégám napi szinten foglalkozott (és foglalkozik vele). Az Ő tanácsára kértem, hogy majd megtanulom a programozását és elkezdhetek ksi alkalmazásokat áramköröket próbálgatni tanulni. Nos több és után szépen odaadtam neki, hogy csináljon vele azt amit akar. Közben egy másik ajánlásra vettem egy kis ARDUINO-t egy ATMega168-cal, és már másnap villogott a kis LED, mozgott a szervómotor. Az olyanok számára akik nem akarnak olyan málységbe menni az elektronikába ahogy én sem, az ARDUINO/processing/wiring kitűnő, igen könnyen alkalmazható eszköz lehet. Idézet: „Közben egy másik ajánlásra vettem egy kis ARDUINO-t egy ATMega168-cal, és már másnap villogott a kis LED, mozgott a szervómotor.” Ezt ugyanígy megtehetted volna egy PICkit2 Starter Kit-tel, vagy a HPC Explorer kártyával is, de a Microchip-en kívül az Olimex és a SparkFun is árul hasznos kártyákat. Példul a Flex is hasonló a Wiringhez, csak egy kicsit komolyabb vezérlője van (16 bites dsPIC33, 256 KB FLASH és 32 KB RAM, 100 kivezetés). Van hozzá többféle RTOS is: Flex003 Az alsóbb kategóriábol pedig kiemlésre érdemes az USB bit-whacker, ami USB illesztőt tartalmazó PIC18F2553 köré épült, bélyegnyi lapkára: USB bit-whacker
Ha a programozásában is van olyan "felületes" lehetőség, mint az AVR-nél a processing, vagy az ARDUINO akkor lehetett volna másképpen is.
Ez azt jelenti, hogy nálam akkor a szerencse döntött az AVR (pontosabban az ARDUINO) mellett. Egyébként csupán azt szerettem volna jelezni, hogy egy olyan szintű felhasználónak mint én vagyok mi lehet a szempont a választásnál. Idézet: „Ez azt jelenti, hogy nálam akkor a szerencse döntött az AVR (pontosabban az ARDUINO) mellett.” Így van, s szerintem nem jártál vele rosszul! Idézet: „Ha a programozásában is van olyan "felületes" lehetőség...” Van bizony, hiszen a PARSIC, a Flowcode, a PIXAXE, a sokféle BASIC, a MicroC, a CCS C mind "királyi utat" kínálnak. Ugyanakkor megannyi zsákutca, vagy "függőség" - bizonyos szempontból... Én pl. a HPC Explorert (PIC18F8722) FlashForth interpreterrel nyüstöltem, egy USB-RS232 átalakítóval kötve a PC-hez. Jól el lehet játszadozni vele... ![]()
Én mindenkinek azt kívánom, hogy találja meg azt a plattformot amivel meg tudja oldani a felmerülő problémákat!
Sziasztok!
Pár hete próbáltam ki az Atmega8 típust. ![]() Az elmúlt 12 évben PIC16F84-re fejlesztettem. Az első még PIC16C84 volt. ![]() Az elmúlt időszakban kizárólag az eredeti menmonikjait használtam (kivéve a clrb és setb). Ami nálam az AVR mellett szól: - ár/teljesítmény arány a PIC-hez képest, - sok cuccba raknak AVR-t, így ki lehet termelni ![]() - több adatmemória. Hátrányként csak a kizárósdit említeném meg. Természetesen a továbbiakban alkalmazásfüggő lesz, hogy melyik IC-t használom. A PIC-nek tetszett a szimulátora, az időt is szépen mutatta. De itt volt az ideje a továbblépésnek! Az már biztos, hogy videójáték készítésére jobb az AVR. ![]() Azt tapasztaltam, lényegesen lerövidül a fejlesztési idő a fent említett előnyök miatt.
Csak szólnék, hogy a 16F84 egy drága, buta és elavult tipus, nemigazán érdemes ahhoz hasonlítani semmit. Firmware-t pedig PIC-re is lehet C-ben írni, ez megint nem összehasonlítási alap...
Hmm, és 12 év alatt nem sikerült egy korszerűbb PIC típust találni ?
![]()
potyo, nem hasonlítottam a C-hez semmit.
Azokhoz a feladatokhoz, amihez nekem kellett, tökéletesen elég volt a régi F84. Nem mondom, hogy egyik jobb mint a másik, az előbbi hozzászólásomban kizárólag az eddig benyomásomat tettem közzé - és néhány tényt. ![]() De hozzáértőbbek leíarták már előttem a sok-sok AVR előnyt. És persze azt is, hogy nagymértékben függ a feladattól, melyik típus lesz felhasználva. ( Van egyébbként néhány "ST kontrollerem" is, de ez a topik nem erről szól. ![]() ![]() Idézet: „Azokhoz a feladatokhoz, amihez nekem kellett, tökéletesen elég volt a régi F84. - több adatmemória.” Nem bántásképpen, de ez az összehasonlítás kb. olyan, mint, amikor a C64 után megkaptam a 286 -osomat és el voltam ájulva a gyorsaságtól, holott már régen a pentium 3 -asok korát "éltük". Összefoglalva: kicsit hirtelen felindulásból, esetlegesen örömittasságból elkövetett hozzászólásnak tűnik ez inkább, mintsem komoly, mindkét kontroller család alkalmazásában szerzett tapasztalati úton történő összevetésnek.
Végső soron igazad van.
Bocsi, reméle senkinel sem ártottam vele!
Nincs semmi gond, csak az indoklás tűnt egy kicsit falsnak:
Idézet: „Ami nálam az AVR mellett szól: - ár/teljesítmény arány a PIC-hez képest, - több adatmemória.” A jobb ár/teljesítmény arány és a nagyobb memória iránti igény ugyanis a PIC gyártmányok körében is kielégíthető lett volna. Az AVR-re való áttérésre biztosan jobb indokot is lehetett volna találni.
Inkább úgy mondanám, hogy érdekelt az AVR. Kipróbáltam, megtetszett.
A PIC családról nem mondtam le és nem is fogok szerintem. Lehet értelmetlen pálcát törni egyik vagy másik gyártó terméke fölött.
Egy kicsit mintha elült volna a téma június óta.
Most sem újra indítanám, inkább kérdésem lenne. Tegyük félre a MIPS-eket egy kicsit, és beszéljünk az USB kezelésről. Régóta akarnék foglalkozni vele, de eddig mindig visszariadtam, részben azért, mert a PC felőli programot is meg kellene írni hozzá, ami nekem még nagyobb gondot jelent. Mindkét fajta kontrollerhez megtalálhatók neten a segítségek, amellyel meg lehet oldani a dolgot. Néhány napja olvastam az AVR-eknél a bitbang lehetőségéről, ami az USB-hardver nélküli AVR-ek esetén is megoldja az USB kapcsolatot. Most azt olvastam itt néhány hozzászólásban, hogy inkompatibilitási (szép magyar szó) probléma van velük. Sokan mégis beleugrottak, mert tonnányi megvalósítást találni a neten. Mi van a hardveres megvalósításokkal? Ezen az oldalon is olvastam PIC-es megvalósításról, belenéztem a Microchipes segédletekbe. Első ránézésre kicsit kusza volt a dolog, bár nekem egyes PICek lábainak kiosztása is elég kuszának tűnik. AVR-es oldalon mi a helyzet? Mennyire könnyen használhatók a segédletek, mennyire vannak kidolgozva? Milyen sebességeket tudnak ezek a megvalósítások? (jó, tudom, hogy HID esetén max. 64kB/s a max, de egyéb esetben? Ez egy kicsit konkrétabb, mint a MIPS-ek számolgatása, bár egyikkel sem csinálnának mondjuk USB-s HDD illesztőt PC-hez). Szóval az ár/érték szempont helyett arra lennék kíváncsi, hogy ha egy kezdő el akar indulni a témában, melyik hardvert (és hozzá az ingyenesen elérhető segédleteket) választva érhet el hamarabb eredményt, ill. milyen problémák merülhetnek fel az egyes megvalósításokkal ?
Az USB nem egy egyszerű eset. Maga az USB kommunikáció egy elég összetett, több rétegben gondolkodó valami. Már ahhoz is rengeteget kell programozni, hogy addig eljusson az ember, hogy a PC felismerjen valamiféle eszközt. A kommunikációt mindig a host (PC) kezdeményezi, ráadásul a kommunikációnak vannak olyan időkritikus részei, amikor a host kérésére "azonnal" válaszolni kell, szóval a programszervezés sem olyan triviális, mint pl. egy 1-wire vagy i2c kommunikáció megvalósításánál.
Persze a gyártók adnak ki az eszközeikhez "USB framework"-öket, amik használatával ezt a kezdeti "szenvedést" el lehet kerülni, de nem biztos, hogy egy ilyen framework a Te igényeidet is kielégíti. Indulásnak, ismerkedésnek mindenképpen jók, és jópár egyszerű feladatot meg is lehet oldani velük, pl. USB-s billentyűzet, egér, joystick, vagy akár egy mérésadatgyűjtő is megépíthető gyári framwork-re írva a programját. Komolyabb dolgokhoz már nem biztos, hogy elég a framework "tudása". Én AVR-ből még csak a bitbanging módszerrel dolgozó USB-t néztem közelebbről, de ha jól tudom, akkor hardveres USB csak a komolyabb AVR-ekben található meg (talán DIP tokosban nem is láttam). A bitbanging USB-nek több hátulütője is van. Szerintem a legnagyobb problémája az, hogy csak low-speed kommunikációt tud, ezzel is elég rendesen leterheli az AVR-t, a kommunikáció megvalósítása gyakorlatilag assembly utasításokra kiszámítva van időzítve, nagyon brutális megoldásokkal. Emiatt aztán néhány dolgot nem is tud megcsinálni, mert nincs ideje rá, pl. bizonyos ellenőrző összegek vizsgálatát. Szabvány szerint pl. a CDC eszközosztály nem létezhetne low-speed kapcsolaton, mivel azt az adatátviteli formát a low-speed nem támogatja, ami szükséges a CDC-hez. Emiatt aztán trükközések vannak, különböző extra drivereket kell feltenni különböző oprendszereknél, hogy ezt az inkompatibilitást megkerülje az ember. Ez gyakorlatilag az összes USB/soros átalakítóra épülő eszközt érinti, ilyen pl. egy rakás programozó, amik virtuális soros portot hoznak létre az oprendszerben, és ezen keresztül lehet kommunikálni velük. PIC-eknél régóta elérhetők a 28 és 40 lábú, akár DIP tokosban is kapható, beépített USB illesztővel rendelkező mikrovezérlők. Az ezekbe integrált SIE (serial interface engine) a kommunikáció fizikai oldalát valósítja meg, rengeteg terhet levéve ezzel a CPU válláról. Ezek a PIC-ek tudják a low-speed és a full-speed módot is, szabványoknak megfelelően. A legújabb időkben már vannak 20 lábú, beépített SIE-vel rendelkező típusok is, kifejezetten az olcsó, kis méretű USB-s alkalmazásokhoz ajánlva. Nem állítom, hogy egy hardveres illesztővel ellátott AVR ne lenne legalább olyan kényelmesen használható, mint az ugyanilyen képességekkel rendelkező PIC, de a szoftveres USB-től borsózik a hátam. AVR-ben meg még nem volt lehetőségem hardveresen USB-zni. |
Bejelentkezés
Hirdetés |