Bygg din egen (billigt!) multi-function Trådlös kamera controller. (3 / 22 steg)
Steg 3: En närmare titt på ATmega8
Bild 1 är pinut diagrammet för ATMega8 (exakt samma som den 168/48/88, den enda skillnaden är mängden onboard minne och avbryta alternativ).
Stift 1 - Reset, bör hållas på VCC spänning (eller åtminstone logiska 1). Om jordad, enheten kommer soft reset
Stift 2-6-Port D, allmän ingång/utgång
Stift 7 - VCC, leverans spänning (+ 5V för oss)
Stift 8 - marken
PIN-9,10 - XTAL, extern klocka ingångar (del av B-Port)
PIN-11-13 Port D, allmän ingång/utgång
PIN-14-19 Port B, allmänna ingång/utgång
Stift 20 - AVCC, analog spänning (samma som VCC)
PIN 21 - AREF, analog spänning referens
PIN-22 - marken
PIN-23-28 Port C, allmänna ingång/utgång
Användbara i/o-portar: D = 8, C = 6, B = 6
Totalt 20 användbara portar är stor, för enkelhetens skull bör du gruppera dina utgångar till portar (säga, D som utdataport) eller i grupper i styrelsen - du LCD att köra från Port C bara för att hålla trådarna städa i det hörnet.
Det finns tre extra stift som krävs för programmering. De är MISO (18), MOSI (17) och SCK(19). Detta kommer att fungera som i/o stift om det behövs ändå.
Klockning
Den signal som vi skickar till kameran måste vara just tidsinställda (exakt till runt en mikrosekund) så det är viktigt när vi väljer en bra klocka källa. Alla AVRs har en intern oscillator som chipet kan få sin klocka från. Nackdelen med detta är att de kan variera runt 10% med tryck/temperatur/luftfuktighet. Vad vi kan göra för att motverka detta är att använda en extern kvartskristall. Dessa finns i allt från 32768kHz (klocka) till 20MHz. Jag har valt att använda en 4Mhz kristall som det ger en anständig mängd hastighet ännu är ganska driver konservativa jämfört till kanske 8 Mhz +.
Inbyggda energisparfunktioner
Jag ville verkligen använda sömn rutiner i min kod. I själva verket skrev jag den första versionen för att förlita sig tungt på tomgång processorn medan tid upphörande. Unfortnuately, på grund av tidsbrist, jag sprang in vissa problem med kör klockan externt och avbryta med timers. I grund och botten jag måste skriva om koden för att ta itu med den registeransvarige helt enkelt inte vakna upp - som jag kunde göra, men tiden är mot mig. Som sådan, drar enheten bara 20mA ish så du kan komma undan med det. Om du känner verkligen för det, sedan med alla medel fippla med koden, allt du behöver göra är att klocka internt och sedan köra Timer 2 i asynkron läge med 4 MHz kristallen för mer exakt förseningarna. Det är enkelt att göra, men tidskrävande.
ADC
Den schweiziska armékniven i AVR verktyg, ADC står för analog till Digital omvandlare. Hur det fungerar är relativt enkelt från utsidan. En spänning som ingår i urvalet på ett stift (från vissa sensor eller andra ingång), spänningen får omvandlas till ett digitalt värde mellan 0 och 1024. Ett värde på 1024 kommer att observeras när spänningen är lika med den ADC referensspänningen. Om vi sätter vår referens vara VCC (+ 5 v) är varje division 5/1024 V eller runt 5mV. Således kommer att en ökning med 5mV på PIN-koden öka ADC värdet av 1. Vi kan ta ADC produktionsvärde som en variabel och sedan fiol med den, jämför det med saker, etc i koden. ADC är en otroligt användbar funktion och kan du göra massor av häftiga saker som tur din AVR i ett oscilloskop. Provtagningsfrekvensen är cirka 125kHz och måste ställas in i förhållande till den huvudsakliga klockfrekvensen.
Registrerar
Du kanske har hört av register innan, men fruktan inte! Ett register är helt enkelt en samling av adresser (platser) i AVR minne. Register är klassad av lite storlek. En 7 bitars register har 8 platser, som vi utgår från 0. Det finns register för bara om allt och gärna ta en titt på dem mycket mer detaljerat senare. Några exempel är PORTx registren (där x är B, C eller D) som styr om en PIN-kod är set hög eller låg och anger pull up motstånd för ingångar, DDRx register som ställa in om en PIN-kod är utdata eller indata och så vidare.
Databladet
En koloss av litteratur, väger ungefär 400 sidor; AVR datablad är en ovärderlig hänvisning till din processor. De innehåller Detaljer för varje register, varje stift, hur timers arbete, vad säkringar ska anges till vilken och mycket mer. De är gratis och du behöver det förr eller senare, så ladda ner en kopia!
www.Atmel.com/dyn/Resources/prod_documents/doc2486.pdf