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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.