Datum: 08.05.2008 20:37
Ich habe ein Problem mit I2C, villeicht kann jemand helfen: Ich betreibe einen PIC 18F2321 mit 18,432MHz (der PIC soll auch eine RS232 bedienen, daher die krumme Frequenz) der mit einem andern PIC 16F und EEPROM's reden soll. Den I2C-Code habe ich dem AN 989 und dem Web-Seminar I2C-Master Mode entnommen, mit SADD 0x0A für 400 kHz Bustakt. PIR1,SSPIF wird zur Zeitsteuerung verwendet. Das Programm macht in der Testphase nichts anderes als Start setzen, 10 Werte auf den Bus zu schreiben, Stop und wieder von vorne. Ich beobachte den Bus mit dem PICkit Serial Analyzer. Im MPLAB Einezelschritt und animiert funktioniert alles tadellos. Die Bit's der Register schalten genau so wie sie sollen, SCL und SDA verhalten sich nach dem Analyzer korrekt, die Daten werden korrekt übertragen. Mit einem Break klapt auch alles. ABER: Wenn das Programm in Echtzeit läuft wird die Stop-Bedingung vom Analyzer nicht mehr erkannt. Nur wenn der Takt auf ca. 40 kHz abgebremst wird (SADD 0xC0) werden die Daten korrekt übertragen. Oder ich warte nach dem Stop ca.300µs (2x 255 Schleife). Leider habe ich kein geeignetes Oszi um zu schauen, ob das Stop tatsächlich gesendet wird oder nicht. Pul-Up zwischen 1k und 2k zeigen keinen Einfluss auf das Verhalten. Am Bus hängen 4 Elemente, 2xPIC und 2x EEPROM. Hat irgend jemamnd eine Idee wo der Fehler liegt? Oder hat der I2C eine Art Tot-Zeit? Ziemlich ratlos Bernd
Antwort schreiben
Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
- Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
- Aussagekräftigen Betreff wählen
- Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
- Groß- und Kleinschreibung verwenden
- Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
- JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
- Schaltpläne, Screenshots usw. als PNG oder GIF anhängen
Formatierung (mehr Informationen...)
- [c]C-Code[/c]
- [avrasm]AVR-Assembler-Code[/avrasm]
- [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
- [math]Formel in LaTeX-Syntax[/math]
- [[Titel]] - Link zu Artikel