Sommario:

Ambiente di sviluppo del ghetto: 5 passaggi
Ambiente di sviluppo del ghetto: 5 passaggi

Video: Ambiente di sviluppo del ghetto: 5 passaggi

Video: Ambiente di sviluppo del ghetto: 5 passaggi
Video: Viaggio nella memoria, alla scoperta del ghetto e della Sinagoga di Verona 2024, Luglio
Anonim
Ambiente di sviluppo del ghetto
Ambiente di sviluppo del ghetto

Qualche tempo fa, ho pubblicato un metodo veloce e sporco per iniziare a programmare i chip della serie Atmel AVR: Ghetto Programmer (versione 1.0) Da allora, ho migliorato, rinnovato e migliorato la mia configurazione. Ho pensato che sarebbe stato bello documentarlo. L'obiettivo era ottenere un ambiente di prototipazione di microcontrollori basato su AVR flessibile, compatto, portatile e utilizzabile ovunque. A buon mercato (ish). Quindi, senza ulteriori indugi, ecco il Ghetto Development Environment (GDE) (versione 1.2).

Passaggio 1: il kit

il kit
il kit

Il kit di base contiene le seguenti cose: Programmatore USB. Perché vuoi essere in grado di programmare i microcontrollori dal tuo laptop ovunque. E perché USB è una fonte molto utile di culle di programmazione +5v. Uno per ogni tipo di chip con cui stai giocando. Per me, questo significa uno con 8 pin (ATtiny13, 15), uno con 20 pin (ATtiny 2313) e uno con 28 pin (ATmega8). Lampeggianti. Quando qualcosa non va nel tuo codice, niente lo risolve come attaccare le luci per diagnosticare. Inoltre, il programma LED lampeggiante è il "Hello World" dei microcontrollori. Breadboard. È un kit di sviluppo, dopotutto.

Passaggio 2: il programmatore USB

Il programmatore USB
Il programmatore USB
Il programmatore USB
Il programmatore USB

In Ghetto Programmer (v.1.0) ho usato un programmatore di porte parallele. È fantastico perché è semplice, economico e veloce. Ma il mio laptop non ha una porta parallela. Ho giocato un po' a creare programmatori di porte seriali, ma onestamente sono complicati quanto la versione USB e anche le porte seriali stanno diventando scarse. In effetti, il mio laptop ha solo USB. Quindi USB è. Guardandosi intorno, il programmatore USBTiny è piuttosto semplice e funziona con gli strumenti gratuiti GNU/AVR-GCC. Fai da te o acquista un kit? Il modo fai-da-te è buono se puoi già programmare un ATTiny2313 (con programmatore parallelo) e avere un cristallo da 12 MHz in giro. USBTiny Page illustra le basi. Termina il cavo di programmazione con una porta parallela, ma lo finirei con un'intestazione standard a 6 pin se dovessi ricominciare da capo. (Perché? Perché è standard.) Ecco i suoi pin-out e controlla l'immagine qui sotto per il layout del cavo. PD3 - MISOPD5 - ResetPD6 - SCKPD7 - MOSI Se ne fai uno tuo, impara dalla mia esperienza e mettilo in una bella scatola di plastica. Se non lo fai, alla fine fallirà quando il cristallo da 12 MHz si rompe. Ecco perché ora uso… Il modo più veloce ed elegante è il kit USBtinyISP di Ladyada. Ti costerà $ 22, ma ottieni un bel PCB, ATTiny2313 pre-programmato e una scatola pulita con bei cavi. Le parti grezze costano comunque $ 15-16 e non devi richiamare Digikey e poi preoccuparti di programmare il tuo 2313. Ci vogliono 30 minuti - 1 ora per saldare tutto insieme. Pazzia. Fidati di me. (Nessuna affiliazione, cliente soddisfatto) E ho appena visto questo link: Tutorial AVR di Ladyada che mi sembra abbastanza buono. (E tieni presente che il design di Ladyada e l'originale USBTiny utilizzano codici identificativi del prodotto USB diversi: dovrai trovare le stringhe ID e ricompilare avrGCC se stai passando da uno all'altro. Penso che ci siano istruzioni sulle rispettive pagine web.)

Nel caso in cui ti trovi su un sistema Ubuntu Linux e utilizzi il programmatore USBTiny, ecco i comandi che faranno funzionare l'intera toolchain: sudo apt-get install build-essential avr-libc binutils-avr gcc-avr avrdude (testato su Hardy Heron) Se hai un arco AMD64, potresti anche aver bisogno di: byacc libusb-dev flex bison libc6-devand quindi per compilare AVRdude a mano: (wget https://download.savannah.gnu.org/releases/avrdude/ avrdude-5.5.tar.gz tar xvzf avrdude-5.5.tar.gz cd avrdude-5.5 ## Patch necessaria per AMD64: wget https://savannah.nongnu.org/patch/download.php?file_id=14754 patch -p1 < avrdude-5.5.usbtiny.64bit.patch./configure make && make install sudo avrdude -p attiny2313 -c usbtiny ## da testare) Se vedi qualcosa come "avrdude: dispositivo AVR inizializzato e pronto ad accettare istruzioni" allora sei rifatto. Oh sì, e grazie a Wendel Oskay per il diagramma dei pinout del programmatore standard.

Passaggio 3: la culla di programmazione

La culla di programmazione
La culla di programmazione
La culla di programmazione
La culla di programmazione
La culla di programmazione
La culla di programmazione

In Ghetto Programmer v.1.0 ho usato una culla di programmazione con un ingresso pin non standard e con pin-header femminili per inserire cose. I pin non standard sono una cattiva idea perché non sarai in grado di utilizzare la tua base con il programmatore di qualcun altro e viceversa. I pin-header femminili erano divertenti perché si potevano collegare direttamente i LED, ma quando iniziavo a fare qualcosa di più complesso, finivo comunque per collegarlo a una breadboard. Con la nuova culla, ho tagliato l'intermediario. Meno cablaggio manuale = migliore. Ma il più grande vantaggio di questo design della base è che puoi collegare la base quasi ovunque tu possa collegare il chip AVR. Questo risulta essere enorme. Invece di progettare circuiti ISP nel tuo robot o altro, inserisci semplicemente questa cosa della culla nella presa IC. Quindi puoi programmare/riprogrammare il cervello del tuo robot in circuito. Quando hai finito di sviluppare, collega direttamente l'AVR e sei pronto per quello successivo. Realizzare le basi è abbastanza facile: tutto ciò che devi fare è collegare i pin dall'intestazione a 6 pin ai punti giusti su le patatine. Questa volta ho usato PCB incisi. Puoi anche cablare a mano il tutto su perfboard. La base ATTiny13/15 è realizzata con una presa avvolgicavo a 8 pin. Adoro questi. È facile inserire il chip nei suoi bei fori rotondi e le gambe lunghe forniscono spazio extra sulla breadboard. Ho realizzato le tracce del PCB a mano libera con un pennarello. La culla ATTiny2313 è stata realizzata con Eagle e il metodo di trasferimento del toner su carta laser. Non sono riuscito a trovare alcuna presa a filo avvolto a 20 pin, quindi ho dovuto ricorrere a una presa normale a 20 pin saldata su 2 connettori a 10 pin. Questo finisce con una culla con le gambe più corte, ma funziona. Lo schema e il PDF che ho usato per il circuito sono sotto. Su entrambi, ho dovuto cablare a mano una linea in più. Così è la vita.

Passaggio 4: lampeggianti

Blinkenlights
Blinkenlights
Blinkenlights
Blinkenlights

La semplicità stessa. Non li menzionerei affatto se non fossero così dannatamente utili.

Saldare un resistore (150-220 ohm è un buon valore) direttamente sul cavo negativo di alcuni LED. Si accenderà da circa 2v-6v senza bruciarsi. E il resistore ti aiuta a ricordare quale lato è negativo. Attaccali dove vuoi sapere che c'è elettricità. Scopri se quel transistor è bruciato. Trasforma una batteria nicad in una luce notturna di lunga durata. Usa un'interfaccia a codice lampeggiante per leggere i valori dal tuo microprocessore (lentamente). Oppure creane 8 e hai un display da un byte (più il principio attivo negli occhi Cylon). Creali. Fai molti. Preparali ora.

Passaggio 5: la fine

La fine
La fine

Quindi questo "sistema" soddisfa quasi tutte le mie esigenze di sviluppo. È modulare, scalabile, compatto e portatile.

Ad esempio, ho elaborato le routine per far scorrere i messaggi sul display a 4 cifre (pagina introduttiva) sull'aereo diretto al matrimonio di un amico. Fa un buon rompighiaccio con gli assistenti di volo. Questo potenziometro -> ADC -> configurazione dell'amperometro basato su PWM è stato sottoposto a breadboard, codificato e debuggato interamente tra il mio divano e il tavolo da pranzo e si pulisce in circa 2 minuti quando arrivano gli amici. (È la parte dell'impostazione dell'ora della sveglia di quello che sarà un orologio-metro.) A volte metto in funzione l'impostazione quando ho voglia di giocare. Aggiungi un piccolo pacchetto di gadget (alcuni condensatori e resistori, cavi di collegamento, transistor, altoparlanti piezoelettrici, fotodiodi, microfoni, piccoli motori, ecc.) e sarai così avanti rispetto a MacGuyver che non è nemmeno divertente.

Consigliato: