mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Einsatz von Speichertreiber-Bausteine & weitere Fragen zu Speicheranbindung


Autor: Martin R. (herki)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Miteiander

Ich designe gerade eine Controllerplatine

Als Controller kommt ein LPC2294 zum Einsatz.
Als Speicher kommen folgende Bausteine zum Einsatz:
2 SRAM (SRAM_8MBit_16_512k_10NS) CY7C1051DV33
2 Flash (Flash_8MBit_16_512k_45NS) M29W800DT

Die Bausteine werden kaskadiert damit ich einen 32-Bit-Breiten Datenbus 
bekomme.

Ein SRAM hat eine Ein-/ Ausgangskapazität von 12pF/12pF
Ein Flash hat eine Eingangskapazität von max. 6pF / Ausgangskapazität 
max 12pF
Bisschen Leitung (10pF) kommen noch hinzu.
Macht zusammen ca 60pF.

Mein Controller schafft min. 4mA @ 3,3V.
Um die Kapazität umzuladen benötigt er 43,5ns.
Rechnung zum Ergebnis:
C=I*t/U --> t= C*U/I

Jetzt hat der SRAM eine Zugriffszeit von 10ns. Die möchte ich auch gerne 
nutzen.

--> Theoretisch bräuchte ich jetzt doch Treiber-Bausteine oder? Ich weiß 
ich habe den exp. Verlauf der Ladekurve des C's linearisiert. Aber als 
grober Schätzwert müsste das doch gehen.

--> Auf einem Eval-Board der Fa. Olimex (mit ähnlichen Speichern) werden 
keine Treiber verwendet und es funktioniert trotzdem

Jetzt kommen meine Fragen:
1. Habe ich bei der Formel einen Denkfehler oder wo kommt die Diskrepanz 
her?
2. Wenn z.B. die Speicher nicht aktiviert sind (CS=logisch 0) sind die 
Eingänge ja Tristate. Kann ich dann die Kapazitäten der nicht 
aktivierten Bausteine weglassen?
3. Beim SRAM kann ich ja die Adressleitungen miteinander vertauschen 
(genauso auch die Datenleitungen) damit das Layout schöner wird (siehe 
mikrocontroller.net-Artikel). Kann ich das bei den Flash-Bausteinen auch 
machen?

VG

Martin

Autor: Martin R. (herki)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achja...

Ich bin erst draufgekommen weil NXP geschrieben hat, dass wenn ich mehr 
als 2 (oder 3) Bausteine ansteuern möchte einen Treiber einsetzen soll.

Viele Grüße

Martin

Autor: Martin R. (herki)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Miteiander

Jetzt muss ich leider nochmal posten.
Ich hab die bisherigen Angaben ein bisschen erweitert und erbitte noch 
immer hilfreiche Kommentare ;).


Ich designe gerade eine Controllerplatine

Als Controller kommt ein LPC2294 zum Einsatz.
Als Speicher kommen folgende Bausteine zum Einsatz:
2 SRAM (SRAM_8MBit_16_512k_10NS) CY7C1051DV33
2 Flash (Flash_8MBit_16_512k_45NS) M29W800DT
1 Ethernet-Controller (CS8900A)

Die Speicher-Bausteine werden kaskadiert damit ich einen 32-Bit-Breiten 
Datenbus bekomme.
Das /CS-Signal des Ethernet-Controllers ist über einen Pulldown-R auf 
GND gezogen.
An diesem kann ich nichts ändern, da dies auf einer ext. Platine ist die 
zugekauft wird.
Ich steuere deswegen den Zustand der Datenpins über die /OE und /WE in 
Kombination mit meinem /CS-Signal (Veroderung /OE und /CS bzw. /WE und 
/CS)

Ein SRAM hat eine Ein-/ Ausgangskapazität von 12pF/12pF
Ein Flash hat eine Eingangskapazität von max. 6pF / Ausgangskapazität
max 12pF.
Eine Angabe zu der Eingangskapazität der Datenpins des 
Ethernet-Controllers habe ich nicht gefunden.
Bisschen Leitung (10pF) kommen noch hinzu.
Macht zusammen ca 60pF.

Mein Controller schafft min. 4mA @ 2,9V (Vdd-0,4V).
Um die Kapazität umzuladen benötigt er 43,5ns.
Rechnung zum Ergebnis:
C=I*t/U --> t= C*U/I

Jetzt hat der SRAM eine Zugriffszeit von 10ns. Die möchte ich auch gerne
nutzen. Mein Controller läuft zwar "nur" mit 60MHz (t_cyc= 16,6ns; --> 
CPU ist Flaschenhals) aber dennoch möchte ich nicht das meine 
Speicheranbindung zum Flaschenhals wird.

--> Theoretisch bräuchte ich jetzt doch Treiber-Bausteine oder? Ich weiß
ich habe den exp. Verlauf der Ladekurve des C's linearisiert. Aber als
grober Schätzwert müsste das doch gehen.

--> Auf einem Eval-Board der Fa. Olimex (mit ähnlichen Speichern) werden
keine Treiber verwendet und es funktioniert trotzdem

Jetzt kommen meine Fragen:
1. Habe ich bei der Formel einen Denkfehler oder wo kommt die Diskrepanz
her?
2. Wenn z.B. die Speicher nicht aktiviert sind (CS=logisch 0) sind die
Eingänge ja Tristate. Kann ich dann die Kapazitäten der nicht
aktivierten Bausteine weglassen? Ich meine so wären dann höchstens 2 
Bausteine aktiv (beide SRAM oder beide Flash).
3. Beim SRAM kann ich ja die Adressleitungen miteinander vertauschen
(genauso auch die Datenleitungen) damit das Layout schöner wird (siehe
mikrocontroller.net-Artikel). Kann ich das bei den Flash-Bausteinen auch
machen?
4. Wie würdet Ihr die Speicher physikalisch auf dem Speicher anordnen? 
Dürfen die Speicher mit Stichleitungen angeschlossen werden?


VG

Martin

Autor: schablonski (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

lass doch einfach die Cs weg. schau dir mal controllerboards an, da sind 
auch keine Cs in den Daten und adressleitungen drin (siehe olimex).
MfG

Autor: Martin R. (herki)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Dankeschön für die Antwort.

Jetzt ist es halt so, dass ich gerade meine DA schreibe, und das ganze 
"wissenschaftlich" begründet werden sollte.
Ich meine ich kann ja schreiben "... erfahrungsgemäß wurde auf den 
Einsatz der Treiber verzichtet..."

Hier in der Fa. ist es die erste Hardware was heir entwickelt wird. 
Dementsprechend ist wenig Wissen vorhanden. Und ich soll hier das auch 
wissenschaftlich begründen.

Ich persönlich habe keine Erfahrung ab wann man Treiber benötigt.
Mein PL möchte auch wenn es geht auf den Einsatz von SMD-Bauteilen 
verzichten (z.B. sind die Abblock-Kondis auch bedrahtet obwohl die 
schlechtere Werte für ESR und ESL haben). Also lieber DIL-Gehäuse 
verwenden. Nur wären das zusätzlich noch 8 DIL's

Deswegen hab ich ja so "theoretisch" umeinandergerechnet.
Später wenn ich mal die Erfahrung habe würde ich es auch "aus dem Bauch 
heraus" entscheiden.

Könnte mir vielleicht jemand ein Buch empfehlen?
TS habe ich bereits.

Übrigends sind in dem Thread auch noch andere Fragen  ;)

Viele Grüße

Martin

Autor: schablonski (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

wie ist denn genau die formulierung in der DA. das projekt heist doch 
nicht ,etwa, leitungskapazitäten kompensieren.
deine DA ist doch iregnedeine software-hardware zum laufen ngen, oder.
diese leitungssch.. ist doch totale neben sache.
man kann übrigens bei vielen 74hc typen die last -load- im datenblatt 
lesen.

Autor: Martin R. (herki)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Das Thema ist "Konzeptionierung, Entwicklung und Aufbau eines 
...Test-Adapters".

Mein PL hätte halt gerne wissenschaftliche Belege warum ich etwas so 
mache wie ich es mache.

Und in der DA soll ich halt immer mehrere Lösungsmöglichkeiten 
aufzeigen, bisschen die Möglichkeiten diskutieren und mich dann für eine 
Lösungsvariante entscheiden und begründen warum ich das so mache.


VG

Martin

Autor: schablonski (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

da ist doch mehr die frage, wieviele eingangskanäle, abtastrate, 
=bandbreite, ubnd die darauffolgende datenverarbeitung.muß der adapter 
in echtzeit arbeiten => cpu-speed.etcetc
du solltest das problem mal aufschlüsseln,in eingänge ,ausgänge etc

Autor: Martin R. (herki)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Es ist ein Diplomanden-Projekt.
Das heißt es entwickelt sich mit der Zeit immer weiter.
Das heißt, dass sich auch die Anforderungen mit der Zeit immer 
schwieriger werden.

Ansage vom PL war: Je schneller desto besser. Es soll halt die 
Speicheranbindung nicht der Datenflaschenhals sein. Die 
Speicheranbindung soll sollte keine Waitstates der CPU erursachen.


Kannst Du mir vielleicht noch eine (oder mehrere) der bereits gestellten 
Fragen beantworten

1. Habe ich bei der Formel einen Denkfehler oder wo kommt die Diskrepanz
her?
2. Wenn z.B. die Speicher nicht aktiviert sind (CS=logisch 0) sind die
Eingänge ja Tristate. Kann ich dann die Kapazitäten der nicht
aktivierten Bausteine weglassen? Ich meine so wären dann höchstens 2
Bausteine aktiv (beide SRAM oder beide Flash).
3. Beim SRAM kann ich ja die Adressleitungen miteinander vertauschen
(genauso auch die Datenleitungen) damit das Layout schöner wird (siehe
mikrocontroller.net-Artikel). Kann ich das bei den Flash-Bausteinen auch
machen?
4. Wie würdet Ihr die Speicher physikalisch auf dem Speicher anordnen?
Dürfen die Speicher mit Stichleitungen angeschlossen werden?


Dankschee

VG

Martin

Autor: Michael Leusink (hasimaus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Martin,

zu 2.) Auch abgeschaltete Bausteine haben eine Eingangskapazität. Es 
wird nur kein (Versorgungs)-Strom gezogen.

zu 3.) Ich denke bei Flash geht das nicht, allein schon wegen des 
"Command Interfaces"

zu 4.) Leider verstehe ich die Frage nicht. Was meinst Du mit 
"Stichleitung", kenn' ich nur aus der Sanitärtechnik.

Gruß

Autor: Martin R. (herki)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Michael


Bei 2.) ist der Baustein ja nicht wirklich abgeschaltet. Die Eingänge 
sind nur hochohmig. Das bedeutet, dass die Speicher den angeschlossenen 
Bus nicht beeinflussen.

Zu 3.
Ich habe die Aussage eines Labormitarbeiters, dass das "gehen müsste"
Er schaut sich im Moment das Datenblatt an.
Das ein Flash ein Command-Interface hat ist mir neu. Ich dachte bisher 
immer:
Ein Flash ist ein Speicher ohne großen Pipapo.
Dem ist aber leider nicht so. Er hat tatsächlich so ein 
Command-Interface.

Zu 4.
Eine Stichleitung sieht in etwa so aus:

|       Flash              |
|__________________________|
           |
           |Stichleitung
-----|     |
     |     |               |---------
SRAM |     |               |
     |---------------------| CPU
     |     Busleitung      |
-----|                     |---------

Also ein Abzweig. Wahrscheinlich wie in der Sanitärtechnik


@ all

Hat irgendjemand das schon mal berechnet wegen den Eingangskapazitäten; 
Umladedauer usw.?

VG


Martin

Autor: schablonski (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

der lpc2294 hat doch schon 250 kB internen Flash und 16 kB sram, okay 
das ram ist wenig, aber sonst müsts doch reichen.


4. Wie würdet Ihr die Speicher physikalisch auf dem Speicher anordnen?
DAS versteh ich nicht -- den speicher auf dem speicher anordnen?????


Kannst du mir mal den unterschied zwischen einem Bussystem und einer 
stichleitung erklären-elektrisch gesehen.

  ------------------------------------  etc
 |             |                |
----         -----          -------
data /       | data         |  data
adr  /       |  adr         |  adr
von  /       | von sram     |   von flash
cpu  /

Autor: schablonski (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
anhang




Jetzt hat der SRAM eine Zugriffszeit von 10ns. Die möchte ich auch gerne
nutzen. Mein Controller läuft zwar "nur" mit 60MHz (t_cyc= 16,6ns; -->
CPU ist Flaschenhals) aber dennoch möchte ich nicht das meine
Speicheranbindung zum Flaschenhals wird.

Ansage vom PL war: Je schneller desto besser. Es soll halt die
Speicheranbindung nicht der Datenflaschenhals sein. Die
Speicheranbindung soll sollte keine Waitstates der CPU erursachen.


Dein flash hat doch nur 45ns zugriffszeit, hier hättest du auch einen 
flaschenhals , oder?

Jetzt ist es halt so, dass ich gerade meine DA schreibe, und das ganze
"wissenschaftlich" begründet werden sollte.
Ich meine ich kann ja schreiben "... erfahrungsgemäß wurde auf den
Einsatz der Treiber verzichtet..."

Du kannst aber schreiben,zum einsatz kommt ein herkömliches 
microcontrollerboard-aus!!

Autor: Martin R. (herki)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen

schablonski schrieb:
> Kannst du mir mal den unterschied zwischen einem Bussystem und einer
> stichleitung erklären-elektrisch gesehen.

Ich meinte das vom Layout gesehen. Ich könnte ja versuchen alle 
Data0-Pins in einer Reihe anzufahren ohne dass ich einen Abzweig mache.

Hat sich aber erledigt die Frage.


Meine neue Frage lautet:
Muss ich denn zwingend das Command-Interface benutzen oder kann ich den 
Flash einfach wie ein SRAM anbinden (also mit OE, WE, CE)?
Immerhin hat er die Pins und wozu wären die denn ansonsten da?

Aussage vom Prof.:
Wenn ich das Command-Interface benutzen muss dann kann ich die Daten und 
Adressleitungen nicht untereinander vertauschen.


Mit dem Flash als Flaschenhals hast Du recht. Ist mir auch schon 
aufgefallen.
Aussage vom PL: Wenn wir aber Daten in den RAM schreiben habe ich keinen 
Flaschenhals. Ich kann bei dem uController je Speicher-Bank einstellen 
wieviele Waitstates er benötigt bis die gültigen Daten anliegen.

schablonski schrieb:
> Du kannst aber schreiben,zum einsatz kommt ein herkömliches
> microcontrollerboard-aus!!

Naja... Ganz herkömlich ist das nicht. Immerhin designe ich das mit viel 
Herz und hoffentlich auch viel Verstand ;)


VG

Martin

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.