Nybörjare - PIC/AVR - Lite frågor..

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
maxxflow
Inlägg: 1150
Blev medlem: 17 mars 2004, 16:11:14

Nybörjare - PIC/AVR - Lite frågor..

Inlägg av maxxflow »

Jag går rakt på sak..

Jag har läst mycket om att AVR är jättelätt att programmera, bara ett par motstånd och sladdar till paralellporten. Går samma sak att göra med PIC?

Jag har läst att man kan kompilera C-kod till AVR med GCC. Det går inte till PIC eller? Finns det någon fri/gratis C-kompilator till PIC? Helst en för Linux..

Var köper man AVR billigast? Såg att Kjell&Co hade billiga PIC, 19:- för den minsta (DIL8)
Jag gissar att Elfa har, men de brukar ju vara rätt dyra...

Om jag skulle välja PIC, är Kjell's 19kr-variant bra?
Har den inbyggd oscillator, eller måste man ha en kristall till den? Jag såg nånstans att nån använde en keramisk kondensator istället för kristall, funkar det?

Om jag väljer AVR, vilken modell är lämplig då? Den ska vara så liten som möjligt (hålmonterad dock), det är väl DIL8-modellerna som är de minsta isf? Det är bra om den har inbyggd oscillator också, så slipper man ha en kristall..


När jag fått lite kläm på mikroprocessorprogrammering så tänkte jag bygga en slags slump-matris-baserad inloggningsdosa, ungefär som SEB's internetbank-inloggningsdosor.. :)
För er som inte vet hur det funkar; "dosan" innehåller en jättestor matris/tabell fylld med slumpmässiga tal. När man ska logga in så får man en kod på sin datorskärm, som man knappar in i dosan.
Koden är X- och Y-koordinater i matrisen, så dosan plockar fram siffrorna från rätt "ruta" och visar den på dosans lilla LCD-display, så att användaren kan knappa in koden i datorn, och koden verifieras sedan mot webserverns kopia av matrisen.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

AVR GCC funkar till alla AVR-familjer.
PIC har någon halvgratis C-kompilator som funkar till några modeller.

Äh, varför inte kolla in wikin istället? Står ju massor om mikrokontrollers för nybörjare! :wink:

Om du ska göra en såndär dosa behöver du massor av programminne/EEPROM. Då måste du antingen komplettera med externt minne eller sikta på de större modellerna direkt.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7466
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg av Marta »

Angående dosan, är Du helt säker på att det är så det fungerar, eller är detbara Du själv som gissar? Mina uppgifter säger att det är ett CRAM-protokoll som används.

Ett slumptal visas, användaren knappar in detta i dosan där det "blandas" med en hemlig kod, en kryptografiskt säker checksumma beräknas och visas, användaren läser av och knappar in denna på sin dator.

Med ett sådant system behövs ingen stor matris och variationsmöjligheterna är i princip oändliga. Enda kravet är att processorn har bra code protect och att den har kapacitet att klara en bra algoritm.
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Programmeringsspråk: MikroC till PIC fungerar alldeles utmärkt, har för mig att den finns i en Linux version men är inte säker.

Dosan: Lyssna på Marta som har rätt....
Användarvisningsbild
Greensilver
Inlägg: 1305
Blev medlem: 21 januari 2005, 21:24:57
Ort: Sverige
Kontakt:

Inlägg av Greensilver »

Börja med den största mikrokontrollern, den har allt och alla funktioner. De mindre kontrollerna har ett begränsat antal instruktioner och en del av dem kräver yttre kristall vilket iofs. inte är något bökigt men ändå. Jag rekommenderar att du börjar med Atmels Mega 32. Vilket som är bäst av PIC och Atmel tvistar di lärde om. :lol:
maxxflow
Inlägg: 1150
Blev medlem: 17 mars 2004, 16:11:14

Inlägg av maxxflow »

Var finns dendär wikin som $tiff pratade om?

Och ang. dosan, jag är ganska säker på att det finns matrisbaserade såna. Allt tyder på att SEB's dosa är en sådan.. Man får två 4-siffriga koder som man ska knappa in i dosan vid inloggning, det skulle mycket väl kunna vara en X-koordinat och en Y-koordinat.
Dosan har något som ser ut som IR-anslutning längst upp, vilket skulle kunna vara för att byta ut matrisen..
Men visst, jag kan ha fel.

Är det extremt lite minne i en PIC/AVR eller? För en såndär matris behöver inte ta enormt mycket plats tycker jag.. Problemet är kanske hur man ska lagra den i minnet, finns väl inte direkt några variabel/array-typer för såna tabeller.. :)
Iofs, om man programmerar C så kan man ju göra en radda med arrayer, typ såhär:
(typ PHP-pseudokod, är inte jättebra på C än :P)

Kod: Markera allt

matrix[0] = array(123,435,634,345,567,324,675,234,786,324);
matrix[1] = array(787,342,345,575,682,489,249,258,842,437);
matrix[3]= array(324,238,765,232,564,890,234,674,435,876);
matrix[4] = array(153,434,634,645,867,394,670,204,736,325);
osv...
Så om man t.ex. vill komma åt talet i ruta (X=5,Y=3), så skriver man matrix[3][5]
Vet inte om C klarar multidimensionella arrayer, men annars så kan man ju ha fasta variabelnamn för Y-raderna.. Typ:

Kod: Markera allt

y0 = array(123,435,634,345,567,324,675,234,786,324);
y1 = array(787,342,345,575,682,489,249,258,842,437);
y2= array(324,238,765,232,564,890,234,674,435,876);
y3 = array(153,434,634,645,867,394,670,204,736,325);
osv...
Men nog bråkat om detta nu ;) Mitt första "projekt" blir väl "det gamla vanliga", en lysdiod som blinkar eller nåt :P

Men var köper man AVR billigast, och vilken modell är lämplig för ett "blinka-LED"-projekt? :)
Användarvisningsbild
Zyxel615
EF Sponsor
Inlägg: 1839
Blev medlem: 9 november 2005, 21:20:43
Ort: Kiruna

Inlägg av Zyxel615 »

maxxflow
Inlägg: 1150
Blev medlem: 17 mars 2004, 16:11:14

Inlägg av maxxflow »

Tack :)

Tänkte börja med Atmels ATtiny 15, är den bra?
GFEF
Inlägg: 2382
Blev medlem: 4 december 2004, 18:44:04

Inlägg av GFEF »

>Jag har läst mycket om att AVR är jättelätt att programmera, bara ett par motstånd och sladdar till paralellporten. Går samma sak att göra med PIC?

Till serie port ja men....

http://www.jdm.homepage.dk/newpics.htm

Inte helt problemfritt JDM-programmerare...
PIC leverers instälda för högnivå programmering
Går att programera om till lågnivå

>Jag har läst att man kan kompilera C-kod till AVR med GCC. Det går inte till PIC eller?

http://ubicomp.lancs.ac.uk/~martyn/sdcc_linux/

This document describes how to get SDCC installed and working under Linux, provides an example script for the 16f877 and describes how to compile it.
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Jag såg just att den PIC du länkar till är en PIC12Cxxx. En sån kan bara programmeras 1 gång! Ska du ha PIC ska du ha en PIC1xFxxx som kan programmeras om _många_ gånger. sodjan har en del att välja på, han har även en WISP628 programmeringsenhet som är ytterst strulfri så "he's the man!" om du vill PIC'a.

Sen tycker jag att du hänger dig på fel sak: hur enkel de är att programmera.
Det är ett rent elektrisk problem som det finns massor av lösningar till, saker som är avsevärd mer viktigt är: hur är programmeringsmiljöt, vilka funktioner finns i kretsen, störtålighet, inbyggd oscillator osv.

Själva överföringen av den färdiga koden till valda mikroprocessor (µC) är det absolut minsta att hänga sig i om man rör sig i PIC/AVR-världen.
maxxflow
Inlägg: 1150
Blev medlem: 17 mars 2004, 16:11:14

Inlägg av maxxflow »

Nu har jag köpt en ATtiny 15 på ELFA... Ska se om det går att få nåt liv i den.. :)
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Bra val med AVR (no offence sodjan)!
maxxflow
Inlägg: 1150
Blev medlem: 17 mars 2004, 16:11:14

Inlägg av maxxflow »

Ok, nu har jag skrivit ett litet testprogram och "kompilerat" det till en .hex-fil..
Hur gör jag nu för att föra över det till AVR:en? Behöver jag nån programmerings-dosa, eller funkar det med dendär "3 motstånd och serieport"-metoden? Hur gör man isf?
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Alla Tiny- och Mega-modeller har intern oscillator, vad jag vet.

Tiny15 har inget SRAM-minne, vilket gör den väldigt begränsad. Köp en större istället som du kan ha att för att lära dig på, t ex ATmega88.

edit: Ja, du kan köra med den som man kopplar direkt till parallellporten. Här står det hur du ska koppla:

http://www.bsdhome.com/avrdude/
Användarvisningsbild
Miraculix elektronikdruid
Inlägg: 10
Blev medlem: 19 mars 2005, 14:02:58
Ort: Roslagen
Kontakt:

Inlägg av Miraculix elektronikdruid »

Yepp!

Alla Tiny och Mega har intern osc. Vad som kan vara bra för er att
veta är att ATmega 48, 88 och 168 ingår alla i den nya pico-power satsningen som ATMEL gör. Alltså oerhört lite kraft när den ligger i SLEEP.

Dessa MCU:er är dessutom samma krets med olika mycket minne och samma footprint, bra om man vill börja med litet och ha något att växa i!

Mvh Mirre
Skriv svar