Ho dei problemi con un Arduino Nano che mi è arrivato provvisto del nuovo microcontrollore nominato 328PB (con l'aggiunta della "B").
Avendone 4 ho provato a fare la prova con tutti, ma due presentano il problema per ora.
Tengo a precisare che quelli che vanno sono di un'altra partita ordinati successivamente...
Uso il core "MiniCore" che mi permette di programmare questa versione nuova del chip...
Il problema degli Arduino incriminati succede durante la programmazione, quando il pin GPIO D4 è alto (pull up o connesso a +5v) blocca il trasferimento del programma.
Vedo che il PC scrive i dati seriali ma non riceve il feedback e non parte.
Ho scoperto che se abilito i pin GPIO da 2 a 5 a +5V riesco a programmarlo.
Ho scoperto che quando fallisce la programmazione il micro si blocca e devo resettarlo manualmente...
Come se ci fosse un codice binario SEGRETO che fa pasticci...
Ho già provato a ricaricare il bootloader ma non funziona... Bho
Questo è il messaggio d'errore:
Arduino:1.8.19 (Windows 10), Scheda:"ATmega328, Yes (UART1 328PB only), EEPROM retained, Default, 328PB, BOD 2.7V, LTO enabled, External 16 MHz"
Lo sketch usa 2348 byte (7%) dello spazio disponibile per i programmi. Il massimo è 32384 byte.
Le variabili globali usano 215 byte (10%) di memoria dinamica, lasciando altri 1833 byte liberi per le variabili locali. Il massimo è 2048 byte.
avrdude warning: attempt 1 of 10: not in sync
avrdude warning: attempt 2 of 10: not in sync
avrdude warning: attempt 3 of 10: not in sync
avrdude warning: attempt 4 of 10: not in sync
avrdude warning: attempt 5 of 10: not in sync
avrdude warning: attempt 6 of 10: not in sync
avrdude warning: attempt 7 of 10: not in sync
avrdude warning: attempt 8 of 10: not in sync
avrdude warning: attempt 9 of 10: not in sync
avrdude warning: attempt 10 of 10: not in sync
avrdude warning: programmer is not responding; try -xstrict and/or vary -xdelay=100
avrdude error: unable to open programmer urclock on port COM6
avrdude error: unable to open programmer urclock on port COM6
Qualche consiglio?
E' un difetto del chip?
Possibile su due uguali?
Intanto NON mi sembra che Arduino produca Nano con 328PB, quindi ... che scheda stai usando (link)?
Poi ... tu sai che il bootloader si può ricaricare sugli AVR solo via programmatore ICSP e non via la USB vero? Quindi, che programmatore ICSP hai usato? Come lo hai collegato?
Ho visto che dalla versione 3 del MiniCore di MCUdude sta usando l'urboot al posto dell'optiboot e che l'urboot è compatibile con avrdude dalla versione 7.1 in su.
Controlla di avere avrdude aggiornato oppure scegli l'optiboot.
Aha ... si, mi fai venire in mente che in passato anche altri utenti hanno avuto problemi con urboot (che viene dichiarato compatibile con optiboot, ma non lo è al 100%).
Su Aliexpress ci sono dei venditori che ti vendono il nano col PB... è come se non sapessero che il PB è diverso dal P ma loro lo mettono senza avvisare...
AVRdude è un programma che si occupa di effettuare l'upload del codice sulla scheda, viene richiamato dall'IDE tramite riga di comando.
Nel mio PC si trova nel percorso C:\Users<nome utente>\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17\bin
E come vedi è la versione 6.3.0 rilasciata il 16 febbraio 2016.
Qui trovi le versioni aggiornate: Releases · avrdudes/avrdude · GitHub
Comunque ti consiglio di caricare il bootloader optiboot piùttosco che modificare AVRdude.
Cioè la pratica che faccio è quella di caricare il bootloader "classico" collegando l'Arduino as ISP al target e fare "Carica bootloader"... come faccio a caricare un bootloader diverso da quello che l'IDE mi mette a disposizione?
Ho installato il MiniCore di MCdude sull'IDE 2.3.2 e nel package che ha scaricato ho notato che si porta appresso anche AVRdude 7.2 arduino edition. La sottodirectory del tools avrdude si chiama "7.2-arduino.1".
Nella directory hardware dove c'è il core vero, nel file board.txt c'è la definizione del micro
I pin della seriale 1 (quella aggiuntiva) del 328PB sono il PE0 e il PE1, D23 e D24, che non sono presenti nella nano standard poiche non esistono sul 328P.
Non è che nella tua scheda piuttosto che aggiugerli li hanno collegati ad altri pin, ad esempio al 4?
Hai uno schema oppure una foto a buona risoluzione della scheda col PB?