I²C hotplug-fähig?

Hallo,

ist I²C eingeschränkt hotplugfähig? Es geht nur um das Anstecken an den Bus, Zugriffe während des Ein-/Aussteckens schließe ich aus. Möchte gerne einen kleinen Datenspeicher steckbar ausführen.

Benötige ich besondere Vorkehrungen wie z.B. vorauseilende Masse/Versorgungsspannung? Vielleciht lassen sich USB-Sticks dazu zweckentfremden, dort kontaktieren 5V und Masse ja zuerst.

I²C-Chipkarten mit 24C16 (soviel Speicher sollte es sein) kenne ich, finde sie aber aus Platz- und Montagegründen (Kontakteinheit) unpraktisch. Wie wird das hotplugging bei diesen Chipkarten gelöst?

bis dann,

Martin

Reply to
Martin Wiesner
Loading thread data ...

Also ob I2C per se hotplug kann, wei=C3=9F ich nicht. Was aber funktionieren d=C3=BCrfte, ist die Stichleitungen f=C3=BCr ein einzelne= s Ger=C3=A4t so zu schalten, dass der Rest vom Bus nicht tangiert wird. Ich denke da an eine Schaltung =C3=A4hnlich wie man sie zum bidirektionalen Level Shift verwendet, also das mit den beiden MOSFETs. Wenn man es so schaltet, dass die MOSFETs im Grundzustand immer sperren, und nachdem man ein Ger=C3=A4t angesteckt hat, zun=C3=A4chst die MOSFETs "freigibt" und nach dieser Freigabe erst die Versorgungsspannung f=C3=BCr das Ger=C3=A4t gibt, dann sollte = man keine Probleme haben. Im Zweifelsfall stellt man noch sicher, dass sich auf dem I2C nichts tut, und "greift" sich den Bus bevor man die Spannung f=C3=BCr das Ger=C3=A4t einschaltet und gibt den=

Bus danach wieder frei.

Wolfgang Draxinger

--=20 E-Mail address works, Jabber: snipped-for-privacy@jabber.org, ICQ: 134682867

Reply to
Wolfgang Draxinger

Nun ja, wenn Du als Einschränkung hinnimmst, dass nach dem Ein- oder Ausstecken möglicherweise der ganze Bus klemmt, dann könntest Du IIC als hot-plug-geeignet annehmen.

Wie willst Du Zugriffe während des Steckvorganges ausschließen? Elektromagnetische Verriegelung der Buchse, so dass man den Stecker nicht zur Unzeit ziehen oder einstecken kann?

Oder zusätzliche vor/nacheilende Kontakte vorsehen, die dem System melden, dass ein Steckvorgang zu erwarten ist, und alle IIC-Zugriffe zu unterbleiben haben. Dann dürfen allerdings nie längere Zugriffssequenzen auftreten (sonst wäre eventuell der Steckvorgang beendet, bevor die Zugriffssequenz beendet ist). Am besten wäre es, wenn am Bus nur der Master und das zu steckende Slave-Device betrieben würden, also eine Punkt-zu-Punkt-Verbindung, kein Bus.

Anders wirst Du das vermutlich nicht annähernd zuverlässig hinbekommen.

Zusätzlich zur Verriegelung bzw. sonstigen Maßnahmen, die Zugriffe während des Steckens ausschließen? Ja.

Dann solltest Du aber noch irgendeine Kodierung vorsehen, die verhindert, dass jemand ein USB-Device in Deinen IIC-Port bzw. dass jemand Deinen IIC-Speicher in einen USB-Port steckt. Es dürfte allerdings schwierig bis unmöglich werden, so eine Kodierung zu fabrizieren.

Da gibt es sicherlich eine ganze Reihe von Lösungen.

Primitiv und wohl am unteren Ende bezüglich Zuverlässigkeit dürfte es wohl sein, wenn einfach unter Spannung gesteckt wird, und der Kontakt/Schalter, der vollständiges Einstecken signalisiert, ausgewertet wird, um Zugriffe freizugeben bzw. zu sperren.

Aufwändiger aber zuverlässiger dürfte es sein, die Spannungsversorgung zur Karte erst dann einzuschalten, wenn vollständiges Einstecken signalisiert wird. Danach die Zugriffe auf den IIC-Bus freigeben. Die Fassung muss so gestaltet sein, dass beim Herausziehen der Karte sie Signalisierung für vollständiges Stecken zurückgenommen wird, bevor die Daten- und Versorgungsleitungen unterbrochen werden. Nach dem wegnehmen des Signals wird der aktuelle Zugriff noch fertig abgearbeitet, dann die Versorgung (auch der Pullups an Takt- und Datenleitung) abgeschaltet. Entsprechend der kürzestmöglichen Zeit zwischen wegnehmen des Signals und Unterbrechung der Daten- und Versorgungsleitungen durch das Ziehen der Karte muss die maximale Länge der Zugriffszyklen bemessen werden. Also vermutlich nie Multi-Byte-Transfers, sondern immer Einzel-Byte-Transfers. Beim Scheiben auf EEPROMs hat man allerdings das Problem, dass die Schreibzyklen meist 10ms dauern. Das könnte eventuell schon zu lang sein (je nachdem, wie schnell man die Karte aus der Fassung reißen kann).

Nachdem es diese IIC-Speicherkarten und die zugehörigen Fassungen schon gibt, und die Leute, die das entworfen haben, sich vermutlich auch einige Gedanken dazu gemacht haben, würde ich die an Deiner Stelle verwenden, anstatt einem Murks mit missbrauchten USB-Steckern.

Ich "durfte" schon mal so ein Design reparieren, bei dem ein Kollege die Verbindung zu einem Device am IIC-Bus schaltbar gestaltet hatte. Das hat überhaupt keinen Spaß gemacht!

Allerdings gibst Du keine Information preis darüber, wozu das Ganze gut sein soll. Wie das halt so immer üblich ist, wenn einer sich seine verschrobenen Ideen "im Internet" bestätigen lassen will. Daher können wir nicht wissen, ob Du das nur dreimal im abgeschlossenen Keller verwenden willst und es dann verschrottest, oder ob es auch andere Leute, vielleicht sogar Kunden, regelmäßig verwenden müssen. Ob der Pfusch mit USB-Steckern ausreicht, weil es eh nur eine kurze Bastelei sein soll, kannst also nur Du beurteilen.

Grüße,

Günther

Reply to
Günther Dietrich

Hallo!

Wolfgang Draxinger schrieb:

Wenn dann bitte andersherum. Sonst werden möglicherweise die Schutzdioden der Cortroller-Chips umgepolt. Außerdem geraten Spikes vom Einschaltvorgang auf den Bus. Das könnte andere Devices irritieren.

Elektrisch gesehen ist man damit dann weitgehend auf der sicheren Seite. Ob es allerdings protokolltechnisch immer einwandfrei klappt, hängt von vielern anderen Faktoren ab (siehe PS/2 Mäuse).

Marcel

Reply to
Marcel Müller

Marcel Müller schrieb:

Ich bin hier in der NG längere Zeit abwesend gewesen, daher mag es sein ich habe hier nicht alles mitgekriegt, aber:

  1. SCL und SDA haben beide KEINE Schutzdioden nach VCC, sondern ne Art Zenerdiode. Das ist allerdings nicht bei allen vermarkten i2c-ICs so.
  2. Es gibt von
    formatting link
    einen i2c-Buffer, der erst nach einem erkannten STOP auf dem Bus, diesen dann durchschaltet.

Gruß - Henry

--
www.ehydra.dyndns.info
Reply to
Henry Kiefer

Keine parasitaeren Substratdioden? Etwa bei normalen CMOS Chips? Wie haben die denn das hinbekommen?

Geht es eigentlich auch bei Euch mehr in Richtung SPI oder ist das nur hier so?

--
Gruesse, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

Günther Dietrich schrieb:

Jaaaaaa, wie bei meinen 8" Floppys :-)

Butzo

Reply to
Klaus Butzmann

SCL und SDA sind ja Open-Drain, d.h. da ist kein P-Kanal FET dran und damit auch keine parasitaere Diode nach VCC. Aehnlich wie an den /RESET Pins einiger MCUs: Man legt VCC auf z.B. 5V und legt dann an /RESET 12V an um den Programmiermodus zu aktivieren. Ich habe da deswegen immer eine externe Klemmdiode nach VCC dran.

Mir ist SPI auch lieber. Wenn man hohe Geschwindigkeit braucht (z.B. fuer Speicherchips) hat es mehr zu bieten. Dafuer darf man halt mehr Leiterbahnen verlegen. Dass SPI full-duplex ist bringt IMHO eher selten einen Vorteil.

Micha

Reply to
Michael Baeuerle

Wir haben an einem unserer älteren Geräte sowas seit über zehn Jahren am Laufen, ohne Probleme. Ist einfach nur ein Sub-D 9 mit einem seriellen EEPROM dran...

--

Ralph.

http://www.dk5ras.de/ http://www.db0fue.de/
http://www.bclog.de/
Reply to
Ralph A. Schmid, dk5ras

Ja,

Ja

Schau Dir doch mal einen USB Stecker an. Die beiden ausseren Stifte einen USB-A Steckers eilen vorraus. Auf den Stiften liegt Plus und GND

--
Uwe Bonnes                bon@elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
Reply to
Uwe Bonnes

Ich habe auch schon über etliche Meter lange Telefonstrippen quer durchs Firmengebäude i2c gesteuerte Weihnachtslichterketten angesteuert. Ist aber wohl nicht die Norm ;-)

Und dann gabs da noch den Mobilfunk-Infrastruktur-Anbieter, der i2c als Busverbindung zwischen Geräten am Mast betreibt...

- Henry

--
www.ehydra.dyndns.info
Reply to
Henry Kiefer

Joerg schrieb:

Moin Jörg!

Es hält sich die Waage. Philips verlangte schon immer einfach zu viel Kohle für die einfachen i2c-Chips und hat sich damit ziemlich sicher einige nennenswerte Märkte verbaut. Und einige funktionale Bausteine fehlen immer noch nach so langer Zeit.

Aber das Patent ist abgelaufen. TWI darf nun offiziell i2c heißen und ne Busadresse kann man sich auch selber zimmern.

Ich bevorzuge i2c. Da hat man minimal JTAG zum Debuggen gleich integriert...

Übrigens sind JTAG und SPI miteinander verwandt.

Und schau dir mal so feine Sachen wie Si571 an! Wenn du da mal ein paar Cent mehr über hast... ;-)

- Henry

--
www.ehydra.dyndns.info
Reply to
Henry Kiefer

Sieht interessant aus, insbesondere vielleicht als leicht zu verwendende Zeitquelle für meinen Funktionsgenerator, den ich irgendwann nochmal zuende bauen möchte.

Wo kann man den kaufen? Bei

formatting link
wird man auf die mouse.com-Seite weitergeleitet, die nur das Devkit zum Si570/Si571 anbieten. Wie teuer ist der Si570?

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

So ca. $20 bis 90 je nach Version. Gottseidank schläft Jörg noch, sonst käme sofort das Wort 'Boutique' ;-)

Die Phasenrauschwerte sind dafür aber auch beachtlich.

Wenn du einen haben willst, dann schick mir mal ne mail mit deinen Anforderungen. Vielleicht paßt einer der hier liegenden.

- Henry

--
www.ehydra.dyndns.info
Reply to
Henry Kiefer

Sieht danach aus. Nicht mal Arrow hat den Chip.

Falls nicht, hat vielleicht Oliver Bartels einige Empfehlungen.

--
Gruesse, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

I2C ist bei mir zu lange her, gibt's hier immer weniger. Aber ist es nicht so, dass da auch immer Eingaenge mit dranhaengen? Die sollten doch Substratdioden nach VCC haben.

Voll Duplex hat mir schon Vorteile gebracht. Meist dann, wenn ich mal so richtig aufs Gas gestiegen bin, jenseits der 20MHz. Wandler auslesen und dabei gleichzeitig die naechste Config rueberschicken und solche Geschichten.

--
Gruesse, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

$20 wäre noch ok. Ich vermute aber mal, gerade der Si570 wird teuerer sein?

Ich hatte den Chip hier angedacht: AD9854. Eigentlich möchte ich aber nur eine beliebige Frequenz generieren, vielleicht so zwischen 1 MHz und 100 MHz (wenn er nicht bis 1 MHz runterkommt könnte ich das noch teilen, ich plane sowieso einen FPGA einzusetzen), da ist der schon was kompliziert und so ein einfacher Chip wie der Si571, wo ich nur die Frequenz programmieren brauche und nichts sonst anschließen brauche, wäre schon eine schöne Sache.

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

Ja, war meist zu teuer. Besonders wenn die Konkurrenz so aussieht und 12 Bits fuer um die $1.50 zu haben sind:

formatting link

8-Bitter gibts unter einem Dollar:
formatting link

Ich heisse doch nicht Rockefeller ... und meine Kunden wuerde mir die Leviten lesen. Besonders deren Einkaufschefs.

--
Gruesse, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

Joerg schrieb:

Ist noch zu neu und wenig Konkurrenz.

- Henry

--
www.ehydra.dyndns.info
Reply to
Henry Kiefer

Im Prinzip brauchst du nur einen VCO mit einem Bereich 2:1 und ne binäre Teilerkette, an der du per Multiplexer die Stufe auswählen kannst. Damit ist dann _jede_ niedere Frequenz erzeugbar.

- Henry

--
www.ehydra.dyndns.info
Reply to
Henry Kiefer

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.