Domanda:
Arduino Bootloader
Hristos
2009-11-11 22:44:13 UTC
view on stackexchange narkive permalink

Se aggiorno il mio arduino da ATMega 168 a ATMega 328, potrò utilizzare ATMega 168 come un chip di serie o il bootloader lo proibirà? In altre parole, sarò in grado di sovrascrivere il bootloader, con il mio programmatore ISP usbtiny, sul 168 da utilizzare come chip stock Atmel con Avrdude? Ci sono passaggi speciali che dovrei intraprendere come resettare i fusibili?

Tre risposte:
Lou
2009-11-11 23:19:03 UTC
view on stackexchange narkive permalink

Sì, puoi riprogrammare il chip. Ho fatto lo stesso quando ho aggiornato il mio Arduino da 168 a 328 due settimane fa. Il chip funziona alla grande in un'altra applicazione.

Tieni presente, ovviamente, che potresti dover cambiare i fusibili a seconda del tipo di scheda che hai e su quale tipo di scheda la stai spostando. Il più comune, immagino (e quelli che ho dovuto resettare) riguardava il passaggio all'oscillatore interno e l'impostazione dei divisori invece di utilizzare un cristallo esterno. Non esiste un elenco completo delle modifiche ai fusibili, tuttavia, perché dipende dal tipo di circuito su cui stai spostando il chip. YMMV.

--Edit - Come ha detto JohnC, sì, la riprogrammazione dei fusibili dovrebbe essere eseguita PRIMA di rimuoverli da Arduino. Poiché Arduino è fuso per utilizzare un oscillatore esterno, il chip non funzionerà se posizionato su una scheda senza oscillatore.

JohnC
2009-11-11 23:48:52 UTC
view on stackexchange narkive permalink

Ripristino le impostazioni di fabbrica dei fusibili mentre il 168 è ancora nella scheda Arduino. Se i fusibili sono configurati per un oscillatore esterno (come lo sono in Arduino) e non ce n'è uno, non sarà possibile riprogrammare senza utilizzare un programmatore ad alta tensione. L'impostazione delle impostazioni di fabbrica imposta il chip in modo che utilizzi un oscillatore interno.

edebill
2009-11-15 21:21:56 UTC
view on stackexchange narkive permalink

L'ho fatto: ho preso il 168 da un arduino, l'ho programmato con USBtinyISP. Avrai bisogno di una qualche forma di scheda di destinazione per l'ISP USBtiny. Ho usato uno di questi da Evil Mad Scientist Labs, insieme a un socket ZIF da Sparkfun. Il circuito effettivo necessario per programmarli è abbastanza semplice da poterlo costruire su una scheda prototipi senza troppi problemi. EMSL ha anche un pratico articolo su ciò che deve essere quel circuito in modo che tu possa fare il fai-da-te.

Affinché una scheda target funzioni, deve essere impostata con almeno un'approssimazione di come il chip è già fuso. Ciò significa avere la giusta quantità di potenza (se il circuito di rilevamento del brownout è abilitato) e avere un oscillatore se il chip è impostato per usarne uno esterno (AFAIK il chip ignorerà un oscillatore esterno se non è fuso per usarlo). È necessario prima impostare i fusibili per utilizzare l'oscillatore interno prima di rimuoverlo da Arduino o mettere un oscillatore sulla scheda di destinazione. Non penso che Arduino sia dotato di rilevamento del brownout abilitato, quindi probabilmente sei al sicuro su questo punto. Suggerirei di utilizzare semplicemente il ponticello su USBtiny per fornire alimentazione alla scheda di destinazione, piuttosto che preoccuparsi di un alimentatore esterno.

Non posso raccomandare di utilizzare la scheda Arduino come target del programmatore perché ha una presa normale invece di una presa ZIF. Trovo che sia molto meno probabile che maneggi i pin sul mio MCU quando uso uno zoccolo ZIF. Entrare e uscire da una breadboard è già abbastanza brutto. Sparkfun sembra avere i prezzi più economici sui socket ZIF, se decidi di seguire quella strada.

Dato che hai già un programmatore ISP, puoi risparmiare un po 'di soldi sul tuo chip 328 e acquistarne uno senza Arduino boot loader. Usa il software Arduino per masterizzare il bootloader appropriato una volta installato.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 2.0 con cui è distribuito.
Loading...