Als PIC verwende ich einen PIC 16F628-20. Zudem betreibe ich die Schaltung, da nur zu Testzwecken, mit Standard LEDs und habe dementsprechend andere Widerstände (alle 15 Ohm) vor die LED geschaltet.
Nun passiert bei mir komisches: Wenn ich die Transistoren noch nicht eingesetz habe, dann gibt mir der PIC eine schönes PWM-Signal (genau so wie programmiert: Randommässiges PWM Signal auf den 3 Outputs). Sobald ich jedoch die Transistoren einsetze, passiert merkwürdiges:
(Ich habe 3 LED, rot, gelb, grün)
rot: leuchtet konstant aber sehr schwach
gelb: leuchtet gar nicht
grün: leuchtet wie es sollte
PIN Ausgänge:
rot: mit einem Multimeter nichts festzustellen (0V) mit dem Oszilloskop kleinste Impulse
gelb: selbst mit dem Oszilloskop totenstille
grün: etwas schwächeres PWM-Signal als ohne Last von einem Transistor
Nun die Frage, woran liegt es, dass die Transistoren nicht mehr gesteuert werden können? Bzw. das Signal am Ausgang des PICs verschwindet? Was könnte Abhilfe schaffen: FETs statt Transistoren, Vorwiderstände vor die Basis des Transistors?
Was könnte Abhilfe schaffen: FETs statt
Transistoren, Vorwiderstände vor die Basis des Transistors?
Die PIC Reihe kenne ich zwar nicht besonders gut, aber Vorwiderstände an Ports sind immer eine gute Wahl. Vergiß den Basisableitwiderstand nicht. Ohne gehts auch zur Not, kann aber bei zu hohen LOW Pegeln Probleme bereiten.
Oder kleine MOSFET (vergleichbar BSS123), die sind auch ok, wobei du deren RDSon mit einbeziehen mußt, da deine LED mit 5/10 Ohm Vorwiderständen bestückt sind.
Basisableitwiderstand? Widerstand zwischen Basis und Erde?
Also könnten Basisableitwiderstände und Vorwiderstände bei den Pins das Problem ev. lösen? (Ein Versuch wärs wert)
Mosfet anstelle von Transistoren scheint nicht nötig?
Die Schaltung habe ich leider nicht selbst entworfen, langsam wünschte ich mir jedoch ich hätte es von anfang an selbst gemacht, dann stünde ich nicht dauernd vor irgendwelchen neuen „Phänomenen“.
Basisableitwiderstand? Widerstand zwischen Basis und Erde?
Direkt von der Basis zum Emitter.
Also könnten Basisableitwiderstände und Vorwiderstände bei den
Pins das Problem ev. lösen? (Ein Versuch wärs wert)
Der Vorwiderstand ist das eigentliche Problem. Die Diode (Basis-Emitter) hält den Port auf ca. 0,7 V fest. Eigentlich können das andere CPUs, aber ob dein PIC das kann, keine Ahnung.
Manchmal gibt es so richtig wüste Innenbeschaltungen von Ports, die einem das Leben wirklich schwer machen können. Aber - wie gesagt - den PIC kenne ich nicht gut und das Datenblatt habe ich gerade nur kurz überflogen.
So als erste Idee: Vorwiderstand 1k, Ableit 10k. Das paßt häufig.
Denn ohne Last arbeiten die Ports ja so, wie du es gerne hättest, aber eben nicht mit dem Transistor als Last.
Mosfet anstelle von Transistoren scheint nicht nötig?
Wenn die Bastelkiste sie nicht liefert, dann tuns auch die normalen.
Die Schaltung habe ich leider nicht selbst entworfen, langsam
wünschte ich mir jedoch ich hätte es von anfang an selbst
gemacht, dann stünde ich nicht dauernd vor irgendwelchen neuen
„Phänomenen“.
Die PICs sind jetzt auch nicht meine starke Seite.
Aber die Ports sollten programmierbare Pullups haben. Sind die ausgeschaltet dann liefert der Ausgang nur was im µA-Bereich.
Das reich aus um das Oszilloskop anzusteuern, aber nicht für den Transistor.
Also mal Datenblatt lesen.
Bei den PICs gibt es einen Konfigurationsblock, wo man z.B. auch einstellt wie der Oszillator funktionieren soll, auch den musst du dir mal ansehen.
Aber die Ports sollten programmierbare Pullups haben. Sind die
ausgeschaltet dann liefert der Ausgang nur was im µA-Bereich.
Das reich aus um das Oszilloskop anzusteuern, aber nicht für
den Transistor.
Die Ausgänge haben 300mA maximalwerte bei 5V
Bei den PICs gibt es einen Konfigurationsblock, wo man z.B.
auch einstellt wie der Oszillator funktionieren soll, auch den
musst du dir mal ansehen.
Das Programm auf dem PIC ist praxiserprobt und funktioniert. (nicht von mir)
Aber die Ports sollten programmierbare Pullups haben. Sind die
ausgeschaltet dann liefert der Ausgang nur was im µA-Bereich.
Das reich aus um das Oszilloskop anzusteuern, aber nicht für
den Transistor.
Die Ausgänge haben 300mA maximalwerte bei 5V
steht im Datenblatt, oder was?
Gilt das unter allen Umständen oder doch nur für Low-Pegel?
Bringt aber nix, wenn die Pullups gar nicht aktiviert sind.
Ansonsten prüfe mal, was es mit den 300mA auf sich hat.
Sind das nicht vielmehr die absoluten Grenzbedingungen.
Normale Prozessorports bringen keine 300mA.
Bei den PICs gibt es einen Konfigurationsblock, wo man z.B.
auch einstellt wie der Oszillator funktionieren soll, auch den
musst du dir mal ansehen.
Das Programm auf dem PIC ist praxiserprobt und funktioniert.
(nicht von mir)
Du sagst, mit dem Oszi sieht es sehr gut aus.
Dann probiere es doch mal mit dem Oszi und einen Lastwiderstand
z.B. 1kOhm vom Port gegen Masse.
Wenn dann das Signal wieder weg ist, fehlen die Pullup-Widerstände.
Umgekehrt probiere es mal mit 1kOhm vom Port gegen +Us.
Dann siehst du genau was passiert.
Je nachdem brauchst du Pullup oder Basisvorwiderstände.
Gruß Uwi
Vorwiderstände oder Mosfets sind zielführend, soweit Zustimmung. Wofür sollen Ableitwiderstände gut sein? Bei Frequenzen >> 1kHz könnte m.E. höchstens eine Diode von Basis zu Kollektor (damit Basis nie in Sättigung geht) sinnvoll sein.
Als externe pull-downs für MOSFET halte ich sie für angeraten, aber durchaus auch den klassischen Ableitwiderstand. Im Fall, daß eine CPU (so als Idee die ARM7 Familie von Atmel) im Resetfall seine Ports auf Tri-State schaltet, hast du definierte Pegel und nicht irgendwelche offenen Gates oder eine offene Basis.