Hallo,
ich habe hier einen PNP-Transistor an einem Beinchen meines ATMega328,
der eine (bzw. später mehrere) LED schalten soll. Das ganze sieht
skizziert so aus:
1
X
2
| VCC
3
|
4
|<
5
PC0 -[R1]-|
6
|\ //
7
'--[R2]--->|--,
8
___ GND
9
10
R1: 30 kOhm
11
R2: 80 Ohm
Das ganze funktioniert auch eigentlich, PC0 schaltet brav über den
Basiswiderstand und den Transistor die LED ein. Wenn die LED aber
eigentlich
dunkel sein sollte (PORTC |= 1<<PC0), glimmt sie ganz leicht, sie geht
also
nie ganz aus. Das passiert, sobald der Pin im Output-Modus ist (DDRC |=
1<<PC0).
Woran liegt das, und wie kann ich es abstellen?
Karl Heinz Buchegger schrieb:> Schnellschuss>>> R1: 30 kOhm>> Ist ein bischen viel. Nimm mal weniger. 1k
Den Basiswiderstand zu verkleinern sceint das Problem eher noch zu
verstärken, die LED wird heller, wenn ich einen zweiten Widerstand
parallel zum vorhandenen schalte.
Stefan Tomanek schrieb:> Woran liegt das, und wie kann ich es abstellen?
Hardwaremäßig ist die Schaltung OK. Bleibt als Ursache für mich nur:
- SW schaltet die LED doch mal kurz ein
- Transistor defekt
- die reale Schaltung ist anders (falsch verdrahtet, Kriechstrom, ...)
Mess doch mal die Spannungen am Port, an der Basis und ...
Gruß Dietrich
Dietrich L. schrieb:> Stefan Tomanek schrieb:>> Woran liegt das, und wie kann ich es abstellen?>> Hardwaremäßig ist die Schaltung OK. Bleibt als Ursache für mich nur:> - SW schaltet die LED doch mal kurz ein> - Transistor defekt> - die reale Schaltung ist anders (falsch verdrahtet, Kriechstrom, ...)>> Mess doch mal die Spannungen am Port, an der Basis und ...
Gegen GND messe ich am Ausgangsport etwa 4,4V, wenn der Port eigentlich
auf HIGH stehen sollte. In den µC laufen auch überall die 5V rein. Ich
habe dazu auch mal alle peripherie vom Pin abgelötet, dennoch steigt die
Spannung nicht auf VCC; die Software habe ich inzwischen auch schon auf
die Initialisierung des Pins abgerüstet, ohne Erfolg...
Die 0.6 Voltsind doch ok, die schalten den Transistor durch, die LED an.
Das Problem liegt doch auf der anderen Seite der logik, d.h. wenn das
Port High ausgibt.
Welche Spannung liegt dann an??????
R1 mit 1k für den Basiswiderstand ist nix, 30k passen eher.
Spannung messen, hier berichten, Problem selbst oder hier lösen.
Nebenbei: Ein PNP mit Emitter auf GND ist universeller in der Schaltung,
da hat die Spannung im LED-Zweig keinen Einfluß auf das Schaltverhalten.
Zu spät gelesen.
4,4 Volt sperren den PNP nicht, das kannst Du vergessen.
Hilf dem Port, ein Widerstand von 10 kOhm zwischen Portausgang und VCC
wird die Spannung raufziehen, der PNP wird sperren.
spontan schrieb:> Zu spät gelesen.>> 4,4 Volt sperren den PNP nicht, das kannst Du vergessen.>> Hilf dem Port, ein Widerstand von 10 kOhm zwischen Portausgang und VCC> wird die Spannung raufziehen, der PNP wird sperren.
Klar, das wäre die (Not)lösung, aber ich frage mich viel eher, warum der
AVR nur 4,4V ausspuckt?
Kenn die AVRs nicht, was sagen die Specs??
Generell ist es keine gute Idee, auch bei anderer Digitallogik, High mit
fast Versorgungsspannung anzunehmen, das hat schon bei CMOS nicht so
recht gefunzt (2/3 VCC waren garantiert).
Stefan Tomanek schrieb:> Klar, das wäre die (Not)lösung, aber ich frage mich viel eher, warum der> AVR nur 4,4V ausspuckt?
Kannst Du mal den Professor tauschen?
Gruß
Stefan Tomanek schrieb:> Gegen GND messe ich am Ausgangsport etwa 4,4V
Tippe mal auf: AVCC nicht angeschlossen.
Dann zieht sich PORTC seine VCC über die Pins.
Peter
Stefan Tomanek schrieb:> Klar, das wäre die (Not)lösung, aber ich frage mich viel eher, warum der> AVR nur 4,4V ausspuckt?
Ganz einfach:
Weil im Datenblatt drinsteht, daß nur 4,2V garantiert sind.
Gruß
Andreas
Peter Dannegger schrieb:> Stefan Tomanek schrieb:>> Gegen GND messe ich am Ausgangsport etwa 4,4V>> Tippe mal auf: AVCC nicht angeschlossen.> Dann zieht sich PORTC seine VCC über die Pins.
Hatte ich auch vermutet, AVCC ist aber angeschlossen und liegt
brav auf 5V.
Andreas B. schrieb:> Stefan Tomanek schrieb:>> Klar, das wäre die (Not)lösung, aber ich frage mich viel eher, warum der>> AVR nur 4,4V ausspuckt?>> Ganz einfach:> Weil im Datenblatt drinsteht, daß nur 4,2V garantiert sind.
D.h. man sollte für Schaltaufgaben mit dem AVR lieber NPNs nehmen, wenn
man keine zusätzlichen Pullups verbauen möchte?
Andreas B. schrieb:> Ganz einfach:> Weil im Datenblatt drinsteht, daß nur 4,2V garantiert sind.
Er belastet aber nicht gegen GND, sondern gegen VCC. Und da muß high =
VCC sein.
Peter
spontan schrieb:> Nebenbei: Ein PNP mit Emitter auf GND ist universeller in der Schaltung,> da hat die Spannung im LED-Zweig keinen Einfluß auf das Schaltverhalten.
Nein, hier falsch, denn die Betriebsspannung ist positiv gegenüber GND.
Stefan Tomanek schrieb:> D.h. man sollte für Schaltaufgaben mit dem AVR lieber NPNs nehmen, wenn> man keine zusätzlichen Pullups verbauen möchte?
Nein, das macht keinen Unterschied.
Peter
Peter Dannegger schrieb:> Er belastet aber nicht gegen GND, sondern gegen VCC. Und da muß high => VCC sein.
Prinzipiell hast Du Recht (wenn man davon ausgeht, daß die Ausgangsstufe
ein npn Transistor mit einem Widerstand von C gegen Vcc ist), aber da
das Datenblatt sich dazu ausschweigt, würde ich es nicht so machen.
Gruß
Andreas
Hat der Port auch ohne Beschaltung nur 4,4V?
Nächster Schritt wäre, mit einem Oszi den Port betrachten - vielleicht
sind da wirklich negative Pulse mit Tastverhältnis 1:9 zu sehen, was die
Sache erklären würde.
>Prinzipiell hast Du Recht (wenn man davon ausgeht, daß die Ausgangsstufe>ein npn Transistor mit einem Widerstand von C gegen Vcc ist), aber da
Wieso soll da ein npn als Ausgangsstufe drin sein? Das ist doch CMOS,
und da sollte man ohne Last praktisch Uout=Vcc messen können.
Jens G. schrieb:>>Prinzipiell hast Du Recht (wenn man davon ausgeht, daß die Ausgangsstufe>>ein npn Transistor mit einem Widerstand von C gegen Vcc ist), aber da>> Wieso soll da ein npn als Ausgangsstufe drin sein? Das ist doch CMOS,> und da sollte man ohne Last praktisch Uout=Vcc messen können.
Meinentwegen CMOS, aber am Prinzip ändert sich nichts daran. Es sei
denn, es sind komplementäre Ausgangsstufen.
Weiß Du das?
Wenn ja, habt ihr Recht, dann nehme ich alles zurück.
Gruß
Andreas
Andreas B. schrieb:> aber da> das Datenblatt sich dazu ausschweigt, würde ich es nicht so machen.
Es schweigt sich nicht aus.
Seite 494:
Figure 29-306.ATmega328: I/O Pin Output Voltage vs. Source Current (VCC
= 5 V)
Bei 5mA sind es 4,87V und bei nahe 0mA sind es auch genau 5,0V.
Ein CMOS-Ausgang verhält sich wie ein Widerstand, bei 0A fällt 0V ab.
Wieviel Strom nimmt denn der AVR auf?
Wenn ein anderer Ausgang nen Schluß gegen GND hat, dann fällt Spannung
an dem internen Bonddraht zu AVCC ab.
Peter
Argh, ich muss alles zurückziehen, offenbar habe ich (mehrfach) mich
beim
Abzhälen der Beinchen nach dem Umdrehen dre Platine verzählt; statt AVCC
hatte ich AREF mit VCC verbunden.
Kaum war AVCC angebunden, steigt die Spannung auch brav auf Werte, die
den PNP sperren. Danke an alle für die Hinweise, die mich dann nochmal
konzentriert haben nachzählen lassen :-)