- Komponenter som krävs för att programmera ATtiny85 via USB
- ATtiny85 Microcontroller IC - Introduktion
- Blinkande startladdare på ATtiny85 med Arduino Uno
- Kretsschema för ATtiny programmerare
- Installera Digispark-drivrutiner
- Ställa in Arduino IDE för att programmera ATttiny85
ATtiny-familjen är en serie av en av de minsta mikrokontrollerna på AVR-marknaden. Dessa mikrokontroller kan använda många av de bibliotek som finns tillgängliga på Arduino-plattformen. ATtiny85-mikrokontrollerchipet är 8-stifts, 8-bitars, AVR-mikrokontroller. Den lilla storleken och den låga strömförbrukningen gör den till en perfekt matchning för bärbara projekt med små fotavtryck och lågt energibehov. Men att få din kod på chipet kan vara lite av en utmaning eftersom det inte har något USB-gränssnitt som mikrokontrollerkort.
I vår tidigare handledning programmerade vi ATtiny85 med Arduino Uno. Men att ansluta Attiny85 till Arduino och använda Arduino som ISP kan vara svårt och tidskrävande. Så i den här handledningen ska vi bygga ett ATtiny85-programmeringskort, så att vi direkt kan plugin och programmera det som andra mikrokontrollerkort.
Komponenter som krävs för att programmera ATtiny85 via USB
- Arduino UNO (endast för första gången när du laddar upp bootloader)
- ATtiny85 IC
- USB-kontakt A-typ hane
- 3 motstånd (2 × 47Ω & 1 × 1kΩ)
- 3 dioder (2 × Zener-dioder och 1 × IN5819-dioder)
- 8-stifts IC-bas
- Bakbord
- Bygeltrådar
ATtiny85 Microcontroller IC - Introduktion
Atmels ATtiny85 är en högpresterande 8-bitars mikrokontroller baserad på avancerad RISC-arkitektur. Detta mikrokontrollerchip har 8KB ISP-flashminne, 512B EEPROM, 512-Byte SRAM, 6 allmänna I / O-linjer, 32 allmänna arbetsregister, en 8-bitars timer / räknare med jämförelselägen, en 8-bitars höghastighets timer / räknare, USI, interna och externa avbrott, 4-kanals 10-bitars A / D-omvandlare, programmerbar vakthundtimer med intern oscillator, tre programvaruväljbara energisparlägen och debugWIRE för felsökning på chip. ATtiny85 Pinout ges nedan:
De flesta av chipets I / O-stift har mer än en funktion. ATtiny85 stiftbeskrivning för varje stift ges i nedanstående tabell:
Stift nr. |
Pin-namn |
Stiftbeskrivning |
1 |
PB5 (PCINT5 / ADC0 / dW) |
PCINT5: Pin Change Interrupt 0, Source5 ÅTERSTÄLL: Återställ stift ADC0: ADC-ingångskanal 0 dW: felsöka WIRE I / O |
2 |
PB3 (PCINT3 / XTAL1 / CLKI / ADC3) |
PCINT3: Pin Change Interrupt 0, Source3 XTAL1: Crystal Oscillator Pin1 CLKI: Extern klockingång ADC3: ADC-ingångskanal 3 |
3 |
PB4 (PCINT4 / XTAL2 / CLKO / OC1B / ADC2) |
PCINT4: Pin Change Interrupt 0, Source 4 XTAL2: Crystal Oscillator Pin 2 CLKO: System Clock Output OC1B: Timer / Counter1 Jämför match B-utgång ADC2: ADC-ingångskanal 2 |
4 |
GND |
Markstift |
5 |
PB0 (MOSI / DI / SDA / AIN0 / OC0A / AREF / PCINT0) |
MOSI: SPI Master Data Output / Slave Data Input DI: USI-dataingång (tre trådsläge) SDA: USI-dataingång (två trådsläge) AIN0: Analog komparator, positiv ingång OC0A: Timer / Counter0 Jämför Match A-utgång AREF: Extern analog referens 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 (Three Wire Mode) AIN1: Analog komparator, negativ ingång OC0B: Timer / Counter0 Jämför match B-utgång OC1A: Timer / Counter1 Jämför Match A-utgång PCINT1: Pin Change Interrupt 0, Source 1 |
7 |
PB2 (SCK / USCK / SCL / ADC1 / T0 / INT0 / PCINT2) |
SCK: Seriell klockingång USCK: USI Clock (Three Wire Mode) SCL: USI Clock (Two Wire Mode) ADC1: ADC-ingångskanal 1 T0: Timer / Counter0 Clock Source INT0: Extern interrupt 0-ingång PCINT2: Pin Change Interrupt 0, Source 2 |
8 |
VCC |
Matningsspänning |
Blinkande startladdare på ATtiny85 med Arduino Uno
För att programmera ATtiny85 utan Arduino måste vi först ladda upp en bootloader till den med ett Arduino UNO-kort, det här är en engångsprocess och efter detta kommer vi inte att behöva UNO-kortet igen. Boot-loader är ett speciellt program som körs i den mikrokontroller som måste programmeras. Ett av de mest bekväma sätten att ladda dina programdata på mikrokontrollern är via en startladdare. Boot-loader sitter på MCU och utför de inkommande instruktionerna och skriver sedan ny programinformation till mikrokontrollerns minne. Att blinka en startladdare på en mikrokontroller tar bort behovet av speciell extern hårdvara (Programmer Boards) för att programmera mikrokontrollern och du kommer att kunna programmera den direkt med en USB-anslutning. Den Digispark ATtiny85styrelsen kör startladdaren ”micronucleus tiny85”, ursprungligen skriven av Bluebie. Boot-loader är koden som är förprogrammerad på Digispark och låter den fungera som en USB-enhet så att den kan programmeras av Arduino IDE. Vi kommer också att blinka samma digispark attiny85 bootloader på ATtiny85.
En steg-för-steg-guide för att flasha bootloader till ATtiny85 med Arduino Uno och Arduino IDE ges nedan:
Steg 1: Konfigurera Arduino Uno som ISP:
Eftersom ATtiny85 bara är en mikrokontroller, krävs det att en ISP (In-System Programming) programmeras. Så för att programmera ATtiny85 måste vi först konfigurera Arduino Uno som ISP för att fungera som programmerare för ATtiny85. För det, anslut Arduino Uno till bärbar dator och öppna Arduino IDE. Därefter navigerar du till Arkiv> Exempel> ArduinoISP och laddar upp Arduino ISP-koden.
Steg 2: Kretsschema för blinkande startladdare på ATtiny85:
Det fullständiga schemat för Flashing Boot-loader på ATtiny85 ges nedan:
En kondensator på 10 µf är ansluten mellan Återställ och GND-stift på Arduino. De fullständiga anslutningarna ges i nedanstående tabell:
ATtiny85 Pin |
Arduino Uno Pin |
Vcc |
5V |
GND |
GND |
Stift 2 |
13 |
Stift 1 |
12 |
Stift 0 |
11 |
Återställa |
10 |
Anslut nu Arduino Uno till den bärbara datorn och öppna Arduino IDE. Hitta vilken COM-port Uno är ansluten till. I mitt fall är det COM5.
Efter detta, ladda ner ATtiny85 Boot-loader-filer från den givna länken. Öppna " Burn_AT85_bootloader.bat " och ändra COM-portnumret "PCOM5" med vilket COM-portnummer som din Uno är ansluten till. Spara ändringarna innan du avslutar.
Flytta nu de redigerade filerna " Burn_AT85_bootloader.bat " och " ATtiny85.hex " till Arduino IDE-rotmappen (C: \ Program Files (x86) Arduino).
Högerklicka sedan på " Burn_AT85_bootloader.bat " och välj "Kör som administratör". Det tar cirka 5 till 6 sekunder att blinka startladdaren. Om allt gick bra bör du få meddelandet "AVRdude gjort. Tack. Tryck på valfri knapp för att fortsätta…".
Med detta installeras Boot-loader framgångsrikt på ATtiny85 Chip. Nu är det dags att ansluta USB till ATtiny85 så att vi kan programmera det direkt. Kretsschemat för programmering av ATtiny85 via USB ges nedan:
Kretsschema för ATtiny programmerare
Schemat är hämtat från Digispark ATtiny85-kortschemat, men eftersom vi strävar efter att bygga en programmerare för ATtiny85 ansluter vi bara Male USB-kontakt till ATtiny85.
R3 är ett uppdragningsmotstånd som är anslutet mellan Vcc och PB3-stift på IC medan Zener-dioderna (D1-D2) läggs till för total USB-gränssnittsskydd. Efter lödning av alla komponenter på perf-kortet ser det ut som nedan:
Installera Digispark-drivrutiner
För att programmera ATtiny85 med USB måste du ha Digispark-drivrutiner installerade på din bärbara dator. Om du inte har dem kan du ladda ner den med länken ovan. Extrahera sedan zip-filen och dubbelklicka på programmet “ DPinst64.exe ” för att installera drivrutinerna.
När drivrutinerna har installerats, anslut din ATtiny85-kort till den bärbara datorn. Gå nu till Enhetshanteraren på din Windows och ATtiny85-enheten kommer att listas under “libusb-win32-enheter” som “Digispark Bootloader”. Om du inte hittar 'libusb-win32-enheter' i enhetshanteraren, gå till Visa och klicka på 'Visa dolda enheter.'
Ställa in Arduino IDE för att programmera ATttiny85
För att programmera ATtiny85 Board med Arduino IDE måste vi först lägga till Digispark Board Support till Arduino IDE. För det, gå till Arkiv> Inställningar och lägg till länken nedan i ytterligare Boards Manager-webbadresser och klicka på 'OK'.
Därefter går du till verktyg> Board> Board Manager och söker efter 'Digistump AVR' och installerar den senaste versionen.
Efter installationen kan du nu se en ny post i Board-menyn med titeln 'Digispark'.
Gå nu till fil> Exempel> Grunder och öppna Blink-exemplet.
Ändra PIN-numret där från LED_BUILTIN till 0.
Gå nu tillbaka till Verktyg -> Board och välj " Digispark (Standard - 16mhz) ". Klicka sedan på uppladdningsknappen i Arduino IDE.
Obs: Anslut ATtiny85-kortet till datorn, bara när Arduino IDE visar ett meddelande som säger "Plugin-enhet nu".
När koden har laddats upp bör lysdioden som är ansluten till ATtiny85 börja blinka.
Så här kan du bygga ditt eget ATtiny85 Arduino-programmeringskort. En arbetsvideo av densamma ges nedan. Om du har några frågor, lämna dem i kommentarsektionen. För andra tekniska frågor kan du också starta en diskussion i våra forum.