Forum: Mikrocontroller und Digitale Elektronik I2C mit 2 PCA9600


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Stefan B. (sb_newsletter)


Angehängte Dateien:

Lesenswert?

Hallo Liebe Forum Gemeinde :-)

nachdem meine ersten Gehversuche nun mit dem Arduino abgeschlossen sind 
versuche ich nun mehrere Arduinos mit einem I2C Bus miteinander zu 
verkoppeln, Sofern die Leitungslängen kurz sind daher 2 Arduinos 
nebeneinander auf dem Tisch funktioniert die Kommunikation zwischen 
beiden Microcontrollern problemlos.

Wenn ich jedoch die Leitungslänge auf bspw. 50m erhöhe funktioniert die 
Kommunikation nicht mehr.

Nach etwas googlen hab ich dann denn PCA9600 gefunden und versucht 
entsprechend Datenblatt und denn anbei liegenden Schaltplan mit einander 
zu verdrahten...

leider schaffe ich es nicht das beide Arduinos wieder miteinander reden, 
Gegenprüfung beide Arduino´s direkt verbunden funktioniert... daher ist 
der Fehler in meiner Verdrahtung zu suchen...


ich hoffe Sehr das Ihr mir bei dieser Problematik behilflich sein könnt:



P.s. für alle die auch dieses Problem haben, wenn ich hierfür eine 
Lösung bekommen habe mache ich mit eagle einen leicht verständlichen 
Schaltplan, damit keiner mehr Probleme hat :-)


habt vielen lieben dank für eure Hilfe


Stefan

: Bearbeitet durch User
von Christian K. (the_kirsch)


Lesenswert?

50m

Bist du wahnsinnig

I2C wurde ursprünglich für eine Chip-zu-Chip-Kommunikation auf der 
gleichen Platine vorgesehen.

Wenn Kabel nicht allzu lang sind, kann man auch Baumgruppen innerhalb 
eines Gerätes damit verbinden.

: Bearbeitet durch User
von Stefan B. (sb_newsletter)


Lesenswert?

Guten morgen Christian,

vielen dank für die schnelle Antwort, schau dir mal denn link an... da 
hat es jemand auf 300m geschafft...

http://sandboxelectronics.com/?p=1098


ich weiß bloß nicht wie....


ich hoffe gemeinsam finden wir eine Lösung


Stefan

von Christian K. (the_kirsch)


Lesenswert?

OK, der PCA9600 mach aus SDA und SCL jeweils ein differentielles 
Leitungspaar. Dadurch kann man schon eine größere Strecke überbrücken.


Klappt es denn bei dir mit den PCA9600 bei dir auf kurzer strecke oder 
gar nicht?


EDIT:
Deine obige Schaltung entspricht aber nicht dem hier:
http://sandboxelectronics.com/wp-content/uploads/2015/06/point_to_point-1024x192.png

: Bearbeitet durch User
von Stefan B. (sb_newsletter)


Lesenswert?

leider funktioniert mein Schaltplan "ScreenShot144.jpg" auch auf kurze 
Distanz nicht...

das Bild "ScreenShot143.jpg" wurde aus dem Datenblatt:

http://www.nxp.com/documents/data_sheet/PCA9600.pdf

kopiert...

von Christian K. (the_kirsch)


Lesenswert?

Dann willst du den PCA9600 nur als Level-Shifter einsetzen. Aber dann 
bezweifle ich das du auf 50m kommst.

Hast du an die Pullups gedacht, die fehlen bei dir in dem ScreenShot144.

von Stefan B. (sb_newsletter)


Lesenswert?

Sorry bin nur Elektriker.. das sind meine ersten Gehversuche....

Pullups = Wiederstände?

hab vielen dank für dein Verständnis...

wenn es Wiederstände sind... wo soll ich die reinmachen?



Verstehst du wie die das von Sandbox hinbekommen haben... ich leider 
nicht so wirklich

: Bearbeitet durch User
von Christian K. (the_kirsch)


Lesenswert?

Ja die Widerstande auf Versorgungsspannung, wie in ScreenShot143 
eingezeichnet.

von Stefan B. (sb_newsletter)


Angehängte Dateien:

Lesenswert?

Meinen die das so???


wie groß sollen die Wiederstände sein???

würde es in meiner Versuchsschaltung gleich testen wollen

von Christian K. (the_kirsch)


Lesenswert?

Stefan B. schrieb:
> Verstehst du wie die das von Sandbox hinbekommen haben... ich leider
> nicht so wirklich

Ja, de benutzen die PCA9600 um aus den Signalen differenzielle Signale 
zu machen. Beide Signale haben z.B. einen Ruhepegel von 12V was eine 
logische 0 entspricht.
Um eine 1 zu übertragen hebt sich die eine Leitung um 1V an und die 
andere geht um ein Volt runter. Also dann 13V und 11V.

Das hat den Vorteil das die Summer der Spannung weiterhin gleich ist, 
das verhindert übersprechen auf andere Leitungen.

Der Empfänger entscheidet dann aber nicht anhand des Spannungswert der 
einzelnen Leitung, sondern anhand der Spannungsdifferenz, also 2V. Das 
hat den Vorteil das der Spannungsabfall durch lange Leitungen kaum 
Einfluss hat. Beim Empfänger könnte z. B. nur noch 10V und 8V ankommen.

https://de.wikipedia.org/wiki/Symmetrische_Signal%C3%BCbertragung

: Bearbeitet durch User
von Stefan B. (sb_newsletter)


Lesenswert?

was meinst du bekommen wir zusammen ein Schaltplan hin um das 
nachzubauen?

von Christian K. (the_kirsch)


Angehängte Dateien:

Lesenswert?

Schau doch einfach in das Datenblatt

von Christian K. (the_kirsch)


Lesenswert?

So, Noch mal bei sandboxelectronics reingeschaut.

Die benutzen für die Erzeugung des Differenzsignals den CAN-Transceiver 
PCA82C251.

Der PCA9600 ist nur davor geschalten um den Bus-Pegel auf einen festen 
Wert zubekommen und eventuell die Bus-Teilsegmente abzuschotten.

von Stefan B. (sb_newsletter)


Angehängte Dateien:

Lesenswert?

Also ich hab das jetzt so wie im Bild angeschlossen... funktioniert 
nicht...

wenn du sagst das es gehen muß, würde ich sagen das ich vielleicht einen 
der beiden Chips mit meiner rumprobiererei kaputt gemacht habe :-)

hab aber noch ein paar da :-) wenn du sagst es muss gehen bastel ich 
eben schnell neue in meinem Versuchsaufbau rein....

von Stefan B. (sb_newsletter)


Lesenswert?

Bitte Nachricht nach lesen löschen:

darf ich dich bitten gegen ein kleines Endgeld mir einen Schaltplan zu 
entwerfen womit ich das siehe Sandbox nachbilden kann...

Wenn du willst stelle ich ihn dann auch hier rein....


Wie gesagt bin leider nur Elektriker... und ich befürchte das übersteigt 
meinen geistigen horizont... aber einen Schaltplan kann zumindestens 
nachbauen :-) dafür reichts noch....

kannst auch schreiben an sb_newsletter@yahoo.de

Zu deinem Verständnis:

die Programmierung ist soweit abgeschlossen und es wäre echt schade da 
Projekt aufgrund dieser Problematik einzustampfen....

: Bearbeitet durch User
von Christian K. (the_kirsch)


Lesenswert?

Ich hab mit den Bausteinen noch nicht gearbeitet, ich kann auch nur das 
Datenblatt lesen.


Der PCA9600 ist dazu da zwei I2C Buse mit einander zu verbinden, die 
unterschiedliche Spannungslevel benutzen.

Er wird mit der Höheren der beiden Spannungen betrieben.
Auf beiden Seiten müssen PullUps um die Datenleitung auf die Spannung zu 
bringen. Auf der einen Seite sind die PullUps aber schon auf dem 
Arduino-Board.

Bei langen Leitungen (und damit sind schon 2m gemeint) auf beiden Enden 
Pullups.

Und an die PCA9600 noch Abblock-Kondensatoren (100nF).

von Falk B. (falk)


Lesenswert?

@Stefan Bauerfeindt (sb_newsletter)

>Wenn ich jedoch die Leitungslänge auf bspw. 50m erhöhe funktioniert die
>Kommunikation nicht mehr.

Wenn gleich I2C für 50m nicht gedacht ist, kann man das trotzdem machen. 
Man muss halt mit der Baudrate runter gehen und die Pull-Up Widerstände 
an SDA und SCL minimieren. 1,5kOhm sind bei 5V OK. Weiterhin muss man 
auf eine solide Masseverbindung der Teilnehmer achten. Also bitte keine 
haarfeine Ader, sondern ordentlich Querschnitt, so 0,3 oder 0,5mm^2.

Ich hatte vor vielen Jahren mal in einem Industrieprojekt was mit I2C zu 
tun, dort waren bis zu 500m (fünfhundert) Kabel dran! Das lief glaub ich 
mit 10 kBit/s oder so.

Die Arduino-Lib bietet leider keine Funktion zum Einstellen der 
Baudrate, also muss man das manuell machen, und zwar NACH wire.begin()!
Je nach Arduino-Typ könnte das ein anderes Register sein. Bei den 
meisten AVRs geht das mit
1
wire.begin();
2
TWBR = 255;  // minimale Baudrate
3
TWSR = 3;    // Prescaler = 64

von Crazy Harry (crazy_h)


Lesenswert?

Deine Pullups sind Pulldowns ;o)

von Falk B. (falk)


Lesenswert?

@ Stefan Bauerfeindt (sb_newsletter)

>    ScreenShot146.jpg

>Also ich hab das jetzt so wie im Bild angeschlossen... funktioniert
>nicht...

Logisch. Deine Widerstände am Bus müssen nach VCC ziehen, nicht nach 
GND!

Ausserdem braucht man nicht nur die PCA9600, sondern auch differentielle 
Tranceiver. Die PCA9600 machen nur aus den bidirektionalen I2C Signalen 
getrennte, unidirektionale Signale. Diese werden dann vom PCA82C251T in 
differentielle Signale umgewandelt. Steht alles auf der Sandbox-Seite.

"Technical Details

SCL and SDA of the I2C interface is bidirectional by its definition. The 
PCA9600 on the module is used in such a way that it splits SCL into two 
unidirectional signal, named SCL_TX, and SCL_RX. The same applies to SDA 
signal. The purpose to split these two signals is that the PCA82C251T 
differential transceiver requires unidirectional signals."

von Falk B. (falk)


Lesenswert?


von Klaus (Gast)


Lesenswert?

Falk B. schrieb:
> Ausserdem braucht man nicht nur die PCA9600, sondern auch differentielle
> Tranceiver. Die PCA9600 machen nur aus den bidirektionalen I2C Signalen
> getrennte, unidirektionale Signale. Diese werden dann vom PCA82C251T in
> differentielle Signale umgewandelt. Steht alles auf der Sandbox-Seite.

Das gilt nur, wenn man auch differentiel übertragen will. Ansonsten kann 
man auch RX und TX zusammenschalten und hat dann wieder I2C 
Verhältnisse. Man muß da auch nicht mit einer anderen Spannung ran 
gehen, es kann die gleiche wie auf dem primären Bus sein. Was man dabei 
gewinnt, ist eine größere kapazitive Buslast. I2C direkt läßt 400pF zu, 
der PCA erhöht das auf 4000pF. Damit darf das Kabel schon mal zehn mal 
so lang sein. Verwendet man für den externen Bus auch noch eine höhere 
Spannung, verbessert man zusätzlich auch noch den Störabstand.

Falk B. schrieb:
> SCL and SDA of the I2C interface is bidirectional by its definition. The
> PCA9600 on the module is used in such a way that it splits SCL
> into two unidirectional signal,

Das kann man so machen, muß man aber nicht.

MfG Klaus

von Falk B. (falk)


Lesenswert?

@ Klaus (Gast)

>Das gilt nur, wenn man auch differentiel übertragen will.

Ja was denn sonst, wenn er SOLIDE und SCHNELL über 300m gehen will?

> Ansonsten kann
>man auch RX und TX zusammenschalten und hat dann wieder I2C
>Verhältnisse.

Da kann man den PCA9600 auch gleich weglassen!

>so lang sein. Verwendet man für den externen Bus auch noch eine höhere
>Spannung, verbessert man zusätzlich auch noch den Störabstand.

Jaja, am besten gleich 12V oder mehr. OMG!

>Das kann man so machen, muß man aber nicht.

Man muss auch keine I2C nehmen. Man kann es auch gleich ganz bleiben 
lassen!

von Stefan B. (sb_newsletter)


Lesenswert?

Ersteinmal vielen lieben dank für die regen Antworten,

Ich habe mich nochmal mit der ganzen Problematik beschäftigt und bin 
leider zu der Erkenntnis gelangt das mein Elektronisches Verständnis 
nicht weit genug ausreicht um die Hardware Probleme selbst lösen zu 
können :-(

Aus diesem Grund suche ich hier nun ganz Offiziell:

Einen Elektronik Spezialisten der

- mit Eagle Cad arbeiten kann und
- meine Schaltpläne kontrollieren und ggf. erweitern kann

in dem aktuellen Fall "ein Modul (vorhanden) um einen I2C-Range Expander 
erweitern"


wenn jemand Lust und Interesse hat mit mir zusammen zu arbeiten

bitte melden :-)


habt vielen lieben dank


Stefan

P.s. bin ein wenig verzweifelt, hört man vielleicht raus...

Mail: sb_newsletter@yahoo.de

: Bearbeitet durch User
von JoJoBa (Gast)


Lesenswert?

Hallo Stefan,

ich habe vor ein paar Minuten ein neues Projekt-Beitrag veröffentlicht
siehe hier
Beitrag "AVR SDA-SCL One-Wire I2C Optokoppler"

Nun, die Schaltungen (habe über 1 Dutzend davon gebaut)
habe ich nicht zur Hand, sondern in meiner Firma.
Bin noch bis 15.1 im Urlaub.

Danach könnte ich 2 solche Platinen miteinander mit 50m verdrilltem 2
Draht verbinden und schauen ob das funzt.

Wenn du noch so lange warten kannst.

Ich habe diese Schaltungen gebaut um galwanische Trennung zu
realisieren . Deshalb ist auch wichtig dass Master und Slave keine
gemeinsame Stromversorgung haben !

Ich denke, da könnten wir Erfolg haben !
Gruß, csaba

von Klaus (Gast)


Lesenswert?

Falk B. schrieb:
> Da kann man den PCA9600 auch gleich weglassen!

NXP schreibt dazu:

> Bidirectional data transfer of I2C-bus signals
> Isolates capacitance allowing 400 pF on SX/SY side and 4000 pF on
> TX/TY side TX/TY outputs have 60 mA sink capability for driving
> low-impedance or high-capacitive buses

>>so lang sein. Verwendet man für den externen Bus auch noch eine höhere
>>Spannung, verbessert man zusätzlich auch noch den Störabstand.
>
> Jaja, am besten gleich 12V oder mehr. OMG!

NXP:
> Supply voltage range of 2.5 V to 15 V with I2C-bus logic levels on
> SX/SY side independent of supply voltage

MfG Klaus

von Oliver S. (oliverso)


Lesenswert?

Gegenfrage: Warum ...

willst du mit aller Gewalt einen für deine Anwendung nicht geeigneten 
Bus mit dir unverständlicher Hardware gegen Geld aufbohren lassen?

...

nur um dann im nächsten Schritt herauszufinden, daß die i2c - 
Hardwaremodule in den AVR's fehlerhaft sind, und für 
Multiprozessoranwedungen (mehrer Arduinos) fast nicht zu gebrauchen 
sind?

Aber des Mesnchen Wille ist sein Himmelreich... Viel Spaß.

Oliver

von Stefan B. (sb_newsletter)


Lesenswert?

Hallo Csaba,

das wäre super... wenn das klappt kannst du mir bitte deine Mail Adresse 
geben.

hab vielen lieben dank

bin fast verzweifelt :-)

von Stefan B. (sb_newsletter)


Lesenswert?

Hallo Oliver,

was meinst du mit fehlerhaft, Alle Arduinos (aktuell 8) arbeiten auf 
meinem Tisch mit kurzen I2C Bus absolut stabil, selbst die RS232 
Schnittstelle übergibt stabil und Störungsfrei alle Befehle selbst wenn 
der Bus mit Befehlen an einzelne Module bombardiert wird... bisslang 
keine Ausfälle...


nun sitz ich halt an der Platine, die ersten Bauteile wurde geliefert 
und da dachte ich mir das ich den Expander hier mal aufbaue um zu 
schauen ob er auch funktioniert...

was daraus geworden ist sieht man ja heul

von JoJoBa (Gast)


Lesenswert?

Hallo Stefan,

...ich war es auch, bis mir diese NacSemi Schaltung das Leben
versüsst hat   :-))

Wie gesagt in den nächsten 8 Tagen habe ich keine Zeit,
ich melde mich bei dir über eMail hier sb_newsletter@yahoo.de
Korrekt?

und wir finden eine Lösung, denke ich.
Wer sich Mühe gibt, bekommt Mühe,
wer sich noch mehr Mühe gibt, bekommt noch mehr Mühe,
aber keine Lösung.....

Ich bin kein besserwisser-Theoretiker, eher ein praktischer-Idealist

;-))

Gruß
Csaba

von Stefan B. (sb_newsletter)


Lesenswert?

ja die Mail ist korrekt, wenn du schreibst bekommst du die restlichen 
kontaktdaten :-)

hab nochmal vielen dank

von JoJoBa (Gast)


Lesenswert?

Hallo Stefan,

Vielleicht postest du den Cod, der bei dir zwischen 2 Arduinos
auf dem Tisch funktioniert....
eventuell könnte das auch andere User interessieren?!

(habe dir Mail geschickt)

Gruß,csaba

von Stefan B. (sb_newsletter)


Angehängte Dateien:

Lesenswert?

Hallo Falk,

vielen dank für deine Lösung :-) habe Sie gerade erfolgreich testen 
können, werde morgen mal 100m Cat7 Ring kaufen und damit dann nochmal 
testen, ich halte euch auf den laufenden...


Unterschied zwischen 148 und 149

VCC an allen Stellen an 12V angeschlossen... gerade mit 5m Cat5 
getestet... das geht schonmal :-)



Csaba wollte mir dieser Tage noch seine Lösung zukommen lassen, auch die 
würde ich gern testen wollen und halte euch alle gern auf den laufenden.


Spannungsabfall berechnen:

bei einer Buslänge von 100m ergibt sich bei Cat7 Leitung 0,5mm^2 (Paar 
doppelt genommen)

I = 0,05 A
l = 100 m
cos Phi = 1
K = 56 Ohm * mm^2/m
A = 0,5 mm^2
U = 12 V

rechnerich ein Abfall von ca. 2,98% daher auch noch innerhalb der DIN 
VDE 18015 :-)

werde euch berichten wenn das Kabel da ist und interesse besteht...



An Alle@

habt alle nochmals vielen dank für das ausführliche Statement hab zwar 
nur die Hälfte Verstanden aber dank Falk sein Schaltplan (denn kann ich 
ja lesen  kann) läuft es nun :-)

von Falk B. (falk)


Lesenswert?

@ Stefan Bauerfeindt (sb_newsletter)

>Unterschied zwischen 148 und 149

>VCC an allen Stellen an 12V angeschlossen... gerade mit 5m Cat5
>getestet... das geht schonmal :-)

Was soll der Unsinn?? Die Widerstände R4/R5 müssen an 5V!!!!
Und auch R5 und R13 sind an 5V deutlich sinnvoller! 1k an 12V verbrennt 
144mW, da wird ein 0805er Widerstand schon tierisch heiß!

von JoJoBa (Gast)


Lesenswert?

@falk
@Stefan

Danke euch beiden, für die Lösung und für den Bericht über die Funktion!

Ich werde mir wahrscheinlich die Dinge auch bestellen, da meine
Lösung mit dem Selbstbau-Koppler teuerer ist als
vom Falk gepostete!!!

Bin gespannt auf die weitere Test vom Stefan,
bitte informiere uns weiter hier!

Liebe Grüße!
csaba

von Stefan B. (sb_newsletter)


Angehängte Dateien:

Lesenswert?

anbei die 5V Finale Version, geändert entsprechend dem Einwurf von 
Falk...


Gibt es noch eine Möglichkeit die Gesamt Busspannung auf 12V anzuheben 
um denn Leitungsspannungsverlust auszugleichen?

von Falk B. (falk)


Lesenswert?

@ Stefan Bauerfeindt (sb_newsletter)

>Gibt es noch eine Möglichkeit die Gesamt Busspannung auf 12V anzuheben
>um denn Leitungsspannungsverlust auszugleichen?

Beim I2C gibt es keine riesigen Spannungsverluste, denn die Ströme der 
Signalleitungen sind sehr gering.

von Klaus (Gast)


Lesenswert?

Stefan B. schrieb:
> Gibt es noch eine Möglichkeit die Gesamt Busspannung auf 12V anzuheben
> um denn Leitungsspannungsverlust auszugleichen?

Der PCA verträgt eine Vcc von bis zu 15V. Auf der TX/RX Seite können die 
Pullups auch an diese Spannung angeschlossen werden. Der lange Bus kann 
also mit 12V laufen, unabhängig von der inneren Seite. Ich kann die 
Schaltungen oben nur schlecht erkennen, meine aber in der Nummer 149 
wäre das auch so gemacht.

Mehr Spannung erhöht immer den Störabstand, sieht man auch bei V24.

MfG Klaus

von Stefan B. (sb_newsletter)


Lesenswert?

100m Cat7 Kabel bestellt, sollte morgen früh geliefert werden

stimmt die Aussage das ich bei der Leitungsverdrillung darauf achten 
sollte das

SDA mit GND verdrillt sein sollte und
SCL mit VCC


daher bspw.

Or = VCC
Or/ws = SDA

gn = SCL
gn/ws = VCC


oder sollte ein anderes Aderpaar verwendet werden, ich frage deswegen 
weil die Verdrillung bei Cat7 unterschiedlich ist z.B. ist das bl / 
ws.bl. Paar weniger verdrillt als or und gn...

von Stefan B. (sb_newsletter)


Lesenswert?

@Klaus

Bild 149 habe ich getestet, Wiederstände werden auch nicht warm Falk 
meinte aber das es da bei kleineren Wiederständen (Bauart) probleme 
geben soll...

das konnte ich nicht testen weil ich keine SMD Wiederstände hier hab...


wie gesagt ich bin kein Elektroniker :-)


kannst du mir bitte erklären was das heißt:

Mehr Spannung erhöht immer den Störabstand, sieht man auch bei V24.


ist das gut oder schlecht???

Sorry bin ganz frisch in der Materie und hab mich die letzten 3 Monate 
nur um die Schnittstellen gekümmert

von Klaus (Gast)


Lesenswert?

Stefan B. schrieb:
> SDA mit GND verdrillt sein sollte und
> SCL mit VCC

Soweit Richtig. Auf keinen Fall SDA mit SCL, das gibt mächtiges 
Übersprechen. Also immer jeweils Signal mit Versorgung, welche ist egal.

Und zum Störabstand: je höher der gültige Signalpegel, desto größer muß 
eine Störung sein, um ihn zu überwinden. Also großer Störabstand ist 
gut.

MfG Klaus

von Stefan B. (sb_newsletter)


Lesenswert?

An Alle die es interessiert:

heute ist die 100m Cat7 Draka Netzwerkleitung gekommen ich habe diese 
nun zwischen denn beiden PCA9600 gelegt

Orange = SDA
Grün = SCL

Keine Funktion --> I2C Bus Funktioniert nicht und hat bei meiner 
Testumgebung alle Module nach I2C Kommunikation zum Absturz gebracht...


Orange = SDA
ws/Orange = GND

Grün = SCL
ws/Grün = 12V

Funktion erfolgreich getestet!


und bei 5V und bei 12V erfolgreich testen können.

der Spannungsabfall lag bei 0,3V auf 100m


daher auch an dieser Stelle Danke Falk, für die Ergänzung der Pullup 
Wiederstände.


Was ich jedoch noch nicht testen konnte ob der I2C Bus Probleme macht 
wenn ich die in jedem Modul befindlichen "L78S05CV" bei der 12V Leitung 
vorschalte...

Sieht da irgendjemand Schwierigkeiten und wenn ja ist es sinnvoll die 5V 
I2C Steuerleitung auf ein anderes Aderpaar im Bus mitzunehmen?

von Matthias Salomon (Gast)


Angehängte Dateien:

Lesenswert?

Habe mal eine kleine Schaltung (IO_booster) aufgebaut, die 15m 
Leitungslänge mit 800kHz!!! SCL erfolgreich überbrücken konnte.
Mit normalen 100kHz sollten also locker 50m und mehr gehen...

Das Ganze funktioniert übrigens auch sehr gut mit OneWire!

Eine andere Variante mit vorgeschaltetem level-shifter habe ich zwar 
entworfen, aber noch nicht testen können....

von Stefan (Gast)


Lesenswert?

Hallo Mathias,

hab vielen dank für deinen Beitrag :-) die vorher berichtete PCA9600 
Lösung funktioniert fehlerfrei auf 100m getestet...

OneWire wäre aber noch eine interessante Lösung hast du damit auch schon 
bei 100m testen können?

von Falk B. (falk)


Lesenswert?

@ Stefan (Gast)

>OneWire wäre aber noch eine interessante Lösung hast du damit auch schon
>bei 100m testen können?

100m habe ich nicht getestet, aber eine vergleichbare, kapazitive 
Buslast.

Beitrag "Re: Onewire + DS18x20 Library"

von Stefan (Gast)


Lesenswert?

Hallo falk

Vielen Dank nochmals für deine damalige Hilfe

Wenn du magst schreib mir mal eine mail an sb_newsletter@yahoo.de:)

von Matthias S. (novum-fx)


Lesenswert?

Stefan schrieb:
> Hallo Mathias,
>
> hab vielen dank für deinen Beitrag :-) die vorher berichtete PCA9600
> Lösung funktioniert fehlerfrei auf 100m getestet...
>
> OneWire wäre aber noch eine interessante Lösung hast du damit auch schon
> bei 100m testen können?

Hi Stefan,

getestet habe ich die OneWire-Verbindung mit der mir derzeit zur 
Verfügung stehenden 15m-Leitung.
Allerdings ist die OneWire-Datenrate so niederfrequent, dass diese 
Strecke auch ohne IO-booster funktioniert.
Auf dem Oszilloskop sehe ich aber einen sehr deutlichen Anstieg der 
Signalqualität.
Aufgrund der niederfrequenten Daten sind die erreichbaren Distanzen mit 
dem IO-booster aber sicher mehr als 100m.

von Manfred L. (manni)


Angehängte Dateien:

Lesenswert?

Hallo,

ich buddle diesen Beitrag nochmal aus und möchte meine Erfahrungen mit 
dem PCA9600 Bus-Treiber mitteilen.

Wie im attached Bild gezeigt, verwende ich eine Multipoint-Applikation 
mit einem ATmega32 als Master, siehe auch das Datenblatt. Die rot 
markierten Angaben stammen von mir.

Ich habe bis heute 5 Slaves (ATmega8) mit je 10 m Flachbandkabel 
angeschlossen. Mit eine TWI bitrate von 50 Kbit/s (ich bin ja 
bescheiden) funktioniert die Schaltung einwandfrei. Dabei habe ich eine 
Bus-Spannung von 5V und 15V ausprobiert, es geht beides !

Der einzige Nachteil dieser Schaltung ist, dass der PCA9600 mittlerweile
4,50 € kostet - Grrrrr

Falls ihr noch Fragen habt, beantworte ich die gerne !

Gruß Manni

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.