ATtiny85: Pinconfiguratie, blokdiagram en programmering

जनवरी ०७ २०२६
Bron: DiGi-Electronics
Bladeren: 366

De ATtiny85 is een kleine 8-bits microcontroller ontworpen voor eenvoudige bedieningstaken waarbij ruimte en stroomverbruik van belang zijn. Het combineert geheugen, timers, analoge invoer en seriële communicatie in een 8-pins behuizing. Dit artikel geeft gedetailleerde informatie over de specificaties, pinout, interne structuur, vermogens- en klokinstellingen, programmering, schakelingen en veelvoorkomende problemen.

Figure 1. ATtiny85

ATtiny85 Overzicht 

De ATtiny85 is een compacte 8-bits microcontroller ontworpen voor eenvoudige besturingstaken waarbij ruimte, energieverbruik en aantal componenten laag moeten blijven. De 8-pins vormfactor helpt de schakelinggrootte, de bedradingscomplexiteit en de systeemkosten te verminderen, terwijl er toch basisbesturingsfunctionaliteit wordt geboden.

Ondanks zijn lange aanwezigheid op de markt blijft de ATtiny85 veel gebruikt vanwege zijn stabiliteit, sterke documentatie en compatibiliteit met gangbare ontwikkeltools. Het werkt over een breed spanningsbereik en ondersteunt meerdere klokopties, waardoor het geschikt is voor compacte, energiezuinige ontwerpen die betrouwbaar en voorspelbaar gedrag vereisen.

ATtiny85 Technische Specificaties 

Nee. van pinnen8
CPURISC 8-Bit AVR
Bedrijfsspanning1,8 tot 5,5 V
Programmageheugen8K
ProgrammageheugentypeFlash
RAM512 bytes
EEPROM512 bytes
ADC-aantal ADC-kanalen10-bit 4
Comparator1
PakkettenPDIP (8-pin) SOIC (8-pins) TSSOP (8-pins) QFN/MLF (20-pins)
Oscillatortot 20 MHz
Timer (2)8-bit timers
Verbeterde Kracht bij ResetJa
Power-up TimerJa
I/O-pinnen6
FabrikantMicrochip
SPIJa
I2CJa
Watchdog TimerJa
Brown out detect (BOD)Ja
ResetJa
USI (Universele Seriële Interface)Ja
Minimale bedrijfstemperatuur-40 C
Maximale bedrijfstemperatuur125 C

ATtiny85 Pin-configuratie

Figure 2. ATtiny85 Pinout Configuration

PinNaamBelangrijkste functies
1PB5RESET, GPIO (als zekering veranderd)
2PB3GPIO, ADC
3PB4GPIO, ADC
4GNDGround
5PB0GPIO, PWM, MOSI
6PB1GPIO, PWM, MISO
7PB2GPIO, ADC, SCK
8VCCStroomvoorziening

De ATtiny85 is beschikbaar in PDIP-8 en QFN/MLF-20 pakketten. Beide delen dezelfde interne schakelingen, maar de pinindeling verschilt. De PDIP-8-behuizing stelt alleen basispinnen bloot en is eenvoudiger te gebruiken in basisschakelingen, terwijl de QFN/MLF-20-behuizing extra pinnen bevat die als niet verbonden zijn gemarkeerd.

De meeste pinnen ondersteunen meerdere functies. Een enkele pin kan fungeren als digitale in- of uitgang, analoge signalen lezen, PWM-uitgang genereren of seriële communicatie ondersteunen. Dit multifunctionele ontwerp zorgt ervoor dat de ATtiny85 klein blijft terwijl hij flexibiliteit biedt. De RESET-pin kan ook als pin worden geconfigureerd door de zekeringinstellingen te wijzigen, hoewel dit de externe resetmogelijkheid verwijdert.

ATtiny85 blokdiagram

Figure 3. ATtiny85 Block Diagram

De ATtiny85 is opgebouwd rond een AVR-verwerkingskern die instructies uitvoert die zijn opgeslagen in het flashgeheugen. SRAM wordt gebruikt voor tijdelijke data tijdens de werking, terwijl EEPROM niet-vluchtige data opslaat die behouden moet blijven wanneer de stroom wordt uitgeschakeld. De programmateller, stackpointer en registers beheren de instructiestroom en gegevensverwerking.

Timingfuncties worden verzorgd door twee interne 8-bits timers en een watchdog-timer. De watchdog verbetert de betrouwbaarheid door het apparaat te resetten als de normale programma-uitvoering stopt. Een interne oscillator levert het kloksignaal, en gecentraliseerde timingregeling synchroniseert alle interne modules.

Invoer- en uitvoeroperaties worden beheerd via poortregisters die direct met de externe pinnen zijn verbonden. Het apparaat integreert ook analoge schakelingen zoals de ADC en comparator. Alle interne blokken zijn gekoppeld via gedeelde datapaden, wat efficiënte communicatie tussen geheugen, verwerkingslogica en I/O mogelijk maakt.

ATtiny85 Vermogens-, Klok- en Zekeringinstellingen

• De ATtiny85 bevat een interne RC-oscillator, waardoor werking mogelijk is zonder externe klokcomponenten.

• Externe klokbronnen of kristallen kunnen worden gebruikt wanneer een hogere timingnauwkeurigheid vereist is.

• Zekeringinstellingen regelen de klokbron, opstartvertraging, het detectieniveau van brown-out en het RESET-pingedrag.

• Werken op lagere kloksnelheden vermindert het stroomverbruik en elektrische ruis.

• Brown-out detectie verbetert de stabiliteit bij lage voedingsspanningen, maar verhoogt de stroomafname licht.

ATtiny85 GPIO-limieten en veilige werking

• GPIO-pinnen zijn bedoeld voor signaalregeling en mogen geen stroom leveren aan externe belastingen.

• LED's die op GPIO-pinnen zijn aangesloten, vereisen stroombeperkende weerstanden om schade te voorkomen.

• Motoren, relais en andere hoogstroomapparaten moeten worden aangestuurd met externe transistors of MOSFET's.

• Interne pull-up weerstanden kunnen worden ingeschakeld om knop- en schakelaarverbindingen te vereenvoudigen.

• Alle GPIO-spanningen moeten binnen de gespecificeerde limieten blijven om blijvende schade te voorkomen.

ATtiny85 ADC en analoge mogelijkheden

KenmerkBeschrijving
ADC-resolutie10-bit
InvoerkanalenTot 4
ReferentieoptiesVCC of interne referentie
Speciale modusADC Noise Reduction slaap

De ATtiny85 beschikt over een ingebouwde analoog-naar-digitaal omzetter die veranderende spanningsniveaus meet en deze omzet in digitale waarden. De meetkwaliteit hangt af van een stabiele referentiespanning, schone stroomaansluitingen en een juiste signaalroutering. Het gebruik van de ADC Noise Reduction slaapstand helpt om interne ruis tijdens de conversie te verminderen, wat de leesconsistentie en algehele betrouwbaarheid verbetert.

ATtiny85 Seriële Communicatie met de USI

De ATtiny85 ondersteunt seriële communicatie via een Universal Serial Interface (USI). Deze flexibele interface kan via firmware worden geconfigureerd om in SPI-modus te werken of I²C-stijl communicatie te ondersteunen. Door gebruik te maken van één gedeeld hardwareblok behoudt het apparaat een compacte grootte terwijl het toch basisgegevensuitwisseling mogelijk maakt.

Omdat de USI sterk afhankelijk is van softwarecontrole, is zorgvuldig timingbeheer vereist. Het is geschikt voor eenvoudige en laag-snelheid communicatietaken, maar biedt minder automatiseringsfuncties dan speciale SPI- of I²C-randapparatuur die in grotere microcontrollers te vinden is.

ATtiny85-programmering via de Arduino IDE

Figure 4. ATtiny85 Programming Through the Arduino IDE

• De ATtiny85 kan worden geprogrammeerd in de Arduino IDE na installatie van een ATtiny-compatibele kern.

• Het programmeren gebeurt met een USB-programmeur of een Arduino die als ISP is opgezet en is opgezet.

• Bordinstellingen in de Arduino IDE moeten overeenkomen met de geselecteerde kloksnelheid en bedrijfsspanning van de ATtiny85.

• PIN's die in code worden gebruikt verschillen van de fysieke pinindeling, dus ze moeten zorgvuldig worden gecontroleerd voordat ze worden bedraad.

Minimaal betrouwbaar ATtiny85-circuit

Figure 5. Minimal Reliable ATtiny85 Circuit

Deze schakeling gebruikt alleen de basiscomponenten die nodig zijn voor stabiele werking. De VCC- en GND-pinnen leveren stroom, waardoor de interne logica correct kan functioneren. De interne oscillator regelt de timing, dus er zijn geen externe klokcomponenten nodig.

Een LED die via een 47 Ω weerstand is aangesloten, toont outputcontrole en beschermt zowel de LED als de GPIO-pin. De RESET-pin blijft toegankelijk voor herprogrammering of herstart van het apparaat. Met zeer weinig externe componenten biedt deze opstelling een eenvoudige en betrouwbare basis voor basisapplicaties.

ATtiny85 Veelvoorkomende Problemen en Snelle Controles

ProbleemWat moet ik controleren of repareren?
Code-upload faaltControleer de bedrading van de ISP en bevestig de RESET zekering-instelling
Verkeerde timingControleer de geselecteerde klokbron en zekeringconfiguratie
Onstabiele ADC-metingenVerbetering van aarding en correcte ontkoppelingscondensatoren toevoegen
CommunicatiefoutenBekijk de USI-instellingen en timinginstellingen
Oververhitte pinnenVerlaag de belastingstroom en gebruik externe drivercomponenten

Conclusie

De ATtiny85 brengt kernbedieningsfuncties samen in een zeer compacte vorm. De specificaties, pinfuncties, interne blokken en vermogensinstellingen verklaren hoe het werkt in echte schakelingen. Met een juiste GPIO-behandeling, ADC-gebruik, seriële opstelling en een minimaal circuit kan de ATtiny85 duidelijk worden begrepen en toegepast in stabiele, energiezuinige ontwerpen.

Veelgestelde Vragen [FAQ]

Hoeveel stroom gebruikt de ATtiny85?

Het stroomverbruik hangt af van de voedingsspanning, kloksnelheid en actieve functies. Lagere kloksnelheden en het uitschakelen van ongebruikte randapparatuur verminderen het stroomverbruik.

Heeft de ATtiny85 een externe klok nodig?

Nee. De ATtiny85 heeft een interne RC-oscillator en kan werken zonder externe klokcomponenten. Een externe klok is alleen nodig voor een hogere timingnauwkeurigheid.

Kan de RESET-pin als een normale I/O-pin worden gebruikt?

Ja. De RESET-pin kan als GPIO worden geconfigureerd met behulp van zekeringinstellingen. Dit schakelt standaard ISP-programmering uit en vereist hoogspanningsprogrammering om het apparaat te herprogrammeren.

Kan de ATtiny85 motoren of relais direct aansturen?

Nee. ATtiny85 GPIO-pinnen zijn uitsluitend bedoeld voor signaalcontrole. Motoren en relais moeten worden aangedreven met externe transistors of MOSFET's.

Waarom zijn ATtiny85 ADC-metingen instabiel?

Onstabiele ADC-metingen worden meestal veroorzaakt door stroomruis of slechte aarding. Het toevoegen van juiste ontkoppelcondensatoren en het gebruik van ADC Noise Reduction-modus verbetert de stabiliteit.