Ciao a tutti,
ho cercato un po' in rete, ma non ho trovato risposte chiare, o perlomeno io non ho capito...
Vorrei programmare un arduino nano senza il bootloader, perchè ho necessità dell'immediato funzionamento all'alimentazione della scheda.
Credo di aver capito che posso farlo con un'altro arduino utilizzando ICSP, ma per quanto riguarda il programma, viene fatto allo stesso modo? E per l'impostazione dei fuse etc bisogna inserire il solo processore? In questo caso quindi non arduino nano, ma atmega328?
riprendo la discussione perchè dopo vari tentativi, non sono riuscito a caricare lo sketch senza boot.
Ho letto più volte la guida suggerita da Guglielmo, mi sembra di fare tutto correttamente…
Ho caricato il programma ArduinoISP su un arduino nano, che utilizzo come programmatore ISP. Ho collegato il connettore ICSP rispettivamente, compreso il pin 10 del programmatore che comanda il reset della scheda da programmare.
A questo punto nella IDE arduino vado a impostare il programmatore “Arduino as ISP” e come scheda da programmare ho messo MiniCore Atmega328; ma quando vado a caricare il programma ricevo come errore che la porta selezionata non esiste o che la scheda non è presente.
La scheda dove devo caricare lo sketch è sempre un arduino nano, ci possono essere problemi perchè il processore è collegato alla shield?
Ho provato anche a inserire il condensatore nel pin del reset come suggerito nella guida, ma non è quello il problema; cosa sbaglio?
Nel senso che hai collegato insieme i due connettori ICSP ? … se si, non e’ quello in sistema giusto, devi collegare il connettore ICSP della scheda che vuoi programmare a questi pin dell’arduinoISP:
L’immagine l’ho trovata in rete, per due nano, dato che usi un nano come programmatore, ma se anche usi il nano per programmare un’Arduino “standard”. non cambia nulla.
Io ho “sacrificato” (si fa per dire) un nano trasformandolo in programmatore ISP, incluso il cambio tensione 5V/3.3V (nel caso debba programmare roba a 3.3V), e funziona da anni senza problemi.
Se il problema non e’ quello, quali errori ti da ?
si, io intendevo che ho collegato insieme i connettori ICSP, tranne il reset; ma i pin che hai riportato non sono gli stessi del connettore ICSP? Mi risulta che il pin 10 va al reset, il pin 11 è il MOSI, il pin 12 MISO e il pin 13 il CLK, ma questi stessi pin sono quelli del connettore ICSP, sbaglio?
No, non devi collegare insieme i connettori ICSP! Il connettore serve solo per “ricevere” la programmazione. I segnali vengono forniti da altri piedini.
La soluzione più semplice, però, è acquistare un economicissimo programmatore USBASP, anche perché mi capitò di riprogrammare il programmatore! Da Aliexpress ne trovi a pochi euro.
ho trovato il problema, adesso me lo ha caricato, nelle impostazioni avevo lasciato il processore di default, il 328P - 328PA, mentre controllando il nano ho visto c’è montato un 328PB, ho impostato quello ed è stato caricato.
C’è un warning nel risultato, è normale? “Warning: no eeprom data found in Intel Hex file C:\Users\Utente\AppData\Local\Temp….”
Datman, perchè dici che non va bene collegare i connettori ICSP? i pin corrispondono a quelli numerati sulla scheda (tranne il pin10 che fa il reset). Comunque se costa così poco il programmatore USBASP provvedo a comprarlo
Adesso sto indagando perchè non ho stabilità nell’eseguire il codice, ci sono accorgimenti diversi rispetto a uno sketch caricato con bootloader? Io ho impostato il quarzo esterno da 16 MHz, come dovrebbe essere sulla shield arduino nano, è corretto? Intanto controllo meglio il tutto.
Ho scritto stabilità, ma non è corretto, in pratica ho un incremento di una variabile tramite interrupt, che deve fare una cosa quando arriva a 20, ma in modo variabile, già con due, tre o pochi impulsi, mi arriva a 20… caricando il programma col bootloader funziona correttamente.
Ci può incastrare l'impostazione del quarzo? Magari nella shield non è da 16 MHz? Non è leggibile, è un quarzo mini