Forum: Mikrocontroller und Digitale Elektronik USART Konflikt bei ATMEGA


von Oswald Mario (Gast)


Lesenswert?

Hallo,

benutze die 2. serielle Schnittstelle (TXD1/RxD1) beim ATMEGA128L an
PortD. Wenn ich beim Init. die Register PORTD und DDRD auf 0x00 setze,
gibt's kein Problem.
Jedoch wenn ich sie auf (PORTD: 0x13, DDRD: 0x53) setze, dass heißt die
anderen Pins teilweise auf Eingang/Ausgang bzw. Pull-Up/Pull-Down setze,
funktioniert die usart nicht mehr. RxD1 ist an Pin2, TXD1 an Pin3.
Gibts vielleicht Probleme mit der Bitadressierung an diesem Port? Im
DataSheet habe ich keine Lösungsansetze entdeckt...

Mario

von juergen klauck (Gast)


Lesenswert?

hi !!!
ich schaetze ,dass man auf die 6 anderen pins von port D verzichten
muss wenn man den port als usart benutzt. so nen interner verbrauch des
ports im prinzip ??
zB. wird PD5 auch vom USART genutzt !!!
genaueres wird man wohl in der m128def.inc finden !!!
ja denke schon aber es sind doch wirklich genug io pins vorhanden

von Oswald Mario (Gast)


Lesenswert?

Danke schonmal für die Antwort. Leider habe ich auch in der m128def.inc
nichts gefunden, was mir weiterhilft.
Die usart1 benutzt nur Pin2 und Pin3. An Pin0 und Pin1 sind bei mir
CS-Signale, die ich intern Pull-Up schalten will. Bei Pin0
funktioniert's auch, sobald ich aber Pin1 im DDRD auf Pull-Up schalte,
funktioniert weder der Zugriff auf den Pin noch die usart.

Kann es mir einfach nicht erklären...

von Andreas Niermann (Gast)


Lesenswert?

ist Dein M128 im M128-Mode?

von Andreas Niermann (Gast)


Lesenswert?

ist Dein Mega128 auch im Mega128-Mode gefust?

von juergen klauck (Gast)


Lesenswert?

ok, sollte wenn man das hier gelesen hat wohl doch mit den pins laufen
!! (aus dem manuel)

"Note that enabling the alternate function of some of the port pins
does not affect the use of the other pins in the port as General
Digital I/O."

vieleicht helfen dir ja die Table 37 und 38 auf seite 77!!

von Oswald Mario (Gast)


Lesenswert?

Ob der MCU im Mega128-Mode ist, hab ich noch nicht kontrolliert. Der
wird wohl defaultmäßig in dem Mode laufen...
Die Tabellen helfen mir eigentlich nicht wirklich weiter.
Auf dem Pin7 habe ich es auch schon probiert. Funktioniert's auch
nicht.
Vielleicht finde ich ja noch einen Fehler. Ansonsten bin ich für
weitere Tipps sehr dankbar!!!

Mario

von Oswald Mario (Gast)


Lesenswert?

Ich hab nochmal im Datenblatt nachgelesen. Außer eventuell Pin5
(Clock-Ausgang der seriellen Schnittstelle) kann die doch die anderen
Pins nicht beeinflussen. Zumal ja Pin0 einwandfrei funktioniert.

von Uwe Nagel (Gast)


Lesenswert?

Default ist, warum auch immer, der mega103 Kompatibilitätsmodus!
So stehts jedenfalls unter 'Memory Programming' im Datenblatt. Man
muss also das EFUSE-Register auf 0xff setzen.
Im Kompatibilitätsmodus sollte die zweite Schnittstelle aber eigentlich
garnicht gehen!???

von Oswald Mario (Gast)


Lesenswert?

Danke für den Hinweis.
Habe zwar den entsprechenden Fuse mittels CodeVision umprogrammiert,
aber er speichert die Fuse-Programmierung nicht???
Im Kompatibilitätsmodus ist die 2. serielle Schnittstelle schon
gegangen.. warum weiß ich nicht.

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.