Vai al contenuto
PLC Forum


Problema con BJT usato come interruttore


Blacks

Messaggi consigliati

Allora, tutto quanto riportato da tutti nei giorni passati è giusto. I componenti sono dimensionati correttamente e il transistor T2 non si brucia per nessuno dei motivi fin'ora analizzati.

Il problema è all'accensione del sistema. Il transistor "salta" in quel momento oppure non salta proprio fino alla successiva accensione del sistema.

Il microprocessore è dotato di un circuito RC sul pin di Reset. Questo in linea generale viene fatto per avviare il microprocessore stesso quando si è sicuri che le alimentazioni sono stabili ed hanno terminato il transitorio di salita.

Durante questo tempo (seppur breve), le uscite degli integrati I/O che comandano le basi dei 48 NPN che attiveranno poi i PNP corrispondenti si trovano, per come è fatto l'integrato, allo stato logico 1, finchè il microprocessore non li resetta tramite un comando dato via I2C. Questo comando viene mandato dal microprocessore immediatamente ma solo dopo aver definito i suoi pin di ingresso e di uscita. Il problema è che anche se l'alimentazione del microprocessore avviene in contemporanea con tutto il resto degli integrati ed il tempo di invio del comando I2C avviene in un tempo brevissimo, il boot inizia qualche millisecondo dopo, a causa proprio della rete RC sul reset.

Inoltre, durante il reset (cioè quando il micro è alimentato ma il segnale di reset è ancora basso bloccando il clock del microprocessore a causa della rete RC ancora non completamente carica) tutte le porte sono configurate come uscite ed il loro livello logico è alto. Questo attiva il transistor T2.

Quindi, finchè non termina il ritardo RC sul reset, tutti i transistor risultano attivati (devo ancora misurare il tempo in cui i livelli logici ai transistors restano alti). Quindi, il transistor T2 (che è acceso dall'uscita del micro) si trova a dover pilotare 48 rami contemporaneamente attivi il cui carico è di 360 ohm ognuno per qualche millisecondo.

La corrente I che circola in T2 (trascurando per semplicità le varie Vce) è di I = 48 * V/R con R=360 ohm (180 + 180) = 48 * 8 / 360 = 1.07A (1067 mA).

Ho cercato di verificare nei datasheets del BC807 la massima corrente impulsiva che il transistor può sopportare. In tutti i datasheets che ho consultato risulta 1A, ma in nessuno è specificato per quanto tempo può durare questo impulso così elevato.

 

Ora dovrò verificare che tipo di soluzioni adottare. Potrei diminuire la rete RC sul reset, ma credo che non sia sufficiente. Infatti, anche eliminando il condensatore, il Pic ha all'interno un condesatore integrato verso massa sul pin di reset stesso. Quindi il tempo di reset potrà essere diminuito ma non annullato del tutto.

Un altra alternativa potrebbe essere quella di rallentare l'accensione di T2 inserendo un condensatore fra la base di T1 (faccio riferimento allo schema iniziale del primo post) e massa, gestendo poi il "rallentamento" dell'attivazione di T2 via software.

 

Se avete altri consigli.... sono tutt'orecchi.

 

Nel frattempo grazie mille a tutti per le dritte avute in questi giorni.

 

Link al commento
Condividi su altri siti


  • Risposte 98
  • Created
  • Ultima risposta

Top Posters In This Topic

  • Blacks

    24

  • gabri-z

    23

  • maxmix69

    21

  • ciccioilgrande

    17

P.s. Qualcuno ha idea di quanto possa durare la corrente massima impulsiva sul collettore di un BJT (come ordine di grandezza)?

 

Modificato: da Blacks
Link al commento
Condividi su altri siti

1 ora fa, Blacks ha scritto:

Potrei diminuire la rete RC sul reset,

 

Vivamente sconsigliato!

Io ti suggerirei di pilotare T1 in modo impulsivo. In altri termini l'uscita del micro genera un'oda simil quadra che, accoppiata capacitivamente verrà integrata ed andrà a pilotare T1.

E lo schema classico che si usa per avere un'uscita che segnala "micro vivo".

Se lo desideri ti metto uno schema di massima.

 

1 ora fa, Blacks ha scritto:

Qualcuno ha idea di quanto possa durare la corrente massima impulsiva sul collettore di un BJT (come ordine di grandezza)?

 

 

E' una dato che trovi sul datasheet del transistore ed è variabile secondo il tipo.

In genere è defito come "Massimo picco non ripetitivo", solitamente viene dato il valore di corrente ed il tempo.

Link al commento
Condividi su altri siti

Dai miei ricordi si trattava di un paio di us e NON ripetitivo, ma non ricordo dove mi son messo in testa questo valore. 

Comunque alternative ne hai, o rallenti il T1, o dai soddisfazione a Ciccio e metti un MJ 150XX al posto del T1. 

Link al commento
Condividi su altri siti

7 minuti fa, Livio Orsini ha scritto:

E lo schema classico che si usa per avere un'uscita che segnala "micro vivo".

Se lo desideri ti metto uno schema di massima.

Si, se non è un problema per te uno schema di massima lo vedrei volentieri.

8 minuti fa, Livio Orsini ha scritto:

E' una dato che trovi sul datasheet del transistore ed è variabile secondo il tipo.

In genere è defito come "Massimo picco non ripetitivo"

Si, infatti pensavo anch'io. Ho letto i datasheets di 5 o 6 costruttori del BC807 diversi. Alcuni non riportano proprio il dato della corrente di picco. Altri lo riportano, ma in nessuno è specificato la durata massima del picco.

In effetti nemmeno in questo caso sarebbe ripetitivo, se non il giorno dopo quando l'operatore accende nuovamente l'intera macchina.

 

11 minuti fa, gabri-z ha scritto:

Comunque alternative ne hai, o rallenti il T1, o dai soddisfazione a Ciccio e metti un MJ 150XX al posto del T1.

Sarebbe un'alternativa possibile. Purtroppo il circuito stampato è già fatto e la piedinatura del T2 attuale è un SOT-23 mentre un transistor più potente (come gli MJ) hanno piedinature molto più grosse se non addirittura in THT.

Link al commento
Condividi su altri siti

2 ore fa, Blacks ha scritto:

Allora, tutto quanto riportato da tutti nei giorni passati è giusto. I componenti sono dimensionati correttamente e il transistor T2 non si brucia per nessuno dei motivi fin'ora analizzati.

Il problema è all'accensione del sistema. Il transistor "salta" in quel momento oppure non salta proprio fino alla successiva accensione del sistema.

Il microprocessore è dotato di un circuito RC sul pin di Reset. Questo in linea generale viene fatto per avviare il microprocessore stesso quando si è sicuri che le alimentazioni sono stabili ed hanno terminato il transitorio di salita.

Durante questo tempo (seppur breve), le uscite degli integrati I/O che comandano le basi dei 48 NPN che attiveranno poi i PNP corrispondenti si trovano, per come è fatto l'integrato, allo stato logico 1, finchè il microprocessore non li resetta tramite un comando dato via I2C. Questo comando viene mandato dal microprocessore immediatamente ma solo dopo aver definito i suoi pin di ingresso e di uscita. Il problema è che anche se l'alimentazione del microprocessore avviene in contemporanea con tutto il resto degli integrati ed il tempo di invio del comando I2C avviene in un tempo brevissimo, il boot inizia qualche millisecondo dopo, a causa proprio della rete RC sul reset.

Inoltre, durante il reset (cioè quando il micro è alimentato ma il segnale di reset è ancora basso bloccando il clock del microprocessore a causa della rete RC ancora non completamente carica) tutte le porte sono configurate come uscite ed il loro livello logico è alto. Questo attiva il transistor T2.

Quindi, finchè non termina il ritardo RC sul reset, tutti i transistor risultano attivati (devo ancora misurare il tempo in cui i livelli logici ai transistors restano alti). Quindi, il transistor T2 (che è acceso dall'uscita del micro) si trova a dover pilotare 48 rami contemporaneamente attivi il cui carico è di 360 ohm ognuno per qualche millisecondo.

La corrente I che circola in T2 (trascurando per semplicità le varie Vce) è di I = 48 * V/R con R=360 ohm (180 + 180) = 48 * 8 / 360 = 1.07A (1067 mA).

Ho cercato di verificare nei datasheets del BC807 la massima corrente impulsiva che il transistor può sopportare. In tutti i datasheets che ho consultato risulta 1A, ma in nessuno è specificato per quanto tempo può durare questo impulso così elevato.

 

Ora dovrò verificare che tipo di soluzioni adottare. Potrei diminuire la rete RC sul reset, ma credo che non sia sufficiente. Infatti, anche eliminando il condensatore, il Pic ha all'interno un condesatore integrato verso massa sul pin di reset stesso. Quindi il tempo di reset potrà essere diminuito ma non annullato del tutto.

Un altra alternativa potrebbe essere quella di rallentare l'accensione di T2 inserendo un condensatore fra la base di T1 (faccio riferimento allo schema iniziale del primo post) e massa, gestendo poi il "rallentamento" dell'attivazione di T2 via software.

 

Se avete altri consigli.... sono tutt'orecchi.

 

Nel frattempo grazie mille a tutti per le dritte avute in questi giorni.

 

Come ti avevo già anticipato ,devi mettere un trs più potente,capace di sopportare un paio di amper

Link al commento
Condividi su altri siti

21 minuti fa, gabri-z ha scritto:

o dai soddisfazione a Ciccio e metti un MJ 150XX al posto del T1. 

:D
Tornando seri, mi pare eccessivo mettere un transistor spropositato e mi pare poco elegante affidarsi al valore massimo di picco sopportabile dal povero BCxxx
Il problema da risolvere è che il progetto ha un bug, io andrei nella soluzione di risolvere il bug, pure se da quanto ho capito i circuiti stampati sono già pronti.
Personalmente farei all'antica, un relè ritardato elettronicamente o da programma del micro che abilita l'alimentazione a 8v quando tutto è OK.
Volendo va bene un transistor o un mosfet.

EDIT: magari aumentando di proposito il tempo a un paio di secondi e aggiungendo un bel led bicolore, rosso/verde, che ti avvisa quando il circuito è pronto per operare.... Non serve a niente, ma è sicuramente bello da vedere.

Modificato: da maxmix69
Link al commento
Condividi su altri siti

Non hai nemmeno guardato come sono fatti i MJ 150XX...sono dei mostri TO3, stavo scherzando. Quel impulso massimo, se ricordo bene, lo trovi sotto gli schemi dei circuiti di test, come Nota*. 

Link al commento
Condividi su altri siti

19 minuti fa, Livio Orsini ha scritto:

Io ti suggerirei di pilotare T1 in modo impulsivo.

Però, ripensandoci, non posso farlo. Per pilotarlo in maniera impulsiva dovrei avere il tempo di programmare l'uscita come Output e, in qualche modo, variare l'uscita da 0 a 5V (con un timer, se corrisponde, o con un PWM ecc.)

Il problema è che non faccio a tempo a programmare l'uscita in questione che T1 e T2 (e anche tutti gli altri transistors) già conducono. L'uscita verso T1 vale +5V dall'istante in cui si presenta l'alimentazione, fino a quando si esaurisce il transitorio di carica del circuito RC del reset + tutto il tempo necessario all'esecuzione delle prime istruzioni (anche se quest'ultimo tempo è molto breve).

Link al commento
Condividi su altri siti

5 minuti fa, maxmix69 ha scritto:

un relè ritardato elettronicamente o da programma del micro che abilita l'alimentazione a 8v quando tutto è OK

Questo già lo fa. L'alimentazione a 8V si abilita quando comando il transistor T1. Il problema è sempre il medesimo: non ho il controllo di T1 finchè il microprocessore è ancora in reset ma i 5V su tutti i transistor già esistono. L'unica alternativa che vedo è rallentare in qualche modo l'attivazione di T1, non via software, ma via hardware.

Link al commento
Condividi su altri siti

7 minuti fa, Blacks ha scritto:

Il problema è che non faccio a tempo a programmare l'uscita in questione che T1 e T2 (e anche tutti gli altri transistors) già conducono.

 

Non ti serve!

Forse non hai letto con attenzione: l'accoppiamento tra uscita e circuito di pilotaggio di T1 è fatto tramite capacità, quindi il livello fisso e costante dell'uscita non attiva il comando di T1.

Link al commento
Condividi su altri siti

6 minuti fa, gabri-z ha scritto:

come sono fatti i MJ 150XX...sono dei mostri TO3, stavo scherzando

Avevo guardato. Ho visto che sono To3 (e probabilmente fin troppo sovradimensionati). Comunque transistor che sopportano 1 Amper in contenitore SOT-23 non credo che esistano.

 

9 minuti fa, gabri-z ha scritto:

Quel impulso massimo, se ricordo bene, lo trovi sotto gli schemi dei circuiti di test, come Nota*.

Non so. Non li ho trovati. Come accennavo prima alcuni costruttori non dichiarano nemmeno il valore di corrente impulsiva, mentre tra quelli che la citano nessuno indica per quanto tempo.

Comunque a questo punto credo che non abbia nemmeno importanza. Mi sembra evidente che 1A corra per un tempo troppo alto tanto da farlo bruciare, sei d'accordo?

Link al commento
Condividi su altri siti

4 minuti fa, Livio Orsini ha scritto:

l'accoppiamento tra uscita e circuito di pilotaggio di T1 è fatto tramite capacità,

Ah, quindi intendi una capacità in serie fra l'uscita del pin e la base di T1 (in pratica è come quando fai il disaccoppiamento della continua per far circolare solo la componente in frequenza. Ho inteso bene?

Link al commento
Condividi su altri siti

Si, l'accoppiamento è solo in alternata.

Si usa questa circuitazione per segnalare che il micro funziona correttamente. In genere ad ogni termine di main si inverte lo stato dell'uscita, accoppiata poi in alternata con un circuito integratore. questo circuito mantiene in conduzione un transistor che viene riportato all'uscita e si utilizza come allarme. Se il livello rimane fisso perchè il micro si è "inlooppato" o è il programma è andato "a ranocchie", il transistor si apre e scatta l'allarme.

Link al commento
Condividi su altri siti

10 minuti fa, Livio Orsini ha scritto:

Si, l'accoppiamento è solo in alternata.

Si usa questa circuitazione per segnalare che il micro funziona correttamente. In genere ad ogni termine di main si inverte lo stato dell'uscita, accoppiata poi in alternata con un circuito integratore. questo circuito mantiene in conduzione un transistor che viene riportato all'uscita e si utilizza come allarme. Se il livello rimane fisso perchè il micro si è "inlooppato" o è il programma è andato "a ranocchie", il transistor si apre e scatta l'allarme.

Ok, ora mi è più chiaro. Valuterò come farlo. Vi farò sapere.

Grazie ancora per le dritte.

Link al commento
Condividi su altri siti

57 minuti fa, Blacks ha scritto:

Comunque a questo punto credo che non abbia nemmeno importanza

Non ce l'ha....

 

57 minuti fa, Blacks ha scritto:

Mi sembra evidente che 1A corra per un tempo troppo alto tanto da farlo bruciare, sei d'accordo?

Dato che hai aperto la discussione , mi pare evidente.....:roflmao:

Comunque , per la strada pensavo ( non ho avuto tempo di leggere i consigli di Livio , ma di male non ti consiglia ) , potresti temporizzare o la massa del milione di transistor , o gli 8 V del '' T2 '' , oppure un monostabile in ingresso del '' T1 '' ...

Trovato il problema , adesso c'è solo da scegliere la miglior soluzione . Non dimenticare di portarci novità .:thumb_yello:

 

A proposito , se dovessi decidere di alimentare '' in ritardo '' il milione , io non userei un semiconduttore , di nessun tipo , ma un relè di buona qualità .

Modificato: da gabri-z
Link al commento
Condividi su altri siti

@gabri-z e meno male che non hai letto, soprattutto quello che ho scritto io....
Ma secondo me non ho ha letto nemmeno @Blacks, almeno non con attenzione. O forse io non ho capito la sua risposta, per cui chiedo eventualmente scusa in anticipo.

Link al commento
Condividi su altri siti

6 minuti fa, maxmix69 ha scritto:

per cui chiedo eventualmente scusa in anticipo.

?? Per che cosa ? A chi ? Vedo che mi avevi già anticipato con ritardo alimentazione , il LED è BELLO da vedere , ed il bug , non so cosa significhi , a naso mi pare un '' difetto '' ...

Link al commento
Condividi su altri siti

1 ora fa, Blacks ha scritto:

Questo già lo fa. L'alimentazione a 8V si abilita quando comando il transistor T1

Qui è l'inghippo.
Devi abilitarlo dal micro E da un comando diversamente temporizzato, oppure semplicemente inverti il comando nel programma del micro (cioiè attivo basso) e inverti il funzionamento del transistor T2.
E' sufficiente (dovrebbe...) eliminare T1 ed R3,  mettere uno zener da 3.3v (meglio 3.9v) e cortocircuitare le piazzole collettore-base di T1. Poi magari, anzi sicuramente, dovrai diminuire il valore di R2. Tutto questo se il guadagno di T2 è sufficiente senza sovraccaricare l'uscita di controllo che arrivava prima a T1 e che adesso arriva sullo zener.
Se vuoi ti faccio lo schema.
Questa secondo me è la migliore modifica che puoi fare, una riga di programma e qualche saldatura sulla scheda senza stravolgere nulla.

Link al commento
Condividi su altri siti

1 minuto fa, gabri-z ha scritto:

Per che cosa ? A chi ?

:roflmao: Certamente non a te, ci mancherebbe!:P Mi riferivo a @Blacks, gli chiedevo scusa casoamai ero io a non aver capito la sua spiegazione e non lui a non aver capito la mia.

Cose che tu non puoi capire, se no avresti già capito che non cè niente da capire oltre quello che già si è capito. Hai capito?:D

4 minuti fa, gabri-z ha scritto:

ed il bug , non so cosa significhi , a naso mi pare un '' difetto '' ...

A naso hai capito!:superlol:

Link al commento
Condividi su altri siti

@ciccioilgrandepare impossibile a te forse.
Se cerchi bene sicuramente ce ne sono pure di più grandi. Ma il transistor si rompe per una svista di progetto, magari mettendolo più grande resiste, però tecnicamente è una cosa che non si può guardare. Se c'è un problema va risolto il problema, tu invece vuoi mettere una pezza.
Comunque serve SMD in contenitore SOT-23, secondo me non hai visto le dimensioni dell'originale.

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora

×
×
  • Crea nuovo/a...