www.mikrocontroller.net

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


Autor: Maruu (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Maruu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Danke erstmal für die Antwort.
Hab hier was gefunden:
http://www.microchip.com/1010/suppdoc/appnote/all/...
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

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Maruu (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: NoName (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Maruu (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: HDW (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!!

Autor: Maruu (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.