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
@ 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.
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.
> 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
@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.
@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
@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
@ 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.
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.
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.