- Komponenter, der kræves for at programmere ATtiny85 via USB
- ATtiny85 Microcontroller IC - Introduktion
- Blinkende boot-loader på ATtiny85 ved hjælp af Arduino Uno
- Kredsløbsdiagram til ATtiny Programmer
- Installation af Digispark-drivere
- Opsætning af Arduino IDE til program ATttiny85
ATtiny-familien er en serie af en af de mindste mikrokontroller på AVR-markedet. Disse mikrokontrollere er i stand til at udnytte mange af de tilgængelige biblioteker på Arduino-platformen. ATtiny85 microcontroller-chip er 8-pin, 8-bit, AVR-microcontroller. Dens lille størrelse og lave strømforbrug gør det til et godt match til bærbare projekter med små fodspor og lave strømbehov. Men at få din kode på chippen kan være lidt af en udfordring, da den ikke har nogen USB-grænseflade som mikrocontrollerboards.
I vores tidligere tutorial programmerede vi ATtiny85 ved hjælp af Arduino Uno. Men det kan være svært og tidskrævende at forbinde Attiny85 til Arduino og bruge Arduino som ISP. Så i denne vejledning skal vi bygge et ATtiny85-programmeringskort, så vi direkte kan plugin og programmere det som andre mikrocontroller-kort.
Komponenter, der kræves for at programmere ATtiny85 via USB
- Arduino UNO (kun første gang under upload af bootloader)
- ATtiny85 IC
- USB A-type stik han
- 3 modstande (2 × 47Ω & 1 × 1kΩ)
- 3 dioder (2 × Zener-diode og 1 × IN5819-diode)
- 8-polet IC-base
- Brødbræt
- Jumper Wires
ATtiny85 Microcontroller IC - Introduktion
Atmels ATtiny85 er en højtydende 8-bit mikrocontroller med lav effekt baseret på avanceret RISC-arkitektur. Denne mikrocontrollerchip har 8 KB ISP-flashhukommelse, 512B EEPROM, 512-Byte SRAM, 6 generelle I / O-linjer, 32 arbejdsregistre til generelle formål, en 8-bit timer / tæller med sammenligningstilstande, en 8-bit højhastigheds timer / tæller, USI, interne og eksterne afbrydelser, 4-kanals 10-bit A / D-konverter, programmerbar watchdog-timer med intern oscillator, tre softwarevalgbare strømbesparende tilstande og debugWIRE til debugging på chip. ATtiny85 Pinout er angivet nedenfor:
De fleste af chipens I / O-ben har mere end en funktion. ATtiny85 pin beskrivelse for hver pin er angivet i nedenstående tabel:
Pin nr. |
Pin-navn |
Pin Beskrivelse |
1 |
PB5 (PCINT5 / ADC0 / dW) |
PCINT5: Pin Change Interrupt 0, Source5 NULSTIL: Nulstil pin ADC0: ADC-indgangskanal 0 dW: debug WIRE I / O |
2 |
PB3 (PCINT3 / XTAL1 / CLKI / ADC3) |
PCINT3: Pin Change Interrupt 0, Source3 XTAL1: Krystaloscillatorstift1 CLKI: Eksternt urindgang ADC3: ADC-indgangskanal 3 |
3 |
PB4 (PCINT4 / XTAL2 / CLKO / OC1B / ADC2) |
PCINT4: Pin Change Interrupt 0, Kilde 4 XTAL2: Krystaloscillatorstift 2 CLKO: System Clock udgang OC1B: Timer / Counter1 Sammenlign match B-output ADC2: ADC-indgangskanal 2 |
4 |
GND |
Jordstift |
5 |
PB0 (MOSI / DI / SDA / AIN0 / OC0A / AREF / PCINT0) |
MOSI: SPI Master Data Output / Slave Data Input DI: USI-dataindgang (tre ledningstilstand) SDA: USI Data Input (Two Wire Mode) AIN0: Analog komparator, positiv indgang OC0A: Timer / Counter0 Sammenlign match A output AREF: Ekstern analog reference PCINT0: Pin Change Interrupt 0, Source 0 |
6 |
PB1 (MISO / D0 / AIN1 / OC0B / OC1A / PCINT1) |
MISO: SPI Master Data Input / Slave Data Output DO: USI Data Output (Tre ledningstilstand) AIN1: Analog komparator, negativ indgang OC0B: Timer / Counter0 Sammenlign match B-output OC1A: Timer / Counter1 Sammenlign match A output PCINT1: Pin Change Interrupt 0, Kilde 1 |
7 |
PB2 (SCK / USCK / SCL / ADC1 / T0 / INT0 / PCINT2) |
SCK: Serielt urindgang USCK: USI Clock (Three Wire Mode) SCL: USI Clock (Two Wire Mode) ADC1: ADC-indgangskanal 1 T0: Timer / Counter0 Urkilde INT0: Ekstern interrupt 0 input PCINT2: Pin Change Interrupt 0, Kilde 2 |
8 |
VCC |
Forsyningsspændingsstift |
Blinkende boot-loader på ATtiny85 ved hjælp af Arduino Uno
Til programmering af ATtiny85 uden Arduino skal vi først uploade en bootloader til den ved hjælp af et Arduino UNO-kort, dette er en engangsproces, og efter at dette er gjort, behøver vi ikke UNO-kortet igen. Boot-loader er et specielt program, der kører i den mikrocontroller, der skal programmeres. En af de mest bekvemme måder at indlæse dine programdata på mikrokontrolleren er gennem en boot-loader. Boot-loader sidder på MCU'en og udfører de indgående instruktioner og skriver derefter ny programinformation til mikrokontrolhukommelsen. Hvis du blinker en boot-loader på en mikrocontroller, fjernes behovet for speciel ekstern hardware (Programmer Boards) til at programmere mikrocontrolleren, og du vil være i stand til at programmere den direkte ved hjælp af en USB-forbindelse. Den Digispark ATtiny85Board kører "micronucleus tiny85" boot-loader, oprindeligt skrevet af Bluebie. Boot-loader er den kode, der er forprogrammeret på Digispark og giver den mulighed for at fungere som en USB-enhed, så den kan programmeres af Arduino IDE. Vi vil også blinke den samme digispark attiny85 bootloader på ATtiny85.
En trinvis vejledning til flash-bootloader til ATtiny85 ved hjælp af Arduino Uno og Arduino IDE er angivet nedenfor:
Trin 1: Konfiguration af Arduino Uno som internetudbyder:
Da ATtiny85 kun er en mikrocontroller, skal der programmeres en internetudbyder (In-System Programming). Så for at programmere ATtiny85 skal vi først konfigurere Arduino Uno som internetudbyder til at fungere som programmør for ATtiny85. Til det skal du slutte Arduino Uno til bærbar computer og åbne Arduino IDE. Derefter skal du navigere til Filer> Eksempel> ArduinoISP og uploade Arduino ISP-koden.
Trin 2: Kredsløbsdiagram til blinkende boot-loader på ATtiny85:
Det komplette skema for Flashing Boot-loader på ATtiny85 er angivet nedenfor:
En 10 µf kondensator er tilsluttet mellem Reset og GND pin på Arduino. De komplette forbindelser er angivet i nedenstående tabel:
ATtiny85 Pin |
Arduino Uno Pin |
Vcc |
5V |
GND |
GND |
Pin 2 |
13 |
Pin 1 |
12 |
Pin 0 |
11 |
Nulstil |
10 |
Tilslut nu Arduino Uno til den bærbare computer og åbn Arduino IDE. Find hvilken COM-port Uno er tilsluttet. I mit tilfælde er det COM5.
Herefter downloades ATtiny85 Boot-loader-filerne fra det givne link. Åbn " Burn_AT85_bootloader.bat " og skift COM-portnummeret "PCOM5" med det COM-portnummer, din Uno er tilsluttet. Gem ændringerne, inden du afslutter.
Flyt nu de redigerede filer " Burn_AT85_bootloader.bat " og " ATtiny85.hex " til Arduino IDE-rodmappen (C: \ Program Files (x86) Arduino).
Derefter skal du højreklikke på " Burn_AT85_bootloader.bat " og vælge "Kør som administrator". Det tager ca. 5 til 6 sekunder at blinke boot-loader. Hvis alt gik godt, skulle du modtage denne meddelelse "AVRdude færdig. Tak. Tryk på en vilkårlig tast for at fortsætte…".
Med dette installeres Boot-loader med succes på ATtiny85 Chip. Nu er det tid til at forbinde USB med ATtiny85, så vi kan programmere det direkte. Kredsløbsdiagrammet til programmering af ATtiny85 via USB er angivet nedenfor:
Kredsløbsdiagram til ATtiny Programmer
Skematisk er taget fra Digispark ATtiny85-kortskemaet, men da vi sigter mod at opbygge en programmerer til ATtiny85, forbinder vi kun Male USB-stik med ATtiny85.
R3 er en pull-up-modstand, der er forbundet mellem Vcc og PB3-stifter på IC, mens Zener-dioderne (D1-D2) tilføjes for total USB-interface-beskyttelse. Efter lodning af alle komponenterne på perf-kortet ser det ud som nedenfor:
Installation af Digispark-drivere
For at programmere ATtiny85 ved hjælp af USB skal du have Digispark-drivere installeret på din bærbare computer. Hvis du ikke har dem, kan du downloade det ved hjælp af linket ovenfor. Udpak derefter zip-filen, og dobbeltklik på “ DPinst64.exe ” -applikationen for at installere driverne.
Når driverne er installeret, skal du tilslutte dit ATtiny85-kort til den bærbare computer. Gå nu til Enhedshåndtering på din Windows, og ATtiny85-enheden vises under “libusb-win32-enheder” som “Digispark Bootloader”. Hvis du ikke kan finde 'libusb-win32-enheder' i enhedsadministratoren, skal du gå til Vis og klikke på 'Vis skjulte enheder.'
Opsætning af Arduino IDE til program ATttiny85
For at programmere ATtiny85 Board med Arduino IDE skal vi først tilføje Digispark Board Support til Arduino IDE. For det skal du gå til Filer> Indstillinger og tilføje nedenstående link i de yderligere bestyrelses-URL'er og klikke på 'OK'.
Derefter skal du gå til værktøjer> Board> Board Manager og søge efter 'Digistump AVR' og installere den nyeste version.
Efter installationen ville du nu kunne se en ny post i Board-menuen med titlen 'Digispark'.
Gå nu til fil> Eksempler> Grundlæggende og åbn eksemplet Blink.
Skift pinkoden derfra fra LED_BUILTIN til 0.
Gå nu tilbage til Værktøjer -> Board og vælg " Digispark (Standard - 16mhz) " -kortet. Klik derefter på upload-knappen i Arduino IDE.
Bemærk: Tilslut ATtiny85-kortet til computeren, kun når Arduino IDE viser en meddelelse, der siger "Plugin-enhed nu".
Når koden er uploadet, skal LED'en, der er tilsluttet ATtiny85, begynde at blinke.
Sådan kan du opbygge dit eget ATtiny85 Arduino-programmeringskort. En arbejdsvideo af den samme er givet nedenfor. Hvis du har spørgsmål, skal du lade dem være i kommentarfeltet. For andre tekniske spørgsmål kan du også starte en diskussion på vores fora.