Hallo zusammen, ich will mir eine Schaltung aufgebauen um zwei Ausgänge eines Atmega8 zu invertieren. Ich brauche das, weil ich eine Soft-ISP Schnittschtelle betreibe um über Schieberegister eine LED-Matrix anzusteuern. Beim Start des uP sind alle Ausgänge auf HI und somit habe ich undefinierte Zustände auf der Matrix Versucht habe ich das mittels PNP Transistoren, habe da aber keine brauchbaren Ergebnisse bekommen. (Der uP bleibt an seinem Ausgang ca. 0.2V unter der Versogungsspannung => PNP bleibt leitend. Wenn ich über einen Spannungsteiler (10Ohm zu 18Ohm) der ca. 3.5 V auf den Transistor gibt, funktioniert das Schalten zwar super, allerdings habe ich dann im leitenden Zustand nur noch knappe 1.4V und das reicht nicht damit die Schieberegister dies als HI erkennen.) Zu meiner Frage: Wie muss ich einen OP beschalten, damit er mir das uP Signal korrekt invertiert. Zwei OPs habe ich per zufall so wie so ungebraucht auf der Platine. PS: eventuell hat noch jemand ne Idee wie man dies Anders lösen könnte. gruss Martin
Martin schrieb: > betreibe um über Schieberegister eine LED-Matrix anzusteuern. Beim Start > des uP sind alle Ausgänge auf HI Beim Start des Controllers sind alle Ports als Eingang ohne Pullup definiert. Der Pegel wird von der Peripherie erzeugt. > Versucht habe ich das mittels PNP Transistoren, habe da aber keine > brauchbaren Ergebnisse bekommen. (Der uP bleibt an seinem Ausgang ca. > 0.2V unter der Versogungsspannung => PNP bleibt leitend. Dein PNP leitet bei 0,2V?? Kann nicht sein. Schaltung zeigen! > PS: eventuell hat noch jemand ne Idee wie man dies Anders lösen könnte. Erst klären, warum deine Ausgänge beim Starten high sind. Grüße, Peter
Danke für deine schnelle Antwort. Der PNP ist doch immer leitend, solange die Basis Negativer als der Emitter ist? 0.2V under der Betriebsspannung. Schaltung ist im Anhang. gruss Martin
Martin schrieb: > Der PNP ist doch immer leitend, solange die Basis Negativer als der > Emitter ist? Zum Leiten muss die Basis etwa 0,7V negativer als der Emitter sein. Die Spannung stellt sich von selbst ein, sobald Strom aus der Basis gezogen wird (Portpin auf Low). Deine Schaltung sollte funktionieren, wenn sie so wie gezeichnet aufgebaut ist. Wenn deine Transistoren bei Ube = 0,2V leiten, ist was faul (Messfehler, Verdrahtungsfehler, defektes Bauteil, falsches Bauteil...) Grüße, Peter
>Der PNP ist doch immer leitend, solange die Basis Negativer als der >Emitter ist? Ja. >0.2V under der Betriebsspannung. ??? In der Regel beträgt UBE 0,7V bei Silizium-Transistoren. Peter Roth hat doch schon geschrieben, dass die Portpins hochohmig beim Einschalten sind. Entweder hängst du noch ein paar Pull-Down-Widerstände an die Pins, oder du überarbeitest dein Programm.
Nochmal grundsätzlich zur Funktion: letztendlich hast du 2 Open-Kollektor-Ausgänge, die am Stecker "LED-Matrix-OUT" nur gegen +5V ziehen können. Du brauchst also zusätzlich Pulldown-Widerstände an den Kollektoren, sonst kommt kein Low zustande. Grüße, Peter
Genau, aber der Transistor wird in dieser schaltung nie nicht-leitend. das ist mein Problem.
Also das mit dem PNP hab ich nicht hinbekommen, habs gerade nochmals versucht... kann mir jemand sagen wie ich das mit enem OP LM324N hinkriege? Danke & Gruss Martin
Ich hab immer noch nicht raus, warum du da einen PNP nimmst. Mit einem NPN macht man einen Signalinverter so:
1 | o 5V |
2 | | |
3 | --- |
4 | 10k |
5 | --- |
6 | | |
7 | +----------o Ausgang |
8 | | |
9 | Eingang |/ |
10 | o------| R_Basis |---------| BC337 |
11 | |\ |
12 | v |
13 | | |
14 | ----+--- GND |
(Für R_Basis werden wohl 1k ausreichend sein, ohne jetzt gross nachzurechnen) Da deine µC beim Einschalten alles Eingänge sind, sollte man jetzt noch einen Pullup oder einen Pulldown von der Basis weg machen, damit auch in diesem Fall ein definierter Zustand vorliegt.
Es macht keinen Sinn, auf OPs zu wechseln. Es ist möglich, solch eine Schaltung mit PNP-Transistoren aufzubauen. Wenn jedoch keine Pull-Down-Widerstände an den Kollektoren vorhanden sind, gibt es keine wohldefinierten Signalpegel für die LED-Matrix. Bei vielen Logikfamilien ist der Pegel eines offenen Einganges nämlich ein "schwaches High". Dies sollte man aber auch nicht ausnutzen, da sonst die Flankensteilheit bei einem Low-High- Übergang zu niedrig wäre. Sollten tatsächlich die Transistoren trotz der eigentlich zu geringen Eingangsspannung schon beginnen, leitfähig zu werden, sollten jeweils ein Widerstand zwischen Basis und Emitter geschaltet werden, um einen eingangsseitigen Spannungsteiler zu realisieren. Bei der obigen Schaltung (Basiswiderstand 10k) würde ich hierfür ebenfalls 10k verwenden. Die ganze Schaltung wird auf Grund fehlender Abblockkondensatoren an IC3 ohnehin nicht allzu stabil funktionieren.
Karl heinz Buchegger schrieb: > (Für R_Basis werden wohl 1k ausreichend sein, ohne jetzt gross > nachzurechnen) Der Basiswiderstand muss nicht unbedingt kleiner als der Kollektor- widerstand sein, wenn man nicht gerade Transistoren mit b < 1 eingesetzt. ;-)
Danke für euer Bemühen. Hab die Schaltung neu gezeichnet. Könnt ihr schauen ob ihr noch Verbesserungspotential seht? Der OP wird zur "Bass-Erkennung" gebraucht. gruss Martin
Martin schrieb: > Könnt ihr schauen ob ihr noch > Verbesserungspotential seht? Ja, da sind noch etliche Schwachstellen: - R19/R21 sind völlig falsch angebracht - 22pF sind hier keine passenden Abblockkondensatoren - keine GND-Verbindung zur LED-Matrix Gerade zum Thema Abblockkondensatoren wurden doch schon Unmengen an Publikationen verfasst und auch Diskussionen in diesem Forum geführt. Dort gibt es auch etliche Dimensionierungshinweise. Wieso beherzigen Sie diese nicht?
Martin schrieb:
> wie müsste man denn R19/R21 anbringen?
Indem man sich mit den Grundlagen der elektronischen Schaltungstechnik
befasst und selbst auf die Lösung kommt.
Martin schrieb: > ich will mir eine Schaltung aufgebauen um zwei Ausgänge eines Atmega8 zu > invertieren. Das macht man in Software. > Ich brauche das, weil ich eine Soft-ISP Schnittschtelle > betreibe um über Schieberegister eine LED-Matrix anzusteuern. Beim Start > des uP sind alle Ausgänge auf HI und somit habe ich undefinierte > Zustände auf der Matrix Nö, die Pins sind beim Reset tristate. Um low oder high zu sehen, mußt Du Pulldowns oder Pullups nehmen, fertig. Dein Problem werden aber die Schieberegister sein, das 74HC595 hat keinen internen Einschaltreset, also sind die Pegel undefiniert. Der MC kann nix dafür. Aber man kann den Output-Enable des HC595 mit dem MC verbinden und noch nen Pullup dran. Dann kann der MC gültige Daten reinschieben und erst danach wird der HC595 enabled. Und wenn das zufällig noch ein PWM-Output ist, kann man das Display dimmen. Peter
Generelle Frage: Ich will den Port ja nur invertieren, da ich Pulsströme von 100mA durch die LEDs jage. Mach das Invertieren überhaupt sinn, oder kann ich das teoretisch weglassen? gruss Martin
Um die Frage zu beantworten müsste man erstmal die Schaltung Deiner Matrix sehen... ^^ Deine Invertierung hat mit den Pulsströmen durch die Matrix erstmal nix zu tun, sofern die LEDs (wie oben bereits vermutet) an einem Schieberegister hängen. Beherzige den Tipp mit dem Output-Enable Pin des SR, da hängst nen Pullup dran und steuerst das Ding mit dem Controller an. Dann fliesst erst Strom in die LEDs wenn auch wirklich die richtigen Daten im Register anliegen...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.