Forum: Mikrocontroller und Digitale Elektronik externer RAM : Schutzwiderstand nötig?


von Carsten R. (kaffeetante)


Lesenswert?

Hi,

hier gibt es ja manch ineressante Beiträge zum Thema RAM am µC und auch 
einige Lösungen. Nur eines macht mich stutzig. Ich habe noch keinen 
Schaltplan gesehen in dem die Leitungen irgendwie geschützt wären.

Nun könnte sich ja beim programmieren eine Fehler einschleichen, so daß 
man versehentlich die Pins, die als Eingänge fungieren sollten als 
Ausgänge konfiguriert werden oder der µC versucht zu schreiben während 
der RAM noch auf Output-Enable steht.

Würden dann nicht die beiden Ausgänge gegeneinander arbeiten und sich 
gegenseitig zerstören?

Nachdem ich mit folgenden Artikel durchgelesen habe:

https://www.mikrocontroller.net/articles/Ausgangsstufen_Logik-ICs

stellte sich mir die Frage ob ich einen Widerstand in den Datenpfad 
lege, der den Strom auf ein ungefährliches Maß begrenzt und lebe mit der 
Tiefpasswirkung den der Widerstand mit der Eingangskapazität bildet und 
bekomme dadurch verschliffene Flanken. Oder ich muß mir was anderes 
einfallen lassen.

Hat sich darüber noch ein anderer Gedanken gamacht was da das 
Sinnvollste wäre?

Gruß

Carsten

von Falk B. (falk)


Lesenswert?

@  Carsten R. (kaffeetante)

>Würden dann nicht die beiden Ausgänge gegeneinander arbeiten

ja.

>und sich  gegenseitig zerstören?

Jain. Heutige CMOS-Ausgänge sind erstaunlich robust und verkraft 
teilweise einen dauerhaften Kurzschluss!

>stellte sich mir die Frage ob ich einen Widerstand in den Datenpfad
>lege, der den Strom auf ein ungefährliches Maß begrenzt und lebe mit der
>Tiefpasswirkung den der Widerstand mit der Eingangskapazität bildet

Naja, für die ganz Ängstlichen mag das eine Zwischenlösung sein. 
Vielleicht für die erste Inbetriebnahme mit verringerter Frequenz. Wenn 
es einmal sicher läuft, macht man sie wieder raus.

von Wusel D. (stefanfrings_de)


Lesenswert?

Wobei ich bei den Taktleitungen (Read und Write) mit Widerständen 
vorsichtig wäre. Ich kann mir gut vorstellen, das das RAM saubere 
Taktsignale benötigt - zumindest beim Write.

von Ralf (Gast)


Lesenswert?

> Nun könnte sich ja beim programmieren eine Fehler einschleichen, so daß
> man versehentlich die Pins, die als Eingänge fungieren sollten als
> Ausgänge konfiguriert werden oder der µC versucht zu schreiben während
> der RAM noch auf Output-Enable steht.
Mir stellt sich da eher die Frage, welchen Sinn es macht, RAM an einen 
Controller anzuschließen, der kein passendes Interface in Hardware hat.
Das MemoryManagement zu Fuß im Compiler zu erledigen ist dann je nachdem 
schon grausig und abgesehen davon dürfte das BitBanging die Performance 
runterziehen.
Sicher mag es ein, zwei Anwendungen geben (z.B. langsames, aber 
speicherintensives Logging). Für größere Sachen aber würde ich einen 
Controller mit EMIF raussuchen.
Genauso schade finde ich es, dass es kaum Compiler gibt, bei denen man 
Speicher bzgl. ihrer Schnittstelle ummappen kann, das können nur die 
wenigsten. Fände ich beispielsweise bei I2C-EEPROMs sehr geschickt.

Ralf

von Falk B. (falk)


Lesenswert?

@Stefan Frings (stefanfrings_de)

>Wobei ich bei den Taktleitungen (Read und Write) mit Widerständen
>vorsichtig wäre. Ich kann mir gut vorstellen, das das RAM saubere
>Taktsignale benötigt - zumindest beim Write.

Stimmt, aber die sind IMMMER unidirektional, da passiert nichts.
Dito beim Adressbus. Lediglich der Datenbus hat Kollisionspotential.

von Carsten R. (kaffeetante)


Lesenswert?

@Ralf

Wer sagt denn daß es ein µC ohne ein RAM Interface sein soll? Es ist 
mehr eine generelle Frage. Den ursprünglichen Thread konnte ich nicht 
wiederfinden so schnell.

Aber hier:

Beitrag "einfache Grafikkarte mit 256x252 und 256 Farben für AVR"

Dort wird ein ATMega8515 mit passendem Interface genutzt. Diese Art von 
Schaltung war die Ursache meiner Frage. Da muß man ein wenig nach unten 
blättern.

Auch wenn das Interface dann eigentlich das Meiste selbstständig macht, 
so sind es doch alternate port functions. Das heißt wenn ich es bei der 
Programmierung vergeige ... könnte man zumindest vom Prinzip her durch 
falsche Programmierung einen Kurzschluß erzeugen. Ich finde dies etwas 
unsauber, weiß aber auch nicht wirklich wie es besser zu machen wäre.

Bei der bisherigen Reaktion und da ich es schon öfter so, aber noch nie 
mit Absicherung gesehen habe, bin ich geneigt anzunehmen daß dies 
hinreichend unkritisch ist und es daher im allgemeinen so in Kauf 
genommen wird. Ein bischen mulmig ist mir trotzdem noch dewegen.

Was die RAM-einbindung betrifft: Ich war bisher ohnhin immer nur mit 
Assembler unterwegs. Bisher waren es auch vergleichsweise einfache 
Sachen. Ich fange jetzt gerade erst an auch aktive Komponenten an den µC 
zu betreiben und sehe mich daher jetzt erst erstmals konfrontiert mit 
der Situation, daß zwei aktive Ausgänge aufeinandertreffen könnten. Das 
ist Neuland für mich. Ich kann daher mangels Erfahrung nicht abschätzen 
ab wann es kritisch wird.

Nebenbei habe ich schon oft bei SDRAM Riegeln aus dem PC Widerstände in 
den/einigen Leitungen gesehen, aber das sind meistes/immer 10 Ohm. Dafür 
ging es da aber auch um 100 bzw 133 Mhz.



Gruß

Carsten

von Ralf (Gast)


Lesenswert?

@Carsten R.:
> Wer sagt denn daß es ein µC ohne ein RAM Interface sein soll?
Keiner :) Ich bin nur deswegen davon ausgegangen, weil bei einem 
RAM-Interface in Hardware kein Kurzschluss auftreten kann. Wenn aber der 
Controller trotz aktivem Interface die Manipulation der jeweiligen Ports 
zulässt isses natürlich etwas gefährlicher.

> Ich fange jetzt gerade erst an auch aktive Komponenten an den µC
> zu betreiben und sehe mich daher jetzt erst erstmals konfrontiert mit
> der Situation, daß zwei aktive Ausgänge aufeinandertreffen könnten. Das
> ist Neuland für mich. Ich kann daher mangels Erfahrung nicht abschätzen
> ab wann es kritisch wird.
Ah, verstehe. Find ich gut dass du dir vorher Gedanken drum machst.

> Nebenbei habe ich schon oft bei SDRAM Riegeln aus dem PC Widerstände in
> den/einigen Leitungen gesehen, aber das sind meistes/immer 10 Ohm. Dafür
> ging es da aber auch um 100 bzw 133 Mhz.
Genau, die waren dann eher aus EMV-Gründen bzw. wegen den Signalflanken 
etc. drin.

Ralf

von Falk B. (falk)


Lesenswert?

@  Carsten R. (kaffeetante)

>Nebenbei habe ich schon oft bei SDRAM Riegeln aus dem PC Widerstände in
>den/einigen Leitungen gesehen, aber das sind meistes/immer 10 Ohm. Dafür
>ging es da aber auch um 100 bzw 133 Mhz.

Das sind Terminierungswiderstände, siehe Wellenwiderstand.

von Carsten R. (kaffeetante)


Lesenswert?

Falk Brunner schrieb:
> Das sind Terminierungswiderstände, siehe Wellenwiderstand.

Das wäre möglich. Allerdings hatte ich es bisher immer so verstanden daß 
die am Ende der Leitung sein müßten, quasi hinter dem Letzen 
Busteilnehmer bzw mit ihm auf Augenhöhe. Diese sind aber in der 
Zuleitung zwischen der Kontaktleiste und den Speicherchips. EMV klingt 
für mich noch wahrscheinlicher, davon habe ich aber mangels Messgeräte 
nur sehr wenig Ahnung.

Ich ziehe daraus nun zwei Schlüße, auch wenn es den Eingangs genannten 
Artikel gibt der Anderes vermuten läßt.

1. Bislang scheint es kein soooo großes Problem zu sein, zumindest bei 
der Kombination µC und RAM bzw eventuell sogar generell wenn es um Pins 
geht die nur dafür ausgelegt sind onboard Daten zu transferieren. 
Leistungsstufen oder Leitungstreiber für größere Distanzen mit mehr 
Leistung wären da vermutlich kritischer.

2. Ich bekomme nun so vage eine Ahnung warum bei manchen Geräten davor 
gewarnt wird, das das Gerät beim Firmwareupgrade beschäigt werden 
könnte. Abgesehen vom bricken, was "nur" ein Softwareproblem wäre, wäre 
dies eine Möglichkeit tatsächlich Schaden an der Hadware anzurichten. 
Dies würde im Umkehrschluß bedeuten, das selbst im kommerziellen Bereich 
solche "Schwachpunkte" nicht immer voll abgesichert werden und man 
einfach mit dem Restrisiko lebt. Dann dürfte ich mich das auch trauen.^^

Ich hoffe ich habe nun keinen Unsinn geschrieben und bald wieder den 
Lötkolben aufheizen.

Viele Grüße und Dank an alle.

von Alexander S. (esko) Benutzerseite


Lesenswert?

Carsten R. schrieb:
>> Das sind Terminierungswiderstände, siehe Wellenwiderstand.
> Das wäre möglich. Allerdings hatte ich es bisher immer so verstanden daß
> die am Ende der Leitung sein müßten, ...
Hast du den Link gelesen?

von Carsten R. (kaffeetante)


Lesenswert?

Inzwischen ja, ist ja nich so gaaaanz kurz der Artikel. Dabei fiel mir 
auf, daß ich den schonmal gelesen hatte. Aber einen Teil hatte ich 
wieder vergessen.

Wie auch immer, zwar hilfreich und interessant, aber für den 
ursprünglichen Anlaß nicht entscheidend. Hm, vielleicht doch, wenn ich 
mir das nochmal in Ruhe durchlese und mal etwas berechne könnte dabei 
herauskommen daß eine Serienterminierung mit meinem Anliegen recht gut 
kompatibel sein könnte. :-)

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.