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