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
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
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...
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!!
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
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.
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!???
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.