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
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...