Sommario:
- Passaggio 1: caratteristiche e parti
- Passaggio 2: layout, schema e costruzione della breadboard
- Passaggio 3: utilizzo e applicazione
Video: Programmatore VUSBTiny AVR SPI: 3 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
dopo aver creato un programmatore usbtiny isp e averlo usato per 6 mesi, stavo cercando di crearne un altro da portare in giro. mi piace la semplicità del design usbtiny isp ma vorrei renderlo ancora più piccolo e prendere meno parti. una cosa nel design originale che voglio cambiare è eliminare l'uso del cristallo dell'orologio. una soluzione che ho trovato è che i driver v-usb supportano l'oscillatore interno da 16,5 Mhz sui dispositivi attiny25/45/85. quindi inizio questo progetto per fare in modo che usbtiny ISP utilizzi v-usb per la comunicazione USB. i vantaggi immediati sono che consente di risparmiare spazio e di avere meno componenti (non più cristalli). descrizione usbtiny da https://www.xs4all.nl/~dicks/avr/usbtiny/ USBtiny è un'implementazione software dell'USB a bassa velocità protocollo per i microcontrollori Atmel ATtiny. Ovviamente funzionerà anche sulla serie ATmega. Il software è scritto per un AVR con clock a 12 MHz. A questa frequenza, ogni bit sul bus USB richiede 8 cicli di clock e, con molti trucchi, è possibile decodificare e codificare le forme d'onda USB tramite software. Il driver USB richiede circa 1250-1350 byte di spazio flash (escluse le stringhe di identificazione opzionali), a seconda della configurazione e della versione del compilatore, e 46 byte di RAM (escluso lo spazio dello stack). L'interfaccia C è composta da 3 a 5 funzioni, a seconda della descrizione di configuration.vusb da https://www.obdev.at/products/vusb/ V-USB è un'implementazione solo software di un dispositivo USB a bassa velocità per Atmel's Microcontrollori AVR, che consentono di creare hardware USB con quasi tutti i microcontrollori AVR, senza richiedere alcun chip.video aggiuntivo sulla costruzione e l'utilizzo
Passaggio 1: caratteristiche e parti
* logica di programmazione da usbtiny isp, supporto maturo avr-dude * ingombro ridotto * componenti minimi * alimenta il dispositivo di destinazione nota che le linee io per l'mcus di destinazione non sono protette. è possibile aggiungere resistori da 1k-2k a SCK e MOSI e proteggere da eventuali collegamenti errati riferimenti basati sui lavori trovati su v-usb dal framework https://www.obdev.at/vusb/usbtiny isp https://www.xs4all. nl/~dicks/avr/usbtiny/parts list * attiny45/85 (85 è più facile da trovare) * diodi zener 3.6v (tipi 1n747, BZX79,..evitare 1W) * resistore 68ohm x 2 * resistore 1.5K * mini breadboard 170 punti di collegamento * cavo usb (il cavo della stampante usb del negozio di dollari va bene) * resistenze 1k/2k per la protezione delle linee io (opzionali) strumenti necessari * un programmatore avr funzionante (sì, è un catch22, ne abbiamo bisogno per crearne uno) * ambiente di programmazione avr funzionante
Passaggio 2: layout, schema e costruzione della breadboard
costruzione
* seguire il layout della breadboard, non ci sono componenti, 3 resistori, 2 diodi, 1 cappuccio, più un mcu a 8 pin. * ottenere un cavo della stampante USB da un negozio di dollari tagliato dall'estremità della stampante, ci saranno 4 fili esposti, fissarli e trasformarli in un'intestazione maschio a 4 pin, lo useremo per collegarci alla breadboard. consultare lo schema per il layout e l'assegnazione dei pin (J1). * attenzione alla polarità del diodo.
costruire e far lampeggiare il progetto
il progetto è stato costruito in una scatola linux ubuntu lucid con toolchain avr-gcc. si presume che tu abbia già un ambiente del genere, oppure puoi scoprire da Internet come configurarne uno. i codici sorgente sono gnu gpl v2 concessi in licenza dall'ereditarietà.
il codice sorgente segue una convenzione consigliata da v-usb, è possibile scaricare il pacchetto sorgente vusbtiny.tgz e decomprimerlo in una directory del progetto. all'interno della tua directory di origine, c'è un main.c, che è la mia versione del programmatore usbtiny modificato. e una sottodirectory usbdrv, che contiene il livello v-usb. si prega di osservare il termine di licenza dei due progetti precedenti durante la creazione di questo. la mia fonte sulla logica del programmatore si basa sulla versione di Dick Streefland e non sulla versione ladyada (sebbene siano quasi uguali).
per coloro che non hanno una build too-chain, puoi usare il seguente binario
clicca per scaricare vusbtiny.hex
e usa avrdude per flashare il firmware
avrdude -c usbtiny -p t45 -e -V -U flash:w:usbtiny.hex
(se il tuo dispositivo è un tiny85, sostituisci -p t45 w/ -p t85)
la fonte può essere scaricata qui fare clic per scaricare vusbtiny.tgz
decomprimi il pacchetto sorgente nella tua directory di lavoro
tar -zxvf vusbtiny.tgz
* fai cd vsubtiny, per passare alla directory di lavoro vusbtiny * ajust makefile per il dispositivo di destinazione in base al chip che utilizzerai. cioè PROGRAMMER_MCU=t45 o t85 * fai un make * allega il tuo programmatore ISP preferito * modifica makefile e cambia i tuoi parametri avrdude se necessario. quello stock presuppone il programmatore USBTiny. cioè AVRDUDE_PROGRAMMERID=usbtiny * firmware flash tramite make install
dopo aver lampeggiato il firmware, dobbiamo impostare correttamente il fusibile, stiamo usando il reset del pin 1 come io in questo progetto
* orologio ppl utilizzato come richiesto dal livello v-usb per la temporizzazione USB * reset pin disabilitato in quanto dobbiamo usarlo come io
avrdude -c usbtiny -p t45 -V -U lfuse:w:0xe1:m -U hfuse:w:0x5d:m -U efuse:w:0xff:m
questa impostazione disabilita l'ulteriore programmazione tramite 5V SPI poiché abbiamo bisogno del pin RESET (pin1) per io. sarà necessario accedere a un programmatore HVSP per recuperare il fusibile.
Passaggio 3: utilizzo e applicazione
lampeggio diretto su breadboard
se stai usando vusbtiny per far lampeggiare i dispositivi AVR a 8 pin, puoi semplicemente premere il tuo dispositivo di destinazione sopra il dispositivo del programmatore. il programmatore è stato progettato in modo che i pin di programmazione corrispondano ai target. c'è un trucco però, dovrai isolare i pin 2 e 3 sull'mcu del programmatore, poiché sono i pin USB D+ e D- che si collegano al PC. io uso un pezzo di scotch per ottenere questo risultato, puoi vederlo nelle foto. mostra sotto è un tiny13v "in sella" sul tiny45, pronto a ricevere il firmware.
ISP lampeggiante tramite jumper
per programmare un circuito di destinazione tramite ISP (programmazione interna al sistema), è necessario un cavo ISP. qui non sto usando le intestazioni pin standard 2x3 o 2x5. invece sto usando un ponticello 1x6 che è più adatto alla breadboard, puoi creare un'intestazione pin 2x3 o 2x5 mappandoli su J2 come mostrato sul layout e sugli schemi della breadboard. la foto seguente mostra un tiny2313 pronto per essere flashato tramite ISP.
Risoluzione dei problemi
* non è possibile eseguire il flashing del firmware? controlla il tuo programmatore originale, potrebbe essere necessario regolare i tempi tramite il flag -B in avrdude. prova a leggere il primo chip, potrebbe essere un fusibile difettoso, potrebbe essere che il tuo chip abbia bisogno di un segnale di clock esterno. potrebbe essere necessario ripristinare il chip al primo valore predefinito. * controlla le connessioni * se usi pin io diversi, controlla il codice e le connessioni * puoi sostituire i diodi zener con i tipi da 500 mw, 400 mw * potresti provare a ridurre il valore R3 a 1.2K o meno * è più probabile che tu abbia problemi di temporizzazione avrdude, prova -B bandiera di avrdude, avere un cavo USB più corto aiuta tutto
Consigliato:
Arduino come ISP -- Masterizza file esadecimale in AVR -- Fusibile nell'AVR -- Arduino come programmatore: 10 passaggi
Arduino come ISP || Masterizza file esadecimale in AVR || Fusibile nell'AVR || Arduino As Programmer:………………………ISCRIVITI al mio canale YouTube per altri video……..Questo articolo è tutto su arduino come isp. Se vuoi caricare un file esadecimale o se vuoi impostare il tuo fusibile in AVR, non è necessario acquistare un programmatore, puoi farlo
Programmatore AVR con alta tensione: 17 passaggi
Programmatore AVR con alta tensione: questo è il mio primo Instructable. La scheda che ho progettato è un programmatore AVR. La scheda combina le funzioni di 4 schede prototipo separate che ho costruito negli ultimi anni: - Un programmatore AVR ad alta tensione, utilizzato principalmente su dispositivi ATtiny per impostare fu
Come caricare il codice C su AVR utilizzando Arduino Uno come programmatore: 6 passaggi
Come caricare il codice C su ِAVR utilizzando Arduino Uno come programmatore: CIAO a tutti: D Qui condividerò un modo semplice per programmare qualsiasi chip AVR utilizzando Arduino Uno R3 Tutto ciò di cui hai bisogno per masterizzare il codice sul tuo microcontrollore è Arduino Uno invece di acquistare uno specifico programmatore che costa molto
Programmatore AVR STK500 economico per Atmel Studio: 7 passaggi
Programmatore AVR STK500 economico per Atmel Studio: Atmel Studio è un potente strumento per creare programmi AVR, ma scrivere un programma è il primo passo. Per utilizzare il tuo programma, devi creare un circuito e trasferire il codice nel microcontrollore. Puoi programmare il tuo AVR da Atmel Studio utilizzando
Programmatore ISP per microcontrollori AVR: 4 passaggi
Programmatore ISP per microcontrollori AVR: un programmatore di microcontrollori è un dispositivo hardware accompagnato da software che viene utilizzato per trasferire il codice del linguaggio macchina al microcontrollore/EEPROM dal PC. Il programmatore ISP per microcontrollori AVR è Serial Programmers che utilizza il s