su richiesta del Menniti ho eseguito questo test per quanto riguardano i problemi che alcuni hanno sull'uso dei 328P in standalone in particolare con sketch che usano la seriale.
Il 328P ha l'optiboot originale dell'IDE 0.22
Sulla Breadboard ho messo solo quarzo con rispettivi C e la pull-up sul reset
come adattatore USB Seriale uno dei miei fidati CA42 cinesi da 1 euro (semifalsi, nel senso che almeno hanno il prolific)
Come SO Win7-64bit
Sul micro uno sketch che stampa la temperatura su serial monitor a 9600. appena lancio il serial monitor leggo la temperatura. quando premo il reset si ferma tutto, e poi riparte regolarmente appena tolgo il dito dal reset.
Ho premuto il reset una decina di volte e il micro e' ripartito sempre regolarmente a fare i suoi lavori.
Invece di usare il reset ho eseguito le prove staccando i 5V al micro
Stessi risultati, riparte sempre tutto regolarmente
Ottimo quando si deve usare il micro per letture seriali di sensori solo x volte al giorno, lo si tiene completamente senza alimentazione, e lo si alimenta solo quando serve
Perdonami, forse non ho capito...ma che test è?
cioè io come altri il 328P in stand alone già lo usavo con gli sketch ed il bootloader della v.022, e non ho mai avuto problemi.
dov'è la prova da fare?
Ti rispondo io; è noto, e a me è successo, che i micro in stand alone, SE usati con il bootloader funzionante (cioè caricamento degli sketch via seriale, infatti sappiamo che se si mandano via ISP il BL non funziona più) possono manifestare un problema di malfunzionamento, spiegato da Astrobeed in altro Topic (se passa da qui magari ne rifà un cenno), cioè dopo il primo avvio, se si resetta il micro o si toglie l'alimentazione, lo sketch non parte più; questo problema stranamente si può manifestare ANCHE se il micro viene montato su Arduino (è successo anche questo a più di uno). Ad oggi non è stata trovata soluzione se non quella di usare il bootloader della 2009 che invece funziona sempre. Astrobeed ha chiarito che in realtà NON si cancella nulla, basta mandare una qualsiasi cosa via seriale e lo sketch riparte.
Ora questa problematica importa solo a chi ha reale necessità di avere il BL sul micro quando deve mantenere attivo il collegamento col PC (uso del serial monitor, p.es.), altrimenti il BL non serve ed il problema non esiste.
A me sta succedendo, ho provato più di un micro, ma non ho approfondito, ero curioso di sapere se il problema è generalizzato o random, evidentemente vale la seconda opzione.
Ora io chiedo a te, come prepari i tuoi chip in stand alone? Sei sicuro che il BL resti funzionante dopo il caricamento dello sketch? A cosa ti serve il BL in stand alone?
@ Testato: sei prezioso XD anche se ti avevo chiesto di non usare i tuoi fidati cin-cin ma di caricare lo sketch montando il chip su Arduino, non dovrebbe cambiare la cosa, però completerebbe le prove.
Ora ho capito il problema, è che Testato, non hai fatto riferimento all'inizio di questa discussione all'altra discussione in cui menniti ti chiede la prova.. poi hai scritto che hai messo il BL originale della 022, ma non quale hai messo.
magari aggiungi un link della discussione all'inizio, che sarebbe questo: Atmega328 bruciato - #42 by menniti - Generale - Arduino Forum
cmq ho cercato e l'ho trovata, per cui adesso so di che parlate.
Io personalmente non avevo mai riscontrato il problema perchè avendo una 2009, ho messo sempre il BL della 2009. Sinceramente quando ho cominciato a farmi le standalone, non avevo capito a fondo la funzione del BL, quindi, visto che gli sketch cmq erano piccoletti, lo mettevo...hai visto mai!
infatti poi non l'ho messo più, tanto non mi serviva.
Lo sketch l'ho caricato con Arduino, poi ho messo il micro gia' programmato sulla breadboard, e li' ho usato i cinesi.
Intendi usare il micro su bread sfruttando la seriale dell'8u2 ? se ti serve anche questo test lo faccio
No, non serve, pensavo usassi i cinesi per inviare lo sketch, avevo scordato che stavi facendo letture analogiche
Grazie!
E' una delle cose sulle quali dovrò accanirmi, il fatto che sia random non può dipendere dall'optiboot soltanto
Tornando al problema, visto che e' capitato anche su arduino, si puo' pensare a tolleranze dei micro ?
I miei sono polacchi ma funzionano.
Oltre a questi test posso portare la testimonianza di due miei progetti standalone funzionanti, anche se ora con la scoperta dell'optiloader, appena compro un micro in un decisecondo si ci ritrova sopra l'optifix
X Dab: hai fatto bene a mettere il link, per la questione della dichiarazione del bootloader invece ti sbagli, ho dichiarato di aver usato l'optiboot, che e' il nome del bootloader della UNO, il bootloader della 2009 non si chiama Optiboot
@ dab77: grazie del feedback e del link, in effetti Testato poteva semplicemente rispondere lì, ma lui è fissato con l'apertura dei Topic, fra non molto vedrai sul Forum roba tipo "[OT]Scusate, vado in bagno, poi torno" e dopo x tempo "[OT]sono tornato"
Quella discussione è seguita quindi se qualcun altro avesse avuto notizie le avrebbe postate lì, che vuoi farci? E' un bravo ragazzo, ma ognuno ha le sue esigenze
@ Testato: battute a parte sui MultiTopic (ecco, potresti aprire un Topic di Topic :D), TUTTI i miei micro sono polacchi, non ho altri fornitori, ne ho presi molti all'inizio dato il buon prezzo.
Testato:
X Dab: hai fatto bene a mettere il link, per la questione della dichiarazione del bootloader invece ti sbagli, ho dichiarato di aver usato l'optiboot, che e' il nome del bootloader della UNO, il bootloader della 2009 non si chiama Optiboot
Testato:
capisco, anche perche' le variabili in gioco sono:-
Tolleranze sui micro (se e' il micro che crea il probelma)
Tolleranze sulla pcb arduino (capacita' parassite piste, cose del genere)
Casino fatto dal 8u2 (e' dimostrato che e' il micro e non l'8u2 ad incantarsi ?)
attendo anche io intervento di astro
L'8u2 non può essere, visto che io ho avuto il problema anche in stand alone; però, inviando qualcosa via seriale (nel mio circuito ho realizzato una USB-serial con l'MCP2200) si dovrebbe sbloccare, secondo ciò che dice Astrobeed, quindi il problema sembrerebbe riguardare il dialogo con il convertitore e NON il convertitore che, ripeto, è completamente diverso.
Inviando un carattere sulla seriale si sblocca perché (e qui vi rimando alla mia analisi di stanotte dell'Optiboot) prima di avviare il blocco di codice che controlla i comandi arrivati via seriale, viene attivato il watchdog con periodo di 500 ms. Il controllo della seriale è un loop infinito, per cui probabilmente ciò crea l'attivazione del watchdog che vede il micro piantato nell'esecuzione infinita del loop. Inviando un carattere, si sblocca questo circolo vizioso dando qualcosa da processare all'algoritmo, per cui il watchdog non vede più il codice piantato.
Testato:
ma la questione piu' che il perche' si sblocca (a proposito complimenti per l'analisi che hai fatto sull'altro topic), e' il Perche' Si Blocca ?
Già, è un cavolo di mistero, ormai è deciso, domani dedico parte del tempo a questa cosa, vediamo che ne esce.
Probabilmente perché col reset il micro non reinizializza quel registro, che viene pulito manualmente con clr(reg_zero). Probabilmente solo l'assenza di tensione per un lungo periodo lo azzera completamente.
leo72:
Probabilmente perché col reset il micro non reinizializza quel registro, che viene pulito manualmente con clr(reg_zero). Probabilmente solo l'assenza di tensione per un lungo periodo lo azzera completamente.
Non credo, ricordo che chi lamentava questa cosa con Arduino ha tenuto un Topic per diversi giorni, lo avrà pur spento la notte! E se è così, e mi sa che hai ragione (almeno se è esatta la tua analisi) e che le prove che voglio fare io sono assolutamente inutili, bah, vedremo, certo non ci perdo la testa.
Allora tornerebbe vera quella voce che circolava tempo fa, e cioè che ci fosse un bug hardware proprio nell'inizializzazione dei registri da parte del micro. Forse un bug che ha colpito un certo lotto di micro, ecco perché alcuni hanno il problema, ed altri no.
leo72:
Allora tornerebbe vera quella voce che circolava tempo fa, e cioè che ci fosse un bug hardware proprio nell'inizializzazione dei registri da parte del micro. Forse un bug che ha colpito un certo lotto di micro, ecco perché alcuni hanno il problema, ed altri no.
Ah, questa non la sapevo, se così fosse a maggior ragione mi conviene lasciare il bootloader del 2009, non posso affidarmi al caso.