mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wie sind eure I2C-Routinen aufgebaut?


Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche hier gerade, eine möglichst flexible I2C-Implementierung 
aufzustellen. Nach Einlesen in die I2C-Hardware meines Controllers bin 
ich mir jedoch nicht mehr so sicher, was die Flexibilität angeht :(

Mein konkretes Problem bezieht auf die verschiedenen Teilnehmer und 
deren Ansteuerung. Bei EEPROMs beispielsweise schreibt man ja die 
Adresse, und liest dann mittels RepeatedStart aus. Dann gibts 
Teilnehmer, die nur empfangen und nicht antworten können, oder 
Teilnehmer, bei denen nach mehreren Bytes eine aus mehreren Bytes 
bestehende Antwort erwartet werden kann. Und so weiter...

Wie sieht nun so eine Implementierung aus? Normalerweise würde ich einen 
Empfangs- und einen Sendebuffer verwenden. Bei nur einem 
Slave-Teilnehmer ist das ganze ja dann noch überschaubar, aber bei 
mehreren unterschiedlichen oder sogar bei Multimasterbetrieb? Da fällt 
mir als einziges eigentlich nur ein, mit diversen Flags zu arbeiten, die 
signalisieren, wie es "weitergeht".

Ralf

Autor: Bernd Rüter (Firma: Promaxx.net) (bigwumpus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja !
So ist es !

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Bernd,

> Ja ! So ist es !
Das bezieht sich dann wohl auf die Flag-Signalisierung, nehme ich an :)
Okay, mal sehen, was ich hinbekomme...

Ralf

Autor: Svea (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
State-Machine

Autor: noch ein (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
state-machine für alle spezifizierten I2C-Zustände
und dann jeden I2C-Teilnehmer nach seinen Bedürfnissen
(=Spezifikationen) bedienen.
flexibler dürfte es nicht gehen.

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.