Hallo zusammen, da es mich jetzt 1 Woche Arbeit gekostet hat, würde ich gerne dem ein oder anderen das Problem ersparen. Ich habe versucht, einen I2C an einem PIC18f26k80 in Betrieb zu nehmen. Leider hatte ich das Problem, dass meine Signalleitungen einfach nicht in den IDLE gehen wollten, bzw. genauer gesagt SCL. Obwohl im Datenblatt dick und fett steht, dass das MSSP/I2C Modul TRIS überschreibt, wird in einer anderen Randnote erwähnt, dass die beiden zugehörigen Pins als INPUT geschaltet werden müssen (siehe Anhänge). Vielleicht hilft es dem ein oder anderen mal weiter (via google Suche o.ä.). Beste Grüße ein überfroher PIC-Besitzer
Pullups waren/sind da. Es lag lediglich daran, dass ich die beiden eben (aufgrund des Abschnittes "ist ja e Wurst, wird überschrieben", bzw. Output macht ja halbwegs Sinn, wenn ich als Master agiere) als OUTPUT definiert hatte, obwohl sie laut der zweiten Randnotiz eben als INPUT definiert werden müssen. Bei mir geht jetzt alles, alles gut ;)
Hi Auch als Master ist ein OUT nicht wirklich sinnvoll - zumindest nicht als HIGH. Wenn dann ein Slave die Leitung auf GND zieht, war's das mit der Schaltung. Umschalten zwischen High(=Idle) und LOW per Input-no-PullUp und Output-LOW. Hochgezogen werden beide Leitungen per externem PullUp-Widerstand. Beim AVR nur durch das Umschalten des DDR-Register (dabei Portx=0 -> LOW/PullUp off). Durch das weglassen der internen PullUp ist auch berechenbar, wie viel Strom die Einzelchips sinken können müssen - bei anwachsender Anzahl an Slaves würde sonst dieser Strom mit anwachsen, was zu Problemen führen kann. MfG
PIC-Besitzer schrieb im Beitrag #5054117: > Obwohl im Datenblatt dick und fett steht, dass das MSSP/I2C Modul TRIS > überschreibt, wird in einer anderen Randnote erwähnt, dass die beiden > zugehörigen Pins als INPUT geschaltet werden müssen (siehe Anhänge). Vielleicht muss man das so verstehen/übersetzen, dass zunächst die PINs immer als Input konfiguriert werden müssen und dann bei Bedarf vom Peripheriemodul als Ausgang konfiguriert werden. Das ist eigentlich zumindest bei den 8Bit PICs normal. So kann es nicht dazu kommen, dass der Pin von zwei Seiten getrieben wird. Also vom Digital Output LATCH und vom I2C.
Fakt ist - es hat mich sehr viel Arbeit gekostet, die ich dem ein oder anderen ersparen möchte ;)
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.