I²C / TWI Hello World?

Gast #639750
Hi,

nun ich habe schone einige Sachen realisiert und möchte mich nun an den 
I²C / TWI ranwagen. Ich möchte das 2 AVR's über diese Verbindung 
miteinander kommunizieren können.

Ein ATmega 644 soll der "Chef" sein also der Master, ein ATmega16 der 
Slave.

Brauche ich nun speziele Librarys oder geht das schon mit den 
mitgeliferten Funktionen aus dem GCC ?

Würde mich freuen wenn ihr mich ein wenig unterstüzen könntet.

MfG Tobi...
Moderator Persönliche Seite
Naja, das "Hello world!" sollte ja das einfachste mögliche/sinnvolle
Programm sein.  Da gebietet es sich, dass man nur eine Unbekannte
reinnimmt und folglich als Ziel erstmal ein Gerät, das von sich aus
dafür bekannt ist, I²C funktionierend implementiert zu haben.  Daher
benutzt das twidemo aus den avr-libc-Beispielen als Ziel einen
24Cxx-EEPROM.  Die Teile sind einfach erhältlich, wenn du einen alten
PC-Speicherriegel rumliegen hast, ist da einer drauf, den du anzapfen
kannst.  Der hat auch schon was drin stehen, du hast also eine einfache
Erfolgskontrolle. ;-)

Wenn du das am Laufen hast, kannst du dir ja überlegen, wie ein zweiter
AVR als Slave aussehen sollte.  Ich möchte nicht behaupten, dass ein
Oszi zwingend notwendig für die Inbetriebnahme ist, aber er kann
zumindest sehr sinnvoll sein, vor allem, falls sich der Bus verklemmt
(was bei einem fehlerhaften Software-I²C-Slave schon mal passieren
könnte).
Gast
Hallo,

muß zwar gleich los aber ich möchte vorher noch schnell antworten.
Also das schau ich mir mal an. Zuerst so nen IC besorgen, hab ich hier 
nicht rumliegen. :-(

Ich habe gesehen das es etliche Sachen gibt die man per I²C ansprechen 
kann. Eine Porterweiterung oder ein Temperatursensor sind die dann vom 
"Prinzip" gleich?

Ich versuch erstmal der EEPROM...


Gruß Tobi...
Moderator Persönliche Seite
tobiTob wrote:

> muß zwar gleich los aber ich möchte vorher noch schnell antworten.
> Also das schau ich mir mal an. Zuerst so nen IC besorgen, hab ich hier
> nicht rumliegen. :-(

Wirklich keinen einzigen alten Speicherriegel?  Kein altes PC-Board
mit system management bus?

> Ich habe gesehen das es etliche Sachen gibt die man per I²C ansprechen
> kann. Eine Porterweiterung oder ein Temperatursensor sind die dann vom
> "Prinzip" gleich?

Mehr oder minder.  Der EEPROM wird zumindest sowohl gelesen als auch
geschrieben, andere Geräte haben teilweise nur eine der beiden
Datenrichtungen.

Bibliotheken (im Sinne von Objektmodul-Bibliotheken) für sowas sind
nicht ganz so einfach, jedes I²C-Gerät ist doch irgendwie bisschen
anders.  Aber aus den existierenden Quellen copy&paste sollte einiger-
maßen schnell zum Erfolg führen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.