RX210 IIC Beispiel

Gast #2838568
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.
OP #2838638
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.
Gast #2838762
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!
Gast #2840742
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren