Forum: Mikrocontroller und Digitale Elektronik Software I2C für den PIC???


von Maruu (Gast)


Lesenswert?

Hallo!

Würd mich gerne mit dem I2C Bus beschäftigen und hab auch einiges schon
drüber gelesen. Ich hab nen PIC 16F84 also was kleines aber wie ich
gehört hab kann man trotzdem nen Software Master auf dem Pic machen
aber wie muss der Assemblercode dafür aussehen gibts irgendwo
kommentierte Beispiele oder so???
Für den Pic16F87 hab ich schon was gefunden aber der hat dafür ein
Hardwareinterface und das hab ich leider nicht. Gehts auch
SOftwaremäßig???

Gruß

Hannes

von Steffen (Gast)


Lesenswert?

Gehen tut alles.

Schau die einfach mal die Appnotes von Microchip www.microchip.com an.
Dort wirst Du auf jeden Fall fündig.

Der PIC16CE625 hat z.B. ein integriertes I²C EEPROM. Auf der Hompage
findest Du den kompletten Source-Code zur Ansteuerung.

Steffen

von Maruu (Gast)


Lesenswert?

Hallo!

Danke erstmal für die Antwort.
Hab hier was gefunden:
http://www.microchip.com/1010/suppdoc/appnote/all/an554/index.htm
Aber erstens is des für den PIC16CXX (läuft das auch auf dem 16F84????)
und zweitens sind das 34 Seiten Code Ok sind viele Kommentare drin aber
sagen wir mal die hälfte wäre es noch das wäre immerhin noch 17 Seite
Assembler. Geht das nicht ein bisschen einfacher??

MFG

Hannes

von Steffen (Gast)


Lesenswert?

Die Routinen sollten auf einem 16F84 funktionieren. So wild ist die
Implementation ja nicht. Einfach mal in die Dokumentation des
anzusprechenden Bausteines schauen und das Protokoll nachvollziehen.
Die Microchip-Routinen sind dabei evtl. eine gute Vorlage.

Dabei versteht man auch wie das Ganze funktioniert.

Steffen

von Maruu (Gast)


Lesenswert?

Die Doku von so nem IC hab ich mir schon durchgelesen is auch ned soooo
schwer ich muss nur irgendwie von den 17 Seiten runterkommen da halt 1K
Speicher verflixt wenig ist die der 16F84 besitzt. Gibts eigendlich nen
weg das Programm des PIC´s auf ein Eprom zu speichern da hätte ich mehr
platz und der PIC holt sich dann sein Programm aus dem EEprom und führt
die Befehle aus???
Naja dann werd ich mal die 17 Seiten versuchen zu verstehen!

MFG

Hannes

von NoName (Gast)


Lesenswert?

Soviel Code braucht der nicht.
Schau Dir mal das Edne der Assemblerlistings an.
Da steht der Platzbedarf (224 Byte für IIC-Slave und bei
Masterimplememtierung 391 Byte) nach der Compilierung.

von Maruu (Gast)


Lesenswert?

Naja stimmt eigendlich auch wieder, ähhm der Slave kann nur befehle
Empfangen oder??? Wenn ich jetzt einzelne IC´s abfragen will dann
brauch ich den Master oder????
Danke nochmal!

MFG

Hannes

von HDW (Gast)


Lesenswert?

Warum nimmst du denn nicht dem PIC 16F876??. Der kostet auch nur ein
paar Euro. Und die Software-I2C-Ansteuerung kann man sich schenken.
Das ist wirklich nicht schwer mit dem Hardware-I2C. Das geht fast alles
automatisch.
Der ganze Mist mit dem rotieren des Ausgangsbytes, das
Ackknowlegde-Senden... alles macht der PIC selber, ohne aufwendige
Programmierung.
das sieht dann in etwa so aus:

I2C Bus einschalten.
Daten (meist Adresse im Slave) in best. Register im PIC kopieren.
I2C Bus auschalten.
fertig

Das geht dann mit kleinen Unterprogrammen.
Nur zu empfehlen!!

von Maruu (Gast)


Lesenswert?

Hi!

Jap ich weis eigendlich hast du ja recht. Mhhm ich hab halt grad 4 Pic
16F84 hier rumfahren aber es wäre echt geschickter. Naja ich denke ich
werde mich mal erst kurzt mit der Softwareseitigen I2C Schnittstelle
beschäftigen alleine nur aUS Übung und zum besseren verständnis. Das
Hardwareinterface des 16F87 is echt billig anzusteuern hab das Tutorial
von sprut.de gelesen. Und für mein richtiges Projekt brauch ich sowieso
noch ne serielle Schnittstelle die wäre ja auch Softwaremäßig mit dem
Pic 16F84 möglich aber auch als Hardwareinterface im Pic16F87 drin und
da werd ich dann wohl lieber den Großen bruder verwenden und hab
weniger Code und mehr Speicherkapzität.

Danke nochmal an Alle!!!!

MFG

Hannes!

PS: Ich mach jetzt leich nochmal nen neuen Thread zwecks Funken der
Seriellen Schnittstelle auf, falls jemand dazu was weis kann er ja
schreiben. THX

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.