Forum: Mikrocontroller und Digitale Elektronik I/O's vom EEPROM schützen.


von Thomas O. (Gast)


Lesenswert?

Hallo,

ich möchte sicherheitshalber die I/O Pins eines EEPROM AT28C64 gegen
Überlast schützen. Kann mir jemand sagen wie hoch ich den Wiederstand
wählen soll.
Ich verstehe das Datenblatt nicht richtig. Dort gibts die Angabe
VOL Output Low Voltage IOL = 2.1 mA .40 V
VOH Output High Voltage IOH = -400 mA 2.4 V
Soll das bedeuden das der Pin wen ner High ist, bei einer Belastung von
400µA noch mind. 2,4V ausspuckt?
Kann es evt. sien das die Pins eh gegen Überlast geschützt sind?
Ich will dort nämlich eh Pulldowns reinmachen um einen sicheren
Lowpegel zu haben, dort habe ich 10kOhm verwendet also 5V/10kOhm=0,5mA.
Aber das würde ja dann bedeuten das da selbst bei High Pegel die
Spannung unter 2,4V fallen würde und der AVR dann kein High erkennen
würde.

Wie sieht es mit den Adressleitungen aus kann es passieren das ich
diese Überlaste, wenn z.b. die Pins am AVR zum sinken eingestellt sind
oder sind die evtl. intern auch schon mittels Wiederstand geschützt.

Ich befürchte das ich so ein Teil wieder kille und deshalb mit meinem
Debugging nicht weiterkomme, deswegen will ich jetzt alles absichern.

Wäre nett wenn mir da jemand mit der Dimensionierung helfen würde damit
ich die Teile bestellen kann.

von A.K. (Gast)


Lesenswert?

Solcherlei Pegel schreien doch geradezu nach Pullups statt Pulldowns.

von Peter Dannegger (Gast)


Lesenswert?

Der EEPROM kommt ja direkt an den Memory-Bus, da brauchts keine
Schutzbeschaltung.

Für ordentliches High für den AVR sollten aber Pullups an die Datenpins
(4,7kOhm), die AVRs sind ja nicht TTL-kompatibel.


Wichtig ist es, die software-data-protection zu aktivieren, sonst kann
es beim Ein- und Ausschalten zu unbeabsichtigten Schreibzyklen kommen
(EEPROM wird vergeßlich).



Peter

von Thomas O. (Gast)


Lesenswert?

Hallo,

verstehe ich nicht ganz. Ich beführchte einfach das wenn das EEPROM
10011001 ausgibt der AVR evtl. 1111111 einließt. Also brauche ich mir
hierüber keine Gedanken machen.

Ist die Belastung der Leitung wenn der AVR auf Eingang steht so hoch
das die Spannung soweit abfallen kann. Also hätte ich eher damit
Probleme wenn das EEPROM 10011001 ausgibt der AVR 00000000 einliest.

Wann könne diese ungewollten Schreibvorgänge passieren? Wenn das EEPROM
eingeschatet wird also VCC erhält?

Über die Pegel finde ich auch keine klare Angabe im
Datenblatt(ATM8535).
Oder vielleicht ds hier bis 0,7V low ab 2,2V high? Im EEPROM Datenblatt
steht ja das es bei High min. 2,4V auspuckt (400µA wird bestimmt die
Belastung sein)
Bei Low wird allerdings max. 0,4V bei einer Belastung von 2,1mA
angegeben und das wird man doch nie und nimmer erreichen.

von A.K. (Gast)


Lesenswert?

Ungewollte Schreibvorgänge gibt es, wenn WE beim Einschalten auf 0
erkannt wird. Immerhin ist der entsprechende Anschluss vom AVR zu dem
Zeitpunkt auf Eingang programmiert, der Pin floatet also. Da kann man
also softwareseitig das EEPROM entsprechend einrichten - die von Peter
erwähnte software-data-protection. Sinnvoll scheint mir freilich auch,
bei CS und WE je einen 10K Pullup anzuschliessen.

von Thomas O. (Gast)


Lesenswert?

Hallo,

habe im Datenblatt gefunden das das EEPROM beim Eenschalten der
Stromversorgung erst nach 5mSek das Schreiben aktiviert. Ich habe aber
sicherhaltshalber ne kleine Verzögerungsschaltung mittels RC gebaut so
das es noch ein paar mSek längert dauert bis er die volle Spannung
bekommt.

Soll der Pullup nur einen Teil der Spannung liefern, so das sich der
AVR nicht mehr so schwer tut oder soll er die Pegel auf High ziehen und
der AVR tut sie dann auf Low sinken?

Da die neueren AVRs ja sowohl 20mA sourcen wie sinken können sollte es
doch keine Probleme geben, ich verstehe das einfach nicht woraus ihr zu
diesem Schluß kommt, das man Pullups benötigt. Bitte um Erklärung

von TravelRec. (Gast)


Lesenswert?

Wie Verzögerungsschaltung? Für die Betriebsspannung des EEPROM? Nee, das
geht nicht. So kann es passieren, daß er durch den flachen
Spannungsanstieg gar nicht aufwacht. Mach mal lieber an WE einen PullUp
dran und initialisiere den AVR so, daß er beim Booten gleich den
ensprechenden Pin auf 1 setzt. Dann geht das auch. Du kannst auch einen
sogenannten Brown-Out Detektor (siehe AtmelCD, Appnotes) an den CE-Pin
des EEPROM bauen, der erst über 4V diesen Pin auf Low legt und somit
den EEPROM aktiviert und unter 4V eben wieder auf High. Im allgemeinen
reichen dazu 3 Widerstände und ein pnp-Transistor aus. Habe ich hier
seit Jahren laufen bei einer Schaltung und noch nix vergessen gewesen
im EEPROM.

von Peter Dannegger (Gast)


Lesenswert?

"ich verstehe das einfach nicht woraus ihr zu diesem Schluß kommt, das
man Pullups benötigt."


Nun, Du willst bestimmt auch den EEPROM lesen, also High vom EEPROM zum
AVR und da sind ohne Pullups nur 2,4V garantiert, der AVR möchte aber 3V
haben.


Peter

von Thomas O. (Gast)


Lesenswert?

Hallo,

@Peter: Danke, jetzt hab ichs verstanden, wo hast du diese Angabe mit
den 3 Volt her, habe sowas im Datenblatt nirgends gefunden.

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.