Forum: Mikrocontroller und Digitale Elektronik Xmega 128a1 TWI Schnittstelle


von lauso (Gast)


Lesenswert?

Hallo,
Ich habe einen Xmega128a1 Prozessor.
Über die TWIE Schnittstelle sollen unterschiedliche Erweiterungen 
angesteuert werden (RTC 8583, PCF8574, etc.) Als Compiler verwende ich 
Codevision AVR. Ich habe schon unterschiedliche Ansätze probiert. Unter 
anderem das Appnote 1308 von Atmel zu diesem Thema.
Leider legen die bei dem Example den Master auf den einen und den Slave 
auf einen anderen Port und schicken die Daten dann im Kreis.  Hat schon 
irgendjemand den TWI Bus ans laufen bekommen und kann mir etwas Support 
geben?

von GG (Gast)


Angehängte Dateien:

Lesenswert?

Servus,

ich kann Dir nur meinen Beispiel-Code senden,
der ist aber mit AVR-Studio (AVRGCC) geschrieben.
Ich verwende die ATMEL Lib in abgewandelter Version.

Teste doch mal AVR-Studio- kostet ja nichts.

Ich habe auf meinem Computer auch mehrere AVR-Programme.

Tipp: CodeVisionAVR ist in der neuen Version mit dem ATXMEGA CodeWizard
ausgestattet. Ist für Anfänger auch nicht schlecht.

Gruß GG

von J59 (Gast)


Angehängte Dateien:

Lesenswert?

Hallo... vielleicht hilft es ja ein Stückchen weiter....

Ich sitze im Augenblick am gleichen Problem

Viel Erfolg !

von Dominik M. (lauso)


Lesenswert?

Hallo Alle zusammen,
vielen Dank für Eure Unterstützung jetzt klappt es bei mir.
Ich habe den Code von GG auf meinen Compiler umgeschrieben und 
definiert.
(Er kennt kein register8_t). Dann habe ich mir die Register und die 
Slaveadressen auf dem Display anzeigen lassen. Ich habe festgestellt das 
der Controller nicht aus den
1
while (twiMaster.status !=TWIM_STATUS_READY)
 schleife rauskommt. Bis ich im twi_master_driver die ISR gefunden habe. 
Das alleine reicht aber noch nicht. Der Interrupt Vector muss auch noch 
bei den anderen hinzugefügt werden. Da durch den Code Wizard die TWI 
Schnittstelle noch nicht unterstützt wird habe ich es noch von Hand 
hinzugefügt und siehe da es klappt. Der PCF 8574 lässt die Relais 
einwandfrei schalten.

von visitor (Gast)


Lesenswert?

Hallo an alle,

ich muss auch die TWIE zum laufen bringen.
Ich habe die neueste Version von CodeVisionAVR,
abder die TWIE wird momentan noch nicht unterstützt.

Kannst du deine Version mal posten ?

von Dominik M. (lauso)


Angehängte Dateien:

Lesenswert?

Hallo,
hier ist mein Code.
Wenn Du Ihn jetzt so Compilierst gibt es evtl. Fehler, da uint8_t nicht 
bekannt sind. Keine Sorge uint8_t ist auch nur ein unsigned char.
Annsonsten laß Dich nicht von dem ganzen anderen kram in meiner 
Application erschlagen. Ich bilde die Daten halt auf einem Display ab 
und habe ein paar Taster montiert. Ich spreche über den TWI Bus, den PCF 
8583 als Uhrenbaustein, PCF 8574 als IO Erweiterung ein EEProm und ein 
LM 75.
Zudem habe ich einen Timer / Counter in der Verwendung der mir nach dem 
10000 OVF Interrupt die TWI Functionen abarbeitet.

von visitor (Gast)


Lesenswert?

Hallo,

das ist super, daß Du den Code gepostest hast !

von Dominik M. (lauso)


Lesenswert?

Hallo,
das neue CodeVision 2.04.8 enthält nun für den TWI einen CodeWizard und 
eine entsprechende Header Datei.

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.