Sida 1 av 2

AVR eller PIC

Postat: 11 november 2007, 08:27:25
av Morpheuzz
Har tänkt att jag skulle försöka lära mig att programera Microprossesorer och kollat runt lite vad det finns för kit att köpa och det verkar som om det är vanligare att programera pic än avr.

Men vad är skilnaden på dom?
Vilken är klättast att programera?
Vilka begränsningar finns det med dom?

Postat: 11 november 2007, 09:23:28
av speakman
Du vet inte vad du ställer till med... ;)

Men AVR tycker jag man kommer billigast undan med. För kring 500:- får du en ICE, In-Circuit Debugger, som du kan singelsteppa i koden med processorn på plats. "AVR Dragon" (som den heter) säljs bl.a. hos www.lawicel-shop.se.
C-kompilator helt utan begränsningar är gratis och fri och öppen källkod (tillhör GCC).

Nu får sodjan och Icecap kontra med sina aspekter. :)

Postat: 11 november 2007, 10:30:05
av Icecap
Renesas säger jag!

Finns GNU-kompiler och för att programmera dom behövs en serieport med 5V-nivåer, alltså en MAX232. Vill man singelsteppa och debugga på det vis finns det E8i ICD (pris okänd för mig) men jag har alltid klarat mig mycket bra med en LED på en pinne och i vissa fall ett oscilloskop också.

Renesas är billiga också men tyvärr ingen i DIP-kapsling.

Renesas har mycket hårdvara (i M16C serien) och det är ganska enkelt att fixa setup av hårdvaran. Databladet är inte på höjd med MicroChip men det är ingen annan heller, MicroChip (PIC) har definitivt de bästa datablad och Application Notes (AN) ur pedagogisk synpunkt.

Så jag vill påstå att Renesas är grejen, sedan PIC. Renesas kommer i övrigt mycket snart med processorer med inbyggd oscillator och BOR (Brown-Out Reset = spänningsövervakning).

PIC som sådan är processorer i samma nivå som AVR men dokumentationen är mer pedagogisk, faktisk är den föredömlig. AVR-frälsta vill påstå att PIC är skit och PIC-frälsta vill påstå motsatsen men sanningen är att de är ung. lika bra ur processteknisk hänseende. Den största skillnad är tydligen att AVR har slutat tillverka modeller utan att ha en "mycket nära"-ersättare men MicroChip har sett till att bytet går mer smärtfritt.

Speakman: ha, där fick du! ;-)

Postat: 11 november 2007, 11:12:41
av björn
Vilken som är "bäst" vet jag inte, och det jag tycker bäst om tycker andra är sämst osv. Angående AVR:s bakåtkompabilitet så har det tyvärr varit lite dåligt tidigare, men numera verkar det vara mycket bättre och mig veterligen har inte Atmel tagit någon modell ur produktion utan att det finns *kompatibel ersättare tillgänglig på länge och jag tror bestämt att dom har blivit bättre efter kritiken.

*Med kompatibel menar jag inte att en hexfil går raktöver i den nyare processorn utan att det är väldigt små förändringar som behöver göras för att koden skall passa, och så är det givetvis även bland anda tillverkares utbud.

Postat: 11 november 2007, 11:47:40
av sodjan
> Men vad är skilnaden på dom?

I praktiken inga, för hemmapularen i alla fall.

> Vilken är klättast att programera?

Den som flest av dina kompisar använder.

> Vilka begränsningar finns det med dom?

I princip samma i båda. Och det är större skillnader mellan
olika PIC (eller mellan olika AVR) än mellan jämförbara PIC/AVR modeller.

Postat: 11 november 2007, 12:38:17
av Tottish
Verkar som att din fråga redan besvarats på ett ganska smmanfattande vis men jag kan ju alltid upplysa om att du ingalunda är den första som ställer denna fråga. Prova och sök lite grann eller bara ögna igenom titlarna i det här forumet om du vill ha fler medlemmars synpunkter i frågan...

MVH
/Tottish

Postat: 11 november 2007, 13:12:45
av Marta
PIC är helt klart den bästa. Den har ett instruktionsset som är lättare att lära och dess registerstruktur är också lättare. AVR är nog bättre på att hantera kompilatorgenererad kod, men PIC är överlägsen när manskriver assembler. Detta är, tycker jag, det enda vettiga språket för denna typ av processorer.

Rent hårdvarumässigt så är både flash och eeprom i PIC specat en tiopotens bättre vad gäller uthållighet än vad AVR är. Om detta är skenbart beroende på testförutsättningar, eller gäller vid lika förutsättningar, har jag inte läst på tillräckligt för att kunna svara på.

Som redan framkommit i en annan tråd kan man sätta vissa bits åt helv*te i AVR så den bara kan omprogrammeras med en parallellprogrammerare som används vid massproduktion för att det skall gå fort. Detta kan enligt vissa källor simuleras med diverse märkvärdiga och stökiga kopplingar i syfte att just "få av locket" på en låst krets, men varför göra detsvårt för sig? PIC kan alltid rensas och programmeras om med betydligt enklare medel. Det värsta som kan hända därär att man måste lägga på Vpp före Vcc vid raderingen.

Mera komplexa saker tycker jag personligen är felom man vill lära sig. Då är ju meningen att förstå vad som händer. Skriverman i högnivå så är där ingen större skillnad mellan att köpa ett PC-interface från Welleman och skriva C för PC än att skriva C före Reneas e.dyl. Störstaskillnaden är att det blir mera hårdvara, lika obegriplig nästan somPC'ns moderkort.

PIC är dessutom lättllgänglig för amatörer, liksom en drägligt bra programmeringsenhet som programmerar kretsen på plats i kopplingen. Sök på "jescab" så hittar Du rätt

Postat: 11 november 2007, 13:39:39
av Micke_s
En tråkig sak med de vanliga PIC:arna jfm AVR är att det inte går att programmera de vid 3 volt.
Detta fixar AVR och jag antar att det är därför den har mindre antal omflashningar också.

Postat: 11 november 2007, 14:57:21
av Marta
Det finns PIC som kan falshas vid 3V, de har ett "J" i beteckningenn. Tyvärr håller flash bara för garanterat 100 gånger och typiskt 1000.

En standard PIC klarar garanterat 10.000 flashningar och typiskt 100.000. Dess EEPROM klarar tio gånger mera.

Är det viktigt att kunna köra sin applikation på en lithiumcell så kan det ju vara av intresse, men för normala projekt med en sladd till närmaste eluttag så är 5V faktiskt en fördel eftersom det ger mera störmarginal och räcker för att direktdriva mosfet gjorda för ändamålet.

Det enklaste sättet för en osäker nybörjare att ta reda på om PIC är det rätta är ju att ladda hem MPLAB och prova. Köra simulerat utan att lägga utt en enda krona på hårdvara i någon form. Enklare kan det inte bli.

Postat: 11 november 2007, 15:54:16
av Morpheuzz
Tack för alla svar!
Vet inte om jag blev så mycket klokare på det men det känns som att det inte spelar så stor roll vad man väljer!

Någon som har några bra förslag på hemsidor där man kan köpa kitt?

Postat: 11 november 2007, 16:20:18
av jojje

Postat: 11 november 2007, 16:35:53
av sodjan
Instämmer i att för den vanliga hemapularen så är det enklast att
hålla sig till 5V. Det finns mycket mer "surplus" prylar (som t.ex
dipslayer som är populärt) som använder 5V...

Postat: 11 november 2007, 16:39:46
av speakman
Som du ser är kritiken mot AVR inte särskilt objektiv. :wink:
Jag tycker, i motsats till Märta, att assembler är något man nyttjar för vissa kritiska funktioner, och då räcker inline assembler.
Vill man få lite struktur i sina program så är det C som gäller, och det är AVR designat från grunden för. Och döda sina processorer kan man göra med alla, men på olika vis.

Jag tyckte AVR var så komplett så jag kör AVR only. Renesas skulle nog vara den jag skulle snegla på annars, den verkar ju kunna bli något.
Men för att extremt billigt och snabbt att komma igång så är AVR bra; med tre motstånd och en kabel från parallellporten så har du en programmerare som du kan programmera kretsen på plats i konstruktionen med.

Postat: 11 november 2007, 17:08:38
av jojje
speakman, du glömde länken till schemat.

Postat: 11 november 2007, 18:38:30
av speakman
Han inte med det förrut, men här är ett exempel.
Dock behöver (bör?) man inte motståndet till RESET.