Hallo icebobo.

Zitat Zitat von icebobo Beitrag anzeigen
Wie kann ich eigentlich die I2C Frequenz einstellen?
Das sagt mir, dass du anscheinend noch keinen Blick in die I2C-Dokumentation des Controllers getan hast .

Zitat aus dem Datasheet:
"SSPADD register holds the slave device address
when the SSP is configured in I2C Slave mode. When
the SSP is configured in Master mode, the lower
seven bits of SSPADD act as the baud rate generator
reload value."

Siehe auch Table 9-3, I2C Clock Rate w/ BRG
Meine relevante Zeile dort für den nachfolgenden Codeausschnitt wäre: F_CY = 1MHz, f_SCL = 100kHz, Reloadwert = 0x0A, ich weiche davon mit d'9' um zehn Prozent nach oben ab, weiss aber nicht mehr, warum; es funktioniert aber gut und ist ohnehin ziemlich unkriitisch.

Bei mir sieht die Initialisierung mit 4MHz-Resonator für 100kHz I2C-Takt so aus:
Code:
I2C_INIT100
         bsf     STATUS, RP0      ; Bank 1
         movlw   d'9'             ;
         movwf   SSPADD           ; Reload-Wert für Clock-Takt
         bcf     STATUS, RP0      ; Bank 0
         ;
         movlw   b'00001000'      ; I2C Master Mode mit SSPADD
         movwf   SSPCON           ;
         bsf     SSPCON,SSPEN     ; und aktivieren
         ;
         return                   ;
Gruß
RoboHolIC