Bol.com AlgemeenBol.com Algemeen

ATtiny en ATmega328 ISP shield voor de Arduino Uno

Arduino ISP programmerIk had al eens een ISP programmer shield gemaakt op de Arduino Uno om ATtint processors te kunnen programmeren. Helaas was het bordje een beetje slordig, moest heel precies op de goede pennen gedrukt worden en had een normaal ic voetje waardoor het in en uithalen van het ATtiny ic ook niet echt eenvoudig ging. Voor het ISP programmeren van de ATmega328 gebruikte ik nog steeds een breadboard oplossing en dus was het tijd om een universele ISP programmer te kopen of te maken. Eerst kocht ik een goedkope Chinese variant van de USBISP maar deze was niet aan de praat te krijgen, ook omdat hij niet herkent werd door de standaard IDE. Na een paar pogingen heb ik dit maar opgegeven. Er staan redelijk veel ontwerpen van ISP programmers maar allemaal een beetje onduidelijk dus besloot ik om op een standaard Arduino experimenteer shield, met twee ZIF (Zero Insertion Force) sockets een universele ISP programmer te maken voor zowel de ATtiny als de ATmega328 processor. Ik heb er één controle led opgezet, die ook voor het testen van het board gebruikt kan worden om te zien of het programmeren lukt, door een aangepaste Blink scketch te programmeren. De ATtiny heeft geen extern kristal omdat deze meestal zonder extern kristal gebruikt zal worden i.v.m. de twee extra pinnen, de ATmega328 heeft het kristal in een voetje zodat het zowel met als zonder extern kristal geprogrammeerd kan worden. Het board werkt voor mij uitstekend, daarom plaats ik het voor anderen ook op mijn site. Vriendelijke groet, Hein Pragt

ATTiny en ATmega328 ISP programmeer schield

Wanneer u vaker een ATtiny of een ATmega328 wilt programmeren (bijvoorbeeld om er een bootloader in te zetten) is een standaard programmeer shield voor de Arduino Uno toch handig. Ik heb voor het bouwen van deze print een standaard Arduino Uno experimenteer shield gekocht, deze heeft al de aansluitpinnen voor de Arduino Uno op de goede pplaats en voldoende lege dubbelzijdige eilandjes met gaten voor de schakeling die we gaan maken. Dit dubbelzijdige is ook handig omdat ze aan beide zijden verbindingen kunnen leggen maar ook aan beide zijden componenten kunnen plaatsen. Ik heb twee ZIF sockets genomen om de chips eenvoudig te kunnen plaatsen en uitnemen zonder pennen te beschadigen of te buigen. Het schema kunt u onder bij de downloads vinden, druk dit eerst af. De ZIF sockets heb ik als eerste midden op de experimenteer print geplaatst, en ook heb ik de pin rijen voor de verbinding met de Arduino Uno er op gesoldeerd. Daarna heb ik met fijn montagedraad in diverse kleuren de verbindingen tussen de aansluitpennen van de Arduino Uno en de pinnen van de ZIF sockets gesoldeerd en de lijnen netjes ruim naast elkaar over de print verdeeld. Daarna heb ik de led, de condensator op de resetpin en de weerstanden gemonteerd en daarna alle verbindingen met de universeelmeter gecontroleerd op goede verbinding en op eventuele sluiting. (Alles was goed, maar meten is weten en gissen is missen!). He board is nu klaar voor de eerste test.

Om de Arduino Uno als ISP programmer te gebruiken moet u er eerst op een normale Uno de "ArduinoISP" sketch in laden, deze kunt u vinden onder voorbeelden in de Arduino IDE. Compileer de sketch en upload het naar de Arduino Uno, hierna is de Arduino Uno veranderd in een ISP programmer en kunt u het shield plaatsen. Selecteer nu eerst het type chip dat u wilt programmeren, voor de ATmega328 kunt u gewoon de Arduinu Uno selecteren. Laat de seriele poort op de oorspronkelijke Uno staan en selecteer bij Tools -> Programmer de "Arduino as ISP" optie. Hierna kunt u een boorloader branden of een sketch uploaden naar uw Arduino Uno met programmer shield, waardoor het in de chip in de ZIF socket geprogrammeerd zal worden. Hier onder staat een test Blink sketch voor deze programmer.


void setup() {                
  // initialize the digital pin as an output.
  pinMode(0, OUTPUT); //LED on Model B tiny
  pinMode(1, OUTPUT); //LED on Model A tiny
  pinMode(11, OUTPUT); //LED on Model 328p      
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(0, HIGH);   // turn the LED on
  digitalWrite(1, LOW);
  digitalWrite(11, LOW);
  delay(1000);             // wait for a second
  digitalWrite(0, LOW);    // turn the LED off 
  digitalWrite(1, HIGH); 
  digitalWrite(11, HIGH); 
  delay(1000);             // wait for a second
}

Arduino IDE aanpassen voor de ATtiny

Om de ATting85 te kunnen programmeren moeten we eerste de ISP sketch in de Arduino Uno uploaden. Deze sketch kunt u vinden in voorbeeld bestanden die meegeleverd zijn met de Arduino IDE en die u kunt vinden in het bestand -> Voorbeelden en de sketch heet ArduinoISP. Verbind de Arduino Uno zonder shield aan de computer en upload deze sketch naar de Arduino Uno op de gebruikelijke wijze. Nu gaan we de Arduino IDE aanpassen zodat deze de Attiny gaat ondersteunen. Zoek in het scherm dat u kunt vinden onder Bestand -> Voorkeuren naar het invoerveld "Aditionele bordenbeheer URL" en vul daar de volgende URL in:

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json

Arduino ATTiny ISP programmer Druk daarna op de OK knop om de instelling op te slaan en sluit het scherm. Ga daarna naar Hulpmiddelen -> Board -> Bordenbeheer en zoek helemaal onderaan naar het blok met de tekst "attiny by Davis A. Mellis" en klik op installeren. Na het installeren moet er een nieuw board toegevoegd zijn aan het selectiescherm voor de boards. Hier kist u het board, de processor en de keuze voor Arduino as ISP waarna u de shield op de Arduino kunt plaatsen. Nu kunt u de Blink sketch gaan laden waarbij u de LED pin even moet veranderen in 0 omdat we op deze pin de led gezet hebben. Wanneer u de Arduino met de shield aan de computer aansluit moet u in staat zijn om via de normale upload knop deze sketch in de ATtiny te laden, waaarna deze vrolijk zal gaan knipperen. Bij mij ging dit helemaal niet goed en gaf de IDE een foutmelding over een device nummer 00000, na controle bleek toch net een soldeerverbinding aan het IC voetje niet lekker te zijn. Hierna lukt het prima en kon ik mijn ATtiny85 met de blink sketch laden.

Links en downloads

Link: Het schema op groot format

Link: ATtiny board definition bestand


Link: ATtiny weerstation voorbeeld

Last update: 28-01-2020

Disclaimer: Hoewel de heer Pragt de informatie beschikbaar op deze site met grote zorg samenstelt, sluit hij alle aansprakelijkheid uit. Op de artikelen van de heer Pragt rust auteursrecht, overname van tekst en afbeeldingen is uitsluitend toegestaan na voorafgaande schriftelijke toestemming. Heinpragt.com is ingeschreven bij de KvK onder nummer: 73839426 en is gevestigd in Veenendaal.  Lees hier de privacyverklaring van deze site. Voor informatie over adverteren op deze site kunt u contact opnemen met: (mail@heinpragt.com).