ATtiny85 to mały 8-bitowy mikrokontroler zaprojektowany do prostych zadań sterujących, gdzie miejsce i zużycie energii mają znaczenie. Łączy pamięć, timery, analogowe wejście oraz komunikację szeregową w obudowie 8-pinowej. Ten artykuł zawiera szczegółowe informacje o specyfikacji, rozmieszczeniu pinów, wewnętrznej strukturze, ustawieniach zasilania i zegara, programowaniu, układach oraz najczęstszych kwestiach.

Przegląd ATtiny85
ATtiny85 to kompaktowy mikrokontroler 8-bitowy, zaprojektowany do prostych zadań sterujących, gdzie przestrzeń, zużycie energii i liczba komponentów muszą być ograniczone. Jego 8-pinowy format pomaga zmniejszyć rozmiar układów, złożoność okablowania i koszty systemu, jednocześnie zapewniając podstawową funkcjonalność sterowania.
Pomimo długiej obecności na rynku, ATtiny85 pozostaje szeroko stosowany dzięki stabilności, solidnej dokumentacji oraz kompatybilności z popularnymi narzędziami programistycznymi. Działa w szerokim zakresie napięć i obsługuje wiele opcji zegara, co czyni go odpowiednim dla kompaktowych, niskoenergooszczędnych konstrukcji wymagających niezawodnego i przewidywalnego zachowania.
Specyfikacje techniczne ATtiny85
| Nie. of Pins | 8 |
|---|---|
| CPU | RISC 8-Bit AVR |
| Napięcie robocze | 1,8 do 5,5 V |
| Pamięć programu | 8K |
| Typ pamięci programu | Flash |
| RAM | 512 bajtów |
| EEPROM | 512 bajtów |
| Liczba kanałów ADC ADC | 10-Bit 4 |
| Komparator | 1 |
| Pakiety | PDIP (8-pinowy) SOIC (8-pinowy) TSSOP (8-pinowy) QFN/MLF (20-pinowy) |
| Oscylator | do 20 MHz |
| Timer (2) | Timery 8-bitowe |
| Ulepszona moc przy resetowaniu | Tak |
| Timer włączenia zasilania | Tak |
| Piny I/O | 6 |
| Producent | Mikrochip |
| SPI | Tak |
| I2C | Tak |
| Timer Watchdog | Tak |
| Wykrywanie wyłączenia (BOD) | Tak |
| Reset | Tak |
| USI (Uniwersalny Interfejs Szeregowy) | Tak |
| Minimalna temperatura pracy | -40 C |
| Maksymalna temperatura pracy | 125 C |
Konfiguracja pinoutu ATtiny85

| Pin | Nazwa | Główne funkcje |
|---|---|---|
| 1 | PB5 | RESET, GPIO (jeśli bezpiecznik zmieniony) |
| 2 | PB3 | GPIO, ADC |
| 3 | PB4 | GPIO, ADC |
| 4 | GND | Grunt |
| 5 | PB0 | GPIO, PWM, MOSI |
| 6 | PB1 | GPIO, PWM, MISO |
| 7 | PB2 | GPIO, ADC, SCK |
| 8 | VCC | Zasilacz |
ATtiny85 jest dostępny w pakietach PDIP-8 oraz QFN/MLF-20. Oba mają ten sam układ wewnętrzny, ale układ pinów różni się. Obudowa PDIP-8 udostępnia jedynie podstawowe piny i jest łatwiejsza w użyciu w podstawowych układach, podczas gdy obudowa QFN/MLF-20 zawiera dodatkowe piny oznaczone jako niepodłączone.
Większość pinów obsługuje wiele funkcji. Pojedynczy pin może pełnić rolę cyfrowego wejścia lub wyjścia, odczytywać sygnały analogowe, generować wyjście PWM lub wspierać komunikację szeregową. Ta wielofunkcyjna konstrukcja pozwala ATtiny85 pozostać małym, jednocześnie oferując elastyczność. Pin RESET można również skonfigurować jako pin poprzez zmianę ustawień bezpiecznika, choć eliminuje to możliwość zewnętrznego resetu.
Diagram blokowy ATtiny85

ATtiny85 opiera się na rdzeniu przetwarzającym AVR, który wykonuje instrukcje przechowywane w pamięci Flash. jest używany do tymczasowych danych podczas pracy, natomiast EEPROM przechowuje dane nieulotne, które muszą być przechowywane po odłączeniu zasilania. Licznik programu, wskaźnik stosu oraz rejestry zarządzają przepływem instrukcji i przetwarzaniem danych.
Funkcje czasowe obsługiwane są przez dwa wewnętrzne timery 8-bitowe oraz timer watchdog. Watchdog zwiększa niezawodność, resetując urządzenie w przypadku zatrzymania normalnego wykonywania programu. Wewnętrzny oscylator dostarcza sygnał zegarowy, a scentralizowana kontrola czasu synchronizuje wszystkie moduły wewnętrzne.
Operacje wejściowe i wyjściowe są zarządzane przez rejestry portowe podłączone bezpośrednio do zewnętrznych pinów. Urządzenie integruje także układy analogowe, takie jak ADC i komparator. Wszystkie wewnętrzne bloki są połączone współdzielonymi ścieżkami danych, co umożliwia efektywną komunikację między pamięcią, logiką przetwarzania i operacjami I/O.
Ustawienia zasilania, zegara i bezpieczników ATtiny85
• ATtiny85 wyposażony jest w wewnętrzny oscylator RC, umożliwiający pracę bez zewnętrznych elementów zegara.
• Zewnętrzne źródła zegara lub kryształy mogą być stosowane, gdy wymagana jest większa dokładność pomiaru czasu.
• Ustawienia bezpieczników kontrolują źródło zegara, opóźnienie uruchamiania, poziom wykrywania wyłączenia napięcia oraz zachowanie pinu RESET.
• Praca przy niższych częstotliwościach taktowania zmniejsza zużycie energii i zakłócenia elektryczne.
• Wykrywanie wyłączeń napięcia zwiększa stabilność przy niskich napięciach zasilania, ale nieznacznie zwiększa pobór prądu.
Ograniczenia GPIO ATtiny85 i bezpieczna obsługa
• Piny GPIO są przeznaczone do sterowania sygnałem i nie mogą dostarczać zasilania do zewnętrznych obciążeń.
• LED-y podłączone do pinów GPIO wymagają rezystorów ograniczających prąd, aby zapobiec uszkodzeniom.
• Silniki, przekaźniki i inne urządzenia o wysokim prądzie muszą być sterowane za pomocą zewnętrznych tranzystorów lub MOSFET-ów.
• Wewnętrzne rezystory podciągające mogą być włączone, co ułatwia połączenia przycisków i przełączników.
• Wszystkie napięcia GPIO muszą pozostawać w określonych granicach, aby uniknąć trwałych uszkodzeń.
Możliwości ADC i analogowe ATtiny85
| Cecha | Opis |
|---|---|
| Rozdzielczość ADC | 10-bitowy |
| Kanały wejściowe | Do 4 |
| Opcje odniesienia | VCC lub wewnętrzne odniesienie |
| Tryb specjalny | Sen ADC z redukcją szumów |
ATtiny85 posiada wbudowany przetwornik analogowo-cyfrowy, który mierzy zmieniające się poziomy napięcia i przekształca je w wartości cyfrowe. Jakość pomiaru zależy od stabilnego napięcia odniesienia, czystych połączeń zasilania oraz prawidłowego kierowania sygnału. Użycie trybu ADC Noise Reduction sleep pomaga zmniejszyć wewnętrzne zakłócenia podczas konwersji, co poprawia spójność odczytu i ogólną niezawodność.
Komunikacja szeregowa ATtiny85 z USI
ATtiny85 obsługuje komunikację szeregową za pośrednictwem Uniwersalnego Interfejsu Szeregowego (USI). Ten elastyczny interfejs może być skonfigurowany za pomocą oprogramowania firmware, aby działać w trybie SPI lub wspierać komunikację w stylu I²C. Dzięki użyciu jednego wspólnego bloku sprzętowego urządzenie zachowuje kompaktowy rozmiar, jednocześnie umożliwiając podstawową wymianę danych.
Ponieważ USI w dużej mierze opiera się na sterowaniu oprogramowaniem, konieczne jest staranne zarządzanie czasem. Nadaje się do prostych i niskoszybkich zadań komunikacyjnych, ale oferuje mniej funkcji automatyzacji niż dedykowane peryferia SPI lub I²C stosowane w większych mikrokontrolerach.
Programowanie ATtiny85 przez Arduino IDE

• ATtiny85 można zaprogramować w IDE Arduino po zainstalowaniu rdzenia kompatybilnego z ATtiny.
• Programowanie odbywa się za pomocą programatora USB lub Arduino skonfigurowanego jako ISP.
• Ustawienia płyty w IDE Arduino muszą odpowiadać wybranej częstotliwości zegara i napięciu pracy ATtiny85.
• PIN używany w kodzie różni się od fizycznego układu pinów, dlatego należy je dokładnie sprawdzić przed okablowaniem.
Minimalny niezawodny układ ATtiny85

Ten układ wykorzystuje tylko podstawowe komponenty niezbędne do stabilnej pracy. Piny VCC i GND dostarczają zasilanie, co pozwala na prawidłowe działanie logiki wewnętrznej. Wewnętrzny oscylator kontroluje czas, więc nie są potrzebne zewnętrzne elementy zegara.
Dioda LED podłączona przez rezystor 47 Ω demonstruje kontrolę wyjściową, jednocześnie chroniąc zarówno diodę LED, jak i pin GPIO. Pin RESET pozostaje dostępny do ponownego programowania lub restartu urządzenia. Dzięki bardzo niewielkiej liczbie zewnętrznych komponentów, takie rozwiązanie stanowi prostą i niezawodną podstawę do podstawowych zastosowań.
ATtiny85 Typowe problemy i szybkie kontrole
| Problem | Co sprawdzić lub poprawić? |
|---|---|
| Przesyłanie kodu nie powiodło | Sprawdź okablowanie ISP i potwierdź ustawienie bezpiecznika RESET |
| Nieprawidłowe wyczucie czasu | Weryfikuj wybrane źródło zegara i konfigurację bezpiecznika |
| Niestabilne odczyty ADC | Popraw uziemienie i dodaj odpowiednie kondensatory rozdzielające |
| Błędy komunikacyjne | Przejrzyj ustawienia i ustawienia czasowania USI |
| Przegrzewanie się pinów | Obniż prąd obciążenia i użyj zewnętrznych komponentów sterujących |
Podsumowanie
ATtiny85 łączy podstawowe funkcje sterowania w bardzo kompaktowej formie. Jego specyfikacje, funkcje pinów, wewnętrzne bloki i ustawienia zasilania wyjaśniają, jak działa w rzeczywistych układach. Dzięki odpowiedniej obsłudze GPIO, zastosowaniu ADC, ustawieniu szeregowemu i minimalnemu układowi, ATtiny85 można jasno zrozumieć i zastosować w stabilnych, niskoenergooszczędnych projektach.
Najczęściej zadawane pytania [FAQ]
Ile mocy zużywa ATtiny85?
Zużycie energii zależy od napięcia zasilającego, częstotliwości zegara i aktywnych funkcji. Niższe częstotliwości taktowania i wyłączanie nieużywanych urządzeń peryferyjnych zmniejszają zużycie prądu.
Czy ATtiny85 potrzebuje zewnętrznego zegara?
Nie. ATtiny85 posiada wewnętrzny oscylator RC i może działać bez zewnętrznych elementów zegara. Zewnętrzny zegar jest potrzebny tylko dla większej dokładności pomiaru.
Czy pin RESET może być użyty jako zwykły pin I/O?
Tak. Pin RESET można skonfigurować jako GPIO przy użyciu ustawień bezpiecznika. Wyłącza to standardowe programowanie ISP i wymaga programowania wysokiego napięcia do ponownego przeprogramowania urządzenia.
Czy ATtiny85 może bezpośrednio sterować silnikami lub przekaźnikami?
Nie. Piny GPIO ATtiny85 służą tylko do sterowania sygnałem. Silniki i przekaźniki muszą być napędzane za pomocą zewnętrznych tranzystorów lub MOSFET-ów.
Dlaczego odczyty ADC ATtiny85 są niestabilne?
Niestabilne odczyty ADC zwykle są spowodowane szumem zasilania lub słabym uziemieniem. Dodanie odpowiednich kondensatorów rozdzielających i użycie trybu redukcji szumów ADC poprawiają stabilność.