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
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
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
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?
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
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...
Noch eine Frage: Dieses EEPROM kann über das TWI des Mega32 angesteuert werden, korrekt?
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...
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...
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...
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...
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
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...
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
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
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
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.
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.
Aber mit dieser Frequenz kann kein Portpin getoggelt werden. Nebenbei sollen ja noch Daten verarbeitet werden. MW
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.
>weil der Conrad-Mitarbeiter nur 100 kHz schaffte
Nit möööglich! Bei mir brauchen die immer ewig, um ein Bauteil ausm
Regal zu holen...
Hallo! Kann mir einer mal erklären, wie diese Bordellpreise für Elektronik in der Schweiz zustande kommen ?? Steuern ?? mfg, Bjoern
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.
Nur so am Rande: http://www.jrobot.net/Projects.html Gibt es eigentlich irgendwo (hab auf die Schnlee nichts gefunden) Unterlagen zur Gameboy-Camera?
@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.
Du könntest den Adress-Bus über I2C oder Schieberegister ansteuern. Kostet zwar zwei externe Bausteine spart aber jede Menge Pins am AVR
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.
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.
<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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.