www.mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik PROFET mit uC ansteuern


Autor: Martin S. (drunkenmunky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich will mit einem uC Infineon C515C einen Infineon Profet BTS50080 
ansteuern.

http://www.infineon.com/dgdl/BTS50080-1TEA_DS_v10....

der Fet benötigt ungefähr nur 1 mA Strom. Kann ich den dann direkt 
schalten mit dem uC Ausgang? Funktioniert bei mir irgendwie nicht so...

Das einfachste wäre dann wohl ein selbstleitenden N-Kanal-Mosfet zu 
nehmen und mit dem den IN Eingang des Profets auf Masse zu ziehen, oder?

Selbstleitend deswegen, damit bei einem Reset des Controllers der Profet 
nicht durchschaltet. Aber was ist wenn die 5V Versorgungsspannung des uC 
ausfallen? Dann schaltet des Profet ja auch ein ?!

Wie kann man dieses Problem lösen? Man braucht dafür mindestens 2 
Transistoren, oder?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moment mal, der PROFET schaltet doch dann durch, wenn du seinen
Eingang auf 0 V legst, wenn du ihn offen lässt (Controllerpin ist
hochohmig), dann ist er ausgeschaltet.

Oder habe ich das Datenblatt flasch verstanden?

Zur Not müsste ein pnp-Transistor als Emitterfolger genügen, um
den Strom zu verstärken.  Ich kann aber nicht recht glauben, dass
ein Controllerausgang nicht in der Lage wäre, einen derartigen
(vergleichsweise geringen) Steuerstrom zu versenken.

Autor: Martin S. (drunkenmunky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, der Profet schaltet durch, wenn der IN Eingang auf Masse gelegt 
wird.

Ich habe den Ausgang des uC direkt mit IN des Profets verbunden. Die 
Versorgungsspannung des Profets ist größer als 5V. Jetzt zum Testen ca. 
8V. Wenn ich dann am IN Eingang messe (Ausgang high) habe ich 7,x Volt. 
Bei Ausgang low habe ich aber immernoch so um die 5 Volt.

Kannst du kurz ne Skizze machen, wie du es mit einem zusätzlichen 
Transistor schalten würdest?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Vbb höher als Vcc ist, brauchst du wohl in der Tat Transistoren.
Das hier sollte sicher funktionieren.  Für die Transistoren könntest
du ja einen BC847BPN nehmen, da hast du beide gleich in einem Gehäuse.

Autor: Martin S. (drunkenmunky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
also die Schaltung funktioniert so schon, ändert aber nichts daran dass 
beim Einschalten der PROFET kurz eingeschalten wird wegen dem Reset des 
Controllers, der alle Ausgänge kurzzeitig auf 1 schaltet.

Wie könnte man das Problem lösen? Mit Mos-FETs? Aber dann braucht man ja 
mindestens einen selbstleitenden und einen selbstleitenden oder?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin S. schrieb:
> Wie könnte man das Problem lösen?

Sicher nur mit einem Controller, der keine derartige Macke hat.

Oder mit sehr viel mehr an Aufwand ringsum: einschalten mit "low"
vom Controller, aber gleichzeitig noch überwachen, dass Vcc des
Controllers schon anliegt, denn ansonsten kann er ja den zum
Ausschalten notwendigen "high"-Pegel (der wohl in Wirklichkeit nur
ein pullup ist, wenn ich das richtig sehe) noch nicht erzeugen.

Falls Schaltgeschwindigkeit und Sicherheit keine Rolle spielen,
kannst du dir mit einem Tiefpass behelfen, der den Einschaltimpuls
unterdrückt.

Autor: Martin S. (drunkenmunky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke für die Antwort.

Ist das nicht bei jedem Controller so?

Bei welchen Controller denn nicht?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin S. schrieb:

> Ist das nicht bei jedem Controller so?

Ja, das ist nicht bei jedem so.

> Bei welchen Controller denn nicht?

Bei so ziemlich allen, die ein zeitgemäßes Design mit (auf tristate
schaltbaren) push-pull-Ausgangsstufen statt einer Krücke mit
open-drain-FETs und Pullup-Widerständen haben.  Dort startet der
Controller mit allen IO-Pins im Tristate, und entsprechend kann
kein Basisstrom in den Transistor fließen.  Wenn die Firmware dann
den Pin auf Ausgang stellt, sollte sie sich halt zuvor kümmern,
dass er danach den passenden Pegel (hier: low) hat, dann entsteht
auch kein spike auf der Leitung.

Autor: Martin S. (drunkenmunky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok. Kannst du mal ein paar Typen nennen? Pics? AVRs?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin S. schrieb:
> Ok. Kannst du mal ein paar Typen nennen? Pics? AVRs?

Ja, zum Beispiel diese.  Bei den AVRs bin ich ganz sicher, dass sie
alle push-pull-Ausgänge haben, bei den PICs kann ich das nur für
die sagen, mit denen ich bislang zu tun hatte, aber da trifft das
ebenfalls zu.

Autor: Abdul K. (ehydra) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jörg Wunsch schrieb:
>> Bei welchen Controller denn nicht?
>
> Bei so ziemlich allen, die ein zeitgemäßes Design mit (auf tristate
> schaltbaren) push-pull-Ausgangsstufen statt einer Krücke mit
> open-drain-FETs und Pullup-Widerständen haben.  Dort startet der
> Controller mit allen IO-Pins im Tristate, und entsprechend kann
> kein Basisstrom in den Transistor fließen.  Wenn die Firmware dann
> den Pin auf Ausgang stellt, sollte sie sich halt zuvor kümmern,
> dass er danach den passenden Pegel (hier: low) hat, dann entsteht
> auch kein spike auf der Leitung.

Wenn du den 8051 meinst: Da ist erheblich mehr im Pin drin! Meiner 
Meinung nach ist es ein elegantes Design. Auch wenn ich gerne auf Intel 
rumhacke.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Abdul K. schrieb:
> Wenn du den 8051 meinst: Da ist erheblich mehr im Pin drin!

Zumindest nicht beim klassischen 8051, und offenbar auch nicht beim
hier benutzten C515 von Infineon (der kann wohl an einem Port auch
push-pull arbeiten, aber der scheint mir als Speicherbus benutzt
zu werden).  Ansonsten sind dort externe oder interne Pullups üblich,
um den high-Pegel am normalen parallelen Ausgang zu erreichen.

Kann natürlich sein, dass es mittlerweile auch Derivate gibt, die
mehr echte push-pull-Stufen haben, die Vielfalt an 8051-Derivaten
ist mir zu unübersichtlich, um mich da auf eine Aussage einzlassen. ;-)
Im Großen und Ganzen werden sie's aber alle als historischen Ballast
mit sich rumschleppen, da man einen 8051 ja nicht wegen seiner
architekturellen Schönheit, sondern in erster Linie wegen seiner
Rückwärtskompatibilität bis zur Jungsteinzeit benutzt. :)

Autor: Abdul K. (ehydra) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und in deren Jungsteinzeit wurde bereits der Pin kurzzeitig durch einen 
stärkeren PMOS nach High gezogen und dann durch einen Weak-Pull-Up 
gehalten. Sie waren einfach schlau!

Ich habe Hunderte von vor allem 80C535 aber auch aller benachbarten 
Typen in Händen gehabt, entwickelt, supported, repariert, in zig 
Maskenversionen.

Die Vorgänge sind in den technischen Unterlagen zu diesen Controllern 
ausführlich beschrieben und mittlerweile im Internet vermutlich 
hunderttausende Male in HTML geklont worden.

Ja ist richtig, im External-Mode wird ein Port dauerhaft strong 
geschaltet. Man kann sogar die Pins für RD und WR sowie die seriellen 
Pins RxD und TxD am Port 3 gleichzeitig als Port und Funktionspin 
benutzen.

Ich bin für die Dinger leider Experte geworden, war bei Phytec.

Autor: Martin S. (drunkenmunky)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich frag mich nur warum der Vorgang so lange geht. Ich hab mal eine 21W 
Glühbirne an den PROFET geschalten und die leuchtet, wie ich finde, bis 
zur vollen Helligkeit auf, bis sie dann auf Low gesetzt wird. Also 
schätungweise eine halbe Sekunde.

Im Handbuch des C515C steht:

The time required for a reset operation is the oscillator start-up time 
plus 2 machine cycles, which,
under normal conditions, must be at least 10 - 20 ms for a crystal 
oscillator. This requirement is
typically met using a capacitor of 4.7 to 10 mF. The same considerations 
apply if the reset signal is
generated externally (figure 5-1 b). In each case it must be assured 
that the oscillator has started
up properly and that at least two machine cycles have passed before the 
reset signal goes inactive.

Stimmt meine Resetbeschaltung nicht? Hab mal ne Skizze angehängt.

Phytec schreibt das zur Resetbeschaltung:
Verbinden Sie den /Reset-Eingang des Moduls (Pin 31) über eine Taste mit 
der Schaltungsmasse. Eine Spule von 2,2µH im Signafluß und ein 
Kondensator von 100nF gegen VCC bilden hier eine Filtermaßnahme und die 
Tastenentprellung.

Hab ich da was falsch verstanden?

Autor: Tobias Born (gremlin72)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Ich habe mal eine Frage zu Jörg's Schaltung:
Braucht man den PNP Transistor unbedingt? Ich ziehe den Eingang eines 
BTS443 mit nur einem NPN Transistor (SC236) auf 0. Diesen steure ich 
über ein AVR Net-IO. Das funktioniert hervorragend. Jedoch habe ich die 
Platinen schon fertig und wollte einen SMD (BC 847) nehmen, was nicht 
funktioniert. Kann mir mal bitte einer erklären, woran das liegt. Ich 
werde wohl die Platinen noch mal machen dürfen, oder?

Vielen Dank schon mal für Eure Antworten. Bin schon seit Stunden am 
Grübeln und Googlen.

Autor: Tobias Born (gremlin72)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Damit funktioniert es jetzt mit noch weniger Aufwand und sogar ohne 
Widerstand.

Für den, der es noch braucht: Viel Spaß damit!

Autor: MaWin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Damit funktioniert es jetzt mit noch weniger Aufwand und sogar ohne
> Widerstand.

Du meinst, es ist auf diese Art immer eingeschaltet.
Das hättest du einfacher haben können, IN an GND.

Und der TE hat keinen AVR.

Ist es wirklich so schwer, im Datenblatt des BTS in Figure 13 zu
gucken, und zu erkennen, daß der ProFET für 8051-er Microcontroller
eher ungeeignet ist ?

Man bräuchte mindestens

       +5V
        |E
Pin -R-|< PNP  +--R-- ProFet
        |      |
        +--R--|< NPN
               |E
              GND

(z.B. realisiert durch einen BCR10)

Autor: Tobias Born (gremlin72)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo MaWin,

Eingeschaltet ist er immer dann, wenn am Gate des BSS123 5V anliegen. 
Sonst nicht!
Ich verwende keinen 8051, sondern einen Atmel. Das meinte ich auch mit 
AVR.

Autor: Anja (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MaWin schrieb:
> Man bräuchte mindestens

Nee ein einfacher Logic-Level FET (BSS138) reicht vollkommen aus:
Das Gate fest an +5V den Source an den Port-Ausgang. Drain zum BTS.

Im Reset-Fall: Pull-up ist aktiv Gate und Source = 5V FET sperrt -> BTS 
ist aus.

Mit Low-Level am Port: Gate ist positiver als Source -> FET leitet -> 0V 
am BTS -> BTS ist ein.

Gruß Anja

Autor: Anja (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tobias Born schrieb:
> Eingeschaltet ist er immer dann, wenn am Gate des BSS123 5V anliegen.
> Sonst nicht!

Drain und Source sind im Bild vertauscht. Über die Body-Diode ist der 
BTS immer eingeschaltet.

Gruß Anja

Beitrag #2599655 wurde vom Autor gelöscht.
Autor: Tobias Born (gremlin72)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Stimmt. Besten Dank, Anja! Jetzt hätte ich beinahe noch mal Ausschuss 
geätzt.
Auf der Platine war es richtig, wo es definitiv funktioniert, nicht 
jedoch nicht in der Schaltung.
So muß es aussehen:

Autor: Anja (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tobias Born schrieb:
> So muß es aussehen:

Ich würde bei Verwendung eines AVR noch einen Pull-Down Widerstand am 
Gate spendieren.
Ansonsten floatet das Gate während des Resets.

Gruß Anja

Autor: MaWin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Nee ein einfacher Logic-Level FET (BSS138) reicht vollkommen aus:
> Das Gate fest an +5V den Source an den Port-Ausgang. Drain zum BTS.

Ja, die Variante geht auch.

Sozusagen Basisschaltung per MOSFET.

Autor: Tobias Born (gremlin72)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke. Schon passiert.

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.