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 ???
JTAG ist natürlich nur an PORTF. Bei PORTB könnte ein ISP-Programmer schuld sein, der an PB0-PB3 hängt?
> 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).
Stimmt bei dem ist das ja etwas anders. PEN beschaltet?
PEN - also PIN 1 hängt in der Luft... "PEN is internally pulled high." [...] "PEN has no function during normal operation."
Und an PORTB hängt sonst nichts dran? Alle VCCs, GND und AVCC angeschlossen?
> 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
sonst noch jemand eine Idee was mit meinem PORT B los sein könnte?
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?
> 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...
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"?!
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.
> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.