Den stora frågan, PIC eller AVR?
Vilken AVR "motsvarar" PIC16F628 komplexitetsmäss
Det låter ju lite som man måste titta på AVR också efter att det här PIC-projektet är klart. PIC var riktigt trevligt att jobba med i C och kompilatorn cc5x som jag använt. Att programmera den i Assembler tyckte jag däremot "sög" när man hade valt vissa instruktioner lite dumt.
Det verkar lite som fler företag använder AVR idag? Än vad man använder PIC. Någon tyckte att PIC hade en omodern arkitektur, fast programmera dem i C gillar jag.
Vad behöver man för hårdvara? Går det med samma programmerare som för PIC? Jag använder en enkel programmerare tillsammans med IC-prog som har funkat klockrent för PIC i alla fall. Att köpa en utvecklingsmiljö för 1000-lappar går bort, om man skall betala ur egen ficka. För att komma igång så vill jag nog börja med nån väldigt enkel programeringshårdvara som jag kan skruva ihop själv.
Vilken krets komplexitetsmässigt "motsvarar" PIC16F628 som jag tycker är en väldigt lagom krets att börja med. Typ DIL smalkapsel, och lite hårvarugodis som i PIC-arna.
Det verkar lite som fler företag använder AVR idag? Än vad man använder PIC. Någon tyckte att PIC hade en omodern arkitektur, fast programmera dem i C gillar jag.


- JimmyAndersson
- Inlägg: 26579
- Blev medlem: 6 augusti 2005, 21:23:33
- Ort: Oskarshamn (En bit utanför)
- Kontakt:
Visst, cykzes argument var bra, men mycket av det stämmer även för PIC.
* Det finns även gratis kompilatorer för PIC.
* Det går att bygga enkla programmerare även till PIC.
* Tålig? Hm, det beror på vad man gör med sin AVR eller PIC.
Om jag inte missat något så är nog visserligen dessa punkter fördelar med AVR jämfört med PIC:
* Enbart små ändringar (eller inga alls) behövs för att gå från en AVR-modell till en annan.
-Kan vara lika på PIC-kretsar. Beror på vilka modeller man byter mellan...
* AVRFreaks.net - Stor och bra AVR-community!
-Sant. Där saknar jag motsvarigheten på PIC-sidan..
* Programmerbar i hela spänningsområdet. Inte bara vid 5V som på vissa andra µCs.
-Har för lite erfarenhet för att jag ska kunna svara på det..
* Det finns även gratis kompilatorer för PIC.
* Det går att bygga enkla programmerare även till PIC.
* Tålig? Hm, det beror på vad man gör med sin AVR eller PIC.

Om jag inte missat något så är nog visserligen dessa punkter fördelar med AVR jämfört med PIC:
* Enbart små ändringar (eller inga alls) behövs för att gå från en AVR-modell till en annan.
-Kan vara lika på PIC-kretsar. Beror på vilka modeller man byter mellan...
* AVRFreaks.net - Stor och bra AVR-community!
-Sant. Där saknar jag motsvarigheten på PIC-sidan..
* Programmerbar i hela spänningsområdet. Inte bara vid 5V som på vissa andra µCs.
-Har för lite erfarenhet för att jag ska kunna svara på det..

> Det verkar lite som fler företag använder AVR idag?
Om jag inte har helt fel är Microchip tvåa efter Motorola på
8-bitars processorer för "inbygdnad".
> Att programmera den i Assembler tyckte jag däremot "sög" när
> man hade valt vissa instruktioner lite dumt.
Och AVR har något slags skydd mot vanlig dumhet ?
> * Enbart små ändringar (eller inga alls) behövs för att gå från en AVR-modell till en annan.
> -Kan vara lika på PIC-kretsar. Beror på vilka modeller man byter mellan...
Anledningen att gå från en modell till en annan är ju vanligtsvis just
att det *är* någon skillnad på dom. Sen beror jobbet mer på hur
koden var skriven från början än vilka processorer man byter mellan.
> * Programmerbar i hela spänningsområdet. Inte bara vid 5V som på vissa andra µCs.
> -Har för lite erfarenhet för att jag ska kunna svara på det..
Beror på vad man lägger i begreppet "programmerbar"...
Vissa saker kan bara göras > 4.5V (gäller naturligtsivs inte de
nya 3.3V processoererna).
Om jag inte har helt fel är Microchip tvåa efter Motorola på
8-bitars processorer för "inbygdnad".
> Att programmera den i Assembler tyckte jag däremot "sög" när
> man hade valt vissa instruktioner lite dumt.
Och AVR har något slags skydd mot vanlig dumhet ?

> * Enbart små ändringar (eller inga alls) behövs för att gå från en AVR-modell till en annan.
> -Kan vara lika på PIC-kretsar. Beror på vilka modeller man byter mellan...
Anledningen att gå från en modell till en annan är ju vanligtsvis just
att det *är* någon skillnad på dom. Sen beror jobbet mer på hur
koden var skriven från början än vilka processorer man byter mellan.
> * Programmerbar i hela spänningsområdet. Inte bara vid 5V som på vissa andra µCs.
> -Har för lite erfarenhet för att jag ska kunna svara på det..
Beror på vad man lägger i begreppet "programmerbar"...
Vissa saker kan bara göras > 4.5V (gäller naturligtsivs inte de
nya 3.3V processoererna).
Det jag menade var att man kan programmera FLASH-minnet i en AVR som körs på t ex 3.3V. Jag tror inte det går på de flesta PIC:ar (förutom de nya du nämner). Rätta mig gärna om jag har fel.sodjan skrev:> * Programmerbar i hela spänningsområdet. Inte bara vid 5V som på vissa andra µCs.
> -Har för lite erfarenhet för att jag ska kunna svara på det..
Beror på vad man lägger i begreppet "programmerbar"...
Vissa saker kan bara göras > 4.5V (gäller naturligtsivs inte de
nya 3.3V processoererna).
JimmyAndersson: Är inte PICList något liknande AVRFreaks?
manw:
Som programmerare finns det färdiga att köpa. Många brukar rekommendera STK500 som är ett utvecklingskort med programmerare. Det går att få tag på för runt 700 kr(?).
Den billigaste programmeraren är nog den som består av en parallellportskontakt med tre motstånd.
Men varianten med en buffer-krets är nog att rekommendera. Den blir inte många kronor dyrare och har fördelen att ha tri-state på utgångarna. Se t ex http://www.lancos.com/e2p/avrisp-siprog.gif
ATtiny2313 är trevlig att börja med och verkar motsvara PIC16F628. ATmega88 är också en favorit. Den är större, men bara något dyrare. Elfa har bra priser.
- Greensilver
- Inlägg: 1305
- Blev medlem: 21 januari 2005, 21:24:57
- Ort: Sverige
- Kontakt:
- MicaelKarlsson
- Inlägg: 4669
- Blev medlem: 18 juni 2004, 09:16:07
- Ort: Aneby
- Kontakt:
> Det jag menade var att man kan programmera FLASH-minnet i en
> AVR som körs på t ex 3.3V. Jag tror inte det går på de flesta PIC:ar
> (förutom de nya du nämner). Rätta mig gärna om jag har fel.
Det som inte går att göra på en PIC under 4.5 V är "erase all".
Annars kan man radera och skriva (från applikationen) i Flash
över hela spänningsområdet (vilket i sig varierar lite
mellan olika modeller). T.ex via bootloaders...
> Är inte PICList något liknande AVRFreaks?
Jag tror det...
> AVR som körs på t ex 3.3V. Jag tror inte det går på de flesta PIC:ar
> (förutom de nya du nämner). Rätta mig gärna om jag har fel.
Det som inte går att göra på en PIC under 4.5 V är "erase all".
Annars kan man radera och skriva (från applikationen) i Flash
över hela spänningsområdet (vilket i sig varierar lite
mellan olika modeller). T.ex via bootloaders...
> Är inte PICList något liknande AVRFreaks?
Jag tror det...
> Så det går inte att rensa och därefter programmera FLASH-minnet på vanligt sätt med en vanlig programmerare?
Självklart !! Men det måste ske vid (minst) den spänning som anges för
aktuell modell. Många modeller kräver minst 4.5 V för en "erase all", vilket
oftast är det första som sker vid en traditionell om-programmering.
Med en bootloader kan man inte göra en "erase all" (vilket är fullständigt
naturligt eftersom även bootloadern då skulle försvinna).
Raderning och omprogrammering block-vis i Flash kan göras inom ett
vidare spänningsområde, oftast över det tillåtna spänningsområdet för modellen i fråga.
D.v.s via Table Write (TBL*) instruktionerna från en applikation (t.ex en
bootloader).
Självklart !! Men det måste ske vid (minst) den spänning som anges för
aktuell modell. Många modeller kräver minst 4.5 V för en "erase all", vilket
oftast är det första som sker vid en traditionell om-programmering.
Med en bootloader kan man inte göra en "erase all" (vilket är fullständigt
naturligt eftersom även bootloadern då skulle försvinna).
Raderning och omprogrammering block-vis i Flash kan göras inom ett
vidare spänningsområde, oftast över det tillåtna spänningsområdet för modellen i fråga.
D.v.s via Table Write (TBL*) instruktionerna från en applikation (t.ex en
bootloader).