Nadat ik was zowaar fed opwaarts altijd het maken van de verbinding van het MOSI, MISO, Reset, SCK, Vcc en grond met draden om te programmeren van een Attiny85/45/13, kocht ik een programmeur van USBASP (echt goedkoop).
Kreeg niet dat aan het werk, altijd kreeg de gevreesde 'Ieks, ongeldige apparaat handtekening' boodschap, dat is meestal een teken van een slechte verbinding. Couldnt snel zoeken, misschien een rotte kabel, maar ik wilde niet meer tijd verliezen dus ik samen te een snelle en eenvoudige Attiny-programmeur stellen.
Ik weet er zijn tientallen circuits en ontwerpen die zweven rond op het internet, maar ik heb gewoon nooit rond om daadwerkelijk een, dus als u als me bent, dit gewoon een beetje DVS u vertellen om te is 'just do it' duurt misschien 10 minuten van schroot naar programmeur.
Ik heb mijn inspiratie uit een Spaanse site uit een kerel die inspireerde mij om te bouwen van mijn eerste Arduino, maar toen ik gecontroleerd, de klemmenstrook-illustraties van zijn programmeur waren verdwenen.
Geen zweet, gewoon simpel om te maken mezelf.
Het idee is een klein stukje van de klemmenstrook die in de nodige headers van de Arduino pluggen. Een 20hole x 9 stroken stuk is genoeg, maar ik maakte dat 22 gaten, gewoon om een paar kleine 'vleugels' om te helpen me het uitlichten.
STUKLIJST
20 x 9 klemmenstrook
mannelijke kop 7 pins
mannelijke kop 6 pinnen
2 LEDs
2 weerstanden 560-1k
1 Elektrolytische condensator 10 uF (in feite dat ik gebruikte een 33uF, dat zo goed werkte)
8 pins dil IC houder
De Arduino ISP biedt 3 LEDs om status bij te houden. Ik uitgevoerd 2: de hartslag en de fout (D9 en D8). Toevoegen de LED 'Programmering' is een beetje meer van een gedoe omdat dat moet D7 die net aan de andere kant van de niet gestandaardiseerde kloof in de koptekst van de Arduino is, maar als u wilt dat u kon toevoegen een enigszins bocht pin naar sleuf in D7.
De Raad van bestuur pluggen in gemakkelijk, maar is niet volledig rechte omwille van hoe de arduino headers line-up, maar het werkt geweldig.
Gewoon een woord over de condensator. Om te voorkomen dat de Arduino wordt gereset wanneer de attiny programma is geüpload, moet de resetpin hoog worden gehouden. Er zijn twee manieren hoe dat meestal gebeurt: een weerstand (120 Ohm) aan de Vcc of een condensator (10uF) tussen aarde en Reset. Beide werken goed.
De condensator is echter ook de reden dat u het ArduinoISP-programma met het bord ingevoegd, kan niet uploaden, dus je moet het uitlichten. U kunt natuurlijk een jumper toevoegen aan de Raad van bestuur, of een kleine schakelaar, tijdelijk verbreken de condensator
Belangrijk!!!
Dubbel zeker en dubbel te controleren dat u niet vergeten om al voor de noodzakelijke bezuinigingen op de klemmenstrook maken Controleer na elke knippen, gebruik een multimeter indien nodig.
Nadat u het allemaal gesoldeerd, controleer opnieuw dat er geen losse verbindingen of korte broek zijn. De reden hiervoor is dat u niet wilt korte alle pinnen op je arduino of alle pinnen verbinden waar zij niet moeten worden aangesloten. U wilt niet om het even welk van uw digitale-Out-pinnen verbonden zijn aan grond wanneer u trek ze hoog.
Hoe dan ook, het bouwen van gisteren en het werkt groot. Ik hebt meer Attiny de in een halve dag dan ik deed in mijn leven voor geprogrammeerd.
Voor mensen die nieuw zijn voor het programmeren van een Attiny: de stappen zijn als volgt.
Zorg ervoor dat u een Attiny kern geïnstalleerd (er zijn veel, probeer hier of hier , u ook kan wilt controleren hier)
Verwijder de programmering bord en de 'ArduinoISP'-programma uploaden naar je Arduino.
Plaats de programma-bestuur en laden van de gewenste Attiny schets.
Kies de juiste Attiny instelling onder 'Tools-Board'
Ga naar 'Bestand-Upload met behulp van programmeur' in oudere IDE-versies zou dit gewoon 'uploaden'
U kunt controleren hier of hier voor meer informatie over de programmering.
belangrijk is om te weten dat zelfs met een succesvolle programmering, krijg je twee foutberichten worden weergegeven:
Negeren twee foutberichten worden weergegeven:
"avrdude: Geef PAGEL en BS2 signalen in het configuratiebestand voor deel ATtiny85".
gewoon negeren die berichten.
Bent u een perfectionist, kunt u deze foutberichten oplossen door edit bestand avrdude.conf, gevonden in
(windows) C:\Program Files (x86)\arduino-1.0.6\hardware\tools\avr\etc
(Ubuntu) Home\Arduino-1.06\hardware\tools
Zoek het woord Attiny85 en gaan een paar regels naar beneden tot:
chip_erase_delay = 4500;
en onder deze lijnen toevoegen:
# Toegevoegd om de bug te bouwen.
Pagel = 0xB3;
BS2 = 0xB4;
Zoek deze sectie lager en voeg de gemarkeerde code:
geheugen "lock"
grootte = 1;
schrijven = "1 0 1 0 1 1 0 0 1 1 1 x x x x x","x x x x x x x x 1 1 ik ik ik ik ik ik";
lezen = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0","0 0 0 0 0 0 0 0 o o o o o o o o";
min_write_delay = 9000;
max_write_delay = 9000;
;
Bedankt baelza.bubba voor het aanbrengen van mij op het goede spoor daarvoor. Hebt u moeite begrip, Bekijk de twee foto's. Begrijpen dat je niet hoeft te veranderen van het bestand, het werkt allemaal. De wijziging is gewoon om zich te ontdoen van de foutberichten weergegeven.
Gewoon een tip: als ik was de Attiny programmeren ik de instelling gebruikt voor de interne klok van 8 MHz en vond mijn tijdsinstellingen te ver weg. toeval of niet, het leek dat ze waren een factor 8 af (langzamer). Toen ik op 1 MHz probeerde, leek het allemaal OK weer. Dit wordt veroorzaakt door het volgende: de standaard operationele snelheid voor de Attiny is 1Mhz, en het wordt dat door de interne oscillator delen door 8. Waar ik vanuit ging dat de 8MHz ingesteld zou de goede zekeringen te vertellen de Attiny dat het niet moet verdelen de interne oscillator meer, lijkt het dat het niet kan doen. De oplossing zou zijn om eerst de juiste zekeringen door het selecteren van 'branden bootloader' dat de bootloader niet branden, maar het stelt de juiste zekeringen.
Net nog een tip: er zijn verschillende Attiny kernen en niet alle volledige implementaties. Als u van plan bent om de bibliotheek van de 'Privacy' te gebruiken, kunt u tegenkomen fouten als:
/libraries/OneWire/OneWire.cpp:105: fout: 'digitalPinToBitMask' niet in dit bereik werd verklaard
/libraries/OneWire/OneWire.cpp:106: fout: 'digitalPinToPort' niet in dit bereik werd verklaard
/libraries/OneWire/OneWire.cpp:106: fout: 'portInputRegister' niet in dit bereik werd verklaard
Is er een gemakkelijke moeilijke situatie voor dat:
• Zoek en open OneWire.h
• Ga naar deze sectie van code naar boven...
#if ARDUINO > = 100
#include "Arduino.h" / / voor delayMicroseconds, digitalPinToBitMask, etc
#include "WProgram.h" #else / / voor delayMicroseconds
#include "pins_arduino.h" / / voor digitalPinToBitMask, etc
#endif
• Verandering in:
#if ARDUINO > = 100
#include "Arduino.h" / / voor delayMicroseconds, digitalPinToBitMask, etc
#include "pins_arduino.h" / / voor digitalPinToBitMask, etc
#include "WProgram.h" #else / / voor delayMicroseconds
#include "pins_arduino.h" / / voor digitalPinToBitMask, etc
#endif
• Opslaan en sluiten OneWire.h
• Geen noodzaak om opnieuw de Arduino IDE te
Het probleem is niet met de bibliotheek maar met de kern. Het is gewoon makkelijker om op te lossen in de bibliotheek
En nog een andere tip: Als u probeert de Attiny met de LCD-bibliotheek van F. Malpertida, die u mag uitvoeren in sommige foutberichten worden weergegeven die te maken hebben met de bestanden van het print.h en print.cpp van de kern.
Dit kunnen worden opgelost. Er zijn tweepublicaties op hoe dat te doen. Nuttige info ook hier.
En nog een tip met betrekking tot de Attiny13
Als u de Attiny13 programmeert en u vindt de analogRead niet werkt, voegt u "analogReference(0)" in de setup.