Forum: Mikrocontroller und Digitale Elektronik Problem mit PD0 - ATMega128


von Florian K. (fkoch)


Lesenswert?

Hallo allerseits,
leider habe ich unter den vielen Beiträgen keine Lösung zu meinem
Problem gefunden, deshalb schildere ich nun mal die
folgende Situation:

Ein ATMega128 treibt bei mir über 2 MC1413 insgesamt 12 12V-Relais.
Die Steuerpins sind Layoutbedingt auf verschiedene Ports verteilt, nur 
einer davon liegt auf Port D, nämlich PD0. Alle anderen Pins an diesem 
Port sind als Eingänge geschaltet. Steuere ich die Relais nun an, so 
funktioniert alles blendend, nur PD0 hat im High-Zustand anstelle der 5 
nur ~1V zu bieten (Strom nur einige µA), dementsprechend wird das 
zugehörige Relais nicht angesteuert. Unterbreche ich nun die Leiterbahn 
von PD0 zum 1413, so scheint alles in Ordnung zu sein, es liegen im 
High-Zustand 5V an, verbinde ich sie wieder habe ich das gleiche Problem 
wie vorher. Die Leiterbahnverbindung hat einen Widerstand von <0,3 Ohm, 
daran kann es also nicht liegen (gemessen zwischen Pin AtmegA / Pin 
MC1413). Zu den benachbarten Pins, Vcc und GND hat PD0 keine 
niederohmige Verbindung. Verbinde ich den Eingangspin des MC1413 mit 
einem anderen PortD-Portpin und steuere diesen als Ausgang an, so 
funktioniert dies einwandfrei. Ist PD0 defekt, oder habe ich einfach 
etwas übersehen?

Quellcode (Auszug)
1
...
2
void init_ports(void)
3
{
4
   ...
5
   DDRD |= (1<<DDD0);
6
   PORTD &= ~(1<<PD0);
7
   ...
8
}
9
10
...
11
12
int main(void)
13
{
14
   init_ports();
15
16
   PORTD |= (1<<PD0);
17
18
   while(1);
19
20
21
   return 0;
22
}


Florian

von Joan P. (joan)


Lesenswert?

Hast du mal nen anderen mega128 probiert? Manchmal hat man die ja 
mehrfach rumliegen, falls man mal einen zerschießt..

Sonst scheint dort nur noch SPI-Clock oder INT0 zu sein.. nutzt du davon 
etwas zufällig und hast es nur übersehen?

Viel Erfolg!

von Manuel -. (ploana)


Angehängte Dateien:

Lesenswert?

Hallo

Mit welcher entwicklungsumgebung und Programmer arbeitest du??

Ein ganz einfacher Test, wenn du mit AVR studio debuggen kannst
( Ich arbeite mit dem AVR Studio4 und einem JTAGICE mkII)

siehe Bild im Datenanhang:
So kannst du den Pin per Hand setzen, oder löschen ...
und du kannst shen ob im DDR auch wirklich das richtige steht!


MfG
manuel

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.