Pic vs. AVR

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

Pic vs. AVR

Inlägg av mullemeck »

Hej!

Undrar vad som skiljer en Pic från en AVR

vilken är bäst?,Lättast att programera?
Användarvisningsbild
strombom
Inlägg: 3305
Blev medlem: 27 maj 2003, 10:50:20
Ort: Västra Götaland
Kontakt:

Re: Pic vs. AVR

Inlägg av strombom »

Om du ska använda en C kompilator är de ungefär lika att programmera =) Fördelen är nog till AVR här eftersom det finns en gratis C-kompilator, winavr (GCC).

Att bygga programmerare till dem är i stort sett också lika lätt, båda klarar in-circuit-serial-programming.

Om du ska programmera i assembler tror jag nästan att PIC är lättare om du är nybörjare. PIC är lite speciell och har endast ca 30 kommandon, vilka är mycket lätta att lära sig =)
Har du programmerat assembler för någon annan processor tidigare är kanske AVR lättare för dig eftersom den liknar många andra processorer.

Det är vad jag tycker i varje fall! Jag använder avr och pic ungefär lika mycket, oftast pic till små enkla projekt och avr till lite större... vet inte varför men det har blivit så =)
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

jag tycker att AVR är lite mer avancerad, alltså man använder AVR till lite större projekt.

AVR har fler funktioner än PIC i dom flesta modellerna och i AVR har ju alla flash eprom. PIC har det bara i vissa.

AVR är dubbelt så snabb som PIC tror jag. PIC är utför en instruktion på 1/4 av kristallen medan AVR har 1/2 av kristallen. Men jag är inte säker.

PIC är billigare i dom lite mindre modellerna men i de större är AVR billigare. Kanske är det jag menar med det jag skrev längst upp. Till små projekt använder man PIC pga priset. PIC är nog också lite lättare i assembler.
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

Inlägg av mullemeck »

Okej. tack för råden.

I mitt fall tänkte jag använda den till en robot för att antingen styra 2 elmotorer eller några servon

jag är nog lite inne på att använda en AVR till det.
netbear
Inlägg: 116
Blev medlem: 27 maj 2003, 21:52:29
Ort: Karlskrona
Kontakt:

Inlägg av netbear »

Hej har hittills byggt alla mina projekt med pic controllers. Men jag skulle vilja pröva en AVR. Vilja kretsar är bra att börja med samt finns det någon ritning på en enkel programmerare? (om möjligt ska programeraren fungera med något program i linux.)

/Björn
Användarvisningsbild
Melker
Inlägg: 410
Blev medlem: 26 maj 2003, 22:17:34
Ort: Umeå

Inlägg av Melker »

Här är en enkel ISP-programmerare för AVR: http://www.qsl.net/zl1bpu/micro/ENV/PGM.htm
En ganska bra krets att starta med är kanske AT90S2313, den kostar ca 50kr och innehåller det mesta som man som nybörjare kan behöva.
Användarvisningsbild
Melker
Inlägg: 410
Blev medlem: 26 maj 2003, 22:17:34
Ort: Umeå

Inlägg av Melker »

EagleSpirit skrev: AVR är dubbelt så snabb som PIC tror jag. PIC är utför en instruktion på 1/4 av kristallen medan AVR har 1/2 av kristallen. Men jag är inte säker.
Är lite oklar med vad du menar "1/2 av kristallen"? Ifall "kristallen" innebär en klockcykel, så tror jag du har lite fel. Tror AVRer utför de flesta av sina instruktioner på endast 1 klockcykel, tror detsamma gäller PIC, men jag är också lite osäker, måste jag säga.
Användarvisningsbild
strombom
Inlägg: 3305
Blev medlem: 27 maj 2003, 10:50:20
Ort: Västra Götaland
Kontakt:

Inlägg av strombom »

AVR utför de flesta instruktionerna på en klockcykel, vissa tar dock 2 och några få tar 3 klockcykler

PIC utför samtliga instruktioner på fyra klockcykler och alla instruktioner som involverar programhopp tar åtta (och ja, det står fel i elfa)

PIC går oftast att klocka lite högre, men inte så att de blir snabbare än AVR.
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

ok, jag har hört en klockcykel men tyckte det verkade för bra för att vara sant så jag antog att det var två :D
GLT_Kent
Inlägg: 16
Blev medlem: 29 juni 2003, 21:30:27
Ort: Kalmar
Kontakt:

Inlägg av GLT_Kent »

strombom skrev:AVR utför de flesta instruktionerna på en klockcykel, vissa tar dock 2 och några få tar 3 klockcykler

PIC utför samtliga instruktioner på fyra klockcykler och alla instruktioner som involverar programhopp tar åtta (och ja, det står fel i elfa)

PIC går oftast att klocka lite högre, men inte så att de blir snabbare än AVR.
Om man med klockcykler räknar den externt matade klockan då. Den delas ju ner med fyra internt, så inne i processorn utförs ju instruktionen på en eller två (interna)klockcykler... Det är det dom menar i ELFA. Med klockcykel brukar dom tydligen oftast mena den klockan som processorn använder, så att säga.

Jag kan inte ett skit om AVR, men jag har hört att AVR tar längre tid på sig att utföra en innstruktion, men däremot blir det färre instruktioner för att utföra samma sak på en AVR eftersom den har en mer omfattande instruktionsuppsättning. Så AVR är snabbare på mer avancerade program, medans PIC:en är snabbare på enklare grejer, "bit-banging" som någon uttryckte det. Det är så jag har fått det förklarat av en AVR fantast på admittansen en mörk kväll förrförra hösten. kanske har hänt en del sen dess.
Användarvisningsbild
* Ken *
Inlägg: 46
Blev medlem: 13 juni 2003, 00:39:35
Ort: Västerås

Inlägg av * Ken * »

Här: http://www.olimex.com/dev/ finns två enkla programmerare för AVR. En för serieporten och en för parallell (nästan identisk som den lite längre upp i tråden). De har även tips om passande program.
Användarvisningsbild
erixon
Inlägg: 380
Blev medlem: 27 augusti 2003, 10:21:58

Inlägg av erixon »

GLT_Kent skrev:
strombom skrev:AVR utför de flesta instruktionerna på en klockcykel, vissa tar dock 2 och några få tar 3 klockcykler

PIC utför samtliga instruktioner på fyra klockcykler och alla instruktioner som involverar programhopp tar åtta (och ja, det står fel i elfa)

PIC går oftast att klocka lite högre, men inte så att de blir snabbare än AVR.
Om man med klockcykler räknar den externt matade klockan då. Den delas ju ner med fyra internt, så inne i processorn utförs ju instruktionen på en eller två (interna)klockcykler... Det är det dom menar i ELFA. Med klockcykel brukar dom tydligen oftast mena den klockan som processorn använder, så att säga.

Jag kan inte ett skit om AVR, men jag har hört att AVR tar längre tid på sig att utföra en innstruktion, men däremot blir det färre instruktioner för att utföra samma sak på en AVR eftersom den har en mer omfattande instruktionsuppsättning. Så AVR är snabbare på mer avancerade program, medans PIC:en är snabbare på enklare grejer, "bit-banging" som någon uttryckte det. Det är så jag har fått det förklarat av en AVR fantast på admittansen en mörk kväll förrförra hösten. kanske har hänt en del sen dess.
Att en avr skulle ta längre tid att utföra en instruktion... kan jag inte hålla med om...
De flesta matmatiska och arimetrisk tar 1 Klockcykel (typ alla utom mul mm som tar 2) och bit instruktioner som out, in mm
läsning från Ram tar 2 cykel
Läsning från program mine samt ljmp (om man har mer än 128kB) tar 3 cycklar typ

med då är klock cykel lika med clock frekvensen som på pic 1/4 externa klockan...

så om man kollar på elfa så hittar man PIC som är 33Mhz vilket skulle i ideal fallet ge 33/4 = 8.25Mips
och AVR finns i 16Mhz på elfa deta skulle då ge 16/1 = 16Mips i ideal fallet
Nu vet jag att man inte kan gemföra rakt av Mips men det ger en finnger visning.
Avr anväder en stack pekare som gör att hela ram minet kan användas som stack om det skulle behövas (dock ej på modeler utan ram), PIC har fast stack normalt 8 eller 16nivåer, AVR använder pekare för att komma åt ram minet (uptill 64KB med vanliga pekare), pic banker och peakare (256byte sedan måste man byta bank om jag inte mins fel)...
AVR är helt anpassat till C och kompilator fanns till med före microkontrolern...
Pic gjordes med minsta möljiga resuser (kiselmäsigt) vilket resultera i en gammal konstrution (har funnis väldigt länge) dock inte dåligt men inte anpassat för högnivå språk heller ...
Pic finns i extremt strömsnålt versoner som dra några nW i aktivt läge vilket gör den till oöver vinliga i appliktioner där ström förbrukningen är en viktig faktor...

Så att välja enchips dator beror på vad som efter frågas...
Användarvisningsbild
evert
Inlägg: 98
Blev medlem: 15 juli 2003, 23:11:50
Ort: Jönköping

Inlägg av evert »

Det finns fakiskt PIC:ar med bara 2 stacknivåer: t ex 16C505.
Det kan vara en riktig utmaning att programera då det blirsvårt att få till det med subrutiner å så. Det fick bli lite crazy progamstruktur för att få till det.
Skriv svar