Externer Speicher

Gast #334864
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
Gast #334866
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
Gast #334869
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...
Gast #334871
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...
Gast #334872
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...
Gast #334873
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...
Gast #334874
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...
Gast #334875
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
Gast #334876
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...
Gast #334877
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
Gast #334878
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
Gast #334879
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
Gast #334881
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.
Gast #334884
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.
Gast #334887
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.
Gast #334890
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.
Gast #334892
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.
Gast #334893
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.
Angehängte Dateien:
#334894
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.
Gast #334895
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

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