Digital Output all'accensione
Moderatore:
Paolino
11 messaggi
• Pagina 1 di 2 • 1, 2
0
voti
Durante la fase di accensione di una MCU (mi riferisco in particolare a un pic32), allorchè la tensione di alimentazione Vdd è incognita seppur limitata, è possibile che si presenti una apprezzabile tensione positiva (circa 1V) su un pin che verrà configurato dal software come Digital Output? In pratica mi preoccupa il fatto che, in occasione di una riaccensione, venga emesso un comando indesiderato (cosa che infatti si verifica).
0
voti
E' abbastanza strano, di solito i pin GPIO all'accensione li danno come "alta impedenza" finche' non comandati ... forse un disturbo, magari risolvibile con una resistenza di pulldown ? (se piloti le basi dei transistor o i gate dei mosfet, le resistenze di spegnimento ci dovrebbero sempre essere, io le metto a prescindere)
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
-

Etemenanki
9.517 3 6 10 - Master

- Messaggi: 5940
- Iscritto il: 2 apr 2021, 23:42
- Località: Dalle parti di un grande lago ... :)
0
voti
Durante e dopo la fase di accensione, sei in POR (power-on-reset).
Fino al momento in cui il software configura i GPIO, il pin è ad alta impedenza (l'equivalente di un input digitale o analogico, a dipendenza del pin stesso).
Se non è controllato tramite un pull-up o pull-down può succedere di tutto.
Se il microcontroller lo supporta, puoi anche sequenzializzare l'accensione, dando tensione prima al core e poi, quando tutto è attivo agli I/O.
E se l'applicazione è davvero critica, puoi mettere un buffer in serie al GPIO di quelli usati come level shifter.
Il lato uscita lo accendi solo dopo che il micro è attivo e stabile. Ce ne sono di quelli che garantiscono l'assenza di glitches indipendentemente dalla sequenza di attivazione. Al momento non lo trovo, ma se ti interessa dopo guardo che IC è.
Boiler
Fino al momento in cui il software configura i GPIO, il pin è ad alta impedenza (l'equivalente di un input digitale o analogico, a dipendenza del pin stesso).
Se non è controllato tramite un pull-up o pull-down può succedere di tutto.
Se il microcontroller lo supporta, puoi anche sequenzializzare l'accensione, dando tensione prima al core e poi, quando tutto è attivo agli I/O.
E se l'applicazione è davvero critica, puoi mettere un buffer in serie al GPIO di quelli usati come level shifter.
Il lato uscita lo accendi solo dopo che il micro è attivo e stabile. Ce ne sono di quelli che garantiscono l'assenza di glitches indipendentemente dalla sequenza di attivazione. Al momento non lo trovo, ma se ti interessa dopo guardo che IC è.
Boiler
0
voti
Qui sotto metto il collegamento a due discussioni che potrebbero interessare.
viewtopic.php?f=1&t=87829
viewtopic.php?f=1&t=84958
Si tratta di una soluzione Hw per mettere al riparo una uscita critica da qualsiasi anomalia del Micro.
Ciao
viewtopic.php?f=1&t=87829
viewtopic.php?f=1&t=84958
Si tratta di una soluzione Hw per mettere al riparo una uscita critica da qualsiasi anomalia del Micro.
Ciao
600 Elettra
0
voti
Il pin in questione ha una decina di funzioni alternative e fra queste non vi è l'ingresso analogico. Non ci ho mai capito molto sulla configurazione delle porte, nel programma ho messo soltanto una istruzione TRISB (per porta B). Ho messo una resistenza di pull-down da 8,2k ed ho tolto, per prova, l'unica istruzione che può mettere quella uscita ON. Il pin è collegato, tramite una resistenza, al gate di un triac che a sua volta alimenta un trasformatore 220/12V. Mettendo sulla 12V un led con una resistenza in serie, all'atto dell'alimentazione il led dà un guizzo quasi subito. Ripetendo la manovra non lo fa più, poi a riposo riprende. L'alimentatore è capacitivo da rete, quindi partenza lenta, e la massa della MCU sta sul neutro (o sulla fase ma in tal caso non funziona perché sincronizza sulla semionda sbagliata). Domanda: la causa può risiedere nel Triac che innesca per dv/dt ? È da 8 amp 800 V, forse andrebbe bene 4 amp 600 V ?
0
voti
EcoTan ha scritto: la causa può risiedere nel Triac che innesca per dv/dt ?
Purtroppo no. Intanto il comando indesiderato esce con un piccolo ritardo rispetto all'inserzione su rete, e poi per maggior sicurezza ho provato a togliere la MCU dal suo zoccolo, e naturalmente il fenomeno è sparito. La MCU è pic32 MX110F016B di Microchip e il datasheet è qui: https://ww1.microchip.com/downloads/aem ... 01168L.pdf
Il pin è 17, porta RB8, ed ho parecchi pin liberi per cui non sarebbe un problema doverlo spostare, ma solo una grandissima seccatura. Mi consigliate di provare?
La configurazione dei fuses è fatta mediante una serie di #PRAGMA CONFIG per 50 MHz che è il massimo, e il programma non prevede nulla come configurazione, attesa del pll lock o altro, ha soltanto una TRISB come già detto.
0
voti
EcoTan ha scritto:Il pin è 17, porta RB8, ed ho parecchi pin liberi per cui non sarebbe un problema doverlo spostare, ma solo una grandissima seccatura.
Naturalmente non ho resistito ed ho già provato a spostare sul pin accanto cioè da pin 17 a pin 18 (evviva le millpunti).
A posto!
I full pin name sono:
17 TCK/RPB8/SCL1/CTED10/PMD4/RB8
18 TDO/RPB9/SDA1/CTED4/PMD3/RB9
Però 'sti pin multifunzione sono un vero rompicapo.
0
voti
Quei pin sono elettricamente equivalenti, ma sono anche parte dell'interfaccia JTAG e TDO è un'uscita.
Non la conosco bene, visto che ormai uso solo Serial Wire, ma può darsi che dopo il power-on-reset sia attiva fino alla configurazione da parte del codice utente e che TDO assuma uno stato che causa il comportamento che vedi.
Boiler
Non la conosco bene, visto che ormai uso solo Serial Wire, ma può darsi che dopo il power-on-reset sia attiva fino alla configurazione da parte del codice utente e che TDO assuma uno stato che causa il comportamento che vedi.
Boiler
11 messaggi
• Pagina 1 di 2 • 1, 2
Torna a Realizzazioni, interfacciamento e nozioni generali.
Chi c’è in linea
Visitano il forum: Nessuno e 14 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)




