Forum: Mikrocontroller und Digitale Elektronik XE162FL I²C Schnittstelle implementieren


von Thomas (Gast)


Angehängte Dateien:

Lesenswert?

Hi, ich möchte eine I²C Schnittstelle auf dem Infineon XE162FL 
implementieren, um später einen EEprom zu füttern.
Nach dem ich mit dem Tool Dave rum experimentiert hab und nichts 
gebacken bekommen hab, hab ich dann händisch die Register mal angeguckt 
und was probiert. Leider ohne Erfolg. Ich hab ein Oszi dran um 
wenigstens mal irgendein Byte rauszuschieben, aber nix da, da will 
nichts kommen.
Im Anhang ein Bild von dem Code was ich bis jetzt probiert hab. 
Vielleicht kann mir ja jemand sagen was ich falsch mache.
Pull Ups hab ich extern drangehängt an SDA und SCL.

Vielen Dank

von Thomas (Gast)


Lesenswert?

Aso, debuggen kann ich auch und da steht auch im Transmit Buffer meine 
0xA6 aber auf der Leitung kommt nix an. Die Register beschreibt er so 
wie ich es ihm sage.

von Thomas F. (thomas_f50)


Lesenswert?

Ich hab die Lösung:

Ich hab die Startkondition im TDF(Bit 8 bis 10) im Transmitbuffer auf 
100 zu stellen. Nach der Einstellung gehts. Vg

von Robert H. (userx)


Lesenswert?

Hallo
Ärgere mich auch gerade mit dem I2C herum.Das Adressbyte wird zwar 
rausgeschoben und vom Slave acknowledged, aber danach steht die Kiste.

Kannst du eventuell mal deine Sende- und Empfangsfunkionen posten?
Hat sich bei der initialisierung noch was geändert?

von Thomas F. (thomas_f50)


Lesenswert?

Hab dir ne PN geschrieben.

Im Grunde muss es so aussehen:

ins Transmitbuffer Register musst du die ersten 11 Bits beschreiben:

Bit 11-9 TDF Code und Bit 8-1 deine Daten

TDF Codes sind:

zum Schreiben:
0x4hex = 100b Startet einen Zyklus
0x0hex = 000b bytes die du senden möchtest
0x6hex = 110b Beendet einen Zyklus

zum lesen:
0x4hex = 100b Startet einen Zyklus
0x2hex = 010b für 1...x-1 Bytes die du lesen möchtest (Receive mit ACK)
0x3hex = 011b für das x-te Byte, also das letzte Byte was du lesen 
möchtest (Receive ohne ACK)
0x6hex = 110b Beendet einen Zyklus

Hoffe ich konnte dir helfen

: Bearbeitet durch User
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.