mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik TWI (I²C) Verbinden meherer µC


Autor: Max Mustermann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sehe ich das Richtig wenn ich den TWI vom Atmel (voraussgesetzt er hat 
einen) Benutzen möchte verbinde ich einfach die SDA vom µC1 mit der SDA 
von µC2 und µC3 usw... mit der SDL mache ich dies dann auch.

Als Master habe ich einen Atmega32... als Slaves einige Atmega8 
Controller. Diese sitzen alle in einer Unterverteilung und Steuern dort 
IO's, LCD`s usw... Aktuell sind es AT90S2333 verbaut welche noch nicht 
mit ihren Nachbarn komunizieren können. Dies muss sich bald ändern. Wie 
schaut das aus wenn die µC's von verschiedenen Netzteilen versorgt 
werden?

Ich habe ein 12V Netzteil 10A in der UV sitzen. Dies wird über einen 
MC34063 auf die Passenden 5V runtergetacktet. dieser schaft etwa 600mA 
wobei ich inzwischen 2 dieser Schaltnetzteile eingebaut habe, da ich 
sonst über die 600mA komme im Extremfall.

Es muss nicht unbedingt der TWI Bus für meine Anwendung sein aber nach 
möglichkeit sollte es ohne weitere Hardware gehen. Der Atmega32 steuert 
noch einen ENC28J60 um mit der Aussenweitl zu Komunizieren. Er soll die 
Daten dann einfach an die ganzen Mega8 Verteilen.

Andere Möglichkeiten die ich bisher in betracht gezogen habe waren 
Schieberegister, welche mir zu unsicher und zu langsam erscheinen. 
Selbes gilt für eine RX/TX Crosover lösung (µC1 sendet daten an µC2, µC2 
schatu ob daten für ihn sind wenn nein sendet er weiter an µC3 usw... 
aber das muss doch einfacher gehen. Ich könnte auch einen kompletten 
Port der µC's opfern und ein eigenens Protokoll aufsetzten aber das mir 
zu viel Aufwand.

Für Ideen bin ich dankbar...

Autor: opacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja das Funktioniert so, du musst nur auf den richtigen Busabschluß 
achten!

Wenn du Geschwindigkeit brauchst, kannst du die µCs auch über SPI 
miteinander verbinden. Das ist teilweise erheblich schneller, jedoch 
brauchst du mehr Leitungen (3+Anzahl µCs).

Mehrere Netzteile sind kein Problem. Massen verbinden!

Autor: Jörg B. (manos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Max Mustermann wrote:
> aber nach möglichkeit sollte es ohne weitere Hardware gehen.
Oh, das wird schwer... Ich fürchte, Du wirst bei der TWI-Variante 
zusätzliche Hardware benötigen - allerdings nur 2 Widerstände gegen VCC 
:)

Oder geht das auch mit den internen Pull-UPs?

Autor: Max Mustermann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
2 Wiederstände oder 1 IC bekomme ich noch unter das nicht das Problem. 
Aber ich möchte nicht für jeden Busteilnehmer noch einen Controller 
benutzen, der dann alles Managt so wie es bei RS-485, Can, Ethernet usw 
gemacht wird. Da ich noch max 4 Adern zur freien verfügung habe im Bus 
werde ich vermutlich den I²C bzw TWI (ist ja das selbe) benutzen. Das 
ganze soll für ein Hausbus benutzt werden, jedoch nur um einzelne Module 
inerhalb einer Verteilung zu verbinden. Die Komunikation zu den anderen 
Verteilungen wir über Ethernet realisiert. Der Bus sollte aber vorneweg 
50 Teilnehmer verkraften, ich hoffe das gibt mit I²C kein Problem, aber 
in den Datenblättern die ich bisher darüber gefunden habe steht drin mit 
7Bit 128 und mit 10Bit 1023 Teilnehmer...

Ich werde mal etwas Schaltpläne zeichnen und dann zur sicherheit noch 
mal hier reinstellen...

Autor: opacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die µCs über I2C sind aber schon auf der gleichen Platine oder zumindest 
über Steckverbinder mit einander verbunden? Bei längeren Kabel musst du 
noch einen Repeater IC einsetzten bzw. einen auf jeder Seite

Autor: Max Mustermann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es sitzen 3 bis 5 auf einer Platine (über 90° gewinkelte stecker) die 
nächsten sind dann entweder direckt daneben oder eine Hutschine weiter 
oben / unten...

Autor: Frank N. (betafrank)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
50 Teilnehmer - wow. Die Kapazitive Last auf dem TWI-Bus wird wohl recht 
groß werden. Das bremst die erreichbare Geschwindigkeit.

Ich arbeite an einem ähnlich gelagertes Projekt. Master ist ein 
ATmega32, die Slaves sind ATmega16 (der vielen I/O-Pins wegen). Ein 
Slave stellt mir 24 Ein- bzw. Ausgänge zur Verfügung. So reichen dann 
eine handvoll Busteilnehmer. Verkabelt wird über Patchkabel und 
RJ45-Buchsen. Jeweils Master und Slaves erhalten ein 
10-Ohm-Serienwiderstand in SCL und SDA, um Refexionen zu vermeiden. Die 
Pull-Up-Widerstände sitzen im Master. Mit 4,7kOhm sind sie etwas groß. 
Bei rund 2,5m Testverkabelung ist die steigende Flanke zwar 
verschliffen, aber noch tolerablel. Fallende Flanke ist super. Bustakt 
100kHz. Man könnte es mal mit 3,9kOhm oder 2,7kOhm probieren.

Fazit: TWI funktioniert bei mir zuverlässig. Bei 50 einzeln zu 
addressierenden Teilnehmern steigt allerdings Dein Datenaufkommen und 
die Datenrate muß eventuell nach unten korrigiert werden, wenn die kap. 
Buslast das quasi vorgibt.

Autor: Max Mustermann (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier mal ein Bild wie in etwa das ganze aufgebaut werden sollte. So ist 
das aktuelle Bord, welches ich natürlich gerne weiter benutzen würde 
aber naja ist nicht so wichtig.

Auf JP1 sitzt das Netzteil, auf JP2 der Master auf JP3, JP4 und JP5 
sitzt der Slave. X1 bis X4 sind die Schnitstellen nach aussen. 
Inzwischen gibt es noch weiter Schnitstellen welche den Bus verlängern 
lassen. Habe den aktuellen Plan auf die schnelle nicht gefunden.

Zur Zeit ist der Master so designd das er mit einem Kabel auf JP3, JP4 
und JP5 geführt wird um die schnitstellen zu nutzen, aber da ich für die 
Eth, USB, LCD und noch einiges weitere mehr Ports vom Master benötige 
ist das in zukunft nicht mehr möglich.

Es gibt 4 Leitungen die noch offen sind zwischen JP1 bis JP5.
Es gibt 2 Leitungen die jeweils von JP1 auf JP2 gehen dann weiter auf 
JP3 usw. Diese können über Jumper an den Slaves gebrückt werden.
Es gibt von JP3 bis JP5 jeweils 10 Leitungen die an X2 bis X4 gehen.
Es gibt 2 Leitungen von JP1 auf X1
Es gibt 4 Leitungen die von JP2 zu JP5 verbunden sind
Es gibt 8 Leitungen zwischen JP1 und JP2 die direckt verbunden sind und 
nicht benutzt werden.
Es gibt am Master eine RX / TX Schnitstelle.

Autor: Benjamin Pfeiffer (ben21684)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich habe in etwa auch sowas vor. Ich will einen ATMega 16 als 
Master benutzen und 2 bis 3 Mega8. Wie das ganza schalttechnisch 
aussehen muss hab ich schon raus. Hat jemand einen einfachen Sourccode 
für Master/Slave anwendungen? Es soll insgesammt 4 Bytes übertragen 
werden, wobei 2 an den eine µC und 2 an den anderen µC geschickt werden 
sollen.

Autor: Xine L. (xine)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

bin eben über die Pull Ups gestolpert. Arbeite gerade auch mit I²C und 
mir wurde gesagt, dass ich lieber 10k Ohm Widerstände nehmen soll 
anstatt 4,7.
Mag es sein, dass das Dummfug war? Ich habe 2 Boards, die aber nur über 
ein kurzes Kabel verbunden sind (max. 20 cm).

Autor: Frank N. (betafrank)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Xine,

Zumindest ein AVR kann je recht viel Strom treiben, so daß der auch mit 
kleineren PullUps umgehen kann. Mit z.B. meinen 3,2kOhm sehen die 
Flanken gut aus.

Wie es mit den diversen klassischen I²C-Bausteinen 
(Treiberinnenwiderstand) aussieht weiß ich nicht, aber darin könnte 
begründet sein, die PullUps nicht zu klein wählen zu können.

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.