mikrocontroller.net

Forum: Compiler & IDEs I²C / TWI Hello World?


Autor: tobiTob (Gast)
Datum:

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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

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

Autor: tobiTob (Gast)
Datum:

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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

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

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.