Posts tonen met het label achtergrond. Alle posts tonen
Posts tonen met het label achtergrond. Alle posts tonen

03 november 2015

Tutorial: P-Channel step-up

P-Channel FET step-up

In het volgende plaatje zit een probleem. Wat als we vanuit een standaard controller (die een output heeft van 3,5 tot 5 Volt) een 12 Volts motor aan willen sturen? In de vorige entry is duidelijk gesteld, dat voor een P-Channel FET de VGS negatief moet zijn om te geleiden.
Als de Gate niet op het zelfde niveau als de Source kan worden getrokken, dan blijft de FET dus in geleiding. En aangezien de gate spanning niet hoger kan worden dan 5 Volt; het maximale dat een microcontroller kan afgeven, is de Gate dus nooit op het niveau van de Source te krijgen. De FET blijft dus altijd geleiden!

Dit geldt niet voor een N-Channel FET: daar moet immers VGS positief zijn om te geleiden, en Source ligt hier aan massa (0 Volt).


De oplossing

De oplossing voor dit probleem is het inzetten van een niveau verschuiver in de vorm van een NPN transistor:
Op het moment, dat de Basis van Q1(het 5 Volt PWM-signaal) 0,7 volt hoger wordt dat de Emitter (pijltje), gaat de transistor Q1 geleiden, de spanning op de gate van de FET daalt en de FET gaat geleiden.
Daalt de PWM spanning naar 0 Volt, dan gaat Q1 sperren, de Gate spanning stijgt (naar VDD) en de FET zal weer sperren.

Dus bij een ingangsspanning van +5 tot 0 Volt is het toch mogelijk een Gate spanning te sturen tussen +12 (=VDD) en 0 Volt.


Let op!

De negatieve zijde van alle accu's of voedingen moeten aan elkaar verknoopt worden. De positieve niet!!!


Dit verklaart, waarom Q5 en Q6 in het H-brug ontwerp zitten; IC2 wordt gevoed met 5 Volt, en kan dus geen uitgangsspanning van 12 Volt leveren. IC1 kan wel een voldoende spanning leveren; 5 volt is voldoende on Q1 en Q2 open te sturen en 0 Volt voldoende om die weer te laten sperren.

Achtergrond: N-Channel en P-Channel FET

N-Channel FETs en P-Channel FETs als schakelaar

Wanneer geleiden FET's nu eigenlijk, en wat is het verschil?


N-Channel FET

Een N-Channel FET (die met het pijltje naar de Gate plaat toe) geleidt op het moment, dat de spanning tussen Gate en Source positief is. Of te wel: de Gate moet hoger in spanning zijn dan de Source.
In dit plaatje ligt Source aan de negatieve kant van de batterij en de Gate wordt laag gehouden via de weerstand R2 naar de negatieve kant van de batterij. Er is dus geen spanningsverschil tussen Gate en Source (dus: UGS is 0V) De FET zal dus sperren, en de LED is uit.
Als de schakelaar gesloten wordt, dan gaat de Gate spanning omhoog; deze wordt gelijk aan de batterijspanning; de FET zal geleiden, en de LED zal gaan branden. R1 zorgt voor een stroombegrenzing voor de LED; de stroom door een LED mag namelijk niet te groot worden (plm 20mA continue).
Hierboven de schakeling op het prototype deel van de AXE091.
De schakelaar S1 is, via de gele draad, SW3 op het AXE091 bord.

Hier zie je het resultaat als de schakelaar wordt ingedrukt, de gate krijgt spanning, de FET gaat geleiden en de LED brandt (zwak... het is een Monsanto "Special Product" uit 1980 - individueel(!) verpakt; tegenwoordige LEDs zijn efficiƫnter)


P-Channel FET

Een P-Channel FET (die met het pijltje van de Gate plaat af) geleidt op het moment, dat de spanning tussen Gate en Source negatief is. Of te wel: de Gate moet lager in spanning zijn dan de Source.
In dit plaatje ligt Source aan de positieve kant van de batterij en de Gate wordt hoog gehouden via de weerstand R2 naar de positieve kant van de batterij. Er is dus geen spanningsverschil tussen Gate en Source (dus: UGS is 0V) De FET zal dus sperren, en de LED is uit.
Als de schakelaar gesloten wordt, dan gaat de Gate spanning omlaag naar 0V; de Source blijft op batterijspanning, en dus is de Gate lager in spanning dan de Source: de FET zal geleiden, en de LED zal gaan branden.


Samenvattend

Een N-Channel FET wordt open gestuurd door "positieve" spanning (VG > VS, of te wel: VGS is positief). Een P-Channel FET wordt open gestuurd door een "negatieve" spanning (VG < VS, of te wel: VGS is negatief)

05 oktober 2015

Achtergrond: resolutie of oplossend vermogen.

Resolutie van A/D converter

In de eerste entry over analoge invoer werd in het programma het volgende commentaar gemaakt:
; LDR is documented to read values between 120 and 70; mine works with 190/140. ; of course, 127 should be the tripping point
Hoezo, moet het tripping point "natuurlijk 127 zijn"?
Dat heeft alles te maken met het gebruikte commando. In het programma werd de volgende opdracht gebruikt:
readadc LDR,b0 ; read ADC1 into variable b0
In de documentatie (handboek 2, sectie 2, pagina 170) wordt al gemeld, dat readadc een 8 bits nauwkeurige waarde aflevert in een variabele. Dat deze variabele ook nog eens als BYTE (b0-b27) gedefinieerd is, zegt genoeg. Meer dan 256 mogelijkheden (2 tot de achtste) zijn er niet.


Dat is niet genoeg!

De configuratie van het experimenteerbord is zodanig van opzet, dat de maximale waarde, die door de ADC ingelezen kan worden, gelijkstaat aan de voedingsspanning (zeg: 5 Volt). Dat betekent een resolutie van 5/256 = 0,01953 Volt.
Maar het kan beter! In de PICAXE-08M2 is namelijk een 10 bits ADC aanwezig. Het commando, dat gebruikt oet worden is dan:
readadc10 LDR,w0 ; read ADC1 into variable w0
De gelezen waarde wordt opgeslagen in een WORD type variabele van 16 bits; de waarde kan dan tussen 0 en 65536 liggen, een betekent dan een resolutie van 0,0000763 Volt (afgerond).


Meer van dat

Er zijn meer commando's, die een "hi-res" broertje hebben:
readdac - readdac10 readtemp - readtemp12 ; readtemp = readtemp12, omgezet naar hele graden Celcius. touch - touch16 ; touch = touch16, omgezet naar 8 bits