Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Rendere robusto & universale ingresso microcontroller

Elettronica lineare e digitale: didattica ed applicazioni

Moderatori: Foto Utentecarloc, Foto Utenteg.schgor, Foto UtenteBrunoValente, Foto UtenteIsidoroKZ

0
voti

[1] Rendere robusto & universale ingresso microcontroller

Messaggioda Foto Utenteboiler » 22 dic 2025, 22:58

Devo aggiungere un paio di ingressi digitali ad un sistema basato su un microcontroller.
È una richiesta per "possibili esigenze future", insomma non si sa se e come verranno usati.
Voglio realizzare qualcosa che sia al contempo universale e robusto.

Questa la soluzione alla quale sto pensando. Avete voglia di darci un'occhiata e dirmi se vedete punti deboli o possibili migliorie?



  • il lato microcontroller e il lato ingressi sono galvanicamente separati da un piccolo DC/DC
  • ogni canale è isolato dagli altri, insomma quello che vedete viene ripetuto completamente per ogni canale
  • l'interfaccia esterna è costituita dall'ingresso digitale, dal suo riferimento (GND) e da 5V ausiliari dai quali si possono prelevare 100 mA (per esempio per alimentare il pull-up di un tasto o un piccolo circuito che generi il segnale)
  • il segnale d'ingresso può avere un livello logico alto tra 3.6 V e 24 V (circa)
  • l'isolatore digitale ha un trigger di schmitt in ingresso e fornisce quindi sempre un livello logico corretto al microcontroller (che poi abbia senso o meno è un altro discorso :mrgreen: )

Datasheets dei componenti selezionati, per vostra comodità:
https://ww1.microchip.com/downloads/en/ ... ic20xx.pdf
https://www.ti.com/lit/ds/symlink/iso6520.pdf

Grazie, Boiler :ok:
Avatar utente
Foto Utenteboiler
26,4k 5 9 13
G.Master EY
G.Master EY
 
Messaggi: 5599
Iscritto il: 9 nov 2011, 12:27

1
voti

[2] Re: Rendere robusto & universale ingresso microcontroller

Messaggioda Foto UtenteEtemenanki » 22 dic 2025, 23:28

Mi vengono un paio di considerazioni cosi al volo, non sapendo quanto possano essere importanti nel tuo circuito, te le espongo semplicemente e poi decidi tu ovviamente.

Per le uscite, ha un preciso scopo l'usare dei convertitori DC-DC ? ... tieni presente che i loro cicli accensione/spegnimento non sono istantanei, e molto probabilmente sono pure parecchio piu lenti della commutazione di un'opto, o di un optomos, peraltro se ce ne sono tanti, la spesa per i convertitori DC-DC sale parecchio, mentre usando opto o optomos, puoi usare un solo convertitore isolato DC-DC da 2 o 3 W per alimentarci la parte di uscita di tutti gli opto (salvo che, ovviamente, la tua necessita' sia quella di avere ogni singola uscita galvanicamente isolata anche rispetto a tutte le altre, oltre che fra uscita e logica, ma anche in questo caso gli opto avrebbero commutazioni piu rapide, e l'usare una serie di convertitori DC=DC da 500mW o simili per alimentare separatamente le varie parti di uscita degli opto non alzerebbe i costi piu di tanto rispetto all'usarli in modo diretto)

Lato ingressi, andrei lo stesso di opto, al limite pilotati da un transistor per garantire il range di ingresso 3/24 V (o anche di piu, volendo), qui non servirebbero neppure i DC-DC, dato che l'alimentazione verrebbe dal segnale di ingresso.

Per il trigger, ma gli ingressi delle MCU non hanno gia tale funzione ?
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
Avatar utente
Foto UtenteEtemenanki
9.507 3 6 10
Master
Master
 
Messaggi: 5933
Iscritto il: 2 apr 2021, 23:42
Località: Dalle parti di un grande lago ... :)

1
voti

[3] Re: Rendere robusto & universale ingresso microcontroller

Messaggioda Foto Utentebanjoman » 22 dic 2025, 23:59

Usare dei trasformatori d'impulsi? Sono piccolissimi (9x10x6 mm) e ce ne sono di tutti i tipi. Io ho usato quelli della Murata serie DA100, tipicamente usati nell'audio S/PDIF. Ovviamente ci va qualche componente passivo di contorno (resistenza, condensatore, diodo zener ecc..) ma il loro costo e' irrisorio.
Quello che costa di piu' e' il traformatorino, diciamo 0,8/1 euro l'uno.
Se funziona quasi bene, è tutto sbagliato. A.Savatteri/M.Mazza
Avatar utente
Foto Utentebanjoman
12,2k 5 11 12
G.Master EY
G.Master EY
 
Messaggi: 1621
Iscritto il: 19 set 2013, 19:27

0
voti

[4] Re: Rendere robusto & universale ingresso microcontroller

Messaggioda Foto Utenteboiler » 23 dic 2025, 0:15

Grazie per i commenti!

Uscite non ce ne sono, i DC/DC sono solo per generare la tensione ausiliaria per il lato esterno degli ingressi. E sì, voglio avere tutti i canali indipendenti. Altrimenti facciamo una porcheria.

Usare il segnale d'ingresso come alimentazione va contro il paradigma dell'universalità. Quanta corrente posso assorbire? Di quanto mi cade la tensione? Tutte domande alle quali oggi non so rispondere.

Qual è il vantaggio degli optocoupler? Costano come (o piú!) del digital isolator e sono piú complessi da pilotare. O mi sfugge un modo semplice per alimentare in sicurezza il LED di un optocoupler con un segnale di ingresso a tensione largamente variabile?

Una soluzione che potrebbe andare bene è andare prima sul gate di un FET per avere un ingresso ad altissima impedenza, ma è un rischio. Il gate di un FET di solito non apprezza essere esposto direttamente al mondo esterno. Qualcosa del genere, magari con un condensatore e un altro TVS a ridosso del gate, e usando un FET con un gate robusto, tipo questo.


Si potrebbe così anche usare l'optocoupler, ma mi sembra abbia solo svantaggi :roll:

@ Foto Utentebanjoman, ma in DC non funzionano, vero?

Boiler
Avatar utente
Foto Utenteboiler
26,4k 5 9 13
G.Master EY
G.Master EY
 
Messaggi: 5599
Iscritto il: 9 nov 2011, 12:27

0
voti

[5] Re: Rendere robusto & universale ingresso microcontroller

Messaggioda Foto Utentebanjoman » 23 dic 2025, 1:36

@Foto Utenteboiler: ovviamente no...io rilevavo i fronti di salita/discesa.
Se funziona quasi bene, è tutto sbagliato. A.Savatteri/M.Mazza
Avatar utente
Foto Utentebanjoman
12,2k 5 11 12
G.Master EY
G.Master EY
 
Messaggi: 1621
Iscritto il: 19 set 2013, 19:27

0
voti

[6] Re: Rendere robusto & universale ingresso microcontroller

Messaggioda Foto UtenteGuidoB » 23 dic 2025, 1:54

Se un'impedenza d'ingresso intorno a 100 kΩ fosse sufficiente, potrebbe bastare un "umile" BJT.
Con un partitore sulla base si può stabilire la soglia tra i livelli logici (che dipenderà un po' dalla temperatura):


Con due o tre diodi al silicio sulla base si possono mandare a massa eventuali picchi positivi o negativi:
Big fan of ƎlectroYou!       Ausili per disabili e anziani su ƎlectroYou
Caratteri utili: À È É Ì Ò Ó Ù α β γ δ ε η θ λ μ π ρ σ τ φ ω Ω º ª ² ³ √ ∛ ∜ ₀ ₁ ₂ ₃ ₄ ₅ ₆ ∃ ∄ ∆ ∈ ∉ ± ∓ ∾ ≃ ≈ ≠ ≤ ≥
Avatar utente
Foto UtenteGuidoB
17,8k 7 12 13
G.Master EY
G.Master EY
 
Messaggi: 2809
Iscritto il: 3 mar 2011, 16:48
Località: Madrid

2
voti

[7] Re: Rendere robusto & universale ingresso microcontroller

Messaggioda Foto UtenteEtemenanki » 23 dic 2025, 15:49

boiler ha scritto:Usare il segnale d'ingresso come alimentazione ...

Capito, in effetti se non hai gia un'idea precisa sulle caratteristiche di tali segnali, non e' il massimo ... comunque se usi un convertitore isolato DC-DC per alimentare la parte di ingresso, puoi tranquillamente usare un'opto con il led pilotato da un transistor collegato open-collector, cosi l'ingresso risulta abbastanza sensibile da poter attivare il led dell'opto anche con segnale molto basso, in modo semplice e con pochi componenti extra ... faccio un esempio al volo, usando un BC817-40 per rimanere sugli SMD, marking 6C, Hfe fra 250 e 600 (so che a te' non piace parlare di Hfe, ma qualche volta e' meglio considerarlo), con la tua resistenza da 22k in serie e considerando l'Hfe minimo di 250, il transistor potrebbe pilotare finno a circa 37mA con 3.3V sull'ingresso, accendendo tranquillamente il led dell'opto per il quale basterebbero 10 o 15 mA (mentre allo stesso tempo il tutto non avrebbe alcun problema a funzionare anche fino a 48V in ingresso)

boiler ha scritto:Qual è il vantaggio degli optocoupler? ...


Per quanto riguarda i prezzi, non so ... Mouser mi da circa 2 Euro l'uno per gli isolatori a due canali, mentre per gli opto a due canali siamo sotto l'euro (e circa un'euro e mezzo per i 4 canali).

Per il pilotaggio, pensavo ad una cosa del genere (buttata giu al volo, migliorabile volendo):



Lo zener puo essere anche da 6.8 o piu volt, serve solo per limitare la tensione nel caso quella sull'ingresso sia molto alta, e non e' critico non dovendo rispettare il limite dell'alimentazione dei 5V, con il transistor collegato in open-collector, e la resistenza in serie si puo abbassare tranquillamente a 18k o meno.

Ad esempio, con 48V in ingresso, su 18k avresti poco meno di 3mA, con 15k salirebbero a poco piu di 3mA, dissipazioni irrisorie, per contro con 15K e 3.3V in ingresso al transistor rmarrebbero circa 22uA, che con quel guadagno minimo gli consentirebbero di pilotare agevolmente fino a circa 55mA, molti piu del necessario per accendere efficacemente il led dell'opto ... in effetti con 15K, potresti arrivare fino a 1.8V (circa 30mA massimi pilotabili), mentre per contro con 48V avresti circa 150mW dissipati sulla resistenza, potenza non critica per la maggior parte delle resistenze SMD
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
Avatar utente
Foto UtenteEtemenanki
9.507 3 6 10
Master
Master
 
Messaggi: 5933
Iscritto il: 2 apr 2021, 23:42
Località: Dalle parti di un grande lago ... :)

1
voti

[8] Re: Rendere robusto & universale ingresso microcontroller

Messaggioda Foto Utenteboiler » 31 dic 2025, 0:06

Grazie a tutti per i contributi alla discussione. Ci ho rimuginato un po' e ho preso una decisione.
Avere una tensione ausiliaria in uscita aiuta parecchio e l'ingresso non deve piú necessariamente essere passivo.
Mi è piaciuta l'idea di usare un pull-up e un transistor o FET sull'ingresso. Ma oltre ad avere livelli di commutazione definiti un po' troppo vagamente per i miei gusti, inverte.

Il problema inizialmente non c'era: si inverte in software e via. Però ho deciso di aggiungere per buona misura anche un'uscita, non solo un ingresso. E se per delirio di ipotesi voglio farci passare una UART, avere l'inversione è un problema grasso, dato che nella periferia UART del micro non posso impostare un segnale invertito.

Di mettere due transistor in cascata per invertire una seconda volta non mi andava. È una soluzione che puzza di Arduino (impiliamo adattatori, shield e mattoncini colorati fino ad ottenere qualcosa che si avvicina all'idea iniziale che avevamo).

Mi è quindi venuto in mente che avevo usato tempo fa un bellissimo comparatore di TI, il TLV1851, che offre un common mode in ingresso di 40V, indipendentemente dalla tensione di alimentazione.
Per me robusto vuol dire 24 V + 20% = 30 V (cito il nome, non lo taggo per decenza, ma se Pietro legge questa equazione gli va di traverso anticipatamente il pranzo di Capodanno. Chiedo scusa, è matematica da ingegnere :mrgreen: ). I 24 V sono dettati dal fatto che è automazione industriale e quella è la tensione di sistema.
Quindi se accetto 40 V, siamo largamente a cavallo.

Quello che ho partorito è questo:


L'interfaccia verso l'esterno consta di
- 5V ausiliari, protetti da un fusibile PTC che interviene a 150 mA
- GND
- uscita digitale: questa arriva direttamente dall'isolatore digitale (ISO6521) e attraversa un gate di buffer per portarne la capacità di erogare corrente a 32 mA. Vicino allo spinotto c'è un TVS bidirezionale da 5V di tensione di lavoro per proteggere il buffer da eventi ESD.
- ingresso digitale: da destra a sinistra abbiamo un TVS bidirezionale da 28V come protezione ESD (specificherò una tensione d'ingresso massima di 24 V), un resistore da 33k che fa parte del circuito di isteresi ma limita anche la corrente per lo schottky di protezione. Suddetto schottky che evita un'inversione di polarità dovuta a utenti sbadati. Poi c'è il bellissimo comparatore di cui sopra, con un livello di commutazione e un'isteresi tali da renderlo adeguato anche al lavoro con logica CMOS da 1.8V :cool: Si entra poi nell'isolatore digitale.

Tutta la parte a valle dell'isolatore digitale è alimentata da un modulino DC/DC che si occupa della separazione galvanica.

La cosa sexy è che se l'ingresso digitale viene pilotato con logica a 5V, la corrente di bias è solo quella del comparatore, che in questo caso è spettacolare: 1 pA typ! Poi in realtà c'è il leakage sugli elementi di protezione, ma siamo comunque in zona uA e quindi paragonabile ad un ingresso CMOS puro.
Con altri livelli (per esempio a 3.3V entra in gioco anche la corrente sul resistore di feedback per l'isteresi. Resta comunque molto modesta.

Apprezzo molto la discussione e le idee apportate, che mi aiutano a trovare la via da seguire.
Anche se poi questa via è un'altra. È dovuto al fatto che non vi tedio con tutti i dettagli e spesso la cosa si evolve nel corso del discorso.

Boiler
Avatar utente
Foto Utenteboiler
26,4k 5 9 13
G.Master EY
G.Master EY
 
Messaggi: 5599
Iscritto il: 9 nov 2011, 12:27

1
voti

[9] Re: Rendere robusto & universale ingresso microcontroller

Messaggioda Foto Utentelelerelele » 31 dic 2025, 13:32

per me l'ingresso robusto passa certamente, come hai messo, da un primo blocco di tensione appena entrati, con zener o simili, prima o poi la caduta resitiva, che dipende dal segnale, poi ci sta anche un condensatore, sempre compatibilmente con lo slew/rate dovuto, ed ingresso, o BJT, o mosfet, come robustezza preferirei il BJT, lavorando in corrente lo vedo come un mulo, ma per esigenze di impedenze o velocità credo che anche il mosfet possa funzionare.

ho un idea malsana, la butto li, magari è una cazzata, andare creare una retroazione di 4V, che non porti in saturazione il componente, (visto che stiamo parlando di segnali), ma questa retroazione andrebbe ad autolimitare efficacemente l'ingresso, qualunque picco avesse. Non so se però nel caso specifico possa valere la pena una complessità e forse criticità del genere....

saluti.
Avatar utente
Foto Utentelelerelele
4.899 3 7 9
Master
Master
 
Messaggi: 5505
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

0
voti

[10] Re: Rendere robusto & universale ingresso microcontroller

Messaggioda Foto Utenteboiler » 31 dic 2025, 23:36

lelerelele ha scritto:poi ci sta anche un condensatore

In effetti, visto che ci sarà attaccato un cavo, qualcosa contro i disturbi di modo comune ci starebbe bene. Buona idea. Magari però una common-mode choke. Ci penso.

ho un idea malsana, la butto li, magari è una cazzata, andare creare una retroazione di 4V, che non porti in saturazione il componente, (visto che stiamo parlando di segnali), ma questa retroazione andrebbe ad autolimitare efficacemente l'ingresso, qualunque picco avesse.

Non ho capito, potresti per piacere fare uno schizzo?

Grazie Boiler
Avatar utente
Foto Utenteboiler
26,4k 5 9 13
G.Master EY
G.Master EY
 
Messaggi: 5599
Iscritto il: 9 nov 2011, 12:27

Prossimo

Torna a Elettronica generale

Chi c’è in linea

Visitano il forum: Google Adsense [Bot] e 48 ospiti