Hallo, Liste
Meine vorigen Mails wurden ja schon weitergeleitet. Ich möchte mich trotzdem kurz vorstellen. Ich bin Wirtschaftsinformatik (FH) Student aus Karlsruhe und Drache. Leider kenne ich mich mit Elektronik sehr wenig aus. Primär besorge ich mir einen Schaltplan und ein paar Infos aus dem Internet und hoffe daß es dann funktioniert. Ich kann Digitaltechnik noch grob verstehen, sobald ich jedoch etwas berechnen müsste hört es bei mir auf.
Ich beschäftige mich momentan selber ein wenig mit Atmels und Lichtsteuerung. Mein letztes Projekt war das MoodCluster - www.zefiro.de/projekte/wodo/moodcluster.html - bei dem ich fünf Würfel zu je drei Farb-LEDs angesteuert habe.
Als ich von eurem Projekt hörte war ich natürlich sofort interessiert :)
Für meine Kommunikation der Atmels untereinander dachte ich auch an I2C. Die Verkabelung wollte ich dabei mittels Netzwerkkabeln machen. Primär weil ich gerne Dinge nehme die ich zur Not anderweitig verwenden kann, je nach Bedarf. Und weil ich genügend davon habe.
Mein I2C wollte ich als Stern verlegen. Damit es topologisch ein Bus bleibt habe ich in jedes Kabel für die beiden Adern SCL+SDA ein Hin- und ein Rücksignal vorgesehen. Diese sollten dann am zentralen Verteiler zur nächsten Westernbuchse weitergegeben werden. Die anderen zwei Adernpaare versorgen die Clients mit Strom (zentral aus einem ATX-Netzteil)
Jetzt musste ich jedoch feststellen daß I2C scheinbar doch nicht geeignet ist dafür. Schon bei 3 Metern Leitungslänge - mit nur einem Client - kamen meine Signale nicht mehr sauber durch bzw. zum Teil gar nicht mehr. Die Software hänge sich auf (vermutlich Endlosschleife beim Warten auf die Busbestätigung). Mir fehlen die technischen Möglichkeiten und das Wissen um dem näher auf die Spur zu gehen. Ich finde mich momentan mit dem Gedanken ab wohl doch ein anderes Verfahren nehmen zu müssen. CAN oder RS485 kommen in den Sinn, mit Zusatzbauteilen.
Da ihr eure Fnordlichter ja auch mit I2C verbinden wollt und ein GoL-Cluster wohl auch eine gewisse Ausdehnung bekommen soll wollte ich euch mal fragen ob ihr auch schon solche Probleme hattet und wie man sie lösen kann. Über Bus-Repeater habe ich gehört, aber Bezugsquellen sind kaum aufzutreiben bzw. ewig teuer. Was wäre in meinem Fall wohl die beste Variante?
:Zefiro:
* Zefiro trickser@gmx.net [2005-09-15 12:33]:
Für meine Kommunikation der Atmels untereinander dachte ich auch an I2C. Die Verkabelung wollte ich dabei mittels Netzwerkkabeln machen. Primär weil ich gerne Dinge nehme die ich zur Not anderweitig verwenden kann, je nach Bedarf. Und weil ich genügend davon habe.
Mein I2C wollte ich als Stern verlegen. Damit es topologisch ein Bus bleibt habe ich in jedes Kabel für die beiden Adern SCL+SDA ein Hin- und ein Rücksignal vorgesehen. Diese sollten dann am zentralen Verteiler zur nächsten Westernbuchse weitergegeben werden. Die anderen zwei Adernpaare versorgen die Clients mit Strom (zentral aus einem ATX-Netzteil)
Bei der Sterntopologie verschenkst du auf jeden Fall die Hälfte der Leitungslänge. Begrenzender Faktor ist IIRC der Widerstand der Leitungen.
Jetzt musste ich jedoch feststellen daß I2C scheinbar doch nicht geeignet ist dafür. Schon bei 3 Metern Leitungslänge - mit nur einem Client - kamen meine Signale nicht mehr sauber durch bzw. zum Teil gar nicht mehr. Die Software hänge sich auf (vermutlich Endlosschleife beim Warten auf die Busbestätigung). Mir fehlen die technischen Möglichkeiten und das Wissen um dem näher auf die Spur zu gehen. Ich finde mich momentan mit dem Gedanken ab wohl doch ein anderes Verfahren nehmen zu müssen. CAN oder RS485 kommen in den Sinn, mit Zusatzbauteilen.
Hast du mal versucht, die Busgeschwindigkeit zu reduzieren?
Da ihr eure Fnordlichter ja auch mit I2C verbinden wollt und ein GoL-Cluster wohl auch eine gewisse Ausdehnung bekommen soll wollte ich euch mal fragen ob ihr auch schon solche Probleme hattet und wie man sie lösen kann. Über Bus-Repeater habe ich gehört, aber Bezugsquellen sind kaum aufzutreiben bzw. ewig teuer. Was wäre in meinem Fall wohl die beste Variante?
Bis jetzt haben wir noch nicht mit längeren Leitungslängen experimentiert. Eine Notfallüberlegung wäre es, I2C über RS485 zu machen.
Lars Noschinski wrote:
Hallo Zusammen...
<introduction> Ich luke hier schon eine ganze Weile rum, konnte bis gerade aber nie die notwendige Aktivierungs-Energie aufbringen hier mal was zu schreiben.
/me lebt in Bochum, und verweile z.Z. häufig im Labor (http://www.das-labor.org) -- einer Gruppe, die aus dem Bochumer Chaostreff und einer Reihe Studenten-Cliquen entstanden ist. </introduction>
Auch wir basteln seit ein paar Monaten mit den Atmels -- u.A. auch zur "Home-Automatisierung".
Bei der Sterntopologie verschenkst du auf jeden Fall die Hälfte der Leitungslänge. Begrenzender Faktor ist IIRC der Widerstand der Leitungen.
Normalerweise ist vielmehr die Induktivitaet ein Problem -- ausserdem Reflexionen an den Kabelenden bei längeren Laufzeiten.
Schon erschreckend wie dreckig die Signale werden, wenn man da ein Oszi dran' hält.
Wissen um dem näher auf die Spur zu gehen. Ich finde mich momentan mit dem Gedanken ab wohl doch ein anderes Verfahren nehmen zu müssen. CAN oder RS485 kommen in den Sinn, mit Zusatzbauteilen.
CAN bewährt sich gerade sehr gut: Wir haben einen CAN Bus gelegt und Betreiben gerade die ersten Geräte im harten Alltagseinsatz daran -- u.A. eine Kleine Atmel Box die 6 Spotscheinwerfer dimmen kann und div. Blinken-Lights. Bei 125kBit/s darf man laut spec. 500m lang werden und ist dabei elektisch sehr robust.
Das ganze benutzt Cat5 Netzwerkkabel mit 2 Differentiellen Signal-Adern und weiteren Adern fuer die Stromversorgung und TAE Dosen an der Wand -- die schalten den Bus durch wenn kein Geraet steckt. Wenn doch, werden die Signalleitungen als Schlaufe hin- und wieder zurueckgefuehrt um die Bus-Topologie zu erhalten.
Ist zZ alles viel zu wenig Dokumentiert... ([1], [2])
Naja, ich wollte als naechstes eure Fnordlicht Erfahrungen recyclen (Blumentopf!) und auch ein paar LED-Lampen an den Bus haengen -- allerdings nicht mit einem Controller pro Lampe, sondern lieber einen Controller pro Lampen-Cluster mit n Lampen.
....must think about this....
j.
[1]http://wiki.das-labor.org/Automatisierung_des_Labors gibt es ein [2]https://roulette.das-labor.org/cgi-bin/trac.cgi/browser/microcontroller/
Hey, Jörg...
JB> Auch wir basteln seit ein paar Monaten mit den Atmels -- u.A. auch zur "Home-Automatisierung". Sehr interessant. Ich würde auch gerne über euer Projekt näheres erfahren. Bei mir geht es zwar nur um meine kleine Höhle, kein ganzes Mehrpersonenlabor, aber das Prinzip ist sicherlich ähnlich.
Bei der Sterntopologie verschenkst du auf jeden Fall die Hälfte der Leitungslänge.
stimmt, aber solange eine Bustopologie vorgeschrieben wird wüsste ich nicht was ich sonst machen sollte. Es soll zwar entsprechende Chips zum Aufteilen in mehrere Segmente geben, aber ich fand noch keine wo dranstand 'nimm mich, ich bin genau was du brauchst'. Mir fehlt da leider selber die Ahnnug von. Für mich ist ein Kabel das zusammengelötet ist überall auf dem gleichen Niveau. Von Ausbreitungsgeschwindigkeiten, Wellenwiderständen, Reflexionen, etc habe ich keinen Schimmer. Ich weiß nur daß es sie gibt und es daher ratsam wäre beim Bus zu bleiben.
Begrenzender Faktor ist IIRC der Widerstand der Leitungen.
Ich las etwas von der Induktivität - 400pf max. Wie ich das jedoch abschätzen oder gar verändern kann übersteigt meine Kompetenz.
JB> Normalerweise ist vielmehr die Induktivitaet ein Problem -- ausserdem JB> Reflexionen an den Kabelenden bei längeren Laufzeiten. Frage dazu: sind Abschlußwiderstände notwendig? wenn ja, welche, wo, wie groß? Ich las mal etwas davon, als ich letztes WE ein wenig im Web stöberte fand ich jedoch nur schematische Zeichnungen bei dem ein Pullup in der Mitte und nichts an den Enden eingezeichnet war. (und irgendwo den Hinweis auf 'aktive Pullup'-chips)
JB> Schon erschreckend wie dreckig die Signale werden, wenn man da ein Oszi dran' hält. Besitze ich leider auch nicht :) Gibt es - abgesehen von 'Befehl kommt nicht durch' andere Möglichkeiten zu testen wie gut das Signal ist? So rein mit Voltmeter und LEDs oder so.
JB> CAN bewährt sich gerade sehr gut: Wir haben einen CAN Bus gelegt und JB> Betreiben gerade die ersten Geräte im harten Alltagseinsatz daran -- klingt interessant. ich würde mich vermutlich an www.canathome.de orientieren. Steht genügend dort um es wohl nachbauen zu können. Mich schreckt noch ein wenig der zusätzlich benötigte Teileaufwand ab - ein Buscontroller und ein Treiber. (wenn ich das richtig sehe komme ich dann mit meinen Lochstreifenplatinen auch nicht mehr weiter, oder gibt es die in DIP-Bauform?)
JB> Das ganze benutzt Cat5 Netzwerkkabel mit 2 Differentiellen Signal-Adern JB> und weiteren Adern fuer die Stromversorgung so hatte ich das auch vorgesehen.
JB> und TAE Dosen an der Wand die schalten den Bus durch wenn kein Geraet steckt. Wenn doch, werden JB> die Signalleitungen als Schlaufe hin- und wieder zurueckgefuehrt um die Bus-Topologie zu erhalten. Klingt auch ähnlich, bis auf das TAE. D.h ihr nehmt cat5 von der Rolle und habt TAE-Stecker drangelötet? Denn durchschaltende Buchsen für RJ45 sind mir nicht bekannt - obwohl es in diesem Fall sehr praktisch wäre.
JB> Ist zZ alles viel zu wenig Dokumentiert... ([1], [2]) Du kannst meine Fragen ja auch alle beantworten indem du die doku erweiterst und mir dann die URL darauf schickst ;)
Bzgl. Fnordlicht: mich würden eure Erfahrungen mit I2C dann interessieren, wenn ihr euer Cluster gebaut habt.
:Zefiro:
Zerfiro, Hallo!
JB> Auch wir basteln seit ein paar Monaten mit den Atmels -- u.A. auch zur "Home-Automatisierung". Sehr interessant. Ich würde auch gerne über euer Projekt näheres erfahren. Bei mir geht es zwar nur um meine kleine Höhle, kein ganzes Mehrpersonenlabor, aber das Prinzip ist sicherlich ähnlich.
Naja -- Clubraum fuer Nerds und verwandte Seelen...
JB> Normalerweise ist vielmehr die Induktivitaet ein Problem -- ausserdem JB> Reflexionen an den Kabelenden bei längeren Laufzeiten. Frage dazu: sind Abschlußwiderstände notwendig? wenn ja, welche, wo, wie groß?
Sind bei I2C wohl keine gute Idee -- bevor ich hier jetzt aber totalen Quatsch erzaehle moechte ich das mit unserem Elektronik-Freak durchquatschen...
JB> Schon erschreckend wie dreckig die Signale werden, wenn man da ein Oszi dran' hält. Besitze ich leider auch nicht :) Gibt es - abgesehen von 'Befehl kommt nicht durch' andere Möglichkeiten zu testen wie gut das Signal ist? So rein mit Voltmeter und LEDs oder so.
s.o. -- Aber wenn ich jetzt spekulieren _muesste_: (ad-hoc braindump -- keine loesung, alles pure spekulation!)
Ich denke du muesstest kontrollieren wie steil/sauber die Flanken bei verschiednen Frequenzen auf der Leitung sind. Also 1-0 Pattern unterschiedlicher Laenge/Frequenz senden. Wie man das dann misst, ohne das signal dadurch zu zertoeren -- hmm, schwierig, eventuell induktiv abgreifen? (need help here)
Von Vorteil ist immerhin, dass du keine absoluten Zahlen brauchst, sondern dir sowas wie: "das signal wird deutlich schlechter, wenn ich den bus um x cm verlaengere" genuegt. Das sollte doch irgendwie machbar sein...
JB> CAN bewährt sich gerade sehr gut: Wir haben einen CAN Bus gelegt und JB> Betreiben gerade die ersten Geräte im harten Alltagseinsatz daran --
klingt interessant. ich würde mich vermutlich an www.canathome.de orientieren. Steht genügend dort um es wohl nachbauen zu können. Mich schreckt noch ein wenig der zusätzlich benötigte Teileaufwand ab - ein Buscontroller und ein Treiber. (wenn ich das richtig sehe komme ich dann mit meinen Lochstreifenplatinen auch nicht mehr weiter, oder gibt es die in DIP-Bauform?)
canathome kannte ich nicht, danke fuer den Tip!
CAN Controller & Co gibt es in DIP -- wir haben den MCP2515 von Microchip gesampled und verbauen den bequem auf Lochraster -- siehe http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1...
JB> und TAE Dosen an der Wand die schalten den Bus durch wenn kein Geraet steckt. Wenn doch, werden JB> die Signalleitungen als Schlaufe hin- und wieder zurueckgefuehrt um die Bus-Topologie zu erhalten. Klingt auch ähnlich, bis auf das TAE. D.h ihr nehmt cat5 von der Rolle und habt TAE-Stecker drangelötet? Denn durchschaltende Buchsen für RJ45 sind mir nicht bekannt - obwohl es in diesem Fall sehr praktisch wäre.
Genau so. Und TAE hat zum Glück genau 6 Beinchen: 2*Signal hin + 2*Signal zuruck + 2*Power...
j.
Hey, Jörg...
zwar nur um meine kleine Höhle, kein ganzes Mehrpersonenlabor,
JB> Naja -- Clubraum fuer Nerds und verwandte Seelen... Schon klar :) Wir sind momentan zu zweit. Zwar gibt es auch einen lokalen Club - Entropia - von dem auch letztens einer auf der Mailingliste meinte sich das Fnordlicht zum Vorbild für auch was eigenes zu nehmen. Mein momentaner Zeitplan hindert mich jedoch daran dort hinzugehen, und nach meiner Diplomarbeit (High-Level, Java :), habe ich noch keine Ahnung wohin es mich verschlägt.
sind Abschlußwiderstände notwendig? wenn ja, welche, wo, wie groß?
JB> Sind bei I2C wohl keine gute Idee ich dachte die seien gut gegen Reflexionen?
JB> -- bevor ich hier jetzt aber totalen Quatsch erzaehle moechte ich das mit unserem Elektronik-Freak durchquatschen... Das wäre nett, ja. Oder motiviere ihn auch hier zu subscriben.
JB> canathome kannte ich nicht, danke fuer den Tip! Gern geschehen. War von der Idee und Umsetzung her meine größte Inspiration, wenngleich ich seinen Buskoppler und Bauteilanzahl immer für abschreckend aufwendig hielt.
JB> CAN Controller & Co gibt es in DIP -- wir haben den MCP2515 von JB> Microchip gesampled und verbauen den bequem auf Lochraster 'gesampled'?
JB> Genau so. Und TAE hat zum Glück genau 6 Beinchen: 2*Signal hin + 2*Signal zuruck + 2*Power... Ich bleibe wohl erstmal bei Westernbuchsen, da ich neben 5V auch 12V (für Relais etc) verteilen möchte. Gibt es eigentlich kein simples System wie I2C das von sich aus Sternstruktur beherrscht oder man dahin halbwegs einfach aufbohren kann, ohne dieses hin&zurückgeleite?
:Zefiro:
Zefiro wrote:
sind Abschlußwiderstände notwendig? wenn ja, welche, wo, wie groß?
JB> Sind bei I2C wohl keine gute Idee ich dachte die seien gut gegen Reflexionen?
Naja, man muesste ja mit dem Wellenwiderstand deines mediums abschliessen -- da das Signal nicht diff. uebertragen wird, sondern als Potential gegen Masse, muesste man wohl auch den Wellenwiderstand der Signalleitung gegen Masse bestimmen. Okey, das sollte noch machbar sein.
Was mir Sorgen macht: dieser Widerstand ist bestimmt rel. klein -- auf der anderen Seite sollen doch die Leitungen von I2C eh' mit einem Pullup gegen V+ gezogen werden -- wenn du jetzt die Enden gegen Masse 'Endwidersändest' ist das bestimmt ahm .... schlecht.
Aber hast schon recht -- zumindest messen sollte man den mal.
Muss mal die Tage die I2C Spec. lesen... aber, wichtiger:
Ich bin kein Elektrotechniker, und hatte noch nie ein Buch ueber Nachrichtentechnik in meinen Haenden und habe vor 4 Monaten meine erste Lochrasterplatine gelötet ....
/me thinks das mit dem Buch sollte sich aendern... und sollte mal einen Tag mit dem Oszi, einem Signalgenerator und ein paar Meter Kabel verbringen....
Habe in der Zwischenzeit das Gefuehl hier auf extrem duennen Eis zu laufen und sollte wohl besser den Mund halten.
JB> Genau so. Und TAE hat zum Glück genau 6 Beinchen: 2*Signal hin + 2*Signal zuruck + 2*Power... Ich bleibe wohl erstmal bei Westernbuchsen, da ich neben 5V auch 12V (für Relais etc) verteilen möchte. Gibt es eigentlich kein simples System wie I2C das von sich aus Sternstruktur beherrscht oder man dahin halbwegs einfach aufbohren kann, ohne dieses hin&zurückgeleite?
Kein Plan.
Aber du benoetigst doch nur extrem geringe datenraten, oder? Da kann man doch bestimmt etwas mit den I/O Pins selberbauen, das ein paar 10* Bits/s ueber einige Meter schafft.
j, reichlich verwirrt.
Nochmal ich...
JB> Sind bei I2C wohl keine gute Idee ich dachte die seien gut gegen Reflexionen?
Nochmal klarer: der Wellenwiderstand ist ja eine Eigenschaft des Kabels -- nicht eines einzelnen Drahtes... und er wird immer zwischen zwei Potentialen angegeben. Da I2C aber nicht differentiell ist, habe ich einfach mal geraten, dass man das gegen Masse tun muss -- da deine ICs wohl auch das Potential gegen Masse bestimmen...
(Die Alternative waere gegen V+ oder gegen Erde .. das macht aber IMHO beides wenig Sinn...)
Ausserdem musst du bestimmt hoellisch auf Übersprechen der Taktleitung auf die Signalleitung (und umgekehrt) durch Induktion achten...
j.
Zefiro schrieb:
Hi...
JB> Sind bei I2C wohl keine gute Idee ich dachte die seien gut gegen Reflexionen?
Hab gerade die Gelegenheit genutzt und mal nen' Stuendchen mit einem Oszilloskop gespielt:
Habe mir ein 1 MHz (bzw 500kHz) Rechteck Signal erzeugt und ein ca, 3m Langes TP (Cat5) Kabel daran angeschlossen. Die andere Ader des gedrillten Paares lag auf Masse[1].
Man sieht dann deutlich den Einschwing-Vogang an den Flanken... der erste Überschwinger liegt mehr als 2.5V ueber den 5V soll um dann innerhalb von 1 \mu s auf knapp unter 4V zu fallen -- also fast 50% Störung an den Flanken. Über die Frequenz des Einschwingvorgangs kann ich nur schwer eine Aussage treffen, da sie in Abhaenigkeit von dem Messort auf der Leitung zu variieren scheint (sic!) -- eine Phase liegt aber irgendwo bei 0.1 \mu s +/- 0.05...
(ach hätt' ich doch eine Digitalkamera!)
Next Step...
These: Wellenwiderstand liegt irgendwo bei 100 Ohm -- habe also mal einen 470Ohm und einen 120Ohm Widerstand an *ein* Ende des Kabels befestigt -- in beiden Fällen werden die Überschwinger kleiner -- bei dem 120 Ohm Widerstand deulich besser als bei 470. Bei 120 Ohm begrenzen sich die Überschwingungen bei ca. 1V -- allerdings geht auch das Plateau schon auf beinahe 4V runter -- immerhin nur noch 25% Störung an den Flanken.
Meine Theorie ist nun, dass der Wellenwiderstand von Cat5 Kabel wohl so bei 50 Ohm liegt -- nur Traue ich mich nicht einen solche einfach am ausgang meines Atmels gegen Masse zu schalten... ob die Treiber das mitmachen?
Mal nachher ins Datenblatt schauen; habe jetzt kene Zeit mehr und muss weg.
.. habe ja hoffnung, dass wir das noch analysiert bekommen :)
j.
[1] Diese einfach offen zu lassen hatte bei meinen Experimenten keinen grösseren Einfluss. (<10%)
Hi,
* Zefiro trickser@gmx.net wrote:
Mein I2C wollte ich als Stern verlegen. Damit es topologisch ein Bus bleibt habe ich in jedes Kabel für die beiden Adern SCL+SDA ein Hin- und ein Rücksignal vorgesehen. Diese sollten dann am zentralen Verteiler zur nächsten Westernbuchse weitergegeben werden. Die anderen zwei Adernpaare versorgen die Clients mit Strom (zentral aus einem ATX-Netzteil)
Das Problem mit laengeren Kabeln und I2C ist, dass dieses Kabel leider wie ein Kondensator wirkt und die Ecken des (idealerweise) Rechtecksignals von I2C abrundet, wie das ein Kondensator nunmal tut.
Ich hab das vorher mal mit einem alten Elektrotechniker (>20 Jahre Erfahrung) durchgesprochen, der meinte, man muesse nur die Frequenz weit genug runtersetzen, dann sollte das gehen.
Messen kann man so etwas mit einem Speicheroszilluskop, damit hab ich auch schonmal ein wenig rumspielen duerfen. Wir haben bei den Experimenten aber auch schon ein Signal mit 1MHz Taktfrequenz durch ein 3m Kabel relativ sauber durchbekommen (ziemliche Leistung, wenn man bedenkt, das I2C eigentlich als Bus fuer Kommunikation nur auf der Platine gedacht ist).
Meine fnordlichter haben zur Zeit einen I2C-Takt von etwa 7kHz, mal schauen wie das wird...
- fd0