Forum: Mikrocontroller und Digitale Elektronik RX210 IIC Beispiel


von Matthias L. (mcl024)


Lesenswert?

Hallo Zusammen,

hat einer schonmal beim RX210 die IIC Schnitstelle zu laufen gebracht? 
Vielleicht könnt Ihr mir mal ein Bespiel Programm schicken.

Danke

von m.n. (Gast)


Lesenswert?

Es gibt eine Datei R20AN0156EJ_RPDL210.zip (bei Renesas-Applikationen).
Dort findest Du Quellcode zu diversen IO-Geschichten und auch zu IIC.

von Matthias L. (mcl024)


Lesenswert?

Vielen Dank für deine Antwort allerdings handelt es hierbei um Code 
welcher mit der renesas libary arbeit. Also keine direkte Register 
Programmierung

von Achim M. (minifloat)


Lesenswert?

Matthias Laubnitz schrieb:
> handelt es hierbei um Code
> welcher mit der renesas libary arbeit.

Dann schau dir die Renesas-Lib an und tippe es ab...

von m.n. (Gast)


Lesenswert?

Mini Float schrieb:
> Dann schau dir die Renesas-Lib an und tippe es ab...

Genau so!

von Matthias L. (mcl024)


Lesenswert?

Da sucht man sich dumm und ... So eine Treiber Lib muss ja schließlich 
auch alle Fälle abfangen. Also wenn jemand etwas hat. Ich habe immer 
noch großes Intresse.

von m.n. (Gast)


Lesenswert?

Woher soll den jemand wissen, was Du willst?
Im einfachsten Fall kann man per Software zwei IO-Pins wackeln lassen.

Im Kapitel 29.3 im Datenblatt ist doch genau beschrieben, was zu tun 
ist. Und da das IIC-Modul einige Feinheiten bietet, sollte man vorab für 
sich klären, was man davon benutzen möchte.

von Matthias L. (mcl024)


Lesenswert?

Ich habe es soweit schon geschrieben, allerdings habe ich das Problem 
das nach dem ST - Bit das TDRE - Flag immer 0 ist obwohl ich noch nie 
was nach ICDRT geschrieben habe.

Ich wollte einfach ein komplettes Beispiel von jemanden der die 
Schnittstelle bereits in Betrieb genommen hat. Weil meistens Fehler 
entstehen bei Initialisierung, wie das man das gesamte Modul (MSTPCRB 
-Reg) gar nicht erst einschaltet.

von m.n. (Gast)


Lesenswert?

Es gibt noch einen anderen Quellcode an_r01an0630ej_rx_iic.zip.
Dort gibt es eine Datei riic.c, wovon zunächst RiicIni() aufgerufen 
wird. Hier ist der Ablauf transparenter als bei der RPDL-Geschichte.

Das alles sollte auch für den RX210 passen.
Viel Erfolg!

von m.n. (Gast)


Lesenswert?


von Matthias L. (mcl024)


Lesenswert?

Hallo Zusammen,

erstmal danke für die Hinweise, aber ich komme leider irgendwie nicht 
weiter. Also wenn jemand was für den RX210 hat. Ich habe immer noch 
bedarf. Die Schnittstelle fängt einfach nicht an zu senden.

von m.n. (Gast)


Lesenswert?

Du mußt die IIC-Leitungen entsprechend initialisieren.
Zunächst werden Port1.2 und Port1.3 für die alternative Funktion 
freigeschaltet (PMR-Register).
Dann muß die genaue Funktion der Pins angewählt werden: hier 0xf
Das klappt aber nur, wenn zuvor der Schreibschutz (MPC.PWPR...) 
abgeschaltet wird.
Im Datenblatt steht's genauer.

...... // init von IIC-Registern und abschließend

/* Port setting */
    PORT1.PMR.BIT.B3 = 1;    // SDA0 setting
    PORT1.PMR.BIT.B2 = 1;    // SCL0 setting
    MPC.PWPR.BIT.B0WI = 0;
    MPC.PWPR.BIT.PFSWE = 1;
    MPC.P12PFS.BYTE = 0xf;
    MPC.P13PFS.BYTE = 0xf;

/* Enable RIIC */
    RIIC0.ICCR1.BIT.ICE = 1;  //RIIC enable

Wird jetzt mit
    RIIC0.ICCR2.BIT.ST = 1;    // Generate start condition
IIC-START aktiviert, werden SDA+SCL auf 0 und TDRE+START sowie BBSY, MST 
und TRS auf 1 gesetzt. ST ist dann gleich wieder gelöscht.

Jetzt sollte es auch bei Dir laufen.

von m.n. (Gast)


Lesenswert?

Matthias Laubnitz schrieb:
> Die Schnittstelle fängt einfach nicht an zu senden.

Läuft Dein Programm mittlerweile?

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.