Pagina 1 di 1

Problema alimentazione su micro

MessaggioInviato: 7 lug 2014, 19:32
da synth
Ho un problema su un programma scritto in c su un STM32, ma credo sia un problema di carattere generale, che mi capita non di rado.

Utilizzo l'evaluation board ST32f discovery, in qui c'è tutto ciò che serve, compreso il programmatore.

Collego la board al PC con il cavo USB, faccio la compilazione, scrivo sul micro e il programma funziona alla perfezione. Anche se do il riavvio manuale con un pulsante, poi gira tutto bene.
A questo punto scollego l'USB e ovviamente si spegne il micro perché è da li che è alimentato.
Se poi ricollego l'USB arrivando l'alimentazione si riaccende il micro, ma stavolta il programma non funziona più come dovrebbe. In particolare ha dei problemi sulle porte GPIO.

A cosa può essere dovuto tale problema? Attaccare e staccare l'USB equivale solo a togliere l'alimentazione, e poi ridarla. perché dovrebbe cambiare il comportamento del codice? Vi è mai capitato?

Re: Problema alimentazione su micro

MessaggioInviato: 8 lug 2014, 0:29
da WALTERmwp
Ciao Foto Utentesynth, questa ...
synth ha scritto:l'evaluation board ST32f discovery
... non la conosco proprio ma azzardo ugualmente qualche ipotesi, in attesa che arrivi chi ne sa sicuramente di piu'.
Un controllo tramite "brown-out detection" potrebbe essere d'aiuto ?
Le variabili che utilizzi sono tutte inizializzate ad un valore certo ?
Il programma utilizza variabili che a fronte di una delle due differenti situazioni potrebbero assumere valori imprevisti ?
Ma questo ...
synth ha scritto:Anche se do il riavvio manuale con un pulsante, poi gira tutto bene.
... e' inteso come "reset" del microcontrollore ?
Fare un reset e' una cosa diversa, probabilmente, rispetto a togliere alimentazione.
Quando "carichi" il programma esegui solo il trasferimento di questo o il software (l'ambiente di sviluppo), implicitamente, provvede ad una "inizializzazione" di un'area di memoria che potrebbe trovarsi in condizioni ben diverse dopo un power-off/power-on "traumatico" ?
Lo so, sono solo domande ma intanto potrebbero suggerire qualche indizio.

Saluti

Re: Problema alimentazione su micro

MessaggioInviato: 8 lug 2014, 14:41
da synth
WALTERmwp ha scritto:... e' inteso come "reset" del microcontrollore ?

Si, c'è un pulsante sulla board che resetta il microcontrollore. Quando resetto in questo modo funziona tutto. Il problema è quando tolgo e ridò l'alimentazione.

WALTERmwp ha scritto:Un controllo tramite "brown-out detection" potrebbe essere d'aiuto ?

Che cosa è il brown-out detection?

WALTERmwp ha scritto:Le variabili che utilizzi sono tutte inizializzate ad un valore certo ?

Quasi tutte, ma alcune variabili non sono inizializzate, poiché il loro valore viene scritto nel corso del programma.

WALTERmwp ha scritto:Quando "carichi" il programma esegui solo il trasferimento di questo o il software (l'ambiente di sviluppo), implicitamente, provvede ad una "inizializzazione" di un'area di memoria che potrebbe trovarsi in condizioni ben diverse dopo un power-off/power-on "traumatico" ?

Non lo so! Non so bene come agisce il software con il programmatore... Controllo se c'è un manuale

Re: Problema alimentazione su micro

MessaggioInviato: 8 lug 2014, 14:54
da EcoTan
Rispondo confusamente ma sulla base di qualche esperienza:

il micro e il PC
O
sono collegati
O
sono scollegati.

Quando sono collegati, sul PC deve essere attivo l'ambiente di sviluppo dedicato al micro e solitamente il colore di qualche iconcina denota che si vedono fra loro.

Quando sono scollegati ALLORA DEVI STACCARE IL CAVO DI COLLEGAMENTO.

Brown out poi significa che la tensione di alimentazione non è sufficiente per garantire il funzionamento del micro.

Re: Problema alimentazione su micro

MessaggioInviato: 8 lug 2014, 14:56
da dean95
Che cosa è il brown-out detection?


Quando la tensione di alimentazione scende al di sotto di 4V,il microcontrollore viene resettato.
il PIC alimentato a questa tensione non funziona correttamente,è una "forma di protezione".
Questo reset viene impostato nella configuration word.

Re: Problema alimentazione su micro

MessaggioInviato: 8 lug 2014, 14:59
da TardoFreak
Io ho quella scheda (o meglio, tutta la serie di quelle schede) ma questa cosa non mi è mai capitata.
Prova a ricaricarci il programma di demo e vedere se lo fa ancora.

Re: Problema alimentazione su micro

MessaggioInviato: 8 lug 2014, 15:11
da WALTERmwp
synth ha scritto:Quando resetto in questo modo funziona tutto. Il problema è quando tolgo e ridò l'alimentazione.
... si, questo si era capito; pensando quindi ad una precaria relazione tra "stato_funzionamento_programma" e "stato_alimentazione" nel momento in cui inserisci il connettore, ho immaginato, per esempio, che un controllo sulla stessa non potesse "far male".
Infatti, come e' stato, gia' ripreso questo ...
synth ha scritto:Che cosa è il brown-out detection?
... e' un controllo sul livello dell'alimentazione che porta al reset del programma quando la tensione scende al di sotto di una soglia di "minimo"; il programma viene "riattivato" quando la tensione sale e supera una soglia superiore.
Di fatto una sorta di isteresi.
E' funzionale alla prevenzione di comportamenti anomali da parte del programma.

Saluti

p.s.
ho visto l'intervento di Foto UtenteTardoFreak ... adesso ti "sistema" lui ...

Re: Problema alimentazione su micro

MessaggioInviato: 8 lug 2014, 15:13
da TardoFreak
dean95 ha scritto:...il PIC alimentato a questa tensione ...

L' STM32 non è un PIC [-X ma un Cortex-M3

Re: Problema alimentazione su micro

MessaggioInviato: 8 lug 2014, 15:18
da WALTERmwp
... tra l'altro, @synth, se cerchi in rete, di informazioni ne trovi in merito al "brown-out", in generale, ... anche
qui, per esempio ... e a prescindere dal tipo di microcontrollore ...

Saluti