Frage zum externen SRAM

Persönliche Seite #2138477
Lesenswert?

hängt von der Organisation des RAMs ab. Die 64kByte (nicht kBit?) werden 
entweder auf 1, 2 oder 4Byte große Blöcke verteilt. Dementsprechend 
brauchst du auch 8, 16 oder 32 Datenleitungen um die einzelnen 
Speicherzellen zu übertragen. Natürlich ist dann die Zahl der 
Adressleitungen auch unterschiedlich, bei 1Byte großen Blöcken brauchst 
du 16 Leitungen, bei 2Byte großen Blöcken 15 Leitungen und so weiter. 
Dementsprechend ist auch der Adressbereich unterschiedlich. 0xFFFF hast 
du bei 1Byte großen Zellen und 0x07FF dann bei 2Byte großen.
Gast #2138490
Lesenswert?

Kevin K. schrieb:
> hängt von der Organisation des RAMs ab. Die 64kByte (nicht kBit?) werden
> entweder auf 1, 2 oder 4Byte große Blöcke verteilt. Dementsprechend
> brauchst du auch 8, 16 oder 32 Datenleitungen um die einzelnen
> Speicherzellen zu übertragen. Natürlich ist dann die Zahl der
> Adressleitungen auch unterschiedlich, bei 1Byte großen Blöcken brauchst
> du 16 Leitungen, bei 2Byte großen Blöcken 15 Leitungen und so weiter.
> Dementsprechend ist auch der Adressbereich unterschiedlich. 0xFFFF hast
> du bei 1Byte großen Zellen und 0x07FF dann bei 2Byte großen.

Danke schön, dass hat mir schon viel geholfen. Es bedeutet also, wenn 
ich von 0x0000 bis 0xFFFF 1 Byte legen kann brauche ich 16 Leitungen.

Wenn ich aber 2 Byte je Speicher"zelle" nutzen will, gehts dann nur von 
0x07FF.


Blöde frage, wenn ich jetzt also 512kByte (ja ganz richtig) nehmen 
würde, an ein ATmega644 anschließe müsste ich also den Adressbereich von 
0x8000 bis 0xFFFF nutzen können, bei 4 Adressleitungen, wieviele Daten 
passen dann auf eine Speicherzelle?
Gast #2138496
Lesenswert?

> wieviele Daten passen dann auf eine Speicherzelle?

..Du zäumst das Pferd von hinten auf. Such Dir einen Speicher der eine 
Organisation hat die Du bedienen kannst und willst, schließ ihn an und 
gut iss. Beim m644 - der keine Hardwareunterstützung für externen 
Speicher hat - musst Du eh alles in Software machen. Da ist es dann egal 
ob er x1, x4, x8 oder x16 ist, nur richtig(tm) bedienen musst Du ihn.

HTH und nix für ungut
Gast #2138503
Lesenswert?

Pie schrieb:
> Wenn ich aber 2 Byte je Speicher"zelle" nutzen will, gehts dann nur von
> 0x07FF.

Was du nutzen willst ist dem SRAM egal. Das hat eine bestimmte 
Wortbreite (= Anzahl der Datenleitungen) und damit musst du dich 
abfinden. Brauchst du eine andere, musst du ein anderes SRAM kaufen.
Gast #2138504
Lesenswert?

g457 schrieb:
>> wieviele Daten passen dann auf eine Speicherzelle?
>
> ..Du zäumst das Pferd von hinten auf. Such Dir einen Speicher der eine
> Organisation hat die Du bedienen kannst und willst, schließ ihn an und
> gut iss. Beim m644 - der keine Hardwareunterstützung für externen
> Speicher hat - musst Du eh alles in Software machen. Da ist es dann egal
> ob er x1, x4, x8 oder x16 ist, nur richtig(tm) bedienen musst Du ihn.
>
> HTH und nix für ungut

Och Leute, dass ist nicht meine Frage, wenn ihr meine Fragen nicht 
beantworten WOLLT (ist okay), dann schreibt bitte nicht was ich evt. 
machen könnte.

Ich will es verstehen!! Darum geht es mir hier.
Gast #2138509
Lesenswert?

Andreas B. schrieb:
> Pie schrieb:
>> Wenn ich aber 2 Byte je Speicher"zelle" nutzen will, gehts dann nur von
>> 0x07FF.
>
> Was du nutzen willst ist dem SRAM egal. Das hat eine bestimmte
> Wortbreite (= Anzahl der Datenleitungen) und damit musst du dich
> abfinden. Brauchst du eine andere, musst du ein anderes SRAM kaufen.

Wenn ich ein Latch nehme, kann ich doch so die Datenleitungen 
"verdoppeln" sag ich jetzt mal, stimmt das?

Organisiert sich der Mikrocontroller mit so einem SRAM von selbst, wenn 
ich diesen entsprechend initialisiere?
Gast #2138513
Lesenswert?

> Organisiert sich der Mikrocontroller mit so einem SRAM von selbst, wenn
> ich diesen entsprechend initialisiere?

[repeat-mode]Beim m644 - der keine Hardwareunterstützung für externen
Speicher hat - musst Du eh alles in Software machen. Da ist es dann egal
ob er x1, x4, x8 oder x16 ist[/repeat-mode]

Nix für ungut und EOD
Gast #2138517
Lesenswert?

Pie schrieb:
> Wenn ich ein Latch nehme, kann ich doch so die Datenleitungen
> "verdoppeln" sag ich jetzt mal, stimmt das?

Aber wozu? Dann macht man einen Zugriff, speichert den im Latch, macht 
den zweiten, und liest dann. Nix gewonnen, man kann ja gleich die Daten 
ohne Latch lesen und dann zusammensetzen, sind genauso zwei Zugriffe. 
Die Adressleitungen halbiert man sich so auch nicht, man muss immer noch 
beide Hälften adressieren. Deshalb gibt es sowas auch nicht.

Datenleitungen vervielfacht man, indem man mehrere Speicherchips (ausser 
den Datenleitungen) parallel schaltet. Genauso wie es auf den 
Speicherriegeln im PC gemacht wird.
#2138519
Lesenswert?

Pie schrieb:
>
> Och Leute, dass ist nicht meine Frage, wenn ihr meine Fragen nicht
> beantworten WOLLT (ist okay), dann schreibt bitte nicht was ich evt.
> machen könnte.

Deine ursprüngliche Frage macht im Zusammenhang mit einem Mega644 
schlicht keinen Sinn, weil der kein externes Speicherinterface hat. Du 
kannst also gar keinen Adressbereich direkt nutzen. Du musst alles in 
Hardware und Software selber machen, und kannst daher alles so 
organisieren, wie du es gerne hättest.
Gast #2138572
Lesenswert?

Stefan Ernst schrieb:
> Pie schrieb:
>>
>> Och Leute, dass ist nicht meine Frage, wenn ihr meine Fragen nicht
>> beantworten WOLLT (ist okay), dann schreibt bitte nicht was ich evt.
>> machen könnte.
>
> Deine ursprüngliche Frage macht im Zusammenhang mit einem Mega644
> schlicht keinen Sinn, weil der kein externes Speicherinterface hat. Du
> kannst also gar keinen Adressbereich direkt nutzen. Du musst alles in
> Hardware und Software selber machen, und kannst daher alles so
> organisieren, wie du es gerne hättest.

Und was ist mit dem 128?
Gast #2138573
Lesenswert?

Andreas B. schrieb:
> Pie schrieb:
>> Wenn ich ein Latch nehme, kann ich doch so die Datenleitungen
>> "verdoppeln" sag ich jetzt mal, stimmt das?
>
> Aber wozu? Dann macht man einen Zugriff, speichert den im Latch, macht
> den zweiten, und liest dann. Nix gewonnen, man kann ja gleich die Daten
> ohne Latch lesen und dann zusammensetzen, sind genauso zwei Zugriffe.
> Die Adressleitungen halbiert man sich so auch nicht, man muss immer noch
> beide Hälften adressieren. Deshalb gibt es sowas auch nicht.
>
> Datenleitungen vervielfacht man, indem man mehrere Speicherchips (ausser
> den Datenleitungen) parallel schaltet. Genauso wie es auf den
> Speicherriegeln im PC gemacht wird.

wozu bräuchte ich dann ein latch, generell mein ich
#2138581
Lesenswert?

pie schrieb:
> Und was ist mit dem 128?

Dann kannst du vom externen RAM genau die Adressen benutzen, die nicht 
intern verwendet werden. Welcher Bereich das genau ist? Siehe 
Datenblatt.

pie schrieb:
> wozu bräuchte ich dann ein latch, generell mein ich

Beim Mega128 brauchst du es, weil die Hälfte vom Adressbus und der 
Datenbus auf dem selben Port liegen.

PS: Aber gibt es überhaupt 64kByte SRAM? Ich kenne nur 32kByte und 
128kByte, oder halt 64kBit (8kByte).
#2138625
Lesenswert?

pie schrieb:
> wozu bräuchte ich dann ein latch, generell mein ich

Sieh' dir mal das Datenblatt vom Atmega 128 an. Da gibt es die Leitungen 
AD0 - AD7. Das ist ein kombinierter Adress- Datenbus. Zuerst gibt der 
Controller die Adresse aus, die muss dann auf einem Latch 
zwischengespeichert werden, dann werden über dieselben Leitungen die 
Daten gelesen oder geschrieben.

mfg.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren