ponteh
Questa è una vecchia versione del documento!
Indice
Applicazioni di elettronica di potenza
NOTA: In grassetto i contenuti più importanti.
Osservazioni sparse sui MOSFET
- ci sono tanti tipi di MOSFET ma a grandi linee:
- si usano quelli enhancement (ad arricchimento)
- a canale N (Ron minore)
- non logic-level (che hanno Ron e corrente sul gate maggiori)
- il controllo è in tensione ma serve corrente nel passaggio da ON a OFF
- con correnti basse la commutazione è lenta e si hanno perdite
- allora meglio usare un driver in grado di fornire corrente elevata e garantire tempi di commutazione rapidi
- si mette una resistenza di pull-down sul gate per evitare commutazioni indesiderate se G risulta isolato
- si mette una resistenza in serie al gate per regolare la corrente e quindi i tempi di commutazione: bassa se si usa un driver, alta se pilotato da un microcontrollore (tempi lunghi e corrente bassa); serve anche a smorzare possibili oscillazioni dovute alla componente capacitiva del MOSFET e induttiva dei conduttori
- gate-driver: push-pull discreti a BJT o integrati dedicati (eventualmente con funzione booster o charge-pump per usare MOSFET a canale N anche come high-side switch)
- in corrispondenza di Vth il MOSFET comincia a condurre ma con una resistenza ancora elevata e perdite
- il valore di VgsON per avere la piena conduzione si ricava nella riga di RdsON del datasheet
- la potenza dissipata va calcolata stimando anche la temperatura effettiva di funzionamento: si considera il caso peggiore e si calcola Ron*I^2, poi si stima l'aumento di temperatura del silicio con Rth*P e nel caso si installa un dissipatore
- per stimare il tempo di carica si può usare Ciss (capacità equivalente in ingresso) o Qg (total gate charge); in entrambi i casi si ipotizza di caricare un condensatore a corrente costante (cosa abbastanza vera quando Vgs raggiunge Vth)
Risorse su MOSFET
Video:
- Video sul pilotaggio del gate dei MOSFET e le complicazioni associate per cui conviene usare un integrato come MOSFET driver: corrente e tempi di commutazione, gate driver con level-shift e push-pull, bootstrap per NMOS high-side (GreatScott su youtube)
- altro video più tecnico sul pilotaggio dei MOSFET e blog post associato di MicroType Engineering su youtube); perché due resistenze sul gate, perché i MOSFET logic level sono da evitare, gate driver, calcolo approssimato della potenza dissipata e della massima frequenza in commutazione
- Video con spiegazione della SOA dei MOSFET, dal sito Texas Instruments (inglese)
- lezione sui gate driver molto completa (45 minuti!)
Articoli da blog e siti di prof:
- una pagina su high-side e low-side switch con MOSFET e BJT che spiega la nomenclatura
- pilotaggio BJT on/off dagli appunti di elettronica
- breve teoria sui MOSFET dagli appunti di elettronica
- breve trattazione sui componenti elettronica di potenza dal sito del prof Vincenzo Villa (si veda in particolare la pagina sui gate-driver)
Articoli e application note dei produttori di componenti:
- AN sul pilotaggio del gate dei MOSFET di Toshiba con le varie soluzioni per il pilotaggio e differenze tra bootstrap e charge pump
- Application Note della TI su gate driving per MOSFET e IGBT con varie soluzioni, discrete e integrate di gate-driver (bootstrap a pag 30)
- AN di Onsemi sul progetto dei circuiti bootstrap per gate driver (utile riassunto a pagina 11)
- articolo di Analog Device sul perché servano i gate driver (push-pull più efficiente di transistor + resistore, più corrente → commutazione più rapida → meno perdite, funzionalità extra degli IC: level-shift, protezione da shoot-trhough, isolamento per sicurezza e NMOS high-side)
Risorse su ponte H
Ponte H:
- Video molto semplice sul funzionamento del ponte H con MOSFET con segnale PWM generato da NE555)
- link sui multivibratori con vari documenti (anche dal libro di elettronica) sul 555 e applicazioni
- Immagine di un ponte H con BJT e porte NAND (da Batani)
- controllo PWM di un motore DC senza inversione del moto dagli appunti di quarta (non c'è inversione del moto e non è un ponte H ma c'è PWM generato con 555, simulazione motore e risultati sperimentali all'oscilloscopio)
- Tutorial di molte pagine su un progetto con ponte H con BJT (Darlington) e fotoaccoppiatori
- Tesina su un progetto con ponte H che usa solo NMOS, pompa di carica e logica di controllo
- Technical Note Nexperia molto completa su un progetto sofisticato con ponte H (e reference board)
- Application note sui ponte H integrati a BJT L293/L298 (sono driver decisamente obsoleti ma ancora usati in campo didattico e hobbistico)
Altro:
- Charge Pump per pilotare MOSFET a canale N (inglese)
- Pompa di carica in italiano (la pagina è sulla RS232 ma questa soluzione viene usata anche nei gate driver per permettere l'utilizzo dei MOSFET a canale N come interruttori high-side (source)
Simulazioni
- Simulazioni su pilotaggio motore DC con PWM (BJT, MOSFET, generazione del segnale PWM, importanza dei diodi di libera circolazione)
Datasheet
Software
Di seguito un programma per generare un segnale PWM sul con frequenza di 1 kHz e duty-cycle regolabile usando la scheda Arduino. Usa quattro pulsanti: uno per avviare e uno per fermare la generazione del segnale PWM, uno per aumentare e uno per diminuire il duty-cycle.
// pin (i pin 0 e 1 sono impegnati per la trasmissione seriale) const int pinStart = 8; // piedino da mettere a massa per attivare il PWM const int pinStop = 9; // piedino da mettere a massa per disattivare il PWM const int pinPWMup = 2; // piedino da mettere a massa per incrementare il duty-cycle const int pinPWMdown = 3; // piedino da mettere a massa per diminuire il duty-cycle const int pinPWM = 5; // piedino di uscita del segnale PWM (a 1kHz in quel piedino) // altre variabili int spinning = 0; // attiva o no il segnale PWM int duty = 100; // da 0 a 255 -> 0-100% int PWMup; // stato pin che incrementa il duty-cycle int PWMupPrec = 1; // stato precedente pin che incrementa il duty-cycle int PWMdown; // stato pin che diminuisce il duty-cycle int PWMdownPrec = 1; // stato precedente pin che diminuisce il duty-cycle void setup() { pinMode(pinPWM,OUTPUT); pinMode(pinStart, INPUT_PULLUP); // pull-up interno al micro pinMode(pinStop, INPUT_PULLUP); pinMode(pinPWMup, INPUT_PULLUP); pinMode(pinPWMdown, INPUT_PULLUP); pinMode(13,OUTPUT); // LED 13 acceso quando gira il motore Serial.begin(9600); // debug su serial monitor } void loop() { // gira se pinStart a GND if (!digitalRead(pinStart)){ spinning = 1; } // si ferma se pinStop a GND if (!digitalRead(pinStop)){ spinning = 0; } // LED sulla scheda acceso se gira (PWM attivo) digitalWrite(13, spinning); // attiva/disattiva PWM if(spinning){ // attiva PWM analogWrite(pinPWM, duty); } else{ analogWrite(pinPWM, 0); } // incremento/decremento duty-cycle PWMup = digitalRead(pinPWMup); PWMdown = digitalRead(pinPWMdown); if((!PWMup)&&PWMupPrec){ if (duty+10 < 255) { duty += 10; } delay(20); // antirimbalzo Serial.println(duty); } if((!PWMdown)&&PWMdownPrec){ if (duty-10 > 0) { duty -= 10; } delay(20); Serial.println(duty); } PWMupPrec = PWMup; PWMdownPrec = PWMdown; }
Nel video qua sotto il codice in azione.
ponteh.1674462260.txt.gz · Ultima modifica: 2023/01/23 08:24 da admin