Forum: Analoge Elektronik und Schaltungstechnik BC547 und ATMega 328- Kein Kollektorstrom


von Michael (Gast)


Lesenswert?

Hallo zusammen,

ich verstehe gerade meine eigene Schaltung nicht mehr und benötige mal 
einen Denkanstoß von außen.
Ich möchte eine Spannung oberhalb der Versorgungsspannung des ATMega 328 
dazu nutzen einen Eingang von Low auf High zu setzen.

Versorgungsspannung des 328: 3,7 - 4,2 V
Zu erkennende Spannung: 4,7-6V

Um zu verhindern das am Port eine Spannung anliegt, die höher ist als 
die Versorgungsspannung habe ich einen BC547 verwendet.

Sein Kollektor hängt an der Versorgungsspannung des 328, der Emitter am 
Port des 328. Der Port wird über einen 10kOhm R auf Masse gezogen.

Die Basis des 547 hängt über einen 1k Ohm R an der "zu erkennenden 
Spannung".

Es funktioniert soweit alles. Jedoch auch wenn ich den Kollektor 
abklemme. Es scheint als das der Basis-Emitter Strom bereits ausreicht 
um den Port am ATMega328 auf High zu schalten.

Ist das ein Problem? Oder kann ich das so lassen?
Gemessen habe ich:
UBE=0,65V UCE=5,8mV IC=0,12mA IBE=0,2mA

Danke!

von Joe F. (easylife)


Lesenswert?

Michael schrieb:
> Es scheint als das der Basis-Emitter Strom bereits ausreicht
> um den Port am ATMega328 auf High zu schalten.

Klar.
Nur könntest du den Transistor dann auch noch weglassen, und einen 1K 
Widerstand zwischen dein Signal und den Port setzen.

Besser wäre, einen 10K Pullup vom Kollektor nach VCC, und deinen Port an 
den Kollektor anzuschließen.
Emitter an GND, und Basis wie gehabt mit Basiswiderstand (kann ruhig 
auch 10K sein) an dein Signal.
Das ganze invertiert dein Signal zwar, schützt aber auch wesentlich 
besser.

: Bearbeitet durch User
von Luca E. (derlucae98)


Lesenswert?

Michael schrieb:
> Die Basis des 547 hängt über einen 1k Ohm R an der "zu erkennenden
> Spannung".

Dann liegen an dem Pin aber trotzdem deine 6V-U_BE, also etwa 5,3V an.

Michael schrieb:
> Es funktioniert soweit alles.

Wahrscheinlich begrenzen die Schutzdioden am Eingang des Pins. Da der 
10kΩ den Strom begrenzt funktioniert das.
Besser wäre es jedoch, den Emitter auf GND zu legen, deine Fremdspannung 
über einen 10kΩ Widerstand auf die Basis zu legen und den Kollektor an 
den Pin des Atmega. Dann entweder den Pullup einschalten oder einen 
externen Pullup verwenden.
Das Signal ist dann allerdings invertiert.

: Bearbeitet durch User
von Michael (Gast)


Lesenswert?

Danke! Klingt gut.. Invertiertes Signal allerdings nicht so sehr, das 
ist recht aufwändig umzuschreiben da es nur so mit Sleepmode und 
Interrupt sicher klappt. Ich habe aber auch noch ein paar 557 hier 
rumliegen- das hilft nicht, oder?

von Luca E. (derlucae98)


Lesenswert?

Michael schrieb:
> Ich habe aber auch noch ein paar 557 hier
> rumliegen- das hilft nicht, oder?

Doch, einfach noch eine Stufe dahinter. Dann ist es wieder gleichphasig.

von Michael (Gast)


Lesenswert?

Hilfe.. ich steuer dann mit dem Kollektor vom 547 die Basis vom 557? Und 
der 557 hängt dann auch wieder mit Emitter an Masse und Kollektor an 
VCC? Ich stehe gerade auf dem Schlauch

von Luca E. (derlucae98)


Angehängte Dateien:

Lesenswert?

Michael schrieb:
> ich steuer dann mit dem Kollektor vom 547 die Basis vom 557?

Nein, kein BC557. 2 BC547. Siehe Anhang.

von (prx) A. K. (prx)


Lesenswert?

Liegt der low-Pegel des Signals bei maximal ~0,5V? Dann Schottky-Diode 
vor den Eingang, Kathode ans Signal, Anode an den Pin. Externen Pulldown 
raus, internen Pullup rein.

von Joe F. (easylife)


Angehängte Dateien:

Lesenswert?

Geht auch so, wenn das externe Signal bis auf 0V runtergeht.

Nachtrag: ah, geht ja schnell hier.
A.K. hatte die gleiche Idee.

: Bearbeitet durch User
von Michael (Gast)


Lesenswert?

Krass, geht! Ich danke euch!

Habe jetzt zwei 547 hintereinander.. klappt.
Schottky Dioden hab ich leider nicht hier. Die zu messende Spannung kann 
eigentlich nur nicht da sein, oder +4,7-6V Sein. Es ist ein USB 
Anschluss, den ich überwache. Stecker drin-Stecker raus und noch ein 
wenig Sicherheit bei abweichenden USB Ladern.

Grüße

von M. K. (sylaina)


Lesenswert?

Michael schrieb:
> Um zu verhindern das am Port eine Spannung anliegt, die höher ist als
> die Versorgungsspannung habe ich einen BC547 verwendet.

Und warum keinen popeligen Spannungsteiler benutzen?

von Michael (Gast)


Lesenswert?

Weil die tiefere Spannung dann nicht mehr ausreicht um einen Interrupt 
auszulösen und weil ich die dann auch nicht sicher auswerten kann. Die 
Schaltung ist Batteriegespeist und daher etwas komplizierter was das 
Einlesen von Spannungen angeht. Es geht bestimmt..nur mir sind zwei 
bc547 lieber als noch zwei Seiten Code (und vor allem 2 Wochen Code 
schreiben-wenn ich das schreiben muss) :-)

von batman (Gast)


Lesenswert?

Ich mach sowas imma mit Z-Diode und Widerstand, joa. :)

von Oder (Gast)


Lesenswert?

Mit 2 BC547 und den 10 kOhm Kollektorwiderständen fließen IMMER
0,4 mA. - Da kannst du dir fast den Sleep-Mode sparen...

von Jobst M. (jobstens-de)


Lesenswert?

Dein Signal an den Emitter, den Controller mit aktiviertem Pullup an den 
Kollektor, über 10kΩ die Basis an 5V.


Gruß

Jobst

von (prx) A. K. (prx)


Lesenswert?

Jobst M. schrieb:
> Dein Signal an den Emitter, den Controller mit aktiviertem Pullup an den
> Kollektor, über 10kΩ die Basis an 5V.

Gleiches Problem wie bei der Diode. Das Signal hat entweder Spannung 
oder ist offen. Es kann also keinen Strom aufnehmen, nur liefern.

: Bearbeitet durch User
von Michael (Gast)


Lesenswert?

Ruhestrom..ja das war nicht optimal. Ich habe es nun mit einem BC547 
gebaut, wie oben beschrieben, Controller und Pullup am Kollektor. Das 
Signal ist zwar invertiert, der 328 schafft den Interrupt aber auch aus 
dem Sleepmode mit fallender Flanke. Da war ich mir nicht ganz sicher, da 
ich nicht die beiden IR Ports nutze sondern das über PinChangeInterrupt 
mache. Glücklicherweise läuft der Code mit nur minimalen Veränderungen 
wieder:-)
Und ich habe mir auch alles in meine kleines Entwicklerbüchlein 
geschrieben was hier an Tipps gekommen ist- echt gut! Danke

von M. K. (sylaina)


Lesenswert?

Michael schrieb:
> Weil die tiefere Spannung dann nicht mehr ausreicht um einen Interrupt
> auszulösen und weil ich die dann auch nicht sicher auswerten kann. Die
> Schaltung ist Batteriegespeist und daher etwas komplizierter was das
> Einlesen von Spannungen angeht. Es geht bestimmt..nur mir sind zwei
> bc547 lieber als noch zwei Seiten Code (und vor allem 2 Wochen Code
> schreiben-wenn ich das schreiben muss) :-)

Schon mal drüber nachgedacht einen ADC-Eingang zu benutzen? Das braucht 
auch keine zwei Seiten Code ;)

von (prx) A. K. (prx)


Lesenswert?

M. K. schrieb:
> Schon mal drüber nachgedacht einen ADC-Eingang zu benutzen? Das braucht
> auch keine zwei Seiten Code ;)

Wenn ein invertierter Pin schon 2 Seiten Code braucht...

von M. K. (sylaina)


Lesenswert?

A. K. schrieb:
> Wenn ein invertierter Pin schon 2 Seiten Code braucht...

Dann sollte man mal die Schriftgröße ändern :D

von Jobst M. (jobstens-de)


Lesenswert?

A. K. schrieb:
> Gleiches Problem wie bei der Diode. Das Signal hat entweder Spannung
> oder ist offen. Es kann also keinen Strom aufnehmen, nur liefern.

Verdammt, das ist mir entgangen ...

Also Zusammenfassung:
- Eingang ist offen oder hat Spannung, zieht aber nicht runter.
- Eingangsspannung geht über die Rails.
- Keine Phasendrehung des Signals. (Wegen IRQ)
- Zu erkennende Spannung: 4,7-6V
- Darf im Ruhezustand keinen Strom verbrauchen.
- Darf nur aus NPN + PNP + Glue bestehen.
1
+3,7-4,2V o-+--,
2
            |  |
3
            R  |
4
            |  E
5
            +-B  BC557
6
USB o--,    |  C
7
       |    R  |
8
       R    |  +----> µC
9
       |    C  |
10
       +---B   | BC547
11
       |    E  |
12
       R    |  R
13
       |    A  |
14
       |    K  |
15
       |    |  | 2x 1N4148
16
       |    A  |
17
       |    K  |
18
       |    |  |
19
       '----+--'
20
          GND

Alle R = 10kΩ



M. K. schrieb:
> Schon mal drüber nachgedacht einen ADC-Eingang zu benutzen? Das braucht
> auch keine zwei Seiten Code ;)

Genau, und wenn der ADC einen bestimmten Wert erreicht, wird der 
Prozessor aufgeweckt ...


Gruß

Jobst

von Joe F. (easylife)


Lesenswert?

Das wird ja ein immer größeres Gebastle.
Der Vorschlag von "Batman" ist doch gut.
10K in Serie, am Pin Zenerdiode 4.8V nach GND, und gut ist.

von batman (Gast)


Lesenswert?

Wäre in dem Fall gut gewesen, wenn die Controller-Vcc nicht 
darunterfallen könnte. Müßte aber auch einfach mit einem Spannungsteiler 
z.B. 5k:100k zum Portpin gehen? Die internen Portschutzdioden schaffen 
jeweils ca. 1mA.

von S.Siebenhaar (Gast)


Angehängte Dateien:

Lesenswert?

Ich hätte noch 'ne extrem komplizierte Möglichkeit...
Über den Wert des Widerstandes kann man allerdings noch diskutieren.

von batman (Gast)


Lesenswert?

Die D1 liegt dann parallel zur internen Portschutzdiode. Die schafft das 
1.) eigentlich alleine und 2.) gibts da bei offenem Anschluß keinen 
definierten Pegel und 3.) würde mit der Flußspannung von D1 alleine evt. 
das Vcc+0.5V Pin-Limit überschritten.

Schlicht:

USB--+
     |
     5k
     |
     +----->Port
     |
     100k
     |
    ---
    GND

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
Noch kein Account? Hier anmelden.