www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik I2C Speicher HotSwap?


Autor: hmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Ist I2C Speicher eigentlich HotSwap fähig?
Ich suche eine Möglichkeit einen Speicher (Möglichst billig und klein,
deswegen I2C eeprom) im Betrieb an einen uC zu hängen und wieder zu
entfernen.

ciao
  hmann

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo, ist er, solange eben nicht während einer Transmission der Chip
entfernt oder eingebunden wird, bzw. genauer gesagt der I2C Bus inaktiv
ist. Ich selber habe dies schon beim Entwickeln gemacht.

gruß Hagen

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

aber kann das in einem ganz dummen Fall nicht passieren, daß zufällig
eine Startbedingung gesendet wird und somit alles durcheinander ist?

Und wenn's erst beim 100. mal einstecken passiert?

Sebastian

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo natürlich, deshalb meinte ich ja das man sicherstellen muß das der
I2C Bus beim Umstecken keine Aktivitäten hat. Solange nichts auf dem
I2C Bus abläuft kann man am Bus selber Geräte anschließen und
abtrennen, elektisch ist also der Bus dazu ohne Probleme in der Lage.

Gruß Hagen

Autor: Ratber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Hmann



******
Ist I2C Speicher eigentlich HotSwap fähig?
*****

Wie die anderen schon sagten eigentlich nicht.

Wenn du dafür sorgen kannst das beim Wechsel die Busaktivitäten
Eingestellt werden ist das aber ohne Probleme zu machen (Is auch schon
gesagt worden).

Eine Möglichkeit wäre es Softwaremäßig einzurichten und anzuzeigen
(display,LED oder sonstwie) das gewechselt werden kann.

Elektrisch hab ich das schon öfters gemacht und "anscheinend" (Gebe
keine Garantie das es nicht doch mal Ärger gibt) vertragen es die
EEProms ganz gut.

Nach dem Wechseln eben zur Sicherheit eine Definierte Stopp und
Startsequenz extra dann kann Busmässig nix passieren.

Die Daten und Taktleitung würde ich aber dabei vorsichtshalber
Entkoppeln damit sich nicht eventuell die Pegel wiedeersprechen (Nen
gut Dimensionierter Widerstand sollte reichen.Probieren)

(My 2 Cent als lose Gedanken)

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man SDA und SCL gegen Masse zieht würde man ja den Bus abblocken,
richtig ? Eventuell wäre ja ein Taster von SDA nach Masse die Lösung.
Beim wechseln müsste man diesen Taster gedrückt halten. Vom Bus her
müsste dies ja gehen. Ich bin mir da aber nicht so sicher.

I2C EPROMS kann man damit auf alle Fälle nicht zerstören, da erst wenn
die Bytes beim Schreiben komplett übertragen wurden diese auch in den
Speicher geschrieben werden.

Gruß Hagen

Autor: Ratber (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
********
Wenn man SDA und SCL gegen Masse zieht würde man ja den Bus abblocken,
richtig ?
*******

Leider nicht Richtig denn wenn SDA vor SCL auf 0 geht hat man eine
Starbedingung gegeben.

Es wäre aber sehr gut wenn man die Stoppbedingung vorgibt (SDA nach SCL
auf 1) um den Bustransfer für das EEProm abzuschließen (Egal wann das
passiert wird die letzte begonnene Aktion dann verworfen)


Ich hab mal die I2C Spezifikation von Phillips in den anhang gelegt.

Istr zwar nicht gerade ein Duden und auch nicht gerade didaktisch in
dieser Sache aber es wird alles angesprochen was mit der Zeit so
braucht.

Gruß
Ratber

Autor: Ratber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag (Wann kommt endlich das neue Forum so das man Editieren kann ?)
grrr :)

Die Idee mit dem Taster ist natürlich nicht schlecht und mit einem
simplen Monoflop oder meinentwegen auch ner Verzögerung per R/C kann
man dann diesen Zustand (SDA nach SCL auf 1) dann auch erzwingen aber
man hat dann keine Kontrolle mehr "was" man eventuell gerade
unterbricht.

Eine Softwaremäßige einbindung fände ich da sauberer und den Taster
kann man ja an den Controller legen so das der Zwangsstop dennoch
gegeben ist (Ok ,is käse geschrieben aber ich denke mal man versteht
was ich meine)



Ich habe das mal für ne Billiglichtshow (Lichtprogramm im Eeprom) so
gemacht damit der Nutzer es ohne Theater und Abschalten wechseln kann.

Nicht Perfekt aber geht (Solange der Komiker die Beinchen nicht knickt
ggg)

Autor: hmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die vielen Antworten.
Ich denke ich werde einen Schalter an den uC hängen um den Bus beim
Anschliessen des Speichers zu deaktivieren. Ist in meiner Anwendung
zwar sowieso unwarscheinlich das dabei sonst noch Aktivitäten auf dem
Bus stattfinden, aber man kann ja nie wissen.

ciao

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

der EEPROM im Atmel selber reagiert doch ziemlich empfindlich auf zu
wenig Spannung, Spannungsspitzzen usw, oder?

Kann der Inhalt des I2C-EEPROM an sich nicht durch einen
Mini-Stromschlag beim Einstecken oder so verändert werden? Das ein oder
zwei Bit plötzlich spinnen und sich verstellen?

Sebastian

Autor: Nik Bamert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

@all

Also ich hab bei mir mit Bascom mal ein kleines Programm geschrieben,
welches mir 16 byte ausliest und diese auf dem Display anzeigt (auf
tastendruck). Dabei hab ich das Eeprom auch schon einige Male
ausgewechselt, als Spannung drauf war. Bis jetzt hat isch der Inhalt
dabei noch nie verändert.

Nik

p.s. Ich verwende die I²C Eeproms von Microchip

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Inhalt sollte sich nicht verändern. Damit Bytes in den EEPROM
gespeichert werden muß vorher ein langwieriges Protokoll abgelaufen
sein. Denn I2C EEPROM's speichern die zu schreibenden Bytes, bis zu 16
in einem Rutsch, erstmal zwischen. Erst nachdem eine gültige
Stopbedingung eintraf wird der I2C EEPROM die zwischengespeicherten
Daten tatsächlich in den EEPROM programmieren. Man muß ja auch bedenken
das ein Schreibzyklus in einem EEPROM immer auch aus einem vorherigen
Lösch-Zyklus bestehen muß. D.h. bevor man überhaupt Bytes reinschreiben
kann müssen die Speicherbereiche mit 0xFF gefüllt werden.

Sogesehen ist es ziemlich unwahrscheinlich das man die Daten zerstört.

Gruß Hagen

Autor: Khani (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Sebastian
Das EEPROM im Atmel selbst hat kein Problem mit zu wenig Spannung. Nur
kann man mit zu wenig Spannung nicht anständig schreiben. Das Problem
mit zu niedriger Spannung am µC ist folgendes : Entweder man versucht
mit zu wenig Spannung zu schreiben und kann sich nicht sicher sein, ob
die Information richtig gespeichter ist, oder der Prozessor hat auf
Grund zu kleiner Spannung Probleme mit seinem flüchtigen Speicher und
interpretiert Befehle falsch, was ebenfalls zu nichtgültigen
Opersationen führen kann.

Wenn man ein EEPROM mit zu hoher Spannung beaufschlagt, führt dies i.A.
(außer natürlich echte Hämmer, die alles zerlegen) nicht zu Problemen,
es sei denn, man ist gerade beim Beschreiben, dann kann es passieren,
das fälschlicherweise Informationen geschrieben werden.

MfG, Khani

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

danke für die Infos Hagen und Khani! :-)

Ich denke auch nicht, das zufällig genau die 20 Störimpulse mit
dazugehörigem Taktsignal gesendet werden, um ein Bit umzuprogrammieren!
;-)

Ich meinte viel mehr, ob nicht ein kleiner EM-Schock nicht direkt auf
den "Kern" des EEPROMs, also direkt auf eine Bit-Speicherzelle
Einfluß haben kann?!?

Sebastian

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, das weis nur der Hersteller genau und man müsste das schon praktisch
austesten. In den Datenblättern von MicroChip habe ich nichts dazu
gefunden.
Wie gesagt, zwei Leute her im Forum haben selber schon im laufenden
Betrieb die Chips gewechselt. Ich persönlich hatte bisher keinerlei
Probleme feststellen können (solange man eben nur austauscht wenn der
I2C Bus inaktiv ist).
Zu Testzwecken habe ich bei meinem Projekt auch mal den Chip
rausgezogen wenn der I2C Bus aktiv war. Auch da gab es nach dem
erneuten Lesen keine fehlerhaft geschriebenen Bytes. Natürlich waren
die Bytes die er schreiben sollte nicht gespeichert wurden und der
ehemalige Inhalt, der eigentlich überschrieben werden sollte, noch
erhalten. Allerdings ist es schon ziemlich schwierig den exakten
Zeitpunkt dieser Störmaßnahme zu bestimmen, so daß es auch zu
gravierenden Fehler kommen muß.

Gruß Hagen

Autor: Ratber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Yo,eine Störung ist natürlich unter Umständen möglich aber wenn man mal
zu starke Strahlung (Welche auch immer) und Überspannung ausschließt
dann bleibt nur noch der Zufall das die Fehlerhafeten Impulse einen
Schreibvorgang liefern und diese Zufall ist extreem unwarscheinlich.


Wie ich oben schon sagte hab ich da ja mal den kleinen Lichterzirkus
gebastelt und bis heute hab ich keine Rückmeldung über verlorene Daten
erhalten.

Das einzige was ich ändern mußte war die Kontaktierung da der Komiker
regelmäßig die Kontakte verbogen hat.

Jetzt hat er alles auf umgebauten Chipkarten die er dann auch gleich
passend beschrifften kann ;) gg

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.