www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik mikrocontroller Signal Invertieren


Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Peter Roth (gelb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Martin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Peter Roth (gelb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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.

Autor: Peter Roth (gelb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau, aber der Transistor wird in dieser schaltung nie nicht-leitend.
das ist mein Problem.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab immer noch nicht raus, warum du da einen PNP nimmst. Mit einem 
NPN macht man einen Signalinverter so:
                                 o 5V
                                 |
                                ---
                                10k
                                ---
                                 |
                                 +----------o   Ausgang
                                 |
    Eingang                    |/
    o------| R_Basis |---------|   BC337
                               |\
                                 v
                                 |
                             ----+--- 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.

Autor: Andreas Schweigstill (Firma: Schweigstill IT) (schweigstill) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Andreas Schweigstill (Firma: Schweigstill IT) (schweigstill) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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. ;-)

Autor: Martin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Andreas Schweigstill (Firma: Schweigstill IT) (schweigstill) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie müsste man denn R19/R21 anbringen?

Autor: Andreas Schweigstill (Firma: Schweigstill IT) (schweigstill) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Christian T. (shuzz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.