Hi, ich würde gerne einen STR710FZ2 an einen S1D13743 anschließen. Der STR710 hat ein recht simples Bus-Interface, das nicht gemultiplext ist. Es sind also A[0..23] und D[0..15] getrennt als eigene Pins herausgeführt. Der S1D13743 hat nun aber nur die Pins MD[0..15], die für 16Bit Daten und Adressen stehen. Zusätzlich verfügt der IC über ein DC-Signal, das angibt ob gerade Adresse (Low-Pegel) oder Daten (High-Pegel) anliegen. Jetzt frage ich mich, ob ich eine Chance habe das ganze sinnvoll miteinander zu verdraten?
Ich befürchte beihnahe du mußt dir einen Converter bauen, der beide Busse zueineinader kompatibel macht. Du mußt sozusagen den STR710FZ2 auch multiplexen. Hinzu kommt dann auch noch, daß der STR710FZ2 mehr Adressleitungen hat als der S1D13743. Du kannst also nicht den vollen STR710FZ2 benutzen. Eine andere Möglichkeit sehe ich erstmal nicht.
Ich dachte nun daran zwei Bus-Switches zu nehmen, z.B. hiervon "SN74CB3Q16244". Auf der Host-Seite an je einen IC die Adressen und Daten anlegen. Auf der Seite des S1D13743 werden die 16Bit jeweils miteinander verknüpft. Über die Output-Enable-Leitungen der Switches kann man nun entweder Daten oder Adressen durchlassen. Die Output-Enable-Leitungen kommen an eine weitere Adressleitung und lassen sich durch das Bus-Interface steuern. Noch ein wenig Logik dazwischen und fertig ist der Drahtverhau. Das ermöglicht mir nacheinander Daten oder Adressen zu schreiben. Ich muss dann Softwaretechnisch, dafür sorgen das zunächst die Adresse und dann die Daten geschrieben werden. Das ist auch nicht so schlimm, da der S1D13743 die Adresse automatisch inkrementiert bei jedem Lesen und Schreiben. Bessere Vorschläge?
A. K. schrieb: > Ich habe mir das nicht en Detail angesehen, aber vielleicht kann man das > zu Fuss multiplexen, vielleicht ist das auch exakt so vorgesehen. > > Indem man A0 des Controllers als Adress/Daten-Signal werwendet und vor > dem eigentlichen Datentransferzyklus mit A0=1 einen Schreibzyklus mit > der gewünschten Adresse als Datenwort und A0=0 durchführt. Ist natürlich > weniger elegant als direkte Adressierung, aber kommt ohne Hardware aus. Ich kann aber ja nicht einfach die Datenleitungen und die Adressleitungen zusammenbinden ohne das dort ein IC für die nötige Trennung sorgt.
Deine Beschreibung klingt ganz so, als ob der Adressbus des Controllers dafür weder vorgesehen noch notwendig ist. Ausser A0. D.h. du verbindest A0 mit der besagten Adress/Datenleitung und die 16 Datenleitungen (plus Steuerkram) schreibst mit A0=0 erst die Adresse als Daten in das Gerät und liest/schreibst anschliessend mit A0=1 die eigentlichen Daten. Im Adressraum des Controllers belegt das Gerät also nur 2 Adressen, eine für die Adresse, eine für die Daten.
Ahh jetzt klingelts bei mir. Du meinst also die Datenleitungen verbinden und das Schreiben der Adresse, erfolgt dann indem man einfach erstmal eine Adresse in Form der Daten schreibt. Das ist doch eine sehr gute Lösung von dir, Danke!
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.