Forum: Mikrocontroller und Digitale Elektronik ATmega128 - komisches I/O PIN Verhalten!


von Gäst_5 (Gast)


Lesenswert?

Hallo,

ich habe eine Schaltung mit einem ATmega128 aufgebaut,
an PF0 bis PF6 hängen LEDs, welche alle gleich angeschlossen sind.

Beim ersten Funktionstest der LEDs, lasse ich den PORTF einfach 2sek 
High und 2sek. Low in einer Endlosschleife laufen.
PF0 bis PF3 machen dies mit und die LEDs blinken, PF4 bis PF6 reagieren 
nicht und sind ständig auf High.

Woran kann das liegen?

DDRF = 0xff;

int main()
{
PORTF = 0xff;
_delay_ms(2000);
PORTF = 0x00;
_delay_ms(2000);
}

Ähnliches Problem beim PORTB, an welchem haargenau wie an PORTF LEDs 
geschaltet sind:

DDRB = 0xff;

int main()
{
PORTB = 0xff;
_delay_ms(2000);
PORTB = 0x00;
_delay_ms(2000);
}

PortB schwankt im 2sek Takt zwischen 5V und 1,3V ???

von Timmo H. (masterfx)


Lesenswert?

Deaktiviere den JTAG in den Fuse-Bits!

von Timmo H. (masterfx)


Lesenswert?

JTAG ist natürlich nur an PORTF. Bei PORTB könnte ein ISP-Programmer 
schuld sein, der an PB0-PB3 hängt?

von Gäst_5 (Gast)


Lesenswert?

> Deaktiviere den JTAG in den Fuse-Bits!

Okay - danke! Habe bisher nur den M103 Fuse gelöscht...

> Bei PORTB könnte ein ISP-Programmer schuld sein, der an PB0-PB3 hängt?

Der ISP Programmer hängt an PB1 (SCK), PE0 sowie PE1 (PDI, PDO).

von Gäst_5 (Gast)


Lesenswert?

Gäst_5 schrieb:
> PE0 sowie PE1 (PDI, PDO

Ist beim ATmega128 so.

von Timmo H. (masterfx)


Lesenswert?

Stimmt bei dem ist das ja etwas anders. PEN beschaltet?

von Gäst_5 (Gast)


Lesenswert?

PEN - also PIN 1 hängt in der Luft...

"PEN is internally pulled high."
[...]
"PEN has no function during normal operation."

von Timmo H. (masterfx)


Lesenswert?

Und an PORTB hängt sonst nichts dran?
Alle VCCs, GND und AVCC angeschlossen?

von Gäst_5 (Gast)


Lesenswert?

> Alle VCCs, GND und AVCC angeschlossen?

PIN 21, 52 und 64 an +5 V
PIN 22, 53 und 63 an GND

> Und an PORTB hängt sonst nichts dran?

PB0 - LED 1
PB1 - SCK vom Programmer (geht auch nicht, wenn er abgezogen ist)
PB2 - LED 2
PB3 - offen
PB4 bis PB7 gehen an Klemmen, an denen aber nichts angeschlossen ist, 
also offen

von Gäst_5 (Gast)


Lesenswert?

sonst noch jemand eine Idee was mit meinem PORT B los sein könnte?

von Ingo (Gast)


Lesenswert?

Kompabilitätsfuse?

von Timmo H. (masterfx)


Lesenswert?

Scheint nichts mit PORTB zu machen.
Wenn du folgendes machst:
1
int main(){
2
DDRB = 0xFF;
3
PORTB = 0xff;
4
while(1);
5
}
Sind die Ports dann immernoch 1,3V?

von Gäst_5 (Gast)


Lesenswert?

> Kompabilitätsfuse?

Das Fuse wurde bereits gelöscht.

> Scheint nichts mit PORTB zu machen.

Was meinst du damit?

> Wenn du folgendes machst:int main(){
> DDRB = 0xFF;
> PORTB = 0xff;
> while(1);
> }
> Sind die Ports dann immernoch 1,3V?

Dann sind alle auf High und 5 V, wenn ich sie auf PORTB = 0x00, also Low 
setze, dann sind sie auf 1,3 V...

von Timmo H. (masterfx)


Lesenswert?

Gäst_5 schrieb:
>> Kompabilitätsfuse?
>
> Das Fuse wurde bereits gelöscht.
>
>> Scheint nichts mit PORTB zu machen.
>
> Was meinst du damit?
Dass der Kompatibilitätsmodus nicht PORTB beeinflusst.

>> Wenn du folgendes machst:int main(){
>> DDRB = 0xFF;
>> PORTB = 0xff;
>> while(1);
>> }
>> Sind die Ports dann immernoch 1,3V?
>
> Dann sind alle auf High und 5 V, wenn ich sie auf PORTB = 0x00, also Low
> setze, dann sind sie auf 1,3 V...
Also für mich hört sich das eher so an als wenn der Controller ständig 
wieder einen Reset macht und du deswegen 1,3V (mit einem Multimeter?) 
misst. Mit nem Scope siehst du vermutlich ein "Rumgezappel"?!

von Gäst_5 (Gast)


Lesenswert?

Timmo H. schrieb:
> Also für mich hört sich das eher so an als wenn der Controller ständig
> wieder einen Reset macht und du deswegen 1,3V (mit einem Multimeter?)
> misst. Mit nem Scope siehst du vermutlich ein "Rumgezappel"?!

Hm... denke nicht, denn alles andere läuft doch.

von Dietrich L. (dietrichl)


Lesenswert?

Mal ganz dumm gefragt: Haben die LEDs auch Vorwiderstände? Und wenn ja: 
welchen Wert?

von Gäst_5 (Gast)


Lesenswert?

> Mal ganz dumm gefragt: Haben die LEDs auch Vorwiderstände? Und wenn ja:
> welchen Wert?

Es sind weiße LEDs und die haben einen Vorwiderstand von 140 Ohm.
An den nicht beschalteten Ausgängen von PORTB geht das LOW ebenfalls nur 
auf 1,3 V runter...

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.