Forum: Mikrocontroller und Digitale Elektronik PC anschalten mit ATMEGA8


von Gerhard (Gast)


Lesenswert?

Hallo,

versuche per ATMEGA8 meinen PC anzuschalten. Als Pin auf dem PC 
Motherboard benutze ich den Power-On Eingang, der normalerweise vom 
Taster an der Frontplatte auf Ground gezugen wird um den PC zu starten. 
Die Verkabelung in etwa wie folgt:
1
  M8 Vcc  ----------------> PC +5 V suspend
2
3
  M8 PD7  ------ 1k ------> PC Pwr-on
4
5
  M8 GND  ----------------> GND PC

Im Code (AVR GCC) schalte ich erst den Pin auf Ausgang:
1
DDRD |= (1<<PD7);

und später im Programm möchte ich den Ausgang kurzzeitig auf Low ziehen:
1
PORTD &= ~(1<<PD7);
2
_delay_ms(10);
3
PORTD |= (1<<PD7);

Leider schaltet der PC nicht an. Verbinde ich in obiger Schaltung 
allerdings kurzzeitig PD7 am ATMEGA und GND mit einem Stück Draht, so 
springt der PC sofort an. Der 1k Widerstand als Schutzwiderstand scheint 
nicht zu hoch zu sein.

Hat irgendjemand vielleicht eine Idee wo der Fehler liegt?

Gerhard

von Jörg B. (manos)


Lesenswert?

Vielleicht sind 10ms zu kurz... einfach mal mit 500ms versuchen...

von Niels H. (monarch35)


Lesenswert?

Vermutlich hat der PC selber einen Pullup an dem PWR-Pin. Dann könnte 1K 
zuviel sein. Ich würde ausserdem eine Diode in den Signalweg ein bauen, 
damit der Strom auch nur in eine Richtung fliessen kann.

von Gerhard (Gast)


Lesenswert?

@Niels:
Wie gesagt, wenn ich an PD7 mit einem Stück Draht kurz auf Masse ziehe 
(an der Stelle, die ja auch der uC auf Masse ziehen sollte), bootet der 
PC sofort. Dann bin ich auch vor dem 1K Widerstand. Das mit der Diode 
ist sicher keine schlechte Idee.

@Jörg:
hatte auch schon ein deutlich längeres Delay drin, nutzt nichts.

Der Pin am PC hat 3.6 Volt. So wie oben beschrieben sollte doch der Pin 
floaten und nur beim Schalten den Ausgang auf Masse ziehen, richtig?

Ich sollte evtl. sicherheitshalber den Pin am ATMEGA auf Eingang lassen 
(wegen des hohen Eingangswiderstands) und nur im Bedarfsfall auf Ausgang 
umschalten, auf GND ziehen und wieder zurück auf Eingang schalten. Ist 
aber sicher nicht der Grund, warum es nicht funktioniert.

Gerhard

von Niels H. (monarch35)


Lesenswert?

Man weiss halt nicht genau, was auf dem Mainboard ist. Jedenfalls würd 
ich es mit einem miniatur-Reedrelais machen. Damit wärst du 100% auf der 
sicheren Seite.

von Gerhard (Gast)


Lesenswert?

Hallo und Danke für die Tips,

nur zur Vollständigkeit:

Das Anschalten des PCs funktioniert wie ganz oben beschrieben, hatte 
allerdings den Code zum Initialisieren der Pins in einer eigenen Init 
Routine die ich blöderweise vergessen habe, am Anfang der Main Funktion 
aufzurufen. So was blödes!

Gerhard

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.