ATtiny processor

Arduino ATTiny ISP programmerNa al meerdere projecten met diverse Arduino boards gemaakt te hebben, waarbij ik steeds kleinere boards ging gebruiken, kwam ik uiteindelijk op een standalone processor chip uit. En voor sommige toepassingen is de standaard 28 pins chip nog iets te groot. Mijn oog was al eens op de ATTiny85 gevallen, maar de 8 aansluit pennen schrokken me wel af. Maar nadat ik de chip eens goed bekeken had, viel mij zijn kracht op. Het kleine chipje bevat een volledige atmega processor met flash programmeergeheugen en ram aan boord met tevens een ingebouwde kristal oscillator. Het is dus een echte single chip computer met 6 (5 effectief wanneert u de reset functie voor herprogrammeren wilt behouden) in of uitgangen die ook nog eens extra functies hebben zoals Interrupts, PWM en analoog. Elke pin is redelijk vrij te programmeren voor een functie en of je nu 1 input en vijf outputs of omgekeerd wil, het kan allemaal met dit kleine chipje. Maar ook kan het chipje door middel van I2C communiceren met bijvoorbeeld een scherm of meerdere sensoren of via pinnen die als PWM output zijn aangewezen, bijvoorbeeld motoren aansturen. Toen ik hier over ging nadenken zag ik ineens heel veel mogelijkheden, het chipje kost tussen de 1 en 3 euro en kan een complexe elektrotechnische schakeling vervangen. Op deze pagina staan ook een aantal links naar sites die indrukwekkende dingen gedaan hebben met deze kleine ATTiny chip. Er zijn kleine boards verkrijgbaar met een usb poort met daarop een ATTiny85 maar het chipje kan natuurlijk ook prima als standalone chip gebruikt worden. Om de ATTiny dan te programmeren heeft u wel een ISP programmeer board nodig, maar dit is een taak die onze ouder vertrouwde Arduno Uno natuurlijk prima kan vervullen. Op deze pagina staat dan ook een klein opzetbordje voor de Arduino Uno waarmee de ATTiny chips te programmeren zijn vanuit de standaard Arduino ontwikkelomgeving. Vriendelijke groet, Hein Pragt

Verschillende uitvoeringen

Arduino ATTiny variantenAtmel brengt ook bij de ATTiny meerdere modellen op de markt in verschillende behuizingen. Ik ga hier alleen in op de 8 pins DIP uitvoering, bij grotere uitvoeringen heb ik al snel de neiging om weer de 28 pins Atmega328 te nemen omdat deze bijna net zo duur of soms zelfs goedkoper is. Zoals we van Atmel gewend zijn bestaan er meerdere uitvoeringen met verschillende hoeveelheden Flash rom en sram geheugen met ook een verschillende prijs. Standaard hebben ze een ingebouwde RC oscillator die niet super nauwkeurig is maar wel twee pinnen vrijhoud, er kan ook door het opofferen van twee pinnen een externe kristal oscillator aangehangen worden. De ATtiny85 werkt standaard op een 1 Mhz ingebouwde RC oscillator maar dit kan door het laden van de software verhoogd worden.

DeviceI/O pinsFlashRAMEEPROMUSIcountersPWMADCclock
ATtiny13 6 1 64 64 - 1 1 x 2 4 9.6..20 Mhz
ATtiny25 6 2 128 128 1 2 2 x 2 4 1..20 Mhz
ATtiny45 6 4 256 256 1 2 2 x 2 4 1..20 Mhz
ATtiny85 6 8 512 512 1 2 2 x 2 4 1..20 mHz



Aanlsuitingen van de ATtiny85

Download hier de ATTiny13 datasheet.

Download hier de ATTiny25 /45 / 85 datasheet.

Arduino ATTiny programmeren

Arduino programmeer ideOm een arduino te programmeren heeft u software nodig, namelijk de Arduino programmeeromgeving. Deze gratis ontwikkelomgeving kunt u hier downloaden , deze omgeving is geschikt voor Windows, Linux en Mac OS X. Wanneer u de computer via een USB kabel aangesloten heeft op het Arduino board kunt u rechtreeks de programmacode overzetten naar de Arduino. U programmert dus op uw eigen computer en "upload" de code naar het Arduino board. Het enige wat u hoeft te doen is in het menu het type board te selecteren dat u gebruikt en de poort waarop het board aangesloten is (wanneer er meerdere poorten zijn). Er is eigenlijk maar één programmeertaal populair voor de Arduino en dat is de programmeertaal C en C++. De programmeeromgeving inclusief een grote hoeveelheid standaard bibliotheken voor LCD, Servo, motoren, wifi e.d. is gratis te downloaden. De programeertaal C is niet de meest eenvoudige programmeertaal, op deze site kunt u ook een eenvoudige beginnerscursus C en C++ vinden. De Arduino C veriant wijkt op een paar punten af van de C standaard en helaas zijn ook niet alle functies aanwezig in de meegeleverde bibliotheken. Het blijft natuurlijk een 8 bits processor en bijvoorbeeld de ondersteuning van double variabelen is een beetje gebrekkig. Daar waar een standaard C programma begint met een main() routine, bestaat een arduino programma (vaak een sketch genoemd) bestaat uit twee programma blokken, de setup() en de loop(). Aan het begin van het programma staat de "void setup()" en in deze functie staat de initialisatie van het programma zoals initialisatie van I/O pinnen, initialisatie van software libraries en globale variabelen. De setup() functie wordt bij het opstarten van het programma één keer uitgevoerd door de arduino. Daarna is de loop() functie aan de beurt, deze wordt eindeloos herhaald tot de stroom wordt uitgezet. Vanuit deze loop() functie kunt u weer andere functies aanroepen en zo kunt u een goed gestructureerd programma in elkaar bouwen. Link: Online basiscursus C en C++ op deze site

Arduino ATTiny default pin modes

Arduino default pin modesEen bron van verwarring blijkt toch de functie en de nummering van de in/out pinnen van de aTtiny processor te zijn. Ik heb zelf gezocht op Internet en de datasheets gelezen en kwam tot het volgende eenvoudige overzicht die alles duidelijk maakt. Elke pin heeft een ander intern nummer en functie afhankelijk van hoe deze geconfigureed is met pinMode() en of men analogRead, analogWrite, digitalRead of digitalWrite gebruikt. Om het duidelijk te maken heb ik dit in een excel blad gezet waarvan hier een afdruk staat. U hoeft zelf niet via de internet registers de functie van de pinnen te programmeren, tenzij u van de alternatieve functies van de pinnen gebruik wilt maken. De standaard IDE en de chip definitie hierin, zullen het meeste al voor u uit handen nemen wanneer u de pinnen op de standaard wijze gebruikt.

ATTiny programmeer board

Arduino ATTiny ISP programmerOm de ATTiny te kunnen programmeren heeft een een ISP programmeer board nodig en deze zijn ook verkrijgbaar in diverse uitvoeringen. Deze zijn echter niet goedkoop te noemen en wanneer we al een Arduino Uno hebben liggen, kunnen we deze eenvoudig een ISP programmer als extra taak geven. U kunt telkens wanneer u een ATTiny wilt programmeren een kleine schakeling opbouwen op een breadboard maar wanneer u vaker wilt programmeren is een kleine shield voor de Arduino Uno toch handiger. We bouwen dit op een klein stukje experimenteer print en verder heeft u een paar header pinnen, een 8 pins IC voetje, een led, een 220 ohm weerstand en een 10 uF condensator nodig. En natuurlijk een soldeerbout, tin en montagedraad, liefst in verschillende keuren. Ik heb er voor gekozen om de soldeerzijde naar boven te doen, dit maakt het solderen van de headers veel eenvoudiger en de rest van de componenten kan net zo goed aan de bovenzijde gesoldeerd worden. De aansluitdraden zitten dan verborgen aan de onderkant.

pennen programmeer boardIk heb een stukje experimenteer print afgezaagd met 10 gaten breed en 20 gaten lang. Aan één kant zit de (8) pinnen rij helemaal links en de andere kant helemaal rechts. Ik heb de pinnen rijen eerst in de Arduino gestoken. Aan de kant van de voedingsspanning en de reset pin gebruik ik de hele achterste pinnen tijd, de ongebruikte pinnen dienen ter versteviging. Om het board te polariseren zodat het niet verkeerd om geplaatst kan worden, heb ik naast deze 8 pennen in de 2 lege gaten een 2 female header pinnen gesoldeerd die aan deze kan naast de header van de Arduino zitten en aan de verkeerde kant op de tweede header zouden komen waardoor het board niet meer goed op zijn plaatst zit. Aan de andere kant zit de pinnen rij tot aan de midden scheiding waardoor er twee pinnen bij de usb connector vrij zijn. Daarna duw ik het printje goed met de gaten over de pennen heen en soldeer ik de pennen voorzichtig vast. Niet teveel tin gebruiken, we willen geen pinnen aan elkaar vast. Daarna buigen we de pinnen van het IC voetje ook opzij en solderen deze vast ergens in het midden van de print. Ik heb zelf de 1 pin aan de kant van de usb en voedingsstekker gedaan en deze met een dikke punt van een zwarte stift nog extra gemarkeerd. Daarna kan het printje van de Arduino Uno afgehaald worden. Aan de bovenkant van het printje (de soldeerzijde) zetten we nu het ledje en de weerstand vast tussen de min voedingsspanning pin en pin 5 van het ATTiny voetje. Lety hierbij goed op de polarteit van de led, u kunt even testen of deze goed om zit door even de plus op de pin van het voetje te zetten en de min op de header pin. Nu kunnen we het printje omdraaien voor de rest van de bedrading.

Arduino ATTiny ISP programmerWe verbinden nu pinnen van de voedingsspanning aan het IC voetje, de plus 5 volt gaat naar pin 8 en de Gnd naar pin 4 van het voetje. Aan deze kan solderen we nu ook de kleine condensator van 10 uF tussen de Gnd en de Reset pin van de Arduino Uno let hierbij op de plus en de min van de condensator (min aan Gnd) en leg de condensator een beetje parallel aan de header pinnen zodat deze straks netjes naast de Arduino chip past. Nu solderen we de overige draadjes tussen de Arduino Uno pinnen en het IC voetje. Welke Arduino pin aan welke pin van het voetje moet staat in onderstaand schema. Let vooral op om weinig tin te gebruiken zodat der geen kortsluiting ontstaat en ga desnoods even met de punt van een kleine schroevendraaier tussen de solderingen door om kleine tin resten te verwijderen. Dan kunnen we gaan testen of alles werkt door een ATTiny in het voetje te prikken en de shield op de Arduino Uno te prikken. Wanneer we de Arduino Uno nu met een USB kabel aan de computer verbinden moet de Arduino Uno gewoon werken en zal het shield niets doen. Om de Arduino om te programmeren naar ISP programmer halen we even de shield er weer vanaf.

Aanlsuitingen van de ATtiny85
Open in nieuw venster of/en download voor een grotere versie!

Arduino IDE aanpassen

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 programmerDruk 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 schield 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 schield 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.

ATtiny met extern kristal

attiny85 kristalIk heb nog een kleine uitbreiding op mijn programmer boardje gemaakt. Bij een van mijn eerste experimenten vergiste ik mij en gebruikte ik per ongeluk een bootloader met een extern kristal waarna de attiny85 chip niet meer reageerde. Ik kon er dus ook niet meer de goede bootloader in zetten om de ATtiny85 weer op interne oscillator te laten werken. De bootloader zet namelijk de "fuses" die bepalen of de chip van een interne of externe klok gebruik maakt. Staat de chip op extern en er is geen kristal zal de chip niet opstarten. De enige wijze om de chip weer te kunnen herprogrammeren is een extern kristal aan te sluiten. Ik besloot dus om een extern kristal van 8 Mhz op het printje te plaatsen in een klein voetje zodat ik het ter controle ook weer vanaf kon halen. Het kristal zit aan beide pootjes ook via een 22 pF condensator aan de massa. De condensators kunnen wel blijven zitten wanneer het kristal er uit gehaald is. Na het plaatsen van de ATtiny85 op het board seleteerde ik de 1 Mh intern boatloader die ik ook met succes kon uploaden waarna de Attiny ook weer werkte zonder het kristal. Door middel van deze uitbreiding kan ik nu ook code laden die in de definitieve schakeling gebruik gaat maten van een extern kristal op de Attiny processor.

Leuk ATtiny toepassingen

Link: Tiny robot family Gallery

Link: Terminator 2 - Micro robot

Link: ATTiny Line Follower

Link: ATtiny-Powered Arduino Projects

Link: attiny - The Garage Lab

Link: ATiny mini spelcomputers

Link: ATiny automatisch fietslicht

 

Boeken over de Arduino computer

boekboek bestellenArduino voor dummies Met Arduino is iedereen in staat om met elektronica te spelen, of je nu kunstenaar, designer, programmeur of hobbyist bent. Met Arduino voor Dummies leer je verschillende soorten printplaten te bouwen, die dingen kunnen waarnemen en beheren in de echte wereld. Wil je een prototype bouwen van je eigen product of een interactief kunstwerk maken? In dit boek lees je alles wat je nodig hebt om succesvol aan het project van je keuze te kunnen werken. Zo is er aandacht voor het opbouwen en programmeren van printplaten en het toepassen van verschillende shields en kits in je projecten. Arduino combineert hardware, software en oneindige creatieve mogelijkheden! John Nussey is specialist op het gebied van physical computing. Hij werkt al jaren met Arduino: hij creëerde verschillende interactieve kunstinstallaties en prototypes van producten, en hij geeft les in het gebruik van Arduino bij allerhande projecten.


boekboek bestellenArduino startersgids Arduino is een opensource hardware prototyping platform. Het is opensource en maakt gebruik van een microcontroller. Door deze microcontroller zelf te programmeren kun je interactieve objecten creëren en aansturen. Arduino gebruikt de input van bijvoorbeeld schakelaars en sensoren om vervolgens actuatoren zoals licht (LED), geluid, motoren of andere output aan te sturen. Deze startersgids is geschikt voor iedereen die voor het eerst met Arduino aan de slag wil en biedt tal van ideeën voor projecten. Je maakt kennis met de basis van elektronica en sensoren. Ook lees je hoe je de organisatie van een project aanpakt tot en met de laatste finishing touch. In deze compacte startersgids vind je alles voor je eerste stappen met de Arduino. Massimo Banzi is mede-oprichter van het Arduino- project en heeft als software-architect gewerkt aan diverse internationale projecten van grote merken. Daarnaast was hij werkzaam als Associate Professor aan het Interaction Design Institute Ivrea. Om de voorbeelden in dit boek te volgen heb je een Arduino Uno (of ouder model) nodig, een USB A-B kabel en een LED. De gebruiksvriendelijke Arduino-omgeving is gratis te downloaden.


boekboek bestellen50 mini microcontroller projecten met ATtiny en Arduino Wie enigszins bekend is met moderne microprocessor systemen als Arduino, kent ongetwijfeld ook de problemen met dit soort kaarten. Ze zijn te duur om voor elk project een aparte kaart aan te schaffen en zijn bovendien nogal fors van formaat. Het aardige van de ATtiny is dat de schijn bedriegt. Het lijkt een klein IC met een beperkt toepassingsgebied, maar het heeft een verbazingwekkend scala aan (speelse) mogelijkheden. Dit boek beschrijft de enorme veelzijdigheid van de ATtiny microcontroller aan de hand van ongeveer vijftig leuke elektronica projecten, speciaal gericht op de beginner. De meeste ontwerpen zijn volledig uitgewerkt, enkele zijn meer als ontwerpidee gepresenteerd. De inhoudsopgave laat zien dat we ons op vele terreinen zullen begeven, van zonnevolger tot helling indicator. Dit boek is beslist geen theorieboek. Het is een boek dat gelezen zal worden met de soldeerbout in de hand. Voor het programmeren van de ATtiny maken we dankbaar gebruik van een Arduino kaart. Als de Arduino ingesteld word als programmer, kunnen we er de meeste Arduino "sketches" mee overzetten naar de ATtiny. We wensen u veel plezier met het nabouwen van de schakelingen.


boekboek bestellenArduino projecten voor gevorderden Twee zaken hebben in belangrijke mate bijgedragen aan het grote succes van het Arduinoplatform. De eerste is de complete, gebruiksklare processorprint die de kennismaking met dehardware aanzienlijk vergemakkelijkt. En de tweede is de gratis verkrijgbare programmeerinterface, die zonder ingewikkelde installatieprocedures meteen gebruikt kan worden. Eenvoudige projecten voor beginners garanderen snelle resultaten. Het is niet nodig eerst ingewikkelde parameters (processortype of interface-instellingen) te selecteren -- de eerste voorbeeldprogramma's kunnen al na enkele minuten in de Arduino worden geladen en uitgeprobeerd. De Arduino-gebruiker wordt geholpen door een groot aantal software-bibliotheken -- maar deze nog dagelijks groeiende schat aan libraries vormt juist voor de beginner een luxe-probleem: na de eerste eenvoudige voorbeelden is het niet altijd even duidelijk hoe het nu verder moet. Bij de in het internet circulerende projecten ontbreekt het in veel gevallen aan gedetailleerd commentaar en uitleg. Er is geen duidelijk herkenbare leidraad, en eigenlijk is dat ook niet zo vreemd omdat de toepassingen door verschillende mensen voor verschillende doeleinden zijn ontwikkeld. Dat is waar dit boek te hulp komt. Projecten worden op een systematische manier gepresenteerd, waarbij elk project een ander onderwerp belicht. De aanpak is praktijkgericht, maar de noodzakelijke theoretische achtergrond wordt daarbij niet uit het oog verloren. Belangrijke onderwerpen zoals A/D-omzetting, timers en interrupts worden steeds in praktische projecten 'ingebed'. In het boek komen zaken als looplicht-effecten, praktisch bruikbare voltmeters, nauwkeurige digitale thermometers, allerlei soorten klokken, reactietesters en zelfs een muisgestuurde robotkraan aan de orde. En al lezende en doende krijgt de lezer een gedegen inzicht in de achterliggende controllertechnieken.



Reacties op het onderwerp: Arduino


32 - Techniek »  -  Arduino »
2018-02-02 16:28:00
Hier kunt u vragen stellen en antwoorden geven die betrekking hebben op de Arduino boards en Atmel processoren. Reacties zullen pas na goedkeuring geplaatst worden, dit kan enige tijd duren.
Reactie van een bezoeker van de site!
Vragen en antwoorden m.b.t. de Arduino boards en Atmel processoren.
Er zijn nog geen reacties!


Last update: 12-01-2018
 Binnen dit thema



 Meer thema's


 Lees hier de privacyverklaring van deze site.

Disclaimer.

Hoewel de heer Hein Pragt de informatie beschikbaar op deze pagina met grote zorg samenstelt, sluit de heer Pragt alle aansprakelijkheid uit met betrekking tot de informatie die, in welke vorm dan ook, via zijn site wordt aangeboden. Het opnemen van een afbeelding of verwijzing is uitsluitend bedoeld als een mogelijke bron van informatie voor de bezoeker en mag op generlei wijze als instemming, goedkeuring of afkeuring worden uitgelegd, noch kunnen daaraan rechten worden ontleend. Op de artikelen van de heer Pragt op deze Internetsite rust auteursrecht. Overname van informatie (tekst en afbeeldingen) is uitsluitend toegestaan na voorafgaande schriftelijke toestemming van de rechthebbende. Voor vragen over copyright en het gebruik van de informatie op deze site kunt u contact opnemen met: (email: mail@heinpragt.com). Dit is mijn