Tiny programmerare
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.