Forum: Mikrocontroller und Digitale Elektronik I2C beim PIC 18F2431 Assembler


von Oli G. (og_9191)


Angehängte Dateien:

Lesenswert?

Hallo,

Bin ziemlicher Pic und Assembler Neuling.

Ich versuche den I2C Bus beim PIC 18F2431 (Master) zu nutzen um einen 
Sensor (Slave) abzufragen.

Leider bekomme ich den Bus nicht zum laufen, obwohl der PIC die Hardware 
für die kommunikation schon implementiert hat. Müsste ja eigentlich 
trivial sein! Habe schon viele Beispielprogramme für PICs rausgesucht, 
aber nur welche für die kleineren 12F 16F gefunden, die 2 Register zur 
direkten Steuerrung nutzen, SSPCON1 und SSPCON2, wo man noch 
Bestätigungen senden kann (ACK). Der PIC 18F beitzt nur das SSPCON und 
müsste ja daher mehr "automatisiert" den I2C abarbeiten?

In wie weit muss ich Startbedingung, Adressübergabe, ACk usw. an den 
Sensor (Slave) Programmieren und was macht der PIC von selbst?

Habe natürlich das Datenblatt und die Infos von Sprut.de und weiteres 
gelesen und die Register gesetzt.

10k Pullups musste ich extern dranlöten.

Magnetsensor HDMM01 (Slave) Adresse =60h=01100000



Derzeitige Main in Arbeit, zum Teil von Sprut "inspirieren" lassen ;) :
---> Anhang

I2C Interrupt habe ich inaktiv, da ich nur das Flag abfragen möchte ohne 
eine ISR zu erzeugen.


Bekomme die Startbedingung hin, SSPSTAT,S  wird gesetzt!
Aber beim nächsten Schritt kopiert er die Sensoradresse mit Lesebefehl 
nicht ins SSPBUF Register zur Übergabe.

: 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
Noch kein Account? Hier anmelden.