Portspannung am ATmega bricht ein

Gast #1385024
Lesenswert?

Guten Tag,

ich habe einen ATmega162, und wollte alle I/O Ports als Ausgang 
deklarieren und auf high setzen (meine persönliche Art der 
Funktionsprüfung). Habe, wie es sich gehört, alle DDRx-Register und alle 
PORTx-Register auf high gesetzt (Nebenbei: JTAG habe ich abgeschaltet, 
um diese Ports auch nutzen zu können).

Nun das Problem: Messe ich an den Ausgängen die Spannung mittels 
Multimeter, zeigt mir das Messgerät 4,95V an. Schließe ich an einen 
Ausgang eine LED (1.9V, 2mA) mit Vorwiderstand (R=1,5kΩ) an, sinkt die 
Spannung auf ca. 1,8V ab. Dies ist aber nur bei den Ports PA, PB, PC und 
PD so, der Port PE bleibt stabil.

Habe es auch mit einem anderen – auch ATmega162 – versucht. Bei ihm das 
gleiche Problem. Mit einem ATmega16 habe ich es auch versucht. Der hat 
zwar kein Port PE, aber ansonsten genau das Gleiche.

Die Versorgungsspannung bleibt stabil (Netzteil: 5V, 5A).

Der Sourcecode ist natürlich relativ simpel.

Woran liegt das und was muss ich machen?
Angehängte Dateien:
#1385378
Lesenswert?

Der mit den Bytes tanzt schrieb:
> Was sind !%$“§ Kompatibilitäts-Fuse und ...?


Sorry, da war ich gerade mit den Fingern schneller als mit dem 
Datenblatt Lesen: Die Mega162 haben zwar eine '161-compatibility Fuse, 
womit der extended-IO-Bereich dem RAM zugewiesen werden kann, aber die 
ist von Hause aus unprogrammiert (anders als die 'berüchtigte' 
'103er-Kompatibilität beim Mega64).
Gast #1385384
Lesenswert?

Die Schaltung, die einige von euch sehen wollen, ist auch ganz simpel. 
Zur Erinnerung: Die LED-Schaltung, die ich anschließe, zieht ca. 2mA. 
Ich schließe jeweils auch immer nur eine LED an. Zudem kann ein Ausgang, 
laut Datenblatt Seite 264, jeweils 40mA liefern.
Angehängte Dateien:
Gast #1385477
Lesenswert?

Ich habe was Wichtiges hinzuzufügen. Ich habe mittels des PUD-Bit 
(SFIOR-Register) ALLE Pull-Ups abgeschaltet. Beim Messen an den Ports 
lag dann nicht mehr das erhoffte Potential von ca. 5V an, sondern ca. 
0,1V – also Low-Pegel. Ich habe den Source-Code so gelassen, wie vorher; 
aber habe halt, wie gesagt, die Pull-Ups „gesondert“ abgeschaltet. Das 
heißt, irgendwie funktioniert das mit dem Ausgang-Deklarieren nicht 
(denke ich mal).

@Michael S. : Ja, ich resete – mittels Drahtbrücke – jedes Mal.

> bei Ausgängen erst die Ports auf einen definierten Startwert setzen

Wie geht dieses „auf definierten Startwert setzen“?
Gast #1385487
Lesenswert?

Nein, die Widerstände sind korrekt gewählt, die Platine hat auch keine 
Kurzschlüsse usw. Ich habe den Strom, der durch die LEDs fließt, schon 
zu Beginn gemessen. Beim Anlegen von 5V an die LED-Widerstand-Schaltung, 
fließen ca. 2,16mA.

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