Hallo!
Wie kann ich ein externen Speicher (sollte schon sein paar kB
aushalten) an einen AVR anschließen?
Hat mir da einer nen Link?
Möglichst eine Bauweise die so wenig als möglich PINs verbraucht.
Und hat schon jmd. einen FIFO Stack auf AVR realisiert?
GRuss Christian
Moin,
unter
http://www.ymir.de/multi/123-byte/robotik/elektronik/steuerung1s.gif
findet sich ein Schaltbild zum Anschluss eines externen Speichers an
einen AT90S8515.(Das SChaltbild ist wohl für 32 KB, schafft aber
maximal 64 KB.) Mit weniger Pins kommt man leider nicht aus, wenn man
die AVR-eigene Ramerweiterung (Nach Setzen eines Bits im MCUCR wird
dieses wie internes verwendet.) verwenden möchte. Näheres dazu steht im
Datenblatt.
Ein "FIFO Stack" sollte mit zwei Zeigern (X-,Y-,Z-Register des AVRs)
machbar sein.
Jörn
Also man kann auch mit weniger Pins (8+4?) auskommen, wenn man das
XMEM-Interface nicht benutzt bzw. einen AVR ohne die entsprechende
Schnittstelle hat. Mit zwei 8-bit Latches kann man so 64kB ansprechen.
Einfach die Adresse nacheinander in die Latches schreiben und dann die
Daten einlesen. Geht natürlich zu Lasten der Geschwindigkeit. Man
könnte aber auch einen RAM mit I2C Interface nutzen. Mit vier 4-bit
Latches würde sich die Zahl der Pins auf 10 senken lassen, was aber
wohl ineffizient ist.
Dafür kann man es wie internes RAM ansprechen, wenn du nur ein paar Byte
ablegen willst und nicht permanent drauf rumschreibst nimm ein
i2c-EEprom, dann brauchst nur zwei Pins. Oder du bildest mit
Schieberegistern einen Adress-, Daten- und Control-Bus nach, dann
kannst du mit vier Pins bis in den Terrabyte-Bereich adressieren;
kostet dann halt statt Pins CPU-Zeit, das muß man halt von Anwendung zu
Anwendung unterschiedlich bewerten.
grüsse leo9
Dann sagt "er" mal welchen AVR "er" grad hat:
Noch einen AT90S2313 und somit fällt die Möglichkeit mit den 19 Pins
weg.
Das mit dem i2c EEProm hört sich schon sehr viel besser an, vor allem
da der Mikroprozessor an dem das ganze laufen wird, wenn es dann mal
läuft, ein ATTiny sein soll.
Und da hab ich halt SEHR beschränkte möglichkeiten.
Gruss CHristian
Hallo Christian,
was hier noch nicht diskutiert worden ist, sind serielle
Speicherbausteine. Schau mal bei Atmel, AMD oder ST.
Die haben solche im Programm.
Da sind teilweise nur 4 Leitungen + 1 select Leitungfür jeden Baustein
notwendig. Der Nachteil der Kiste ist die relativ geringe
Durchsatzrate.
Andere Alternative, 8 Bit Schieberegister.
Viel Spaß beim basteln
Marcus
@leo
Wie viel wenig bytes sind denn das ?
So ein paar kilo Daten brauch ich schon.
Und der Bus muss nicht sehr schnell sein. Daten kommen max mit 6 Mhz
Kannst du da einen (billigen) empfehlen.
Wenn die zu klein sind, wie schaut denn das mit den seriellen Speichern
aus, wie schnell/groß sind die?
Gibts eigenlich irgenwo ne übersicht über die ganzen Standarts?
Gruss Christian
Hallo Christian,
verzeih mir die Frage, aber hast du schon mal mit einem avr
gearbeitet?? Die schnellsten avrs kannst du mit 20MHz takten, Port
einlesen braucht zwei Taktzyklen und Sprung in der loop braucht wieder
zwei Takte. -> du könntest mit max. 5MHz samplen, von Daten
weiterverarbeiten rede ich noch nicht.
Wenn dieser Bus nicht schnell sein muss, dann hab ich keine Ahnung was
du unter schnell verstehst?
grüsse leo9
Sorry das mit den 6 mHz war gruschd
Hatte ne Schaltung und vollkommen falsch gedacht
Vergiss dir Aussage bitte möglichst schnell
Was kann son i2c EEprom jetzt denn eigentlich?
gruss Christian, der zur Zeit mal absolut gar nicht auf der Höhe ist
Hallo Christian,
schau dir den parallellaufenden Thread "SRAM in SMD gesucht" an, dort
wurden einige Typen genannt.
Als grobe Berechnung für die Zugriffszeit kannst du von ~10 Clocks pro
Byte ausgehen. Bei fmax von 400KHz (definiert durch den i2c Bus) kannst
du mit etwa 40kByte/Sekunde schreiben. In der Praxis wird der Wert
etwas geringer sein weil dein uP auch noch anderes machen muss und
allenthalben Steuer- statt Datenwörtern notwendig sind.
grüsse leo9
Habt ihr euch in dem Link von oben
http://www.specs.de/users/danni/appl/hard/sram/sram.htm
im Schaltplan mal die Takterzeugung fuer den 1200er angesehen? Anstelle
eines Quarzes ist da eine 22uH Spule eingezeichnet.
Geht das?
Schon mal ausprobiert?
ciao
Remo
Wie berechnet man den Wert der Spule in Abhängigkeit von der Freuquenz.
Ich gehe davon aus, dass der Wert der Kondensatoren, der bei Quarzen ja
eher unkritisch ist in diesesm Fall auch voll in die Rechnung eingeht.
Ist ja ein Schwingkreis, oder?
ciao
Remo
Wenn ich das richtig verstanden hab, brauche ich um diesen SRAM
anzusprechen ein Schieberegister (74HCT164). Da es mir aber um eine
möglichst Platzsparende Lösung geht, passt auch die nicht.
Kann man die SRAM nicht direkt ansprechen?
Gruss Christian
Nimm halt nen Atmel DataFlash. Die kommen im 8poligen Gehäuse und fassen
bis zu 512kB (oder mehr? Atmel Site ist gerade down). Auf dem AVR
Butterfly ist jedenfalls die 512kB Variante.
8 Pins 4 Mbit Speicher, hört sich noch besser an, aber wo bekomm ich so
einen DataFlash her?
Butterfly's gibts ja alle paar Meter, aber die DataFlashs allein?
Oder hat einer so einen Butterfly übrig?
Gruss CHristian