Forum: Mikrocontroller und Digitale Elektronik P-Kanal MOSFET von Low auf hochohmig ?


von Heinz (Gast)


Lesenswert?

Hallo, ich habe folgende Schaltung vorliegen:



                          .----------.
                          |          |
                         ---         |
                          -          |
  .--|--------------------|          |
  | ===                              |
  | GND      __       '------------o
  |         |    |      |    |       |
  |   .-----|7805|------'   .-.      |
  |   |     |____|          | |      |
  |   |       |             | |      |
  |   |      ===            '-'   ||-+
  |   |  __  GND             |    ||->
  |   -o|  |o---------------------||-+
  |   -o|  |o-                       |
  |   -o|  |o-                       |
  |   -o|__|o-                       |
  |   |                              |
  |  ===                             |
  |  GND                             |
  |                                 .-.
  |                                ( X )
  |                                 '-'
  |                                  |
  '----------------------------------'
(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)

Es liegt also eine Batteriespannung von 12 V an Source vor. Mit einen 
IRFR5305 will ich damit eine Lampe ein und ausschalten die am Drain 
hängt.
Das Gate soll von einem Portpin eines Mega48 geschaltet werden.
Damit der MOSFET auch wirklich zu macht, habe ich einen 1,8kOhm zwischen 
Source und Gate gehängt und will den Portpin des Mega48 auf hochohmig 
schalten.

Im Datenblatt steht, das man dazu einen Zwischenschritt machen muss, 
also z.B. erst von LOW nach HIGH und dann das DDR auf Eingang schalten.

Habe schon diverse Kombinationen versucht, funktioniert aber nicht. Hier 
mal mein Code:

void Kanal9()
{

  if(K9 == 0)
  {
    K9DDR &= ~(1 << KANAL9);
    K9PORT |= (1 << KANAL9);

    K9DDR |= (1 << KANAL9);
    K9PORT &= ~(1 << KANAL9);

    K9 = 1;
  }
  else
  {

    K9DDR |= (1 << KANAL9);
    K9PORT |= (1 << KANAL9);

    K9DDR &= ~(1 << KANAL9);
    K9PORT &= ~(1 << KANAL9);


    K9 = 0;
  }

}

Definitionen:
K9DDR = DDRC,
KANAL9 = PC4
K9PORT = PORTC


Mache ich da was falsch, oder ist die ganze Schaltung so nicht richtig ?

von MWS (Gast)


Lesenswert?

Heinz schrieb:
> Habe schon diverse Kombinationen versucht, funktioniert aber nicht.

Kann auch nicht, denn das Gate wird immer soweit unter 12V sein, damit 
der Mosfet leitet. Selbst wenn der Pin auf Eingang und Low geschaltet 
ist, fließt Strom über den Widerstand von 12V über die Clamp-Dioden im 
µC auf 5V. Du brauchst einen zusätzlichen Transistor.

von Purzel H. (hacky)


Lesenswert?

Ja. Das ist leider komplett falsch. Der P-Fet ist richtig, haengt an 
Vcc, die Last gegen GND. Der 7805 is ganz falsch.
Dann kommt's ... das Gate des P-Fet muss graduell runtergezogen werden. 
Bei einem low voltage Fet genuegen vielleicht 2 Volt am Gate gegen 
source, dh das das Gate ist bei 11V halb, bei 10V ganz durchgesteuert. 
Direkt an den Controller darf das Gate nicht sein, da immer 
durchgesteuert. Die Ansteuerung von einem Controller bedingt einen NPN, 
oder N-Fet dazwischen.

von Bastler (Gast)


Lesenswert?

Mikro Oschi schrieb:
> Der 7805 is ganz falsch.

Wieso das? Der µC soll wohl kaum mit 12V laufen (Tip Output links, Input 
rechts). Der 7805 braucht natürlich seine Kondensatoren.

von Heinz (Gast)


Lesenswert?

Ah, die Clamp Dioden !

Das hatte ich nicht bedacht, so ein Mist.

danke für die schnellen Antworten !

von Heinz (Gast)


Lesenswert?

@Bastler

>(Tip Output links, Input
>rechts). Der 7805 braucht natürlich seine Kondensatoren.

Danke für den Hinweis.
Ist in der echten Schaltung natürlich richtig rum.

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.