- Components necessaris per programar ATtiny85 mitjançant USB
- IC de microcontrolador ATtiny85 - Introducció
- Carregador d'arrencada intermitent a ATtiny85 mitjançant Arduino Uno
- Diagrama de circuits per a ATtiny Programmer
- Instal·lació de controladors Digispark
- Configurant Arduino IDE al programa ATttiny85
La família ATtiny és una sèrie d’un dels microcontroladors més petits del mercat AVR. Aquests microcontroladors són capaços d’utilitzar moltes de les biblioteques disponibles a la plataforma Arduino. El xip de microcontrolador ATtiny85 és un microcontrolador AVR de 8 pins i 8 bits. La seva petita mida i el seu baix consum d'energia el converteixen en un lloc ideal per a projectes portàtils amb petjades petites i pocs requisits d'energia. Però aconseguir el vostre codi al xip pot ser una mica un repte, ja que no té cap interfície USB com les plaques de microcontroladors.
Al nostre tutorial anterior, vam programar l’ATtiny85 amb Arduino Uno. Però connectar Attiny85 a Arduino i utilitzar Arduino com a proveïdor d’Internet pot ser difícil i requereix molt de temps. Així, en aquest tutorial, crearem una placa de programació ATtiny85, de manera que puguem connectar-la i programar-la directament com altres plaques de microcontroladors.

Components necessaris per programar ATtiny85 mitjançant USB
- Arduino UNO (només per primera vegada mentre es carrega el gestor d'arrencada)
- ATtiny85 IC
- Connector USB tipus A mascle
- 3 resistències (2 × 47Ω i 1 × 1kΩ)
- 3 díodes (2 × díode Zener i 1 × IN5819 díode)
- Base IC de 8 clavilles
- Taula de pa
- Jumper Wires
IC de microcontrolador ATtiny85 - Introducció
ATtiny85 d'Atmel és un microcontrolador de 8 bits d'alt rendiment i poca potència basat en l' arquitectura RISC avançada. Aquest xip de microcontrolador compta amb memòria flash ISP de 8 KB, EEPROM 512B, SRAM de 512 bytes, 6 línies d'E / S d'ús general, 32 registres de treball d'ús general, un temporitzador / comptador de 8 bits amb modes de comparació, un de 8 bits d'alta velocitat temporitzador / comptador, USI, interrupcions internes i externes, convertidor A / D de 4 canals de 10 canals, temporitzador de gos de vigilància programable amb oscil·lador intern, tres modes d’estalvi d’energia seleccionables per programari i debugWIRE per a la depuració al xip. A continuació, es mostra ATtiny85 Pinout:

La majoria dels pins d'E / S del xip tenen més d'una funció. A la taula següent es mostra la descripció del pin ATtiny85 per a cada pin:
|
Pin núm. |
Nom del pin |
Descripció del pin |
|
1 |
PB5 (PCINT5 / ADC0 / dW) |
PCINT5: interrupció de canvi de pin 0, font5 RESET: restableix el pin ADC0: canal d'entrada ADC 0 dW: depurar E / S WIRE |
|
2 |
PB3 (PCINT3 / XTAL1 / CLKI / ADC3) |
PCINT3: interrupció de canvi de pin 0, font3 XTAL1: Oscil·lador de cristall Pin1 CLKI: entrada de rellotge extern ADC3: canal d’entrada d’ADC 3 |
|
3 |
PB4 (PCINT4 / XTAL2 / CLKO / OC1B / ADC2) |
PCINT4: interrupció de canvi de pin 0, font 4 XTAL2: Pin 2 de l’oscil·lador de vidre CLKO: sortida de rellotge del sistema OC1B: Temporitzador / comptador1 Compareu la sortida del partit B. ADC2: canal d’entrada d’ADC 2 |
|
4 |
GND |
Pin de terra |
|
5 |
PB0 (MOSI / DI / SDA / AIN0 / OC0A / AREF / PCINT0) |
MOSI: sortida de dades mestres SPI / entrada de dades esclaus DI: entrada de dades USI (mode de tres fils) SDA: entrada de dades USI (mode de dos cables) AIN0: Comparador analògic, entrada positiva OC0A: Temporitzador / comptador0 Compareu la sortida de coincidència A. AREF: Referència analògica externa PCINT0: interrupció de canvi de pin 0, font 0 |
|
6 |
PB1 (MISO / D0 / AIN1 / OC0B / OC1A / PCINT1) |
MISO: entrada de dades mestres SPI / sortida de dades esclaus DO: sortida de dades USI (mode de tres fils) AIN1: Comparador analògic, entrada negativa OC0B: Temporitzador / comptador0 Compareu la sortida del partit B. OC1A: Temporitzador / comptador1 Comparació de la sortida A PCINT1: interrupció de canvi de pin 0, font 1 |
|
7 |
PB2 (SCK / USCK / SCL / ADC1 / T0 / INT0 / PCINT2) |
SCK: entrada de rellotge en sèrie USCK: rellotge USI (mode de tres fils) SCL: rellotge USI (mode de dos cables) ADC1: canal d’entrada ADC 1 T0: Font del rellotge del temporitzador / comptador0 INT0: Entrada d’interrupció externa 0 PCINT2: interrupció de canvi de pin 0, font 2 |
|
8 |
VCC |
Pin de tensió de subministrament |
Carregador d'arrencada intermitent a ATtiny85 mitjançant Arduino Uno
Per programar l'ATtiny85 sense Arduino, primer hauríem de carregar-hi un carregador d'arrencada mitjançant una placa Arduino UNO, es tracta d'un procés únic i, un cop fet això, no tornarem a necessitar la placa UNO. Boot-loader és un programa especial que s’executa al microcontrolador que s’ha de programar. Una de les maneres més còmodes de carregar les dades del programa al microcontrolador és mitjançant un carregador d’arrencada. El carregador d'arrencada es troba a l'MCU i realitza les instruccions entrants i, a continuació, escriu informació nova del programa a la memòria del microcontrolador. Si feu clic a un carregador d’arrencada en un microcontrolador, s’elimina la necessitat d’un maquinari extern especial (plaques de programació) per programar el microcontrolador i el podreu programar directament mitjançant una connexió USB. El Digispark ATtiny85board executa el carregador d'arrencada "micronucleus tiny85", escrit originalment per Bluebie. El carregador d’arrencada és el codi que es preprograma a Digispark i li permet actuar com a dispositiu USB perquè pugui ser programat per l’IDE Arduino. També farem flaixar el mateix gestor d’ arrencada digispark attiny85 a ATtiny85.
A continuació es mostra una guia pas a pas per carregar l’arrencador flash a ATtiny85 mitjançant Arduino Uno i Arduino IDE:
Pas 1: Configuració d'Arduino Uno com a proveïdor d'Internet:
Atès que l’ATtiny85 és només un microcontrolador, cal programar un ISP (In-System Programming). Per tant, per programar l’ATtiny85, primer hem de configurar Arduino Uno com a ISP perquè actuï com a programador de l’ATtiny85. Per a això, connecteu l'Arduino Uno a l'ordinador portàtil i obriu l'Arduino IDE. Després, aneu a Fitxer> Exemple> ArduinoISP i pengeu el codi ISP d'Arduino.

Pas 2: Diagrama de circuits per al carregador d'arrencada intermitent a ATtiny85:
A continuació es mostra l’esquema complet del carregador d’arrencada intermitent a ATtiny85:

Un condensador de 10 µf està connectat entre el restabliment i el pin GND d'Arduino. Les connexions completes es donen a la taula següent:
|
ATtiny85 Pin |
Pin Arduino Uno |
|
Vcc |
5V |
|
GND |
GND |
|
Pin 2 |
13 |
|
Pin 1 |
12 |
|
Pin 0 |
11 |
|
Restableix |
10 |
Ara connecteu l’Arduino Uno al portàtil i obriu Arduino IDE. Cerqueu a quin port COM està connectat l’Uno. En el meu cas, és COM5.
Després, descarregueu els fitxers ATtiny85 Boot-loader des de l'enllaç indicat. Obriu " Burn_AT85_bootloader.bat " i canvieu el número de port COM "PCOM5" amb qualsevol número de port COM al qual estigui connectat el vostre Uno. Deseu els canvis abans de sortir.
Ara moveu els fitxers " Burn_AT85_bootloader.bat " i " ATtiny85.hex " editats a la carpeta arrel IDE Arduino (C: \ Program Files (x86) Arduino).
Després, feu clic amb el botó dret a " Burn_AT85_bootloader.bat " i seleccioneu "Executa com a administrador". Es triga aproximadament entre 5 i 6 segons a arrencar el gestor d’arrencada. Si tot va bé, hauríeu de rebre aquest missatge "AVRdude fet. Gràcies. Premeu qualsevol tecla per continuar…".

Amb això, el carregador d’arrencada s’instal·la amb èxit al xip ATtiny85. Ara és hora de connectar USB amb ATtiny85 per poder-lo programar directament. A continuació es mostra el diagrama de circuits per programar ATtiny85 mitjançant USB:
Diagrama de circuits per a ATtiny Programmer
L'esquema està extret de l'esquema de la placa Digispark ATtiny85, però com que pretenem construir un programador per a ATtiny85, només connectem endoll USB masculí amb ATtiny85.

El R3 és una resistència pull-up que es connecta entre els pins Vcc i PB3 de l’IC mentre que els diodes Zener (D1-D2) s’afegeixen per a una protecció total de la interfície USB. Després de soldar tots els components del tauler de perf, es mostrarà a continuació:

Instal·lació de controladors Digispark
Per programar l’ATtiny85 mitjançant USB, heu de tenir els controladors Digispark instal·lats al vostre ordinador portàtil; si no els teniu, podeu descarregar-lo mitjançant l’enllaç indicat anteriorment. A continuació, extreu el fitxer zip i feu doble clic a l' aplicació " DPinst64.exe " per instal·lar els controladors.

Un cop instal·lats els controladors, connecteu la placa ATtiny85 a l'ordinador portàtil. Ara aneu al Gestor de dispositius al vostre Windows i el dispositiu ATtiny85 apareixerà a la llista "Dispositius libusb-win32" com a "Digispark Bootloader". Si no trobeu "dispositius libusb-win32" al gestor de dispositius, aneu a Visualitza i feu clic a "Mostra els dispositius ocults".
Configurant Arduino IDE al programa ATttiny85
Per programar la placa ATtiny85 amb Arduino IDE, primer, hem d’afegir el suport de la placa Digispark a Arduino IDE. Per a això, aneu a Fitxer> Preferències i afegiu l'enllaç següent als URL del gestor de taulers addicionals i feu clic a "D'acord".
Després, aneu a Eines> Tauler> Gestor de taules i cerqueu "Digistump AVR" i instal·leu la versió més recent.

Després d'instal·lar-lo, ara podreu veure una nova entrada al menú del tauler titulada "Digispark".

Ara aneu a fitxer> Exemples> Conceptes bàsics i obriu l’exemple Blink.

Canvieu el número de pin de LED_BUILTIN a 0.

Ara torneu a Eines -> Tauler i seleccioneu el tauler " Digispark (per defecte - 16 MHz) ". A continuació, feu clic al botó de càrrega a Arduino IDE.
Nota: Connecteu la placa ATtiny85 a l'ordinador només quan l'IDE Arduino mostri un missatge que diu "Dispositiu de connexió ara".
Un cop carregat el codi, el LED connectat a ATtiny85 hauria de començar a parpellejar.
Així és com podeu construir la vostra pròpia placa de programació ATtiny85 Arduino. A continuació es mostra un vídeo de treball del mateix. Si teniu cap pregunta, deixeu-les a la secció de comentaris. Per a qualsevol altra qüestió tècnica, també podeu iniciar un debat als nostres fòrums.
