Forum: Mikrocontroller und Digitale Elektronik Externer Speicher


von mr. chip (Gast)


Lesenswert?

Hallo

Um eine Gameboy-Kamera mit einem Mega32 auszulesen benötige ich
externen Speicher, um die Daten zwischenzuspeichern bis sie an den PC
gesendet oder sonstwie weiterverarbeitet werden. Die Kamera erzeugt ein
Graustufenbild (analoge Ausgabe der Graustufe => werde höchstens 8 Bit
genau wandeln). Folglich brauche ich einen Speicher von 16 KB. Ich
hatte gedacht, das sei keine grosse Sache. Nur fand ich bis jetzt bei
Conrad (Ich komm nicht darum herum - Schweiz...) lediglich Bausteine
mit einer exorbitanten Anzahl Pins. Adress-/Datenleitungen vollständig
herausgeführt, das macht dann für 16 KB in 8 Bit-Wörtern etwa 20 Pins.
Soviele habe ich aber eigentlich gar nicht frei. Hmmm...wie mach ich
das nun am besten? Gibt es ICs, wo ich die Daten z.B. in 4er/8er
Blöcken 'reinschieben kann, und damit dann schliesslich den Speicher
ansteuere? Eine Art Mehrbit-Schieberegister... Oder aber
Speicherbausteine über den SPI-Bus?

Gruss

Michael

von Jadeclaw D. (jadeclaw)


Lesenswert?

Wirf ein Auge hier drauf:
http://www.tfs.net/~petek/atmel/sram/sram.htm

Echte SRAMs gibt's leider nur mit vielen Pins.

Gruss
Jadeclaw

von Ronny (Gast)


Lesenswert?

Falls du nur einzelne Bilder speichern willst könnte vielleicht auch ein
eeprom genügen.natürlich muss da auch die kamera mitspielen und darf die
daten nicht zu fix liefern.

conrad:   Artikel-Nr.: 150247 - 62

von mr. chip (Gast)


Lesenswert?

Ich finde davon leider nur EEPROMs - das dürfte dann wohl doch etwas zu
langsam sein - oder bringe ich da in einer Sekunde an die 16 KB 'rein?

von Ronny (Gast)


Lesenswert?

Laut Datenblatt kann das EEPROM oben 63 Bytes puffern,selbige zu
schreiben dauert 5ms.Macht bei mir 12.5kb pro sekunde,also etwas zu
wenig für deine Anwendung

von mr. chip (Gast)


Lesenswert?

Ja, das ist ein bisschen zu langsam - denke ich jetzt mal. Es ist nicht
genau bekannt, wie langsam die Gameboy-Kamera ausgelesen werden kann.
Wobei ich natürlich auch mit 4 Bit Farbtiefe arbeiten könnte. Immerhin
arbeitet der Gameboy selbst sogar nur mit 2 Bit - bei
'entsprechender' Qualität dann aber...

von mr. chip (Gast)


Lesenswert?

Noch eine Frage: Dieses EEPROM kann über das TWI des Mega32 angesteuert
werden, korrekt?

von Ronny (Gast)


Lesenswert?

vielleicht wär auch noch eine RLE-Codierung machbar,also aus

0x33,0x33,0x33,0x33 einfach 4,0x33 machen...die "komprimierung"
sollte bei 16MHz kein Problem sein.Das PCX-Format am PC macht´s zum
Beispiel ähnlich.Problem wär da natürlich das man nicht sicher sagen
kann,das jedes Packet gut gepackt werden kann und nichtmal ein Engpass
bei verrauschten Bildern auftritt.

Besser wär wenn das grosse C (oder anderswer) noch ein fixeres EEPROM
bieten würde...

von mr. chip (Gast)


Lesenswert?

Das grosse C ist zum heulen. Ich suche mir da gerade einen etwas fixeren
Quarzoszi, evtl. noch Baudraten-kompatibel. 16 MHz haben die nicht... Ob
ichs wohl mit 20 wagen soll? Schneller Baudratenquarz kann man komplett
vergessen...

von Ronny (Gast)


Lesenswert?

Hmm...als Quarz hab ich 16MHz auf der deutschen Seite vom grossen C
schon gesehen...und als krummen Wert für Baudraten gabs glaub ich
12,288Mhz.Nach Quarzoszis hab ich net geschaut.

Achja,das oben erwähnte EEPROM möchte gern per I2C angesprochen
werden...

von mr. chip (Gast)


Lesenswert?

Nach 2 Stunden suchen (muss morgen wieder früh raus...grrr) habe ich
mich nun entschlossen:

- Werde mal ein 1 Mega * 1 Bit Speicher kaufen sowie obengenanntes
EEPROM.

- Daneben noch einen Quarz mit 11.0592 MHz (+ 2
22pF-Keramikkondensatoren, sollte doch so funktionieren?) - vielleicht
kriege ich die Daten dann genügend schnell übers UART an den PC, dass
ich nicht unbedingt einen Speicher brauche.

Und dann heisst es halt wieder ausprobieren...

von Ronny (Gast)


Lesenswert?

Ich denke mal 22pF ist Ok bei dem Quartz.

Die 232-Schnittstellen in meinem PC macht leider nur 115kbit mit,also
14kb/s.Hab aber auch schon PCI-I/O-Karten gesehen,die bis 1 MBit
funktionieren.Ein Gedanke wär auch per FTDI Chip die Daten per USB an
eine virtuelle COM-Schnittstelle im PC zu schicken.

Gruss,

       Ronny

von thkais (Gast)


Lesenswert?

Wie wärs mit folgender Idee: Einen ordinären 32Kx8 SRam mit einem
weiteren Atmel verbinden, der dann via SPI mit dem orginal-System
verbunden wird.
Und ich würde Dir empfehlen, mal bei Reichelt zu schauen. Du wirst Dir
die Augen reiben, wie preiswert z.B. ein Mega-32 sein kann...

von Thomas O. (Gast)


Lesenswert?

Ich habe mal mit ein paar Latches eine AT28C64B angesteuert, die genaue
Schreibzeit eines einzelnen Bytes finde ich im Datenblatt leider nicht.
In 1 Sek. schreibt das Teil 6,4 kBytes. Suche mal nach 28C64, habe einen
Beitrag mit dem kompletten Schaltplan das kannst du auch für ein SRAM
verwenden

von Magnus Müller (Gast)


Lesenswert?

Nimm doch einfach 2 (oder mehr) serielle EEPROMs. Du könntest dann die
EEPROMs Pageweise im Wechsel beschreiben, was dann eine Verdoppelung
(oder mehr) der Schreibperformance zur Folge hätte.

Gruß,
Magnetus

von mr. chip (Gast)


Lesenswert?

Hallo

Hatte heute morgen noch einen kleinen Geistesblitz: Anstatt die
Adressen direkt vom Mega aus anzusteuern, schalte ich einen Zähler
dazwischen. Der Mega wackelt also das Eingangspin des Zählers und der
Zähler geht schliesslich auf die Adresseingänge des Speichers. So kann
ich natürlich nur sequentiell auf die Daten zugreifen, aber das stört
micht eigentlich überhaupt nicht - die Daten werden ja sowieso nur
sequentiell gewonnen/verarbeitet/verschickt.

Lustig war es, das ganze Vorhaben dem Conrad-Verkäufer beizubringen -
immerhin hatte er eine gewisse Ahnung von Elektronik. Und ihr hättet
das Gesicht sehen sollen, als er mich darauf ansprach, die Mega32 seien
ja schweineteuer ( 40 CHF/ 25 EUR) und ich ihm entgegnete, ich hätte sie
in Deutschland für 4 EUR bestellt... Aber alles in allem ist die
Bedienung eigentlich ganz ok, freundlich, hilfsbereit und einigermassen
kompetent. (Die allerbesten Elektroniker haben es kaum nötig, bei Conrad
als Verkäufer zu arbeiten ;-) ) Achja: Ist es möglich oder nicht
möglich, mit dem Atmel mit 500 Kilohertz einen Pin sauber zu wackeln,
dass man da auch noch was anhängen kann, z.B. genannter Zähler?
(Verkäufer meinte, das ginge niemals, er habe mit einem Pic höchstens
100 KHz geschafft)

Gruss

Michael

von Thomas O. (Gast)


Lesenswert?

schau ins Datenblatt deines Zählers da steht drin wie lange ein Impuls
mindestens sein muss, um erkannt zu werden. Die kleinste Impulsdauer
die du ausgeben kannst ist bei 16MHz 65nSek.

von Aleksej Kiselev (Gast)


Lesenswert?

FRAMs sind ganz schnell und zuverlaessig.
FM24CL64, z.B., hat 8kB und ist total schnell, viel schneller als
herkoemmlicher EEPROM-Speicher. Wenn du unbedingt SPI brauchst, dann
gibt's ja FM25-Serie von RamTron (www.ramtron.com)
So laut Datenblatt:
The FM24CL64 performs write operations at bus
speed. No write delays are incurred. The next bus
cycle may commence immediately without the need
for data polling. In addition, the product offers write
endurance orders of magnitude higher than
EEPROM. Also, FRAM exhibits much lower power
during writes than EEPROM since write operations
do not require an internally elevated power supply
voltage for write circuits.

von Michael Wilhelm (Gast)


Lesenswert?

@ Thomas O

62,5ns

MW

von Michael Wilhelm (Gast)


Lesenswert?

Aber mit dieser Frequenz kann kein Portpin getoggelt werden. Nebenbei
sollen ja noch Daten verarbeitet werden.

MW

von Thomas O. (Gast)


Lesenswert?

hast recht Michael, weiß garnicht wie ich auf 65 gekommen bin. Ja Daten
kann man dan keine mehr verarbeiten war auch mehr auf das reine Toggeln
bezogen weil der Conrad-Mitarbeiter nur 100 kHz schaffte. Bei meiner
Schaltung wo ich ein EEPROM geschrieben habe waren meine Impulse 2 x
62,5nSek lang und das ist einwandfrei erkannt worden. Also denke ich
eher das er Probleme hatte einen FET so schnell anzusteuern weil hierzu
doch etwas mehr Saft fürs Gate gebraucht wird.

von Rahul (Gast)


Lesenswert?

>weil der Conrad-Mitarbeiter nur 100 kHz schaffte

Nit möööglich! Bei mir brauchen die immer ewig, um ein Bauteil ausm
Regal zu holen...

von Bjoern B. (tishima)


Lesenswert?

Hallo!

Kann mir einer mal erklären, wie diese Bordellpreise für Elektronik in
der Schweiz zustande kommen ?? Steuern ??

mfg,
Bjoern

von Michael Wilhelm (Gast)


Lesenswert?

1. Die Schweizer bekommen mehr Geld für ihre Arbeit.
2. Die Schweizer sind nicht in der EU (Zoll?).
3. Als Strafe, weil das Frauenwahlrecht erst 1971 eingeführt wurde.

MW

P.S. Bei 1 und 2 bin ich mir nicht so sicher.

von Laeubi (Gast)


Lesenswert?

4. es ist die Schweiz ? ;D
5. Technologie Steuern? :D

von Rahul (Gast)


Lesenswert?

Nur so am Rande:
http://www.jrobot.net/Projects.html

Gibt es eigentlich irgendwo (hab auf die Schnlee nichts gefunden)
Unterlagen zur Gameboy-Camera?

von mr. chip (Gast)


Lesenswert?

@Rahul: Ja, du findest viele Dokus dazu. Sogar das Datenblatt für den
Bildwandlerchip von Hitachi (?)  - sollte also kein Problem sein, da
zurecht zu kommen. Musst wohl ein bisschen googeln, ich habe leider den
Link verloren.

Naja, die Schweiz ist im internationalen Vergleich teurer. Die
Kaufkraft ist aber ungefähr gleich. Daher stört dies im Innland
eigentlich niemand, lediglich die Exportindustrie hat Probleme damit -
indirekt übertragen diese sich über verschiedene Wege aber auf die
gesamte Wirtschaft. Die Mondpreise von Conrad haben aber wenig damit zu
tun, vermutlich können die sich das leisten, weil sie Quasi-Monopolist
auf dem Schweizer Markt sind. Oder die Leute sind einfach zu blöd, mal
um die Ecke zu schauen... Mega32 für den Gegenwert von 6 BigMacs - ist
doch einfach Wahnisnn?!? (Man hat herausgefunden, dass der BigMac-Preis
im internationalen Vergleich einen guten Hinweis auf die jeweilige
Kaufkraft ist - in der Schweiz ist er übrigens weltweit am teuersten.)
Normalerweise ist Elektronik bei uns nicht teurer als in Deutschland,
jedenfalls niemals höher als vielleicht Faktor 1.5.

von Ingo (Gast)


Lesenswert?

Du könntest den Adress-Bus über I2C oder Schieberegister ansteuern.
Kostet zwar zwei externe Bausteine spart aber jede Menge Pins am AVR

von mr. chip (Gast)


Lesenswert?

Jep, hab ich mir auch überlegt. Schieberegister haben aber den grossen
Nachteil, dass ich enorm lange brauche, bis die Adresse anliegt. Mit
dem Zähler geht das aber völlig fix, da ich für jedes neue Byte einfach
um eins weiterzähle und dann die richtige Adresse habe. Einziger
Nachteil halt: Wahlfreier Zugriff ist nicht möglich.

von Thomas O. (Gast)


Angehängte Dateien:

Lesenswert?

wie gesagt ich hab das mit 74HC573N-Latches gemacht man übergibt ein
ganzes Byte welches das Latch dann je nach Beschaltung dauerhaft an die
Ausgänge gibt. Die Eingänge des Latches schaltet man hochohmig und hat
den Port wieder für andere Aufgaben frei bzw. gibt ein weiteres Byte an
das nächste Latch. Die Ausgänge der Latches sind mit den Adressleitungen
des EEPROM verbunden und die das eigentliche Byte kann man direkt von
einem Port an das Latch geben. Man bräuchte halt noch ein paar
Steuerleitungen, kann aber trotzdem schneller Adressleitungen ändern
als es mit Schieberegistern der Fall wäre.

von Jadeclaw D. (jadeclaw)


Lesenswert?

<ot>
@Mr. Chip: RE: Conrad-Preise. Die Mondpreise für Atmel-Controller haben
die in DL ebenfalls. EUR 23,10 für einzelne Mega32. Ist also kein
originäres CH-Problem. Grundsätzlich ist bei Conrad alles das zu teuer,
was die nicht selbst aus China oder Indien importieren können.
</ot>
500kHz ist für einen ATmega softwaremässig kein Problem, per
Hardwaretimer geht auch mehr. Die Ausgangstreiber können die vollen
20mA auch bei einem MHz. Ein TTL oder HCMOS-Eingang ist da kein
Problem.
Ansonsten, wenn es doch wahlfreier Zugriff werden soll, einen Port als
Multiplex Adress/Datenbus verwenden, 2 Latches als Adressregister für
ein normales SRAM (62256 oder 2x 6264) und die Datenleitungen des SRAM
direkt dran. Latchauswahl, CE und R/W über 4 weitere Portleitungen.
Jeder Speicherzugriff wäre mit 10 - 15 Takten erledigt.
Wenn es dann an Portleitungen für andere Zwecke mangelt, Latchauswahl
über einen 74LS138 machen und weitere Latches an den 'Bus'port
anhängen.

Gruss
Jadeclaw.

von Bojan von Känel (Gast)


Lesenswert?

Hallo!

Ich habe vor kurzem eine RAM-Ansteuerung gebastelt, und zwar mit
schieberegister.
Als Controller habe ich einen PIC18F442 verwendet, allerdings spielt
dies keine rolle, was man für einen controller verwendet...

Ein wahlfreier zugriff ist problemlos möglich, und auch die
geschwindigkeit ist (zumindest für mein vorhaben) schnell genug:
wenn ich den mikrocontroller mit 40MHz takte, schafft er beim schreiben
~64kbit/s.

Möglicherweise ist das für deine Anwendung auch schnell genug,
ansonsten ist die idee mit dem Zähler sicher auch eine Variante...

fals jemand interesse an der Schaltung / Programmcode hat, soll er sich
per mail bei mir melden... [bojan.vonkaenel(at)gmx.ch]


Gruss
Aschi

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
Noch kein Account? Hier anmelden.