È abbastanza facile usare un chip Arduino autonomo. L'unica cosa delicata del chip utilizzato per le schede ufficiali è che sono fuse per utilizzare l'oscillatore esterno più veloce (e più preciso) montato sulla scheda. Questo vale anche quando si acquistano i chip sciolti, poiché la maggior parte viene rivenduta con l'intenzione di essere installata in una scheda Arduino per sostituire quella bruciata, ad eccezione forse di quelli di Digikey.
Avvertenze: Arduino è progettato come una scheda di prototipazione e poche cose fanno meglio di quanto non faccia in questo compito. Potresti voler lasciare il chip sulla scheda Arduino fino a quando non hai finito di progettare e testare il tuo circuito. Solo allora lo colleghi direttamente. Può essere utilizzato sul posto se si dispone di un circuito di clock, oppure è possibile cambiare i fusibili (vedere più avanti) e riprogrammare Arduino con un adattatore ISP e una velocità di clock di 8mhz (PlatformIO consente di farlo ( e consente di importazione di uno sketch di Arduino) - controlla la pagina dei loro documenti per il plugin Atmel AVR, ma puoi anche cercare una serie di guide su come aggiungere un file board ad Arduino per dirgli di usare l'opzione 8mhz per un chip nudo)
Se rimuovi il chip per utilizzarlo in un circuito diverso, è necessario aggiungere quel circuito di clock o far cambiare i suoi fusibili (ci penserò tra un minuto). Sarà anche difficile programmare, per una serie di motivi, quindi ti consigliamo di acquistare un po 'di hardware abbastanza economico:
Programmazione di un chip autonomo: la CPU di Arduino non è progettata in modo nativo per comunicare con un computer. Hai bisogno di un intermediario. Su Uno, questo viene fatto tramite un secondo chip Atmel con funzionalità USB e un bootloader sul chip principale. Quello che fa è che usa l'UART per il caricamento del programma mentre il chip USB converte i messaggi del PC in segnali UART. Dal momento che il bootloader è un po 'una seccatura quando il chip è da solo (poiché UART è esigente e l'installazione lo imposta per utilizzare un clock esterno come risultato), ti consigliamo di acquistare un programmatore ISP per Arduino (o segui lo schizzo e le istruzioni di Arduino-come-ISP per crearne uno tuo, che richiede un Arduino con chip presente, quindi avrai bisogno di un secondo per essere programmato).
Questi possono programmare ATMega 328 direttamente su SPI, senza un bootloader (ci sono molte istruzioni su Internet; per esempio, cerca "programma ATMega 328P nudo con USBAsp"). Ciò semplifica notevolmente la modifica e il debug del programma al di fuori del pop-out del chip e del ritorno nella scheda Arduino originale. È necessario anche uno per modificare le impostazioni dell'orologio se non si desidera utilizzare un cristallo esterno.
Se si desidera eseguire il debug del chip, è utile acquistare anche un adattatore FTDI o un altro convertitore da USB a UART. Si noti che senza la parte del circuito di reset della scheda (o ancora, aggiungendo la propria), ciò non consente comunque di programmare ATMega anche con il bootloader. Per questo, collegare i pin di terra, RX e TX all'adattatore. È possibile o meno voler collegare la linea VCC, ma si consiglia di non farlo se ci sono molte cose collegate al chip e / o ha il proprio alimentatore. Nota che RX e TX devono essere scambiati quando li colleghi; vale a dire, da RX a TX e da TX a RX: si desidera che il chip RX (riceva) quale sia l'adattatore TX (trasmissione) e viceversa.
Il circuito dell'orologio non è difficile da costruire, ma richiede alcuni componenti che potresti non avere. Quindi, per cambiare l'origine del clock , vai su http://www.engbedded.com/fusecalc/ e seleziona ATMega 328P. I valori predefiniti sono buoni, ma potresti voler abilitare EEPROM keep-on-erase e disabilitare l'orologio divide per 8 o regolare le impostazioni del brownout. Non toccare nient'altro (disabilitando reset o SPI o abilitando DebugWire si ottiene un "divertimento" che richiede un programmatore HV da risolvere). Al termine, incollare il comando fornito al comando AVRDude. Dovrai cambiare le opzioni -c (-p è già impostato su ATMega 328P, ma fallirà per i non-P 328 - non acquistarli), e forse aggiungere l'opzione -P (per Port). Non omettere l'opzione -u minuscola, altrimenti si rifiuterà di aggiornare i fusibili.
avrdude -p m328p -v -c usbasp -B 100 -u [add extras here: (-P <PORT>) <fuse set command here>]
Nota che se acquisti un USBASP (assicurati che abbia tre set di jumper!), Per quanto siano i miei programmatori preferiti, potrebbero non avere il firmware aggiornato che supporta l'opzione -B (di cui probabilmente avrai bisogno). Ciò significa che è necessario collegarlo a un Arduino tramite la porta di programmazione a sei pin, esattamente allo stesso modo in cui lo si utilizzerà per programmare il bootloader di Arduino, ma quindi utilizzare lo sketch Arduino-come-ISP per programmare il nuovo firmware al programmatore (cerca "aggiorna il firmware usbasp tramite arduino-as-isp")! Per riferimento, ciò significa di solito che il cavo è rivolto lontano dal corpo della scheda e probabilmente dovrai programmare lo schizzo primacollegamento del cavo. Abilitare anche il jumper power-from-programmer su USBASP (5V) e quello "autoprogrammazione". (vedi https://forum.arduino.cc/index.php?topic=560719.0 per l'ubicazione dei jumper di potenza e programma (JP2)).