Tiny programmerare



om du gillar Arduino- och du bör vara- då vet du att det finns program som du inte använder alla processorkraft eller i och utgångar. För dessa applikationer verkar $30 vara mycket att spendera på ett projekt. Lyckligtvis, ATMel, företaget som gör "hjärnor" i de flesta Arduinos, har en lösning: The på lilla raden av mikroprocessorer. Det finns flera modeller i olika konfigurationer med varierande Stifttilldelningar och minne. Den stora nyheten är att du kan använda din Arduino för att programmera dessa enheter utan att behöva permanent ägna din Arduino ombord till projektet. Detta kallas med din Arduino som en "I System programmerare" eller ISP, vilket är vad denna "ArduinoISP" skiss i mappen sketch handlar om.

Ingenjörerna över på MIT: s High-Low Tech har en stor uppsättning tutorials som få i nitty gritty denna process baserad på breadboarding och hoppare ledningar. Denna handledning kommer att fokusera på en mer permanent lösning för dem som befinner sig med på Tinys oftare. Den förutsätter också en icke-nybörjare nivå av erfarenhet med lödning teknik, men du behöver inte vara en robot i en Shenzhen det fungerar.

PÅ Tinys är tillgängliga genom de flesta av de vanliga misstänkta när det kommer till postorder semiconductor leverantörer och ibland i massor på eBay. Vid beställning, se till att få DOPPA version. Om du beställer ytmontering sorten, är du otur när det gäller denna tutorial.

Vi ska begränsa diskussionen till det på små 45/85 och 2313 eftersom dessa enheter har nog liknande Stifttilldelningar att minimera komponenter och de representerar ett brett utbud av minne och i/ut konfigurationer. (Eftersom jag först stötte på Tinys, jag har gått igenom projekt med ungefär ett halvt dussin Tiny 45's och jag är inte en professionell ingenjör.) Om du tittar på den andra bilden, ser du pin konfigurationer för dessa två enheter. De viktiga stift här är Vcc, marken, Reset, MISO (ledar-i / slav ut), MOSI (ledar-ut / slav i) och SCL eller SCK (som är två sätt att säga "Seriell klocka.") Observera att nästan alla dessa stift är på samma ställe på de två paketen med undantag av marken, som på 45/85 är på pin 4 och på 2313 är på stift 10. I en permanent lösning, om du körde stift 4 till mark på 2313, skulle det vara ansluten till stiften som reserverats för den externa klocka, som kan orsaka problem. Vi kommer att lösa problemet med hjälp av en bygel.

Den första sak att göra, som alltid, är att samla ditt material. För detta Instructable behöver du följande:
-En Arduino ombord. Unos, Megas och Duemillanoves bör allt arbete men jag använder en Uno. Det är den enda som jag vet kommer att arbeta för säker här.
-En Arduino Protoshield (ca $18 på RadioShack med varierande priser runt interwebs.) Detta är ett bra verktyg för enstaka sköld byggnad. Det är ungefär halvvägs mellan en bröd styrelse och en anpassad PCB som kombinerar de bästa delarna av båda. (Jag antar att du kunde använda en off-the-shelf perf-stansade PCB med huvudet stiften, men det finns problem med orientering om du gör det. Jag tänker inte gå in i mekaniken i denna strategi.) Se tredje bilden.
-En 20-Pin DIP socket (också i den tredje bilden.)
-Ett mer dopp uttag (pin-kod är inte viktigt här, så länge som det finns minst två på varje sida-du ska offra detta.) Alternativt en off-the-shelf header pin hoppare fungerar
-Vid minst två break-off header stift, icke-stapling.
-1 10 microfarad kondensator.
-Koppla upp tråd. (Jag föredrar att använda den typ som elektriker används tråd telefonlinjer i väggarna i ditt hem tillbaka när människor fortfarande används mark linjer. Det handlar om rätt mätaren och kan du färgkoda din arbete konsekvent.)

Verktyg:
-Låg wattage lödning järn och naturligtvis harts-core löda. (Jag gillar att använda extra harts när jag jobbar.)
-Diagonal Snipping tång/wire strippa (kan vara två separata verktyg)
-Kylfläns
-En tång nål näsa kan också komma till hands
0
Börja med lödning 20 Pin DIP sockeln på plats på den Proto sköld, som i 4: e bilden. Försök att vara snyggare om det som var jag. (Jag återanvända sköld från ett annat projekt och hade några löda broar över anslutna perfs som tog ett tag att rensa ut). Se till att du inte överbrygga alla intilliggande perfs.

Lägg sedan till din krok upp tråd som i de 5: e och 6: e bilderna. Som jag nämnde, jag färgkoda saker, så red går från stift 20 (Vcc) till Arduino + 5v, svart går från Pin 10 (Gnd på 2313) till Arduino Gnd, gul går från stift 1 (Reset) till Arduino 10, gröna trådar går från Pin 17 (MOSI) till Arduino 11, Pin 18 (MISO) till Arduino 12 och från Pin 19 (seriell klocka) till Arduino 13. Krok upp en extra svart tråd till den andra öppna perf på stift 10 och kör också det i yttre osammanhängande perf hål intill stift 5, lämnar lite mer bly än normalt, men inte löd den i ännu, bara remsa i slutet och köra det genom det hål.

Nu ska vi lägga hoppare, som vid stift 4 (Gnd på ATtiny 45/85) är två snap-off header stiften, i och till den yttre osammanhängande perf hål intill stift 4. Piggarna header så att långa metall ändarna sticka uppåt, inte nedåt genom styrelsen som andra stapling rubrikerna före kopplad till styrelsen. Löda stiftet att fäster till stift 4 spåra först, sedan böja en jordledning sticka genom osammanhängande perf hålet på stift 5 över kontakta återstående header-PIN-koden. Löda dessa två ihop som i bild 7.

Lägga till återställning 10 Microfarad kondensator över Arduino Återställ och återstående marken stiftet på den sidan, och se till att observera polariteten ("-" till Gnd) som i bild 8. Använda kylflänsen mellan styrelsen och kroppen av den gemensamma jordbrukspolitiken så att du inte stek den medan lödning det. (Lukten av brända electrolytics är bara hemskt.)

Vid denna punkt, vill du göra din bygel kontakten om du inte köper en eller ha den liggandes. För att göra en snabb och smutsig jumper kontakt, ta ditt "offer" DIN-uttag och böja sista två stiften på rad så att de touch och löda ihop (också i bild 8, på vänster sida.) Sedan ta din snips och klippa ut mitten järnväg av DIP från slutet du arbetat, sedan separera två stiften från uttaget genom att skära den på den tredje pin från slutet, som borde lämna din lödde stift i takt. Glida din bygel kontakten ner över två huvud stiften som sticker ur styrelsen som i bild 1 (Ja, 1-det är mer eller mindre klar på denna punkt så jag använde det som huvudbilden.) Denna bygel är bara för att användas när programmering på Tiny 45/85 chips, så ta bort den när du programmera en ATTiny 2313.

Nu, för produktens programmeringsdel.

Jag antar att du vet vad du gör med en Arduino här. Det första steget i denna fas är att ladda ner följande två filer:
en för 2313 och en för 45/85. Först har också borrkärnorna för på Tiny 84/44 marker, men detta programmerare kommer inte arbete med dessa två varianter. Stifttilldelningar är alldeles för olika. Om du försöker koppla in en till detta får du resultat från ingenting till förvirrande till en liten liten eld på din arbetsbänk.

När du har hämtat och packade upp dessa "kärnar ur" som de kallas, öppna filen på din dator som innehåller din Arduino sketchbook och skapa en mapp som heter "Maskinvara" om man inte redan finns och kopiera filerna uppackade till mappen hårdvara: mappen hela attiny och från den mappen arduino-liten-0100-0010 undermappen tiny. (Obs: Jag gillar att hålla dessa på mitt skrivbord och kopiera dem i en i taget som jag behöver dem. Annars på undermenyn du ska vara att välja dem blir lång och headachey.) Om du kör Arduino miljö när du installerade kärnar ur, borde du förmodligen ha vetat bättre, men ingen skada skedd. Avslutar den och starta om. Om du inte var, bara starta den. (Vi antar att du redan har installerat och körs.) När miljön körs kan bara för fan av det, titta under "Verktyg > styrelse >" och du bör se en massa alternativ som var aldrig där innan. För närvarande, bara lämna faktiska Arduino styrelsen du använder väljs (eller om av någon anledning fel en markeras, Välj rätt.)

Nu, sitt på lilla IC i 10 Pin uttag du lödas in i skölden tidigare. Stift 1 på denna IC markeras av en liten divot på chipet. Plats för IC så att detta stift är närmast till reset switch. (Jag kommer att använda en på Tiny 85 för detta Instructable.)

För nästa del av handledningen är det viktigt att göra saker i ordning anges annars får du några konstiga fel som du försöker programmera din på Tiny.

Nu ska vi göra något snyggt att nedskärningar faktiskt funktionaliteten för Arduino ner till en bråkdel av sin kapacitet. Med hjälp av styrelsen som en i-system programmerare, du är ganska mycket kringgå processorn inbyggd i Arduino (egentligen är det som använder den som en växel till rutten signaler, men det är verkligen typ av simpla jobb för vad en Arduino kan göra.) I Arduino miljön, öppna "filen > exempel > ArduinoISP" och ladda upp den till din Arduino ombord.

Sätt sedan försiktigt skölden i din Arduino ombord (se bild 9.)

Nästa, öppna en ny skiss och kopia och pasta den följande koden:

/*
TinyBreather
"Sova ljus" effekt för en ledde något som liknar en dator skärm strömindikatorn när det går in i viloläge.
Denna exempelkod är offentlig.
*/
int ljusstyrka = 0; Hur ljus LED är
void setup() {
pinMode (0, OUTPUT);
}

Ogiltig loop)
{
Delay(10);
ställa in ljusstyrkan för stift 0:
för (int ljusstyrka = 0; ljusstyrka < 255, ljusstyrka ++) {
analogWrite (0, ljusstyrka);
fördröjning (5).
}
vänta 30 millisekunder att se ljusreglering effekten
Delay(30);
för (int ljusstyrka = 255, ljusstyrka > 0; ljusstyrka--) {
analogWrite (0, ljusstyrka);
fördröjning (5).
}
vänta 30 millisekunder att se ljusreglering effekten
Delay(30);
Delay(10);
}

sluta kopiera skissen här

När du har denna nya skiss in i miljön, väljer du "Verktyg > styrelse > vid Tiny85 (med Arduino som ISP)" och sammanställa skissen. Det bör fungera utan incidenter. När du har en ren kompilera, ladda upp skissen (detta faktiskt kommer via Arduino på små, inte Arduino.) Jag kan nästan garantera att du får följande felmeddelande:
avrdude: definiera PAGEL och BS2 signaler i konfigurationsfilen för del ATtiny85

Två gånger i rad, i själva verket. Oroa dig inte, det är faktiskt ett gott tecken. Nu ska vi testa det genom att ta en LED och placera den i sköld med positiva (längre) leda i uttaget 11 och negativa bly i Gnd på samma sida. (Obs: bästa praxis skulle förmodligen diktera att du sätter en begränsning av nuvarande motstånd någonstans mellan lampan och gå runt men jag har nog av dem liggande att jag har inget emot att riskera smokeshow för demonstrationen.) Resultaten bör vara ganska mycket vad du ser i videon här:
http://youtu.be/zlhP15mu9Bo

För att köra samma krets oberoende av sköld/Arduino, skulle du bara köra en reglerad strömkälla (+ 5v) pin 8 i din programmerad IC med marken till 4 och ansluta LED över stift 5 och marken. Precis som Arduino, på liten kommer att behålla det sista programmet laddar du in i den ganska länge.

Processen är mycket samma för på Tiny 45 utom naturligtvis du vill markera "På Tiny 45 (med Arduino som ISP)" som styrelsen att programmet. Om du väljer på Tiny 2313 för ditt projekt, processen skulle vara ungefär samma utom vi skulle vilja ta bort bygeln kontakten, den rätta uppsättningen kärnor installeras i mappen "Maskinvara" och ändra Stifttilldelningar i skissen från "0" till "5" - e.g.analogWrite (0, ljusstyrka): blir analogWrite (5, ljusstyrka); se bild 2 för att förstå detta.

De flesta Kontrollkommandon som du vill använda för Arduino finns att på små, men några av de högre-funktion kommandona (saker som att ta kontroll av Output Control registrerar och inre klockor) helt port inte direkt eftersom timers och naturligtvis utgångar är inte samma sak.) Enligt High-Low Tech, bör kommandon som Arduino stödjas:

pinMode()
digitalWrite()
digitalRead()
analogRead()
analogWrite()
shiftOut()
pulseIn()
Millis()
Micros()
Delay()
delayMicroseconds()
SoftwareSerial (har uppdaterats i Arduino 1.0)

Jag har använt alla dessa och andra. Tone() verkar till exempel fungera utan problem.

Så nästa gång du har en stor Arduino projekt men vill inte permanent tilldela din Arduino till, säg, en öppen dörr varning eller ett blinkande gratulationskort, Tänk på lilla linjen och om du får beroende av, det kommer vara värt tiden att göra denna hårdvara programmerare snarare än att bära ut din skärbräda.

Relaterade Ämnen

Plantera fukt larm

Det finns en kommande händelse på Fablab Umeå med tema beeing växten med, så vi beslutade att bygga en enkel fukt larm för växter att hålla dem som glad växter.I fokus för detta instructable är inte att bygga perfekta fukt larm, mer att visa vad som...

Arduino fasta punkter fordonets närhet detektor.

Detta är den högteknologiska versionen av hängande en tennisboll i taket från en bit snöre. Naturligtvis har du två olika typer av fordon, kommer det tennisboll inte att landa på samma plats på dem båda. Detta projekt kan hindra hundratals dollar i t...

Programming "AtTiny85" med den lilla AVR programmerare och kompletteras 'Arduino IDE'

Använda Atmels lilla 8-pin AtTiny85 är mikrokontroller som en fristående ett bra alternativ till större 28 pin AtMega328 monterad på en Arduino Uno ombord. Jag har bytt från den ena till den andra på olika sätt, men vad jag hittade enklaste var med S...

Hur man programmerar ATtiny2313

Tjena gott folk!När jag först fick min ATtiny2313 tog det mig större delen av 4 timmar att äntligen få det programmerade. Jag gick igenom otaliga Självstudiekurser online som var gammal och omodern. Jag kunde aldrig få rätt filer från en webbplats. J...

Hur man programmerar en LilyPad utan FTDI Converter

Hej alla! I den här artikeln visar jag hur programmera Arduino LilyPad utan FTDI omvandlaren.Arduino LilyPad är en av många Arduino microcontroller familjen, men med en funktion som gör det unikt.LilyPad styrelsen, i själva verket kan vara sydda på t...

18F4550 programmerare i tio år

det verkligen tog mig 10 år att bygga denna programmerare!Bli inte förvånad, jag började faktiskt bygga den ursprungliga programplaneringen kretsen av Microchip PIC 16F84 (JDM 2) 2003 och slutade det i 2 dagar. Sedan på 2013 fann jag att det kan åter...

ATmega168 TQFP32 smd programmerare sköld

Denna sköld som jag har gjort att programmera en ATMEGA168 med ett TQFP32 paket utan lödning.Steg 1: IntroMed denna sköld kan du programmera en atmega168 mikrokontroller (µC) med ett TQPF32 paket utan lödning. Bara lägga chipet på toppen av styrelsen...

Allt i en AVR programmerare

Det finns en hel del information om hur ladda upp program till AVR microcontrollers, men jag har aldrig kunnat hitta en plats som har allt jag behöver. Det här är mitt försök till att skapa en Arduino shield för att programmera ATtiny85, ATtiny84, oc...

Atmel start 1: Atmel Studio och programmerare

M. A. Parker c2015Installera Atmel Studio (AS) och en programmerare förkroppsligar de första stegen [0] på väg mot med hjälp av en Atmel AVR Microcontroller individenhet MCU [1] i motsats till MCU-på-en-styrelsen som Arduino [2]. Här startar resan, o...

PIC 12F675 programmerare/OscCal återställning/testare

En av mina kretsar att jag bygga ganska ofta (20-40 i taget), använder en PIC 12F675. Jag hade följande frågor:De brädor som jag gör, har inte i-krets programmering funktioner. Detta är att möjliggöra en liten PC board layout. Bilder måste således pr...

Arduino UNO som AtMega328P programmerare

Efter att ha fått min första Arduino UNO, insåg jag snart att det är opraktiskt att använda en UNO för varje projekt. Som med mikrochip familjen av MCU, jag ville ha ett enkelt sätt att programmet fristående kretsar och chips.Söka på internet, var de...

Hur man programmerar en klocka

Om du har någonsin viljat till skapa och kontrollera tid, är detta inte precis rätt ställe. Jag kan dock lära dig hur man skriver ett program för en klocka. Jag kommer att visa dig hur du använder anteckningar på en Windows-dator för att designa din...

Tiny Faux uppstoppning

Jag hittade några små trä plack vid en sparsamhet butik, och visste att jag var tvungen att göra något med dem. Det första som dök in i mitt huvud? Tiny monterad djurhuvuden, naturligtvis! Men jag ville gå för fånig critters - inga rådjur eller älg e...

Gduino-ingen programmerare krävs! För 5$, program flera AVRs

Arduino är bekant för alla som älskar att bygga tech. Det är mycket vanligt i projektet beslutsfattare. Men varför 25$ för detta forum! Vi kan göra vår egen! I detta instructable jag ska visa dig hur man bygger en arduino hemma som inte behöver någon...

Billigt, lätt Robotics för icke-programmerare

Hej Robotics-programmerare-vill att bina! Trött på att försöka olika "miljöer" bara för att finna att det finns en brant inlärningskurva mellan dig och de coola roboten tricks din nördiga vänner göra? Är de kommersiella kit för dyrt? Då är detta...

Paperduino Tiny

bygga Arduino kompatibla ombord på papper.Paperduino Tiny är mycket billigt och lätt att bygga Arduino kompatibla ombord med USB och programvara som är kompatibel med Digispark ombord.Paperduino Tiny inkluderar en ATtiny85 mikrokontroller och komma m...

Hitec HFP-25 programmerare - hur du justerar Hitec Digital Servo slutpunkter

Detta instructable kommer att förklara hur man ändrar mittpunkt och slutpunkterna för en Hitec Digital servo med HFP-25 programmerare. Detta kommer att justera hur servo kommer att svara på den signal som mottas av servo. All programmering sparas ino...

Hur man programmerar Adafruit Gemma v2

I dag ska jag visa dig en mycket snabb metod att överföra programmet blinkande LED till Adafruit Gemma v2 (detta har fått micro USB-kontakt). Jag ville skriva här instruktioner eftersom jag anser vi som en ny utvecklare behöver en mycket snabb och ut...

JDM programmerare

Detta programmerare stöder pic10F, 12F, 16C, 16F 18F, 24Cxx Eeprom.det fungerar med Winpic800 och icprog.Vi har framgångsrikt provat det med några bilder; 16f877a 16f84a 16f628 18f2550.komponenter:1. 40 pin KI Base(2 pc).2. 100uf /16v Capacitor(2 pc)...