PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Game Boy Camera an AVR -- Ein paar Fragen zur Hardware



Christoph2
11.12.2008, 21:04
Hi!

Ich habe einen roboter mit dem ziel gebaut, dass irgendwann mal eine kamera darauf montiert wird, mit der er dann einem laserpunkt folgen kann.

Ich habe bereits eine Game Boy Kamera, und habe jetzt eine super Seite gefunden wo die auswertung und übertragung der bilder von der kamera zum uC ganz einfach erklärt wird:

http://web2.vz18184.evanzo-server.de/jps/elektronik/gbcam.htm (strg-a drücken, dann kann man es auch lesen)

Das problem ist aber die Hardware. Man braucht unbedingt einen schnellen Controller, mindestens 16kByte Ram und einen schnellen AD-Wandler.

Als ad wandler wird auf dieser Seite ein PCF8591 verwendet. Der ist recht teuer, hat aber auch 4 eingänge und einen D/A Wandler, was ich alles nicht brauche. Vll finde ich da einen passenderen.

Der uC ist glaube ich kein problem, die ATmegas sind denke ich mit 16MHz schon schnell genug.

Das größte Problem ist der RAM, bzw. das ansprechen des RAMs.
Welche arten gibt es, den Ram an den uC anzuschließen?
Ich hab was gelesen von paraleller anbindung (die soll langsam sein) und eine mit integriertem Speichercontroller. Den haben aber nur manche AVRs, die teuren eben.


Welche Art empfehlt ihr mir? Ich muss eigentlich nur 128x128= ca 16000 Bytes nacheinander irgendwo abspeichern. und das möglichst schnell und einfach.
Und welchen schnellen gut erhältlichen (Conrad)AD-Wandler könnte ich verwenden?

lg
Christoph

Vitis
12.12.2008, 00:19
lustig, Kamera mit Grauwert Bild und Laserpunkt folgen
viel Spaß dabei ;)

"nur" 16kb ist garnicht ohne ... aaaaaaaaalso
Du wirst wohl um Farbwerte nicht herum kommen, zumal die
die Aufgabe noch relativ einfacher machen.
Du musst dann das Bild speichern ... SRAM DRAM FRAM ist zunächst
mal wurst, nur groß genug sollte der Speicher halt sein.
Stichwort Speicher ... besser ist nicht nur ein Bild im Speicher zu haben
sondern Platz für 2-3 Frames zu haben.
Dann gehste beim ersten Frame hin und suchst in der Matritze den
Farbwert Deines Lasers, bei den folgenden Frames kannst du von der
gefundenen Stelle aus suchen in welche Richtung sich der Punkt
verschoben hat ... und nun wirds interessant, aus 2 Frames kannste
dir quasi nen Bewegungsvektor errechnen.
Wenn Du schon dabei bist lässte ne Kandenerkennung mit drüber
laufen Sobel z.B. und so den Robbi Hindernissen ausweichen lassen.
Die Übertragung der Kameradaten am Besten interrruptbasierend
laufen lassen, sprich während ein Frame verarbeitet wird wird
das nächste Frame in den Ram geschoben usw. usw.

... aber ... der ATMEga mit 16 ... 20MHz ist zwar schnell, das Problem
ist die Peripherie. Z.B. RAM ... n serielles RAM kannste schonmal knicken,
zu langsam ... parallel ist angesagt und auch das will angesteuert
werden ... RAS CAS WRE A0 - A15 D0-D7 ... das bremst ziemlich
am AVR

Robotniks
12.12.2008, 10:25
Hallo Christoph2,

schau dir mal die links an, vieleicht ist was dabei, was du übernehmen kannst.

http://www.kreatives-chaos.com/artikel/gameboykamera-modul

http://sophiateam.undrgnd.free.fr/microcontroller/camera/index.html

http://pages.zoom.co.uk/andyc/camera.htm


Ich persöhnlich würde da aber eine CMU CAM 2 bevorzugen.
Alternativ RoboRealm und eine Funkkamera!

www.roborealm.com


Schönes Wochenende,

Ulli

Monday
12.12.2008, 10:29
Hallo Christoph,
ich habe auch mal eine Gameboykamera an einen AVR angeschlossen. Die gesamten Informationen zur Hardware etc. habe ich mir von verschiedenen Seiten zusammengesucht.
Betrieben habe das ganze mit einem Mega 32 und einem externen AD-Wandler wegen der Geschwindigkeit. Wenn du möchtest kann ich dir die benötigten Teile raussuchen.

LG
Monday

MeckPommER
12.12.2008, 12:10
Hallo Christoph,

ich habe mir so ein Laser-Entfernungssystem bereits aufgebaut. Es funktioniert auf meinem Bot Marvin ganz brav und artig. Allerdings habe ich es mit zwei GB-Cams aufgebaut. Die Datenverarbeitung macht ein Atmega128 an dem 64KB SRAM hängen um 4 komplette Bilder speichern zu können.
Als ADC habe ich den internen des Atmegas benutzt (leicht übertaktet), da eh nur 8 Bit ausgewertet werden sollen.

Das Problem der Cams ist (meiner Erfahrung nach) nicht, das die Digitalisierung mit einem Atmega Ewigkeiten dauert, das Problem mit diesen Cams sehe ich stets darin, das diese unter ungünstigen Bedingungen (Zimmerbeleuchtung) eine recht lange Belichtungszeit haben, bevor diese das Bild freigeben.

Ganz grob:
-die Entfernungsmessung ist im Bereich unter 40cm auf ca. 0,5cm genau
-die Entfernungsmessung ist im Bereich unter 80cm auf ca. 2cm genau
-die Entfernungsmessung ist im Bereich unter 150cm auf ca. 10cm genau

und ab ca. 2m nicht mehr zu gebrauchen :)

Vorteil gegenüber Ultraschall ist halt die Punktgenaue Messung.

Ich schaffe mit Auslesen beider Kameras, etc. vier Messungen pro Sekunde.

Gruß MeckPommER

Crazy Harry
12.12.2008, 12:54
Als ad wandler wird auf dieser Seite ein PCF8591 verwendet. Der ist recht teuer, hat aber auch 4 eingänge und einen D/A Wandler, was ich alles nicht brauche. Vll finde ich da einen passenderen.
teuer ?

2,20 € (http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=A312;GROUPID=2942;ARTICLE=39 890;START=0;SORT=user;OFFSET=16;SID=26vhG85KwQARoA AAX0BAM4f2e8ce92a71413c4a3497966a9feac3)

Christoph2
12.12.2008, 18:13
Danke für die Antworten!

Das mit den vielen bildern speichern ist eine gute idee, das werde ich auf jeden fall machen.

@Crazy Harry: Bei reichelt muss ich aus Österreich mindestens 150€ bestellen (Mindestbestellwert), bei Conrad kostet das ding 9€

Ich habe jetzt einen schnellen Wandler bei Conrad gefunden, den ADC0820. Er wird auch bei der Platine von /www.kreatives-chaos.com verwendet.
Er hat kein I2C, sondern wird einfach an digitale Eingänge angeschlossen.


So, das große Problem ist immer noch der RAM
Ich könnte von einem Freund einen mega8515 bekommen, der hat ein XRAM interface, ein Interface für externen Ram. Ich habe mir das im Datenblatt angeschaut, aber das schaut ziehmlich kompliziert aus (auf Seite 24 im Datenblatt)

Da steht irgendwas von einem Latch, das man zum zwischenspeichern von Adressen braucht oder so.
Das ist ein eigenes Bauteil, aber ich verstehe nicht wozu das da ist, bzw welches ich nehmen muss.
Im Datenblatt steht es soll von der 74AHC Serie sein, und bei Conrad gibt es 13 Seiten je 20 Stück ICs von dieser Serie. Ich habe also keine ahnung was das sein soll.

Zum Sram selber: Conrad ist meine einzige quelle, ich will nicht wegen den paar euro 10€ oder mehr versandkosten nach deutschland zahlen.
Beim Conrad gibt es aber nur 32KByte Srams, zu 5€ das stück. ich werde mich also mit 32KByte zu frieden geben und das UM 61256K-20 nehmen, und einfach nur die koordinaten des Punktes auf dem letzten frame speichern, und das frame verwerfen. vll gehen sich ja 2 frames aus. zur kantenerkennung braucht man ja die vorgeschichte nicht oder? ich hab keine idee wie ich eine kantenerkennung realisieren könnte, aber das hat ja noch zeit, eines nach dem anderen.


Weiß jemand wie man diese XRAM interface verwendet, und wie das mit dem Latch funktioniert bzw welches man da nehmen muss?

lg
Christoph


EDIT: Welche Programmiersprache empfehlt ihr mir für das Teil? Ich kann ein bischen C und kein Assembler. Aber wenn Assembler dafür besser geeignet ist, muss ich das wohl lernen. Wir haben eh gerade in der Schule damit angefangen.....

albert32
12.12.2008, 21:43
Anschluss an den Mikrocontroller


Der Speicher wird über einen Daten- und einen Adressbus sowie die Steuerleitungen /OE (output enable, manchmal auch als /RD read enable bezeichnet), /WE (write enable) und /CS (chip select) angeschlossen. Der Datenbus für einen Speicher der Organisation 32k x 8 Bit hat eine Breite von 8 Bit, der Adressbus ist dann 15 Bit breit. Um den Speicher zu aktivieren, muß /CS auf LOW (Masse) gelegt werden. Dies kann verwendet werden, um mehrere Speicher- oder andere Bausteine am selben Bus zu betreiben. Hierbei muß sichergestellt sein, daß jeweils nur ein IC zur gleichen Zeit ein low-aktives /CS-Signal erhält, damit es nicht zum Kurzschluss auf dem Datenbus kommt (siehe Ausgangsstufen Logik-ICs). Ist außer dem Controller nur ein einziges IC an den Bus angeschlossen, kann /CS auch fest mit Masse verbunden und der Speicher somit permanent aktiviert werden. Das /OE-Signal dient hierbei dem Zweck, nach Anlegen einer Adresse am Adressbus den Speicher zum Übertragen eines Datenworts über den Datenbus zu veranlassen (Lesezugriff). Sollen Daten in das SRAM geschrieben werden, legt der Controller die Adresse und dann die Daten an, um den Speicher dann mit einem Low-Signal auf der /WE-Leitung zum Speichern zu bringen.


Die Reihenfolge der einzelnen Daten- und Adresspins am RAM kann nach Belieben variiert werden, wenn dadurch das Layout der Platine vereinfach wird. D.h. D0 des RAMs kann auch an D5 des Controllers gehen. Der Grund dafür ist folgender: Die Daten werden zwar verstreut im RAM gespeichert (Adressleitungen vertauscht) oder in falscher Anordnung im Speicher angelegt (Datenleitungen vertauscht), jedoch kompensiert sich diese Unordnung beim Auslesen wieder. ACHTUNG, das geht nur bei einfachen SRAMs. DRAM oder neuere Speicher nehmen das fix übel, weil die Ansteuerung durcheinander kommt (Adressmultiplexing, Pagemodus, Byteslanes bei DDR-RAM etc.). Bei diesen ICs kann man bestenfalls Datenleitungen tauschen, bei DDR-RAMs nur innerhalb einer Byte-Lane. Prinzipiell sollte man davon aber nur sparsam Gebrauch machen, wenn es dem Layout wirklich hilft.


Ohne Latch

Die einfachste Art einen externen SRAM an den Mikrocontroller anzubinden ist die direkte Verkabelung. Jeder Pin des SRAMs bekommt einen Pin am MC. Jedoch verschwendet diese Anschlußweise auch ziemlich viele IO-Pins. Bei dem nebenstehenden 32-KiBi-RAM verbraucht der Anschluß so 8+15+2 (25) Pins.

Am sinnvollsten verwendet man einen ganzen Port für die acht Datenleitungen, damit man schnell darauf zugreifen kann. Die Adressleitungen A0 bis A7 werden auch möglichst auf einen Port gelegt. An einen dritten Port wiederum werden A8-A14 angeschlossen; /WR und /OE können dann mit zwei weiteren freien Pins verbunden werden. Zusammen belegt diese Methode also 25 Pins für 32 KiBi. Auf diese Weise kann man an praktisch jeden Mikrocontroller einen SRAM anschließen, die Ansteuerung kann dann rein in Software vorgenommen werden. Das ist jedoch relativ aufwendig, in der Anwendung umständlich und langsam. Sinnvollerweise sollte der Mikrocontroller eine eingebaute Speicherschnittstelle haben, um den SRAM per Hardware direkt und schnell ansprechen zu können.


Mit Latch

Will man wertvolle Pins einsparen so benutzt man am besten ein Latch, das die Signale zwischenspeichert. Man kann wählen, ob nur A0-A7 eingespart werden soll, oder gleich alle Adressleitungen. Für den ersten Fall benötigt man ein 8-Bit Latch das ausreichend schnell schalten kann, für den zweiten Fall zwei Latches.

Die Eingänge des Latches werden mit den Datenleitungen des Mikrocontrollers verbunden und das Enable-Signal bekommt einen eigenständigen Pin. Die Einsparungen an Pins geht jedoch auf Kosten der Geschwindigkeit, da zuerst das Latch mit der Adresse geladen werden muß bevor die eigentliche Aktivierung des SRAMs beginnen kann. Bei einem 32-KiB-SRAM werden mit einem Latch nur noch 8+7+3 (18) Pins gebraucht, gegenüber der Variante ohne Latch also eine Einsparung von sieben Pins mit einem Bauteil.

Mit XMEM-Interface

Verbindung zwischen einem AVR und einem 32-KiB-SRAM mit Latch und dem XMEM-Interface


Viele Controller (AVR, 8051) besitzen ein Speicherinterface, das es ermöglicht SRAM anzuschließen und diesen als Erweiterung des internen RAMs zu benutzen. Dieser wird dann mit einem Latch angeschlossen, um Pins zu sparen. Das Enable-Signal des Latch muß mit dem Ausgang ALE (Address Latch Enable) verbunden werden, wie es im Schema gezeigt wird. Nach der Initialisierung des externen Speicherinterfaces steht der Software auch der externe SRAM zu Verfügung.

Als Latch eignen sich folgende Bausteine:

74HCT573 oder 74HCT373 Unterschied in der Pin-Belegung!

Infos aus http://www.mikrocontroller.net

lg

albert

Christoph2
15.12.2008, 23:16
Danke, jetzt kenn ich mich aus

Hab jetzt schon die bestellliste fertig, ich melde mich wenn es neuigkeiten gibt.
Wahrscheinlich aber erst nach weihnachten, jetzt ist es zu stressig

lg Christoph

ikarus_177
16.12.2008, 13:04
Hi,

eine Frage zwischendurch: Wo kommt man den heutzutage günstig an GameBoy - Cams? Ebay?

Viele Grüße

Christoph2
27.12.2008, 00:11
Hi!

Ich habe die Teile jetzt gekauft, einen mega8515, einen ADC0820 8bit ad-wandler, ein 74HCT573 latch und einen 32kByte ram.

Jetzt habe ich aber festgestellt, dass die pins nicht ausreichen! ich habe nicht bedacht, dass diese Speichererweiterung so viele Pins braucht.

jetzt habe ich aber nur noch 9 Pins frei, aber ich brauche viel mehr!

Ich brauche 6 pins für die Kamera, und 8 oder sogar noch mehr für den AD-Wandler.

Wie kann ich das Problem am besten lösen? Eine I2C schnittstelle hat der mega8515 auch nicht, also kann ich mir leider nicht einfach einen I2C AD-Wandler kaufen.
Aber irgendwie kann man glaub ich an diesen adressbus der zur speichererweiterung dient auch noch andere sachen anschließen. Aber wie mach ich das und wie wirkt sich das auf die geschwindigkeit aus?

Habt ihr andere ideen?

lg christoph



@ikarus: Im geschäft gibt es sie jetzt garnicht mehr zu kaufen, vll aber noch bei ebay. Ich habe meine noch von früher.

Vitis
27.12.2008, 00:23
ne I2C / TWI kannst Du dir auch in Software programmieren,
ist doch kein Problem ... nennt sich dann SoftwareTWI

Michael
27.12.2008, 11:41
Hallo Christoph2,


Ich habe die Teile jetzt gekauft, einen mega8515, einen ADC0820 8bit ad-wandler, ein 74HCT573 latch und einen 32kByte ram.
32kB S-RAM im DIL-Gehäuse gibt es zuhauf auf alten Mainboards.


Ich brauche 6 pins für die Kamera, und 8 oder sogar noch mehr für den AD-Wandler.
du könntest den AD-Wandler an den Speicherbus hängen und dann noch einen Adressdekoder dranbasteln.

Gruß, Michael

Christoph2
27.12.2008, 12:21
Dieser Software I2C ist mir glaub ich noch zu schwer, aber dieser adressbus ist schon irgendwie cool. wie das mit dem ram funktioniert, weiß ich jetzt, aber mit dem ADC wird das ja komplizierter, weil der nur datenleitungen hat, und keine adressen.

Also brauche ich etwas, das diesen 8 bit eine adresse gibt, das ist nehme ich mal an der adressdekoder, den Michael erwähnt hat. Ich hab das mal in google eingegeben, aber es ist nichts rausgekommen das mir hilft.

Wie baue ich so einen dekoder einfach? ich brauche ja nur eine einzige adresse zuweisen, muss man da eine logikschaltung bauen oder geht das einfacher?

lg christoph

Michael
27.12.2008, 16:20
Hallo Christoph2,


aber mit dem ADC wird das ja komplizierter, weil der nur datenleitungen hat, und keine adressen.
der Chip hat den CS-Eingang. Wird dieser auf GND gelegt, liegen Daten an DB0-7 an, andernfalls sind die Ausgänge Tristate.


muss man da eine logikschaltung bauen
ja, die Logik schaltet bei richtiger Adresse den CS auf GND.

Bei 32k bleibt die obere Adressleitung unbenutzt ;)

Gruß, Michael

Christoph2
27.12.2008, 18:55
also die adressleitungen 0 bis 14 brauche ich für den ram, da bekommt dann jede Speicherzelle (8Bit) eine Adresse vom AVR zugewiesen. (oder haben die eine fixe adresse???)

Der AVR hat 2^16 adressen zu vergeben, für den RAM werden aber nur 2^15 verwendet, weil er nur 2^15 Byte hat.

eine Leitung bleibt mir über. Wie funktioniert das mit dem chip select genau?

Muss ich mit einer logikschaltung die Adressleitungen abfragen, und wenn jetzt zb. nur die 15. Adressleitung HIGH ist, dass der CS Pin des ADC auf GND gelegt wird?

Ich habe bis jetzt noch nie mit logikgattern als ICs gearbeitet, nur in der schule mit übungskoffern. welche logikgatter soll ich am besten verwenden bzw sind am besten erhältlich?

Wenn nur die 15. Adressleitung high sein soll, dann brauch ich ein Riesiges OR gatter (mit 16 eingängen), bei dem ein eingang negiert wird. der ausgang geht dann auf CS des ADC.

Würde das gehen? Kann ich dem ADC ganz brutal die adresse 2^15 zuweisen?

lg Christoph

albert32
27.12.2008, 21:43
Also A15 an das RAM CS/ und dann über einen Inverterbaustein 74HCT04
an CS vom A/D Wandler!

lg

albert

Michael
27.12.2008, 21:43
Hallo Christoph2,


Würde das gehen? Kann ich dem ADC ganz brutal die adresse 2^15 zuweisen?
prinzipiell ja, weil der RAM ja diese Adressleitung nicht braucht. Du mußt aber über die Adreßleitung 2^15 den RAM abschalten(Tristate), bzw. den ADC einschalten. Der RAM hat ja schließlich auch ein CS ;)


Wenn nur die 15. Adressleitung high sein soll, dann brauch ich ein Riesiges OR gatter (mit 16 eingängen), bei dem ein eingang negiert wird. der ausgang geht dann auf CS des ADC. Dann würdest du genau die Adresse 2^15 für den ADC auswählen.

Gruß, Michael

Christoph2
28.12.2008, 00:23
Danke! jetzt verstehe ich die speichererweiterung

Gibts vielleicht schon so einen fertigen AD-Wandler der schon eine adresse hat wie der ram?

Das mit der logikschaltung ist nämlich verdammt kompliziert da braucht man ein zusätzliches ic und ein schnelles muss es auch noch sein (appropos: kennt jemand ein geeignetes gatter?).

lg christoph

albert32
28.12.2008, 09:53
Hallo Christoph2!

Möglicherweise kennst du diesen Aufbau (als Attachment hinzugefügt) bereits, er würde deinen mega8515 auch bedienen. Jedenfalls kannst du je nach Speicherbedarf auch den mega161 oder den mega162 verwenden.

lg
albert

Michael
28.12.2008, 10:53
Hallo albert32,

kannst du den Schaltplan bitte nochmal neu kopieren und hier einfügen?
Leider sind wichtige Informationen verloren gegangen.

Gruß, Michael

albert32
28.12.2008, 11:12
Hallo!

Also noch einmal den Schaltplan, Format.png wollte wohl nicht…

lg

albert

Christoph2
28.12.2008, 13:10
ahhh das mit dem cs ist ja bei dir ganz einfach gelöst!

du hast einfach das cs des rams negiert und an das cs des adc angeschlossen.
das werde ich auch so machen denk ich.
Nur wenn man dann noch irgendein teil an den adressbus hängt, dann geht das nicht so einfach oder? dann muss man eine "richtige" adressierung machen mit verschiedenen adressen


lg christoph


EDIT: Ups das hat albert schon geschrieben sorry hab das post übersehen
Dann werde ich das mal aufbauen und melde mich wieder wenn ich noch fragen habe.

EDIT2: Gibt es vielleicht ics mit denen man eine Porterweiterung machen kann über den adressbus? also ein ic das ein oder 2 adressen hat, und 8 bzw. 16 eingänge/ausgänge. Dann kann ich ein byte auf die adresse schreiben und dann geben die ausgänge etwas aus. oder ich kann einhänge halt abfragen.

albert32
28.12.2008, 15:33
Hallo Christoph2!

1.) In modernen Mikrokontroller-Systemen werden CS\-Dekoder heute im Allgemeinen mittels programmierbarer Logikbausteine (GALs z. B. GAL16V8 ) realisiert.

Vorteil:

- eine noch so komplexe Logik, lässt sich in einen solchen Baustein einprogrammieren, die bei bedarf später auch wieder änderbar ist!

- spart Platz auf der Platine, keine Gatter-Gräber aus verschiedenen Logik-Bausteinen

- eine GAL nimmt weniger Leistung auf

- preiswerter

2.) Weiters lässt sich mit Hilfe von Standart-Logik-Gattern der gesamte Adressbereich in
4….8 große Segmente aufteilen. Mit nach geschalteten 74HC138ern bzw. 74HC154ern (Adressdecoder) können die großen Segmente sehr leicht in 8 bzw. 16 kleinere Segmente unterteilt werden.

Nachteil:

- 4 bis 7 Chip-Lösung

PS.: Und deshalb setzt man in neuen Systemen Bussysteme wie I2C oder 1Wire, CAN ein, um im Bedarfsfall diese doch aufwendigen Anpassungen zu umgehen.

lg

albert

albert32
01.01.2009, 22:40
Hallo Christoph2!

Anbei weitere Infos in pdf-Form.

lg

albert

mare_crisium
02.01.2009, 00:31
Ein gutes Neues Christoph2 und Albert!

Euer Projekt verfolge ich sehr gespannt. Wegen der Dekodierung zusätzlicher Chip-Select-Signale (CS) aus dem Adressbus müsst Ihr nicht gleich zu GALs greifen: Der 74HCT139 (SMD oder DIL 16, 0,20EUR) braucht nicht viel Platz und dekodiert 3 Adressbits in 8 (2x4) active-low CS-Leitungen ;-) !

Ciao,

mare_crisium

albert32
02.01.2009, 09:25
Hallo!

Ja, aber nur bei einem externen Datenspeicher bis 32kByte, dann in Verbindung mit A15.

lg

albert

mare_crisium
02.01.2009, 09:58
Albert,

ja, so wie Du in Deinem Posting vom 28. im Punkt 2 geschrieben hast - nur genügt, wenn man nicht mehr als 8 Segmente braucht, ein zusätzlicher Chip (74HCT138/139), nicht 4 bis 7 :-) .

Ciao,

mare_crisium

albert32
02.01.2009, 16:16
Albert,

ja, so wie Du in Deinem Posting vom 28. im Punkt 2 geschrieben hast - nur genügt, wenn man nicht mehr als 8 Segmente braucht, ein zusätzlicher Chip (74HCT138/139), nicht 4 bis 7 :-) .

Ciao,

mare_crisium

Hallo :wink: mare_crisium!

JA so is´es, wenn nicht mehr als 8 Segmente gebraucht werden.
Der Punkt 2, bezieht sich ja auch auf den gesamten Speicherbereich.

lg

albert

Christoph2
04.01.2009, 18:21
Hi!

Danke für das PDF, in dem ist alles sehr gut erklärt!

Ein Teil der Platine ist schon fertig, aber die anbindung des ADC und des RAMs fehlt mir jetzt noch. In der Grundstufe werde ich an dem adressbus nur den adc und den ram betreiben, also mach ich die adressierung nur mit der 15. Adressleitung einstweilen (einen 2. RAM hab ich aber auch schon, wahrscheinlich bau ich den cs decoder später noch dazu).

Der RAM hat auch einen read und einen write anschluss, kann ich die beiden mit dem read- und dem write- signal aus dem adressbus verbinden?

Ich verstehe nämlich nicht ganz, wozu der ADC einen write anschluss braucht, da brauch ich doch nichts hineinschreiben sondern nur auslesen.
Im Datenblatt steht, dass wenn der ADC Stand-alone-mäßig betrieben wird, kann man read immer auf low legen und wenn man dann write auf high schaltet, beginnt er mit der wandlung.

also ist write garnicht wirklich "schreiben", sondern einfach ein startsignal. demnach kann man es glaube ich nicht mit dem adressbus-write-signal verbinden, oder?

lg christoph

albert32
04.01.2009, 21:00
Hallo!

Ja, die beiden Anschlüsse /RD und /WR werden über den Steuerbus mit dem MC verbunden.

Es ist schon Richtig, dass man nichts reinschreiben muss, wie z.B. in Spezialfunktionsregister anderer Bausteine. In diesem Fall aber werden die Zeitlichen Abläufe auf dem BUS kontrolliert.

Der ADC0820 benötigt um seine „Timing and Control Logic“ bedienen zu können, auf jeden Fall auch das /WR-Signal.

Der Ablauf ist auch im Datenblatt ab Seite 10 erklärt. ;-)

lg

albert

nestandart
26.05.2009, 22:45
Hi!

frage an die; die es fertig haben:
muss man den Xck immer mit impulsen versorgen, oder nur dann, wen daten gelesen/geschrieben werden ?
Muss Xck auch wärend Exposure Time auch getaktet werden ?