Datum: 27.04.2008 16:39
Hi Kann man einen N-Kanal-Fet direkt an ein PORTPIN hängen oder brauch ich einen Treiber(-Darlingtontransistor?)? Ich will etwa alle 5s eine Konstantstromquelle (max. 1,5A) ausmachen und weiter 5s später wieder ein. Benötige ich nun also einen Treiber? Danke Inox
Datum: 27.04.2008 16:43
Wenn Du einen Logic-Level FET nimmst nicht. Der standard Mosfet kommt nicht ohne Treiber aus.
Datum: 27.04.2008 16:50
Muss ich den Gate-Strom begrenzen? Weil der Ausgang vom PIC schafft nur 25mA.
Datum: 27.04.2008 16:51
Wenn der PIC mit 5V läuft sollte so ziemlich jeder FET der mind. 1.5A schalten kann ohne Treiber funktionieren. Bei 10A sähe das schon anders aus. Aber einen Vorwiderstand (z.B. 1k) solltest du zwischen Port und Gate schalten.
Datum: 27.04.2008 17:41
@ let (Gast) >Aber einen Vorwiderstand (z.B. 1k) solltest du zwischen Port und >Gate schalten. Nein! Das kann und sollte man direkt verbinden. Der PIC-Ausgang ist "schwach" genug, um EMV Probleme etc. zu vermeiden. 1k ist schon recht viel und kann bei höheren PWM-Freqeunzen die Schaltzeit negativ verlängern. MFG Falk
Datum: 27.04.2008 17:54
@Falk: Daniel B. wrote: ... > Ich will etwa alle 5s eine Konstantstromquelle (max. 1,5A) ausmachen und > weiter 5s später wieder ein. ... Naja bei der Frequenz dürfte 1k ok sein. ;-) @ Daniel B. Pack das Gate einfach an ein Portpin dran. Bei der Frequenz braucht man so gut wie gar keine Umladeströme die den Pic belasten. Gruss Stefan
Datum: 27.04.2008 18:00
Also kommt sozusagen der Stromverbrauch des Fet auf seine Frequenz an mit der man ihn schalten will, richtig?
Datum: 27.04.2008 18:01
Wer sagt denn etwas von PWM? Außerdem passieren beim PIC seltsame Dinge wenn man eine kapazitive Last ein einen Port hängt. Mal geht es ohne Problem, mal springt der Ausgang nach einem Zyklus wieder zurück auf den alten Zustand. Also wenn man z. B. von 1 -> 0 schaltet macht der Port das aber nach 125ns geht er wieder auf 1. Im Register steht aber eine 0. Wir mußten deswegen einige dutzend Geräte zurückrufen, da der Fehler natürlich erst beim Kunden aufgetreten ist. Jetzt liegen 1k in Reihe zum FET und es geht.
Datum: 27.04.2008 18:12
Kann ich eigentlich einen BUZ90A verwenden? Im Datenblatt steht unter V-Gate-Source (5V) -> I Drain (4,5A). Und brauch ich nun einen Widerstand, weil evntl. muss ich die PWM verändern nämlich zu 5s an und nur 500ms aus? MfG Inox
Datum: 27.04.2008 18:29
^ Da sehe ich kein Problem. Einen Widerstand würde ich in jedem Fall einbauen. Wenn es bei der Flankensteilheit um Mikrosekunden geht, kannst du ja 330 Ohm verbauen. Dann kommst du auf 5*R*C = 1.65us. Der Strom geht dann nicht über 15mA.
Datum: 27.04.2008 18:52
let wrote: > Wer sagt denn etwas von PWM? Außerdem passieren beim PIC > seltsame Dinge wenn man eine kapazitive Last ein einen Port > hängt. Mal geht es ohne Problem, mal springt der Ausgang nach > einem Zyklus wieder zurück auf den alten Zustand. Also wenn > man z. B. von 1 -> 0 schaltet macht der Port das aber nach > 125ns geht er wieder auf 1. Im Register steht aber eine 0. Was lernen wir darauf ? -> Nächstes mal einen AVR nehmen. Vermutlich war das aber ein Softwarebug (ansonsten wäre das schon sehr bitter für die PICs). Ich tippe drauf, dass ihr irgendwo den Port zurücklest bzw. irgendwo ein Bit verodert, so dass der Port zurückgelesen wird. Dabei wird der Pin als Low erkannt (da beim Einlesen nicht der Ausgangswert gelesen wird, sondern der Eingangswert) und so das Bit gelöscht wird.
Datum: 27.04.2008 19:27
Nein, das Problem ist beseitigt seitdem der Widerstand vor dem Gate sitzt. Der Fehler trat im Durschnitt bei jedem 10. Schaltvorgang auf. Ausgelesen wurde das PORTB Register nur zu Debugzwecken in der Hauptschleife. An dem PIC ist ein Ethernet Controller angeschlossen über den wurde dann jede Sekunde der Inhalt des Registers als Trace-Message ausgegeben. Das entsprechende Bit wechselte bei jedem Schaltvorgang brav mit. An einem anderen Pin angeschlossen kippte der Ausgang auch zurück. Meine erste Vermutung war das das Register an einer anderen Stelle im Programm verändert wird. Daher die Trace Meldung. Der Einbau des Widerstandes war eher eine Verzweiflungstat. Aber das war es. An der Software habe ich nichts weiter verändert und die neuen Geräte mit Widerstand laufen seit Sommer letzten Jahres.
Datum: 27.04.2008 19:43
Aber das ist doch alles kalter Kaffee! Sieh mal bei Sprut.de nach, da wird über dieses Problem ausführlich berichtet. Es geht darum, daß ein Portpin (als Ausgang) umgeschaltet wird, aber die kapazitive Last (wie hier bei FETs) dazu führt, daß sich die Spannung am Portpin nur langsam ändert. Wird ein anderer Portpin am gleichen Port in der sehr kurzen Folge ebenfalls geschaltet (Bit-Befehl), dann werden alle 8 Bits aus den Eingängen gelesen, das zweite Bit geändert und wieder in das Port-Register geschrieben. Aber das erste Bit wurde falsch gelesen, weil sich die Spannung am Ausgang noch nicht genügend geändert hatte.... (Read-Modify-Write) Bei 18F-Pics (und aufwärts) gibt es darum das LAT-Register, was man besser benutzt und bei den ganzen kleinen Dingern kann man das Problem umgehen, indem man ein Schattenregister einführt, in dem man alle Ausgaben reinschreibt und dann einfach nur stumpf in das Portregister kopiert.
Datum: 27.04.2008 20:00
Aha, wieder etwas gelernt. Danke für die Erklärung. Ich muß gestehen das mir die Existenz der LAT Register zwar bekannt ist, ich diese jedoch bisher vollständig ignoriert habe. Das sollte ich wohl mal ändern... Aber wie Benedikt schon erwähnte, mit einem AVR wäre das nicht passiert ;). Nichtsdestotrotz sind mir diese Stromstöße bei einem µC nicht geheuer. Da bin etwas schüchtern.
Datum: 27.04.2008 21:13
Datum: 27.04.2008 21:29
Hmm..., mal sehen: 16F877 -> 18F452 -> 18F4520 18F252 -> 18F2520 186720 -> 18F6722 Die sind untereinander nur bedingt kompatibel. Beim Übergang 252 -> 2520, 877 -> 452 und 452 -> 4520 mußten wir Software ändern. Prinzipiell sollten zwar die alten Typen noch lieferbar sein, nur leider sind die bei unseren Lieferanten (Sasco, Microchip Direct) nicht verfügbar wenn wir sie brauchen. Welcher AVR ist denn ersatzlos gestrichen worden?
Datum: 27.04.2008 22:10
Antwort schreiben
Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
- Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
- Aussagekräftigen Betreff wählen
- Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
- Groß- und Kleinschreibung verwenden
- Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
- JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
- Schaltpläne, Screenshots usw. als PNG oder GIF anhängen
Formatierung (mehr Informationen...)
- [c]C-Code[/c]
- [avrasm]AVR-Assembler-Code[/avrasm]
- [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
- [math]Formel in LaTeX-Syntax[/math]
- [[Titel]] - Link zu Artikel