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
Ich brauch aber irgendwie mehr Speicher(ca 128 oder besser noch 256k). Mit was kann man dies realisieren? Gruss Christian
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
Klar geht das. Ist nicht so frequenzstabil wie ein Quarz, aber es funktioniert. Gruß, Frank
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
Die Frequenz eines Schwingkreises berechnet sich nach der Thomsonschen Formel f = 1 / ( 2 Pi Wurzel( L * C)) Gruß, Frank
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
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.