Forum: Compiler & IDEs PORTC bei Atmega16 Problem


von Dirk (Gast)


Lesenswert?

Ich benutze  das STK500. Mit dem 90S8515 haben alle Aus- und Eingänge
funktioniert. Nun habe ich auf den Atmega 16 gewechselt und bei PortC
funktionieren die Bits 2 bis 5 nicht. Die anderen gehen. Hat jemand
eine Idee?

von Conlost (Gast)


Lesenswert?

Hallo,
überprüfe mal die .device Einstellung.
Gruß,
Arno

von Jörg Wunsch (Gast)


Lesenswert?

Das ist eine FAQ, folglich steht es auch in der FAQ:

http://www.nongnu.org/avr-libc/user-manual/FAQ.html#faq_fuses

Da Du schon weißt, welche Pins es betrifft, hätte Dich der Blick ins
Datenblatt und der Anblick der alternativen Signalnamen auch stutzig
machen sollen...  Zumindest hat er mich das seinerzeit (beim
ATmega128) -- woraufhin ich den FAQ-Eintrag verfaßt habe.

von Conlost (Gast)


Lesenswert?

Hallo,
jtag disablen könnte was bringen.
Gruß,
Arno

von Dirk (Gast)


Lesenswert?

Hallo,

jtag habe ich disabled und es funktioniert.
Vielen Dank.

Gruss Dirk

von Harald (Gast)


Lesenswert?

Wie kann man den JTAG denn deaktivieren ?

Ich bin da aus meiner Spezifikation zum Atmega162 nicht schlau
geworden. Ich habe einen Hinweis auf das "JTAG Interface Disable Bit"
im "MCU Control and Status Register" gefunden - aber das umzusetzen
reicht wahrscheinlich nicht aus. Da ist doch noch irgendwas mit der
JTAGEN Fuse ?

Was ist denn der Unterschied zwischen einem solchen Bit und einer Fuse
?

von Jörg Wunsch (Gast)


Lesenswert?

Steht doch eigentlich alles bei der Beschreibung des JTD-Bits:

JTD: JTAG Interface Disable When this bit is zero, the JTAG interface
is enabled if the JTAGEN Fuse is programmed. If this bit is one, the
JTAG interface is disabled.

D. h. wenn die Fuse abgeschaltet ist, geht kein JTAG.  Wenn man
programmgesteuert gelegentlich JTAG benutzen können will, aber dennoch
die entsprechenden Ports normalerweise (während kein JTAG benötigt
wird) verfügbar haben möchte, kann man trotz erlaubter Fuse mittels
JTD die Portpins für normale Anwendungen freigeben.

Um die Portpins frei zu bekommen, genügt es also, entweder die Fuse zu
löschen oder JTD zu setzen.

von Jörg Wunsch (Gast)


Lesenswert?

> D. h. wenn die Fuse abgeschaltet ist, geht kein JTAG.  Wenn man
> programmgesteuert gelegentlich JTAG benutzen können will, aber
> dennoch die entsprechenden Ports normalerweise (während kein JTAG
> benötigt wird) verfügbar haben möchte, kann man trotz erlaubter Fuse
> mittels JTD die Portpins für normale Anwendungen freigeben.

Ach so, eine typische Anwendung dafür ist es, daß man via JTAG zwar
nicht debuggen, aber programmieren können will.  Die Applikation setzt
dann frühzeitig JTD, um die Portpins normaler Verwendung zuzuführen.
Da aber unmittelbar nach dem Reset JTD noch nicht gesetzt ist, wirkt
dort die JTAGEN Fuse, d. h. man (also das JTAG ICE) legt /RESET an und
aktiviert sofort nach dem Loslassen von /RESET das JTAG-Signalspiel.
IIRC, hat AVR Studio sogar eine Checkbox dafür, ob es mit aktiviertem
/RESET beginnen soll.

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.