Atmel start 2: Microcontroller kretsar och säkringar (4 / 6 steg)
Steg 4: Säkring för ATTiny 2313A
Den första programmering uppgiften består av inställning fuse bitar som ger egenskaper MCU som klocka källa och klockan avdelare. I början av de flesta projekt, kommer att du behöva besluta om att använda den interna klocka källan eller använda en extern kristall med två 22pf kondensatorer. En intern oscillator skär ner antalet delar men ger dålig timing noggrannhet på 3% - 10% som kalibreras på fabriken för låg precision timing. inre oscillatorn kan dock kalibreras till 1% som beskrivs i Atmel ansökan Obs #AVR053 [16,17]. Intern oscillator generellt inte lämplig för USART seriella portar. För Blinky och livlina, klockan behöver inte vara exakt men vi antalet delar vara minimal. Så vi kommer att använda den interna klockan 8MHz.
Slutföra stegen ovan, ansluta batteriet till prototypen på experimenter's styrelse och Anslut programmeraren till adapterkabeln och USB (om inte redan alla anslutna). Den "Verktyg > enhet programmering" dialogen bör vara öppna. Från menyn till vänster, Välj fliken Fuse.
Försiktig med vad du gör! Vissa inställningar för säkring kan döda (dvs tegel) MCU. Ibland kan du återställa säkringen genom att bygga eller köpa högspänning programmerare (12V) som diskuteras i Autostart #5. Kontrollera eller avmarkera de fuse objekt enligt följande lista och stäng sedan dialogrutan enhet för programmering. Spara och stäng lösningen. Obs: Den fullständiga lösningen kan sparas genom att klicka på ikonen med flera diskar i verktygsfältet eller annars använda fil > Spara allt.
Tabell 1: Fuse inställningar och funktioner
Fuse namn | Statliga | Beskrivning |
SELFPRGEN | INGEN KONTROLL | Liknar SPM – rör inte! |
DWEN | INGEN KONTROLL | Felsöka tråd aktivera-rör inte! Aktiverar DebugWire gränssnittet som använder Återställ PIN-koden och åsidosätter den SPI gränssnittet. En förenklad JTAG. |
EESAVE | INGEN KONTROLL | EEProm spara: Förhindrar EEProm radera under en MCU radera händelse. |
SPIEN | KOLLADE | Serial Programming Interface aktiverar – rör inte! Detta måste vara aktiverat för att kunna använda Atmel programmerare (eller kompatibel). Avmarkera det och MCU inte kommer vara programmerbara! |
WDTON | INGEN KONTROLL | Titta på hund timer: en oberoende timer används för att återställa MCU ifall MCU slutar fungera ordentligt. WD timern räknar ner till noll och kommer att återställer MCU om WD timern återställs först i programmet. |
BODLEVEL | FUNKTIONSHINDRADE | Brunt ut upptäckt nivå: MCU övervakar matningsspänningen och Återställ aktiveras för att förhindra oförutsägbara drift när matningsspänningen sjunker under det uppgivna värdet. För 5V drift, man skulle använda 4V3 = 4,3 volt |
RSTDSBL | INGEN KONTROLL | Återställa inaktivera-rör inte! Om aktiverad, återställs inte längre MCU och Återställ PIN-koden. Programmeraren måste kunna använda Återställ PIN-koden; följaktligen om aktiverad MCU kan inte programmeras! |
CKDIV8 | INGEN KONTROLL |
Klockan klyftan av 8: ta tid på klassar kommer att minskas med en faktor 8.
CKOUT
INGEN KONTROLL
Klockan ut: Skickar klocksignalen till stift 6 på ATTiny 2313A MCU
SUT_CKSEL
INTRCOSC_8MHz_
14CK_0MS
Ställ in Timer och klockan urval (aka, CKSEL)
Klockan kommer vara intern oscillator på 8MHz. MCU kommer att försena start för 14 klockcykler och 0 millisekunder för klocka källa att stabilisera.
Några anteckningar om säkringar:
Ställ in din säkringar som anges i tabell 1 eftersom dessa inställningar har testats. Problem med att välja fel inställningar för CKSEL och CKDIV8 är de löst av livslinjen men som inte är byggt ännu. SUT_CKSEL erbjuder en mängd olika klocka källor men detaljerna i varje kan variera från en till nästa MCU typ. I allmänhet stöder Atmel MCU fyra huvudkategorier av klocka källor [18,19].
Externa Oscillator: En kristall med två 22pF kondensatorer. Detta är den mest exakta klockan. Kristallen kommer ofta betecknas med XAL, XTAL eller X. Kristaller för Atmel AVR MCU spänner allmänt upp till 20MHz.
Extern klocka: En modul som producerar klocksignalen. Den innehåller vanligtvis en kristall tillsammans med andra komponenter för precision timing.
Inre RC (alias, intern oscillator): använder en resistor och kondensatorn ingår i MCU för timing. Den inre RC är det enklaste möjliga konfiguration som inte kräver yttre delar, har men dålig fabriken kalibrerad noggrannhet på 3% till 10%.
Yttre RC: Använder en extern kondensator för timing.
ATTiny 2313A säkringen SUT_CKSEL har alternativ märkt av
INTRCOSC xMHz
INTRCOSC hänvisar till den inre RC klocka av Atmel och x i xMHz kan väljas som 4 eller 8 (etc). Vi kommer att använda inställningen 8MHz.
EXTXOSC xMHz-yMHz
EXTXOSC hänvisar till en kristalloscillator (alias, externa Oscillator) och spänna xMHz-yMHz bör väljas som innehåller frekvensen av faktiska kristallen placeras i kretsen. Atmel MCU hastighet kan vara 20MHz men den maximala hastigheten beror på spänningen tillämpas på MCU-hänvisar till specifikationerna på första sidan eller två av manuellt [1].
EXTCLK
Alternativet EXTCLK avser en färdiga klockan modul lämplig för produktion av en klocka för Atmel MCU. Modulen måste ha kompatibla tillverkad spänning och frekvens.
Några alternativ har suffixet alternativ som 14CK_64MS. Dessa hänvisar till antalet klockan cykler och millisekunder försening tills processorn börjar för klocka källa att stabilisera. De flesta rådgivare föreslår att du använder den längsta förseningen som möjligt även om vissa inställningar verkar störa programkörningen.
Som nämnts, beroende av maximal användbar klockfrekvensen för en MCU spänningskälla tillämpas mellan Vcc och Grnd (stift 20 och 10, respektive för ATTiny2313A). Den första sidan i användarhandboken [1] för att MCU visar listan hastighet klass:
Tabell 2: Hastighet kvaliteter
0 – 4 MHz @ 1,8 – 5.5V
0 – 10 MHz @ 2.7 – 5.5V
0 – 20 MHz @ 4.5 – 5.5V
Livslinjen, använder till exempel i Autostart #5, tre AA-batterier som kan ha totalspänning sträcker sig 3 till 4,9. Specifikationerna som visar att ATTiny2313A kan arbeta upp till 10MHz för denna spänner av spänning. Så, eftersom vi kommer att hålla spänningen i spänna av 2,7-5.5V och vi planerar att använda en intern oscillator, Välj värdet av "INTRCOSC_8MHz" för SUT_CLKSEL säkringen. I väntan på att bygga livslinjen, välja den posten med suffixet i 14CK_0MS. Efter livlina har slutförts, kan de olika klocka alternativ för en extra MCU prövas utan att oroa om att göra det MCU nonprogrammable.
Andra Atmel MCU har andra SUT_CKSEL alternativ. Till exempel erbjuder ATMega328 (populärt för Arduino)
EXTCLK – extern klocka modul:
En modul som producerar klocksignalen. Den innehåller vanligtvis en kristall tillsammans med andra komponenter för precision timing.
INTRCOSC – inre RC-oscillator
Använder en motstånd och en kondensator i MCU för timing-dålig precision.
EXTLOFXTAL – externa lågfrekventa Crystal
MCU kan använda en klocka crystal på 32.768 kHz.
EXTFSXTAL – externa Full gång Crystal
Kretsarna crystal producerar maximal amplitud spänning gungan för genomförda MCU spänningstillförselen. Detta läge kan användas för att driva de komponenter som behöver klockan men det kräver mer ström än den EXTXOSC läget.
EXTXOSC – externa kristalloscillator
EXTXOSC använder minimal makt och representerar Rekommenderad driftläge.
Beträffande BODLEVEL säkringen har de flesta Atmel MCU som ATTiny2313A brun ut upptäckt (chip kommer in reset läge när spänningen sjunker under en inställd nivå). Normalt, för 5V drift, skulle BODLEVEL bli 4v3 = 4.3V för att förhindra MCU från att agera oförutsägbart om/när spänningen sjunker under 4.3V. Titta särskilt på specifikationerna för ATTiny2313A i manualen [1]. Titta på operativa spänningar (se tabell 2 ovan). Vi kommer att köra en 8MHz intern oscillator. Chipet kan fungera på den nivån för någon spänning mellan 2,7 och 5.5V. För livlina, våra 3 AA-batterier kommer att producera spänning minst 3V (i huvudsak döda) till cirka 4.9V (ny). Vi behöver inte BODLEVEL.