I2C mit dem PIC18F252

Gast #560900
Lesenswert?

Dieser Code funktioniert leider nicht. Kann mir jemand Tipps geben zum 
I2C-Modul des PIC18F252?
Ich benutze MCC18 von Microchip und den PIC18F252 von demselben 
Hersteller.
1
#include <p18cxxx.h>
2
#include <i2c.h>
3
#include <stdio.h>
4
#include <delays.h>
5

6
unsigned char Matrix1;
7
unsigned char Matrix2;
8

9
void main (void)
10
{
11
// I2C Initialisation
12
OpenI2C (SSPENB | MASTER,SLEW_OFF);
13
SSPADD=9;
14
TRISC=0xFF;
15
Matrix1=0b10101010;
16
Matrix2=0b00110011;
17

18
   while(1)
19
   {
20
   OpenI2C (SSPENB | MASTER,SLEW_OFF);
21
   StartI2C();
22
   WriteI2C(0x70);
23
   
24
   WriteI2C(Matrix1);
25
   StopI2C();
26
   
27
   OpenI2C (SSPENB | MASTER,SLEW_OFF);
28
   
29
   StartI2C();
30
   WriteI2C(0x76);
31
   
32
   WriteI2C(Matrix2);
33
   StopI2C();
34
   
35
   Delay1KTCYx(100);
36
   }
37
}

  
Gast #561827
Lesenswert?

Nein, das habe ich noch nicht versucht.
Also die externen Pull-Up werde ich noch versuchen.
Ich habe mit dem KO auch endlich etwas messen können, aber für mich 
macht das nicht wirklich Sinn (Entschuldigt die extrem schlechte 
Qualität, hatte nur mein Handy griffbereit...).
Das Signal hat nur eine Amplitude von ca. 300mV und eine Frequenz von 
ca. 250Hz.
Was soll ich davon halten? Ist das soetwas wie ein "hässliches" 
I2C-Signal? Warum ist es derart verzerrt, sind die fehlenden Pull-Up ev. 
die Ursache?
Gast #561868
Lesenswert?

> Warum ist es derart verzerrt, sind die fehlenden Pull-Up ev. die
> Ursache?

Ja, I2C muss mit externen Widerständen nach + betrieben werden da die 
Ausgänge open collector sind.

Wenn nur 2 ICs am Bus hängen wird oft mit je 4,7kOhm an SDA und SCL 
gearbeitet.

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