Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Problema alimentazione su micro

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] Problema alimentazione su micro

Messaggioda Foto Utentesynth » 7 lug 2014, 19:32

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?
Avatar utente
Foto Utentesynth
0 3
 
Messaggi: 13
Iscritto il: 18 mag 2013, 15:14

1
voti

[2] Re: Problema alimentazione su micro

Messaggioda Foto UtenteWALTERmwp » 8 lug 2014, 0:29

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
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
30,2k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 8981
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

0
voti

[3] Re: Problema alimentazione su micro

Messaggioda Foto Utentesynth » 8 lug 2014, 14:41

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
Avatar utente
Foto Utentesynth
0 3
 
Messaggi: 13
Iscritto il: 18 mag 2013, 15:14

1
voti

[4] Re: Problema alimentazione su micro

Messaggioda Foto UtenteEcoTan » 8 lug 2014, 14:54

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.
Avatar utente
Foto UtenteEcoTan
7.720 4 12 13
Expert EY
Expert EY
 
Messaggi: 5420
Iscritto il: 29 gen 2014, 8:54

0
voti

[5] Re: Problema alimentazione su micro

Messaggioda Foto Utentedean95 » 8 lug 2014, 14:56

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.
Avatar utente
Foto Utentedean95
262 1 5 8
Sostenitore
Sostenitore
 
Messaggi: 954
Iscritto il: 20 ago 2010, 17:21

0
voti

[6] Re: Problema alimentazione su micro

Messaggioda Foto UtenteTardoFreak » 8 lug 2014, 14:59

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.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[7] Re: Problema alimentazione su micro

Messaggioda Foto UtenteWALTERmwp » 8 lug 2014, 15:11

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 ...
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
30,2k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 8981
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

0
voti

[8] Re: Problema alimentazione su micro

Messaggioda Foto UtenteTardoFreak » 8 lug 2014, 15:13

dean95 ha scritto:...il PIC alimentato a questa tensione ...

L' STM32 non è un PIC [-X ma un Cortex-M3
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[9] Re: Problema alimentazione su micro

Messaggioda Foto UtenteWALTERmwp » 8 lug 2014, 15:18

... 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
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
30,2k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 8981
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino


Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti