mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 2 Atmega 32 über I²C verbinden


Autor: J. Hebeler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, ich habe vor 2 Atmega 32 über i²C zu verbinden.
Aber wie soll das gemacht werden?

SCK an Mosi und Data einfach an einen freien I/O Pin hängen?

MfG J. Hebeler

Autor: Ralph Hein (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frage:
Willst du das ganze rein in Software erledigen und eigene Pins benutzen

oder willst du die im ATMega vorhandenen Controller verwenden und damit 
die Pins SCK/SDA benutzen?

Im zweiten Fall:
Den einen ATMega konfigurierst du als Master den anderen als Slave.

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hier wäre es von vorteil sich erstmal mit den schnittstellen des µC zu 
befassen

>Also, ich habe vor 2 Atmega 32 über i²C zu verbinden.

geht ist kein thema

>Aber wie soll das gemacht werden?

dazu mus man wissen das I²C ein bidirektionaler bus ist


>SCK an Mosi und Data einfach an einen freien I/O Pin hängen?
mosi und miso sind SPI .. kein I²C



I²C hat nur SDA und SCL
SerialDAta  und SerialCLock
taktleitung und datenleitung
die werden verbunden .. rest ist software (ok vlt noch pullups)

Autor: J. Hebeler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, danke für die Antwort.
>>mosi und miso sind SPI .. kein I²C
Ich hatte ine inem Schaltplan gesehn, das jemand SCK an Miso 
angeschlosen hatte, aber der Schaltplan war schelcht gemacht und war 
unübersichtlich, kann sein das ich mich verschaut habe.

Wenn ich das jezt so sehe, wäre es doch möglich viele Atmegas als Slave 
an einen Control-Atmega anzuschleisen und alles Softwareseitg zu lösen 
oder?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> dazu mus man wissen das I²C ein bidirektionaler bus ist
Nicht nur das. Es ist sogar ein Multimaster-Bus.
Allerdings sind die Multimaster-Fähigkeiten von vielen I²C-Komponenten 
sehr eingeschränkt und oft fehlerhaft implementiert  :-o

Autor: avr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo J. Hebeler,

bei RN haben die eine recht gute Grundlagenbeschreibung:

http://www.rn-wissen.de/index.php/I2C

Interessant auch die weiterführenden Links, z.B.

http://www.rn-wissen.de/index.php/TWI

Die setzen den TWI (eigentlich I²C) sehr oft ein.

Beispiele in C und Basic.

gruß avr

Autor: J. Hebeler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, so wie ich das sehe, kann man über die Hardwarelösung nur EINEN 
I²C Anschluss nutzen, wenn man aber eine Software seitige Lösung hat, 
kann man so viele I²C nutzen wie man Pins hat, oder?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
J. Hebeler schrieb:
> Also, so wie ich das sehe, kann man über die Hardwarelösung nur EINEN
> I²C Anschluss nutzen

Das ist aber kein Problem, da man daran bis zu 127 I2C-Slaves 
anschließen kann.
Der I2C-Bus arbeitet mit ner 7-Bit Adresse.


Peter

Autor: J. Hebeler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha, also kann man an SCK und SDA einfach alle SLave dranhängen und beim 
Senden msus man halt nur die Addresse des Slves/Master angeben und 
fertig?

Autor: (gast) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> beim Senden msus man halt nur die Addresse des Slves/Master angeben

nur der master initiiert die kommunikation. slaves dürfen nur
antworten, wenn der master sie angefordert hat.

Autor: J. Hebeler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha, ok.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eigentlich eine triviale Frage für euch, ich komme allerdings nicht 
weiter: Wie ist eigentlich die Slave-Adresse? Sind das die Portnummer, 
z.B. PD0 und PD1? Steht überall im Datenblatt und Forum von 
Slave-Adresse, jedoch weiß ich nicht wie ich das adressiere?!

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wer lesen kann ist im Vorteil:
http://www.rn-wissen.de/index.php/I2C

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh man, das habe ich sogar gelesen! Ich sehe keine explizite Adresse, wo 
man es angeben kann. Könnt ihr mir ein Tipp geben, wie der Vorgang bei 
der Adressierung ist, vielleicht bin ich ja blind, sorry.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja die Frage ist nun, ob unbedingt SCL und SDA die Leitungen für I²C 
sind? oder kann man selbst aussuchen, welche Pins man benutzt?

Autor: Sumynona (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Brot kann schimmeln.......
SCNR

Also:
Ja, es ist prinzipiell egal, welche Pins du nimmst, wenn du ALLES in 
Software codest.
Nein, es ist nicht egal, wenn du das bereits fertige I2C / TWI Modul des 
Atmega benutzen willst (dann die im Datenblatt mit "SCL" / "SDA" 
gekennzeichneten Pins nehmen.)

Die Adressierung erfolgt bei I2C ebenfalls über diese beiden Leitungen, 
es ist ein komplett serieller Bus.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was heißt alles codest? Stecken da schwierige Sachen drin? Also für 
einen Anfänger nicht zu empfehlen?
Ok serielle Übertragung, weiß ich schon, aber wie lautet die Adresse als 
Beispiel in hexadezimal? Ich habe überall gelesen, dass es 7 Bit lange 
Adresse ist. Aber ich kann doch nicht irgedwas schreiben, sondern eine 
konkrete Adresse, die nehm ich an eindeutig ist.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Aber ich kann doch nicht irgedwas schreiben,

Im Prinzip schon. Ausnahme die reservierten Adressen
von der Seite oben.

>sondern eine konkrete Adresse, die nehm ich an eindeutig ist.

Ja, jeder I2C Teilnehmer muß eine eindeutige Adresse haben.
Welche ist egal (Ausnahmen siehe oben).

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Holger,

solche Antworten hab ich erwartet, was ist daran so schwer?!

Autor: Sumynona (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> was ist daran so schwer?!

Die ungenaue Fragestellung.

Habe mir die Zeit genommen und den I2C-Artikel mal durchgelesen. Da 
steht echt alles schön erklärt drin. Zusammen mit dem Atmega-Datenblatt 
sollte es kein Problem mit der Implementierung (zumindest des 
7bit-Modus) mehr geben, oder?

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.