- Componenten die nodig zijn om ATtiny85 via USB te programmeren
- ATtiny85 Microcontroller IC - Inleiding
- Knipperende opstartlader op ATtiny85 met Arduino Uno
- Schakelschema voor ATtiny Programmer
- Digispark-stuurprogramma's installeren
- Arduino IDE instellen om ATttiny85 te programmeren
De ATtiny-familie is een serie van een van de kleinste microcontrollers op de AVR-markt. Deze microcontrollers kunnen veel van de bibliotheken gebruiken die beschikbaar zijn op het Arduino-platform. De ATtiny85-microcontrollerchip is een 8-pins, 8-bits AVR-microcontroller. Het kleine formaat en het lage stroomverbruik maken het een uitstekende match voor draagbare projecten met een kleine footprint en een laag stroomverbruik. Maar het kan een beetje een uitdaging zijn om uw code op de chip te krijgen, omdat deze geen USB-interface heeft zoals microcontroller-kaarten.
In onze vorige tutorial hebben we de ATtiny85 geprogrammeerd met Arduino Uno. Maar Attiny85 verbinden met Arduino en Arduino als ISP gebruiken, kan moeilijk en tijdrovend zijn. Dus in deze tutorial gaan we een ATtiny85 Programming board bouwen, zodat we het direct kunnen pluggen en programmeren zoals andere microcontroller boards.
Componenten die nodig zijn om ATtiny85 via USB te programmeren
- Arduino UNO (Alleen voor het eerst tijdens het uploaden van bootloader)
- ATtiny85 IC
- USB A-type stekker Mannelijk
- 3 weerstanden (2 × 47Ω en 1 × 1kΩ)
- 3 diodes (2 × zenerdiode en 1 × IN5819 diode)
- 8-pins IC-basis
- Breadboard
- Doorverbindingsdraden
ATtiny85 Microcontroller IC - Inleiding
Atmel's ATtiny85 is een krachtige 8-bit microcontroller met laag vermogen, gebaseerd op geavanceerde RISC-architectuur. Deze microcontroller-chip is voorzien van 8 KB ISP-flashgeheugen, 512B EEPROM, 512-byte SRAM, 6 algemene I / O-lijnen, 32 algemene werkregisters, een 8-bits timer / teller met vergelijkingsmodi, een 8-bits hoge snelheid timer / teller, USI, interne en externe onderbrekingen, 4-kanaals 10-bits A / D-omzetter, programmeerbare watchdog-timer met interne oscillator, drie door software selecteerbare energiebesparingsmodi en debugWIRE voor foutopsporing op de chip. ATtiny85 Pinout wordt hieronder gegeven:
De meeste I / O-pinnen van de chip hebben meer dan één functie. ATtiny85 pin beschrijving voor elke pin wordt gegeven in onderstaande tabel:
Pin nr. |
Pin Naam |
Pin Beschrijving |
1 |
PB5 (PCINT5 / ADC0 / dW) |
PCINT5: Pin Change Interrupt 0, Source5 RESET: reset pin ADC0: ADC-ingangskanaal 0 dW: debug DRAAD I / O |
2 |
PB3 (PCINT3 / XTAL1 / CLKI / ADC3) |
PCINT3: Pin Change Interrupt 0, Source3 XTAL1: Kristaloscillator Pin1 CLKI: Externe klokinvoer ADC3: ADC-ingangskanaal 3 |
3 |
PB4 (PCINT4 / XTAL2 / CLKO / OC1B / ADC2) |
PCINT4: Pin Change Interrupt 0, Source 4 XTAL2: Kristaloscillatorpen 2 CLKO: Systeemklokuitgang OC1B: Timer / Counter1 Vergelijk Match B Output ADC2: ADC-ingangskanaal 2 |
4 |
GND |
Aardingspen |
5 |
PB0 (MOSI / DI / SDA / AIN0 / OC0A / AREF / PCINT0) |
MOSI: SPI Master Data Output / Slave Data Input DI: USI-gegevensinvoer (modus met drie draden) SDA: USI-gegevensinvoer (tweedraadsmodus) AIN0: Analoge comparator, positieve invoer OC0A: Timer / Counter0 Vergelijk match A-uitgang AREF: Externe analoge referentie PCINT0: Pin Change Interrupt 0, Source 0 |
6 |
PB1 (MISO / D0 / AIN1 / OC0B / OC1A / PCINT1) |
MISO: SPI Master Data Input / Slave Data Output DOEN: USI-gegevensuitvoer (modus met drie draden) AIN1: Analoge comparator, negatieve ingang OC0B: Timer / Counter0 Vergelijk Match B-uitgang OC1A: Timer / Counter1 Vergelijk match A-uitgang PCINT1: Pin Change Interrupt 0, Source 1 |
7 |
PB2 (SCK / USCK / SCL / ADC1 / T0 / INT0 / PCINT2) |
SCK: Seriële klokinvoer USCK: USI Clock (modus met drie draden) SCL: USI Clock (tweedraadsmodus) ADC1: ADC-ingangskanaal 1 T0: Timer / teller0 klokbron INT0: Externe onderbreking 0 ingang PCINT2: Pin Change Interrupt 0, Source 2 |
8 |
VCC |
Voedingsspanning Pin |
Knipperende opstartlader op ATtiny85 met Arduino Uno
Om de ATtiny85 zonder Arduino te programmeren, zouden we eerst een bootloader erin moeten uploaden met behulp van een Arduino UNO-bord, dit is een eenmalig proces en nadat dit is gebeurd, hebben we het UNO-bord niet meer nodig. Boot-loader is een speciaal programma dat draait in de microcontroller die geprogrammeerd moet worden. Een van de handigste manieren om uw programmagegevens op de microcontroller te laden, is via een bootloader. Boot-loader zit op de MCU en voert de binnenkomende instructies uit, en schrijft vervolgens nieuwe programma-informatie naar het geheugen van de microcontroller. Door een bootloader op een microcontroller te flashen, is er geen speciale externe hardware (Programmer Boards) nodig om de microcontroller te programmeren, en kun je deze rechtstreeks via een USB-verbinding programmeren. Het Digispark ATtiny85board draait de "micronucleus tiny85" bootloader, oorspronkelijk geschreven door Bluebie. De bootloader is de code die is voorgeprogrammeerd op Digispark en stelt het in staat om als een USB-apparaat te fungeren, zodat het kan worden geprogrammeerd door de Arduino IDE. We gaan ook dezelfde digispark attiny85 bootloader flashen op ATtiny85.
Een stapsgewijze handleiding voor het flashen van bootloader naar ATtiny85 met Arduino Uno en Arduino IDE wordt hieronder gegeven:
Stap 1: Arduino Uno configureren als ISP:
Omdat de ATtiny85 slechts een microcontroller is, moet er een ISP (In-System Programming) worden geprogrammeerd. Dus om de ATtiny85 te programmeren, moeten we Arduino Uno eerst configureren als ISP om als programmeur voor de ATtiny85 te fungeren. Sluit daarvoor de Arduino Uno aan op Laptop en open de Arduino IDE. Navigeer daarna naar Bestand> Voorbeeld> ArduinoISP en upload de Arduino ISP-code.
Stap 2: Circuitdiagram voor knipperende bootloader op ATtiny85:
Het volledige schema voor Flashing Boot-loader op ATtiny85 wordt hieronder gegeven:
Een condensator van 10 µf is aangesloten tussen de Reset- en GND-pin van Arduino. De volledige aansluitingen zijn weergegeven in de onderstaande tabel:
ATtiny85-speld |
Arduino Uno Pin |
Vcc |
5V |
GND |
GND |
Pin 2 |
13 |
Pin 1 |
12 |
Pin 0 |
11 |
Reset |
10 |
Sluit nu de Arduino Uno aan op de laptop en open Arduino IDE. Zoek op welke COM-poort de Uno is aangesloten. In mijn geval is het COM5.
Download hierna de ATtiny85 Bootloader-bestanden van de gegeven link. Open " Burn_AT85_bootloader.bat " en verander het COM-poortnummer "PCOM5" met het COM-poortnummer waarmee je Uno is verbonden. Sla de wijzigingen op voordat u afsluit.
Verplaats nu de bewerkte " Burn_AT85_bootloader.bat " en " ATtiny85.hex " bestanden naar de Arduino IDE-hoofdmap (C: \ Program Files (x86) Arduino).
Klik daarna met de rechtermuisknop op " Burn_AT85_bootloader.bat " en selecteer "Uitvoeren als Admin". Het duurt ongeveer 5 tot 6 seconden om de bootloader te flashen. Als alles goed is gegaan, zou u dit bericht moeten ontvangen "AVRdude klaar. Bedankt. Druk op een willekeurige toets om door te gaan…".
Hiermee is de Boot-loader succesvol geïnstalleerd op de ATtiny85 Chip. Nu is het tijd om USB met ATtiny85 te verbinden, zodat we het rechtstreeks kunnen programmeren. Het schakelschema voor het programmeren van ATtiny85 via USB wordt hieronder gegeven:
Schakelschema voor ATtiny Programmer
Het schema is ontleend aan het Digispark ATtiny85-bordschema, maar omdat we een programmeur voor ATtiny85 willen bouwen, verbinden we alleen mannelijke USB-stekker met ATtiny85.
De R3 is een pull-up-weerstand die is aangesloten tussen Vcc- en PB3-pinnen van IC, terwijl de zenerdiodes (D1-D2) zijn toegevoegd voor totale USB-interfacebescherming. Na het solderen van alle componenten op het perf board, ziet het er ongeveer als volgt uit:
Digispark-stuurprogramma's installeren
Om de ATtiny85 via USB te programmeren, moet u Digispark Drivers op uw laptop hebben geïnstalleerd. Als u deze niet hebt, kunt u deze downloaden via de bovenstaande link. Pak vervolgens het zip-bestand uit en dubbelklik op de applicatie “ DPinst64.exe ” om de stuurprogramma's te installeren.
Zodra de stuurprogramma's met succes zijn geïnstalleerd, sluit u uw ATtiny85-kaart aan op de laptop. Ga nu naar Apparaatbeheer op uw Windows en het ATtiny85-apparaat wordt weergegeven onder "libusb-win32-apparaten" als "Digispark Bootloader". Als u 'libusb-win32-apparaten' niet kunt vinden in Apparaatbeheer, ga dan naar Beeld en klik op 'Verborgen apparaten weergeven'.
Arduino IDE instellen om ATttiny85 te programmeren
Om het ATtiny85-bord met Arduino IDE te programmeren, moeten we eerst de Digispark-bordondersteuning toevoegen aan Arduino IDE. Ga daarvoor naar Bestand> Voorkeuren en voeg de onderstaande link toe aan de Extra Boards Manager-URL's en klik op 'OK'.
Ga daarna naar tools> Board> Board Manager en zoek naar 'Digistump AVR' en installeer de laatste versie.
Nadat u het hebt geïnstalleerd, ziet u nu een nieuw item in het bordmenu met de naam 'Digispark'.
Ga nu naar bestand> Voorbeelden> Basis en open het Blink-voorbeeld.
Verander het pincode daar van LED_BUILTIN naar 0.
Ga nu terug naar Tools -> Board en selecteer het " Digispark (Default - 16mhz) " board. Klik vervolgens op de uploadknop in Arduino IDE.
Opmerking: sluit het ATtiny85-bord alleen aan op de computer als de Arduino IDE een bericht weergeeft met de tekst "Plugin device now".
Zodra de code is geüpload, zou de LED die is verbonden met ATtiny85 moeten gaan knipperen.
Dit is hoe je je eigen ATtiny85 Arduino Programming board kunt bouwen. Een werkvideo van hetzelfde wordt hieronder gegeven. Als je vragen hebt, laat ze dan achter in het commentaargedeelte. Voor andere technische vragen kunt u ook een discussie starten op onze forums.