IO Ports beim mega162

Gast #88580
Lesenswert?

Hallo zusammen

Ich stehe vor einem Problem, das ich einfach nicht verstehen kann.
Ich habe an meinen ATmega162-16PI (PDIP) über einen 5,6kOhm Widerstand
einen BC107B angeschlossen, um damit eine Relais zu treiben. Will
heissen, der Basisstrom ist um 785uA. Das Relais hat eine
Schaltleistung von 350mW. Ich habe das ganze an 5V angeschlossen, somit
habe ich mit B=100 ganz sicher die nötige Schaltleistung erreicht. Nun,
das Problem ist, dass wenn ich den IO-Pin (PIN4 an PORTD) auf H setze,
wird die Spannung auf 1,5V zusammengerissen. Wenn ich den uC ausbaue
und am Vorwiderstand direkt 5V anhänge, Schaltet das Relais ganz brav
und der erwartete Strom von 785uA fliesst tatsächlich. Wenn ich nun den
Widerstand abhänge, gibt der uC auch ganz brav seine 5V. Da drängt sich
natürlich die Frage auf, ob irgendwo ein grosser Innenwiderstand im
PORT ist, den ich nicht kenne. Ist übrigens meine erste Schaltung mit
einem AVR, darum kann es ganz gut sein, dass ich etwas nicht beachtet
habe.

Ich danke im Voraus für eure Hilfe
M@U
Gast #88581
Lesenswert?

solange du PortD nicht entsprechend als output im DDRx setzt, wird mit
out PORTx nur der interne PullUp in der Grössenordnung 30-100 k
aktiviert. Also nach setzen der entsprechenden Bits im DDRx sollte es
klappen.
Gast #88582
Lesenswert?

Maaaann!!!

Ich habe zwar eine wunderschöne SysInit() geschrieben, in der die DDRs
gesetzt werden, aber man sollte sie in main() halt auch aufrufen ;)
Danke mmerten, du hast mir die Augen geöffnet ;)

Gruss m@u

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren