Taula de continguts:

Programador VUSBTiny AVR SPI: 3 passos
Programador VUSBTiny AVR SPI: 3 passos

Vídeo: Programador VUSBTiny AVR SPI: 3 passos

Vídeo: Programador VUSBTiny AVR SPI: 3 passos
Vídeo: Spakfun Tiny AVR programmer 2024, De novembre
Anonim
Programador VUSBTiny AVR SPI
Programador VUSBTiny AVR SPI

Després de fer un programador usbtiny isp i fer-lo servir durant 6 mesos, estava mirant de fer-ne un altre per transportar-lo. M'agrada la simplicitat del disseny usbtiny isp, però m'agradaria fer-lo encara més petit i tenir menys parts. una cosa que vull canviar al disseny original és eliminar l’ús del cristall de rellotge. una solució que he trobat és que els controladors v-usb admeten l'oscil·lador intern de 16,5 MHz en dispositius attiny25 / 45/85. així que començo aquest projecte perquè usbtiny isp utilitzi v-usb per a la comunicació usb. els avantatges immediats són que estalvia espai i té menys recomptes de components (no més cristalls). protocol per als microcontroladors Atmel ATtiny. Per descomptat, també funcionarà a la sèrie ATmega. El programari està escrit per a un AVR de 12 MHz. Amb aquesta freqüència, cada bit del bus USB pren vuit cicles de rellotge i, amb molts enganys, és possible descodificar i codificar les formes d'ona USB mitjançant un programari. El controlador USB necessita aproximadament 1250 a 1350 bytes d’espai flaix (excloent les cadenes d’identificació opcionals), depenent de la configuració i la versió del compilador, i 46 bytes de RAM (excloent l’espai de la pila). La interfície C consta de 3 a 5 funcions, depenent de la configuració. Vusb descripció de https://www.obdev.at/products/vusb/. Microcontroladors AVR, que permeten construir maquinari USB amb gairebé qualsevol microcontrolador AVR, sense necessitat de cap xip addicional.

Pas 1: funcions i peces

Característiques i peces
Característiques i peces

* Lògica de programació a partir d'USBtiny isp, suport per a avr-dude per a adults * petita impressió * components mínims * Potències del dispositiu de destinació: tingueu en compte que les línies io al mcus de destinació no estan protegides. podeu afegir resistències 1k-2k a SCK i MOSI i protegir-vos de possibles connexions incorrectes referències basades en els treballs que es troben a v-usb del framework https://www.obdev.at/vusb/ usbtiny isp https://www.xs4all. nl / ~ dicks / avr / usbtiny / llista de peces * attiny45 / 85 (85 és més fàcil de trobar) * díodes zener de 3,6 v (1n747, BZX79,.. sense tipus 1W) * resistència de 68 ohmis x 2 * resistència de 1,5K * mini tauler de connexió 170 punts de connexió * cable USB (el cable de la impressora usb de la botiga del dòlar està bé) * Resistències 1k / 2k per a la protecció de línies io (opcional): es necessiten eines * un programador avr que funcioni (sí, és un catch22, en necessitem un per fer-ne un) * treballant entorn de programació avr

Pas 2: disseny, esquema i construcció de taulers de pa

Disseny, esquema i construcció de taulers de pa
Disseny, esquema i construcció de taulers de pa
Disseny, esquema i construcció de taulers de pa
Disseny, esquema i construcció de taulers de pa

construcció

* Seguiu el disseny de la taula de treball, no hi ha components, 3 resistències, 2 díodes, 1 tap, més un mcu de 8 pins. * Obteniu un cable de la impressora usb amb una botiga de dòlars tallada a l'extrem de la impressora, hi haurà 4 cables exposats, assegureu-los i converteu-los en una capçalera masculina de 4 pins, l'utilitzarem per connectar-vos a la placa. consulteu l’esquema per al disseny i l’assignació de pins (J1). * vigileu la polaritat dels díodes.

construint i projectant el projecte

el projecte es va construir en una caixa lúcida Ubuntu Linux amb cadena d’eines avr-gcc. se suposa que ja teniu un entorn així, o bé podeu trobar a Internet com configurar-ne un. els codis font són gnu gpl v2 amb llicència d'herència.

el codi font segueix una convenció recomanada per v-usb, podeu descarregar el paquet font vusbtiny.tgz i descarregar-lo al directori del projecte. dins del directori d'origen, hi ha un main.c, que és la meva versió del programador usbtiny modificat. i un subdirectori usbdrv, que conté la capa v-usb. si us plau, observeu el termini de llicència dels dos projectes anteriors a l’hora de construir-lo. la meva font sobre la lògica del programador es basa en la versió de Dick Streefland i no en la versió ladyada (tot i que són gairebé iguals).

per a aquells que no tenen una compilació massa cadena, podeu utilitzar el binari següent

feu clic per descarregar vusbtiny.hex

i utilitzeu avrdude per fer flash del firmware

avrdude -c usbtiny -p t45 -e -V -U flash: w: usbtiny.hex

(si el vostre dispositiu és un tiny85, substituïu -p t45 w / -p t85)

la font es pot descarregar aquí feu clic per descarregar vusbtiny.tgz

descomprimiu el paquet font al directori de treball

tar -zxvf vusbtiny.tgz

* fes cd vsubtiny, per canviar al directori de treball de vusbtiny * ajusta el fitxer makefile del dispositiu objectiu segons el xip que faràs servir. és a dir, PROGRAMMER_MCU = t45 o t85 * fes un make * adjunta el teu programador ISP favorit * modifica makefile i canvia els teus paràmetres d’avrdude si cal. l'estoc suposa el programador USBTiny. és a dir, AVRDUDE_PROGRAMMERID = usbtiny * firmware flash mitjançant make install

després de parpellejar el firmware, hem d’establir correctament el fusible, en aquest projecte estem fent servir el restabliment del pin 1 com a io

* rellotge ppl que s'utilitza segons requereix la capa v-usb per a la sincronització d'usb * restabliment del pin desactivat, ja que l'hem d'utilitzar

avrdude -c usbtiny -p t45 -V -U lfuse: w: 0xe1: m -U hfuse: w: 0x5d: m -U efuse: w: 0xff: m

aquest paràmetre desactiva la programació addicional mitjançant SPI de 5 V, ja que necessitem el pin RESET (pin1) per a io. necessitareu accés a un programador HVSP per recuperar el fusible.

Pas 3: ús i aplicació

Ús i aplicació
Ús i aplicació
Ús i aplicació
Ús i aplicació
Ús i aplicació
Ús i aplicació

intermitent directe a la taula de treball

si utilitzeu vusbtiny per llampar dispositius AVR de 8 pins, només cal que premeu el dispositiu de destinació a sobre del dispositiu programador. el programador havia estat dissenyat de manera que els pins de programació coincideixin amb objectius. hi ha un truc, però, haureu d’aïllar els pins 2 i 3 del mcu del programador, ja que són els pins USB D + i D- que es connecten al PC. Utilitzo un tall de cinta adhesiva per aconseguir-ho, ho podeu veure a les fotos. A continuació es mostra un tiny13v "muntat" al tiny45, a punt per rebre el microprogramari.

ISP intermitent mitjançant pont

per programar un circuit de destinació mitjançant ISP (programació del sistema), necessiteu un cable ISP. aquí no estic fent servir les capçaleres de pin 2x3 o 2x5 estàndard. en lloc d'això, estic fent servir un pont 1x6 que és més adequat per a taulers de suport, podeu fer capçalera de pin de 2x3 o 2x5 assignant-los a J2 tal com es mostra a la disposició i esquemes de la tauleta de pa. la foto següent mostra un tiny2313 llest per ser intermitent mitjançant ISP.

resolució de problemes

* No es pot fer flaix el firmware? comproveu el programador original, potser haureu d’ajustar el temps mitjançant el senyalador -B a avrdude. intenteu llegir el xip en primer lloc, pot ser un mal fusible, pot ser que el vostre xip necessiti un senyal de rellotge extern. potser haureu de corregir el xip al valor predeterminat primer. * comproveu les connexions * si feu servir diferents pins io, comproveu el codi i les connexions * podeu substituir els díodes zener amb tipus de 500mw, 400mw * podeu provar de reduir el valor R3 a 1,2K o menys * és més probable que tingueu problemes de temporització avrdude, proveu -B bandera de avrdude, tenir un cable USB més curt tot ajuda

Recomanat: