Sommario:

Programmatore AVR con alta tensione: 17 passaggi
Programmatore AVR con alta tensione: 17 passaggi

Video: Programmatore AVR con alta tensione: 17 passaggi

Video: Programmatore AVR con alta tensione: 17 passaggi
Video: LDmicro 4: Electronic Components (Microcontroller PLC Ladder Programming with LDmicro) 2024, Luglio
Anonim
Programmatore AVR con alta tensione
Programmatore AVR con alta tensione
Programmatore AVR con alta tensione
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 sui dispositivi ATtiny per impostare i fusibili quando la linea di ripristino viene utilizzata per l'I/O.

- Arduino come ISP, 5V e 3v3 (conta come due delle funzioni)

- Programmatore NOR Flash EEPROM (copia rapidamente da una scheda SD a NOR Flash)

La scheda utilizza i comuni regolatori di tensione LDO AMS1117 per ottenere 5V e 3v3. La funzione ad alta tensione richiede 12V. Per questo ho usato un convertitore step-up DC-DC MT3608. L'mcu funziona a 16 MHz, 5 V. Il cambio di livello per tutto ciò che richiede 3v3 viene realizzato utilizzando un LVC125A. L'LVC125A è quello che trovi su molti dei moduli della scheda SD. L'mcu è un ATmega328pb. ATMega328pb è quasi uguale al più comune ATMega328p, tranne per il fatto che ha 4 pin I/O in più nello stesso pacchetto di dimensioni.

Questa scheda è la versione 1.5. Nuove funzionalità in quest'ultima versione:- un'interfaccia seriale USB.- Poli fusibili ripristinabili.- Indicatori di funzione LED sotto i pulsanti di selezione delle funzioni.- Un interruttore per controllare il ripristino seriale scollegando DTR dal chip seriale USB. - un MOSFET per togliere completamente l'alimentazione al DC-DC 12V quando non è in uso.

La scheda ha la possibilità di aggiungere una EEPROM seriale I2C AT24Cxxx ed è presente un connettore I2C JST-XH-05 a 5 pin (GND/5V/SCL/SDA/INT1) per il collegamento di dispositivi I2C.

Uno degli aspetti più complicati di questo progetto è stato come caricare tutte le funzioni/gli schizzi sulla scheda. Il metodo più semplice sarebbe stato semplicemente scaricare uno schizzo ogni volta che avevo bisogno di cambiare le funzioni. Un altro metodo sarebbe stato quello di combinare tutti gli schizzi. Ho deciso contro entrambi questi metodi. Il metodo di combinazione avrebbe reso difficile l'integrazione di eventuali modifiche apportate agli schizzi di origine originali. Il metodo combine ha anche il problema che la quantità di SRAM disponibile non era sufficiente senza riscrivere e scavare nelle librerie e negli sketch utilizzati, ancora una volta un problema di manutenzione.

Il metodo che ho scelto è stato quello di scrivere un'applicazione chiamata AVRMultiSketch che funziona con l'IDE di Arduino per caricare gli schizzi in flash spostando le loro posizioni di memoria. Le fonti dello schizzo non vengono modificate in alcun modo. Corrono sulla lavagna come se fossero l'unico schizzo. Come funziona è descritto in dettaglio nel readme open source GitHub per AVRMultiSketch. Vedi https://github.com/JonMackey/AVRMultiSketch per maggiori dettagli. Questo repository contiene anche gli schizzi che ho usato/scritto/modificato, che possono essere utilizzati singolarmente.

Per passare da uno schizzo all'altro, la scheda dispone di quattro pulsanti: Reset e pulsanti etichettati 0, 1, 2. All'accensione o al ripristino, se non si esegue alcuna operazione viene eseguita l'ultima funzione selezionata. Se tieni premuto uno dei pulsanti numerati, stai selezionando uno schizzo/funzione. Lo schizzo diventa lo schizzo selezionato. I LED bianchi sotto ciascuno dei pulsanti funzione sono illuminati per riflettere la selezione corrente.

Attualmente la bacheca ospita solo 3 bozzetti, ma potrebbe ospitarne alcuni in più. In tal caso, assumendo solo 3 bit/pulsanti numerati, potrebbe ospitarne fino a 7 tenendo premuti più di un pulsante.

Lo schema è allegato al passaggio successivo

Una staffa di supporto minima è disponibile su thingiverse. Vedi

La scheda per la versione 1.5 è condivisa su PCBWay. Vedi

Contattami se desideri una scheda assemblata e testata.

Passaggio 1: Istruzioni per l'assemblaggio della scheda

Istruzioni per il montaggio della scheda
Istruzioni per il montaggio della scheda

Seguono le istruzioni per assemblare la scheda (o quasi tutte le schede piccole).

Se sai già come costruire una scheda SMD, vai al passaggio 13.

Passaggio 2: raccogliere le parti

Raccogli parti
Raccogli parti
Raccogli parti
Raccogli parti

Comincio attaccando un pezzo di carta al piano di lavoro con le etichette per tutte le parti molto piccole (resistenze, condensatori, LED). Evitare di posizionare condensatori e LED uno accanto all'altro. Se si mescolano, potrebbe essere difficile distinguerli.

Poi ho popolato la carta con queste parti. Intorno al bordo aggiungo le altre parti facili da identificare.

(Nota che uso questo stesso pezzo di carta per altre schede che ho progettato, quindi solo alcune delle posizioni nella foto hanno parti accanto/sulle etichette)

Passaggio 3: montare la scheda

Montare la scheda
Montare la scheda
Montare la scheda
Montare la scheda

Usando un piccolo pezzo di legno come blocco di montaggio, incuneo la scheda PCB tra due pezzi di scheda prototipo di scarto. Le schede prototipo sono fissate al blocco di montaggio con nastro biadesivo (nessun nastro sul PCB stesso). Mi piace usare il legno per il blocco di montaggio perché è naturalmente non conduttivo/antistatico. Inoltre è facile spostarlo quando necessario quando si posizionano le parti.

Passaggio 4: applicare la pasta saldante

Applicare pasta saldante
Applicare pasta saldante
Applicare pasta saldante
Applicare pasta saldante

Applicare la pasta saldante ai pad SMD, lasciando scoperti i pad dei fori passanti. Essendo destrimano, generalmente lavoro da in alto a sinistra a in basso a destra per ridurre al minimo le possibilità di spalmare la pasta saldante che ho già applicato. Se spalmi la pasta, usa una salvietta che non lascia pelucchi, come quelle per rimuovere il trucco. Evita di usare un fazzoletto/fazzoletto. Controllare la quantità di pasta applicata a ciascun pad è qualcosa che puoi imparare attraverso tentativi ed errori. Vuoi solo un piccolo tocco su ogni pad. La dimensione del dab è relativa alla dimensione e alla forma del tampone (circa il 50-80% di copertura). In caso di dubbio, usa di meno. Per i pin ravvicinati, come il pacchetto LVC125A TSSOP menzionato in precedenza, si applica una striscia molto sottile su tutti i pad invece di tentare di applicare un tocco separato a ciascuno di questi pad molto stretti. Quando la saldatura è fusa, la maschera di saldatura farà migrare la saldatura sul pad, un po' come l'acqua non si attacca a una superficie oleosa. La saldatura si sgretolerà o si sposterà in un'area con un pad esposto.

Uso una pasta saldante a basso punto di fusione (punto di fusione 137C) La seconda foto è la scheda v1.3 e il tipo di pasta saldante che uso.

Passaggio 5: posizionare le parti SMD

Posiziona le parti SMD
Posiziona le parti SMD

Posiziona le parti SMD. Lo faccio da in alto a sinistra in basso a destra, anche se non fa molta differenza se non che è meno probabile che tu perda una parte. Le parti vengono posizionate utilizzando pinzette elettroniche. Preferisco la pinzetta con l'estremità curva. Prendi una parte, ruota il blocco di montaggio se necessario, quindi posiziona la parte. Dai a ciascuna parte un leggero tocco per assicurarti che sia ben appoggiata sulla tavola. Quando si posiziona una parte, utilizzo due mani per facilitare il posizionamento preciso. Quando si posiziona un mcu quadrato, prenderlo in diagonale dagli angoli opposti.

Ispeziona la scheda per assicurarti che tutti i condensatori polarizzati siano nella posizione corretta e che tutti i chip siano orientati correttamente.

Passaggio 6: tempo per la pistola ad aria calda

Tempo per la pistola ad aria calda
Tempo per la pistola ad aria calda

Uso una pasta saldante a bassa temperatura. Per la mia pistola modello, ho la temperatura impostata su 275C, il flusso d'aria impostato su 7. Tieni la pistola perpendicolare alla tavola a circa 4 cm sopra la tavola. La saldatura intorno alle prime parti impiega un po' di tempo per iniziare a fondersi. Non essere tentato di accelerare le cose spostando la pistola vicino al tabellone. Questo generalmente si traduce nel soffiare le parti intorno. Una volta che la saldatura si scioglie, passa alla successiva sezione sovrapposta della scheda. Fatti strada intorno al tabellone.

Uso una pistola ad aria calda YAOGONG 858D SMD. (Su Amazon per meno di $ 40.) Il pacchetto include 3 ugelli. Io uso l'ugello più grande (8 mm). Questo modello/stile è prodotto o venduto da diversi fornitori. Ho visto valutazioni dappertutto. Questa pistola ha funzionato perfettamente per me.

Passaggio 7: rinforzare se necessario

Rinforza se necessario
Rinforza se necessario
Rinforza se necessario
Rinforza se necessario

Se la scheda dispone di un connettore per scheda SD montato in superficie o di un jack audio montato in superficie, ecc., applicare un filo di saldatura aggiuntivo ai pad utilizzati per collegare il suo alloggiamento alla scheda. Ho scoperto che la sola pasta saldante non è generalmente abbastanza forte da fissare queste parti in modo affidabile.

Passaggio 8: pulizia/rimozione del flusso SMD

Pulizia/rimozione del flusso SMD
Pulizia/rimozione del flusso SMD
Pulizia/rimozione del flusso SMD
Pulizia/rimozione del flusso SMD

La pasta saldante che uso è pubblicizzata come "non pulita". È necessario pulire la scheda, ha un aspetto molto migliore e rimuoverà eventuali piccole perle di saldatura sulla scheda. Usando guanti in lattice, nitrile o gomma in uno spazio ben ventilato, versare una piccola quantità di Flux Remover in un piccolo piatto di ceramica o acciaio inossidabile. Risigillare il flacone di rimozione del flusso. Usando una spazzola rigida, tamponare la spazzola nel dispositivo di rimozione del flusso e strofinare un'area della tavola. Ripeti finché non hai completamente strofinato la superficie della tavola. Uso una spazzola per la pulizia della pistola per questo scopo. Le setole sono più rigide della maggior parte degli spazzolini da denti.

Passaggio 9: posizionare e saldare tutte le parti del foro di depressione

Posiziona e salda tutte le parti del foro di depressione
Posiziona e salda tutte le parti del foro di depressione
Posiziona e salda tutte le parti del foro di depressione
Posiziona e salda tutte le parti del foro di depressione

Dopo che il dispositivo di rimozione del flusso è evaporato dalla scheda, posizionare e saldare tutte le parti del foro, dalla più corta alla più alta, una alla volta.

Passaggio 10: perni con foro passante a filo

Perni con foro passante a filo
Perni con foro passante a filo

Usando una pinza a filo, tagliare i perni del foro passante sul lato inferiore del pannello. In questo modo è più facile rimuovere i residui di flusso.

Passaggio 11: riscaldare i perni del foro passante dopo il ritaglio

Riscaldare i perni del foro passante dopo il ritaglio
Riscaldare i perni del foro passante dopo il ritaglio

Per un aspetto gradevole, riscaldare la saldatura sui perni del foro passante dopo il ritaglio. Questo rimuove i segni di taglio lasciati dalla taglierina a filo.

Passaggio 12: rimuovere il flusso del foro passante

Rimuovere il flusso del foro passante
Rimuovere il flusso del foro passante

Usando lo stesso metodo di pulizia di prima, pulisci il retro della tavola.

Passaggio 13: applicare l'alimentazione alla scheda

Applicare potere al consiglio di amministrazione
Applicare potere al consiglio di amministrazione

Alimentare la scheda (da 6 a 12V). Se niente frigge, misura 5V, 3v3 e 12V. 5V e 3v3 possono essere misurati dalla linguetta grande sui due chip del regolatore. 12V possono essere misurati da R3, l'estremità del resistore più vicina alla scheda in basso a sinistra (il jack di alimentazione è in alto a sinistra).

Passaggio 14: caricare il bootloader

Carica il bootloader
Carica il bootloader

Dal menu Strumenti IDE di Arduino, seleziona la scheda e altre opzioni per l'mcu preso di mira.

Nei miei progetti di schede ho quasi sempre un connettore ICSP. Se non hai un Arduino come ISP o qualche altro programmatore ICSP, puoi costruirne uno su una breadboard allo scopo di scaricare il bootloader sulla scheda del programmatore. Seleziona Arduino come ISP dalla voce di menu del programmatore, quindi seleziona masterizza bootloader. Oltre a scaricare il bootloader, questo imposterà correttamente anche i fusibili. Nella foto, il tabellone a sinistra è il bersaglio. La scheda a destra è l'ISP.

Passaggio 15: caricare il multi schizzo

Carica il multi schizzo
Carica il multi schizzo
Carica il multi schizzo
Carica il multi schizzo
Carica il multi schizzo
Carica il multi schizzo

Segui le istruzioni sul mio repository GitHub per AVRMultiSketch per caricare il multi sketch in flash tramite la porta seriale sulla scheda. Il repository GitHub AVRMultiSketch contiene tutti gli schizzi mostrati nella foto. Anche se non hai intenzione di costruire la scheda, potresti trovare utili la copiatrice esagonale flash NOR e gli schizzi ad alta tensione dell'AVR.

Passaggio 16: fatto

Fatto
Fatto
Fatto
Fatto
Fatto
Fatto
Fatto
Fatto

Ho anche progettato alcune schede adattatrici quando si utilizzano chip non montati, ad esempio durante il breadboard.

- Adattatore ATtiny85 ICSP. Utilizzato per programmare un ATtiny85 autonomo.

- ATtiny84 a ATtiny85. Viene utilizzato sia per la programmazione ad alta tensione che collegato all'adattatore ATtiny85 ICSP.

- Adattatore NOR Flash.

Per vedere alcuni dei miei altri progetti, visita

Passaggio 17: versione precedente 1.3

Versione precedente 1.3
Versione precedente 1.3
Versione precedente 1.3
Versione precedente 1.3

Quelle sopra sono foto della versione 1.3. La versione 1.3 non ha USB seriale, fusibili ripristinabili e LED indicatori di funzione. Una variante della versione 1.3 utilizza un ATmega644pa (o 1284P)

Se sei interessato a creare la versione 1.3, inviami un messaggio (piuttosto che aggiungere un commento).

Consigliato: