I2c Slave probleme

OP #2713466
Lesenswert?

Ich nutze MPLAB mit CCS Compiler.

Ein PIC 16F886 ist der Master. Funktioniert auch soweit, kann 
Startbefehl, Adresse und ein bit Daten auf den Bus senden. (siehe Foto)

Nur mit dem Slave habe ich probleme

Im ersten schritt will ich nur, das die Daten vom Master zum Slave 
gesendet werden. Aber der Slave gibt keine Rückmeldung, sprich bit9 
bleibt high.
Dabei müsste das doch schon alleine durch das implementieren von "#use 
i2c" funktionieren, oder?

Auszug aus .h :
#use i2c(Slave,slow,sda=PIN_B1,scl=PIN_B4,force_hw,address=0xa0)

Ein auslesen soll über den #INT_SSP interrupt passieren. Aber die wird 
auch erst garnicht eingeleitet.

Kennt sich jemand mit dem Thema aus, und kann mir einen Tip geben woran 
es liegen könnte?

Danke, Bennz
Angehängte Dateien:
#2713514
Lesenswert?

Das komische Makro scheint seinen Dienst doch irgendwie zu verrichten.
Frequenz ist 100kHz, somit sollte die Inkompatibilität eines 
100kHz-Slave zu ≥400kHz ausgeschlossen zu sein.

Falsche Adresse des Slave gewählt?

Ohne jetzt das Diagrammnnäher untersucht zu haben:
Ein Lesevorgang funktioniert übrigens meist so...
# Start
# Slave Adressieren, Schreibzugriff
# Zu lesende Adresse Schreiben
# Repeated Start
# Slave Adressieren, Lesezugriff
# Daten Raustickern soweit wie gewünscht
# Stop

Beherrscht dein Oszi da einfache Protokollanalyse?

mfg mf

PS:
Kannst du das nächste mal ein Hardcopy-Screenshot machen? Ist irgendwie 
schöner. Es gibt da übrigens Floppyport-zu-USB-Adaptierung von ipcas... 
Ansonsten haben die noch nicht ganz so alten DPOs von Tek auch einen 
Webserver integriert, an den man über den LAN-Port an der Rückseite 
kommt, wo man sich einen Screenshot abholen kann.

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