Go Down

Topic: Arduino crash? (Read 791 times) previous topic - next topic

coso2

Salve, ho un Arduino Mega 2560.
Sto scrivendo un firmware per controllare dei led rgb e dei registri di shift da pc tramite l'interfaccia seriale che lavora a 115200 bps.
Facendo delle prove funziona tutto fino a che l'Arduino si resetta ed il led del pin 13 comincia a lampeggiare molto velocemente. Se premo e rilascio il tasto di reset ricomincia a lampeggiare velocemente e il problema persiste fino a che non tolgo l'alimentazione. Questo problema si manifesta inaspettatamente, può avvenire dopo 15000 comandi inviati come anche solo dopo 4000. Ho provato a vedere se magari non fosse un problema di ram, però mi sembra stabile fino alla fine (sui 4300 byte liberi). Ho come l'impressione che si riavvii, carichi il bootloader e si blocchi dentro di esso impedendo di ripartire! Ho pensato potesse anche essere un problema di alimentazione, ma niente.
Qualcuno ha mai riscontrato un problema simile?
Grazie per l'aiuto.

coso2

leo72

Sketch in uso.
Schema del circuito in uso.

coso2

Schema: 3 led rgb collegati ai pin che vanno dal 4 al 12 (r:4, g:5, b:6 ...) e due shift register tipo 74HC595 collegati con Data-clock-latch tra i piedini 24->29.
Sketch: non saprei cosa dire al riguardo, essendo scritto interamente da me.
Dalle prove che sto effettuando in questo momento sto ottenendo esiti positivi. A quanto pare, forse, andava in overflow il buffer in uscita dell'Arduino. La riscrittura di quelle funzioni era già prevista da tempo per adeguarlo alle caratteristiche del mio progetto. Farò ulteriori prove per cercare di stabilire cosa possa mandare in overflow il buffer e cosa succede se ciò avviene.

uwefed


Schema: 3 led rgb collegati ai pin che vanno dal 4 al 12 (r:4, g:5, b:6 ...)


Niente Resistenze sui LED?
Ciao Uwe

PaoloP


Sketch: non saprei cosa dire al riguardo, essendo scritto interamente da me.

Allora figurati noi cosa potremo dire al riguardo visto che non lo conosciamo.
Se magari lo copi e incolli sul forum, forse potremo darti una mano.

coso2



Schema: 3 led rgb collegati ai pin che vanno dal 4 al 12 (r:4, g:5, b:6 ...)


Niente Resistenze sui LED?
Ciao Uwe


Resistenze presenti. Il cablaggio posso affermare sia perfetto, come la logica di controllo del firmware.

Ho fatto un'ultima prova eliminando qualsiasi risposta che l' Arduino possa inviare al pc. A quanto pare era proprio il buffer dell' Arduino. Non riesce a gestire velocemente la mole di informazioni da inviare.

Dopo aver usato il forum per cercare risposte ed essendomi risposto da solo, ringrazio tutti per l'attenzione e spero presto di presentare a tutti voi ciò su cui sto lavorando da più di un anno.

Se volessi mandare in crash il mio arduino, adesso so che posso farlo mandando in overflow il buffer della Serial!!!

leo72

Secondo me l'elettromigrazione di parte degli elettroni in transito sulla linea del led 13 ha disturbato i segnali della vicina linea RX della seriale. Avvicinando o allontanando la mano si varia l'EMF sul pin correlato modificando lo stato del bit alto in basso

Go Up