hallo.. habe eine ISA-Karte gebastelt für den PC mit einem 68HC12 cntroller drauf. der HC12 läuft intern mit 8 Mhz. jetzt hab ich die Datenleitungen direkt an 2 ports drangehängt und die adressleitungen an einen 8bit vergleicher, wobei A0 und A1 auch an einem Port hängen. AEN steuert den Vergleicher (G') , IOW hängt auch am gleichen port wie A0 und A1 sowie der ausgang vom vergleicher. Wenn ich nun vom PC aus daten auf die IO-Adresse schreibe, hab ich das problem dass der controller manchmal den wert bekommt und manchmal gar nicht, also 0xFF, sprich er is nich schnell genug. Im Controller sieht mein codeabschnitt nun so aus: - vergleiche Steuerport mit A0 A1 IOW etc. auf entsprechendes Bitmuster. - wenn Daten da, lese den Wert vom Datenport und schreibe ihn in den Ausgang. - wenn nein, springe wieder zu punkt 1 (busyloop) das ganze sind 4 maschinenbefehle also irgendwie hab ich das gefühl er schafft es manchmal noch die Daten zu lesen oder sie sind schon weg ... wenn ich ein Array von gleichen zahlen sende z.b. 8, sieht das so aus: 08880008008080000088000000808088880000.... anstatt nur die 8 geht das überhaupt so dass ich den effektiven Adressvergleich im controller selbst mache ? Besser wäre es vielleicht einen RAM Puffer an den Datenbus zu hängen und der Controller dann nur die Werte abholt... aber gehts auch nur mit Controller ? kann mir jemand nen tip geben ? oder kennt jemand das Problem und weiss schon was ich falsch mache ? wenns nur mit RAM geht, kennt jemand da schon nen guten Chip ? habe das Problem dass ich son Ram noch nie beschaltet hab.. mfg
mir hat hier damals schon jemand gesagt, dass man den controller nicht direkt an den datenbus hängen kann, weil der mC zu langsam ist. ich wollte es aber nicht glauben.. nun führt wirklich kein weg an ein externer Register oder Puffer vorbei ?
Hallo, mit einem einfachen Latch ließe sich zumindest ein einzelnes Wort in dem Moment speichern, in dem der Adressdecoder anspricht. Dann müßte die Karte eine Zeit lang "busy" angezeigen, bis der MC das eine Byte gelesen hat. Dann erst kann das nächste Wort auf die Adresse geschrieben werden. Gruß
habe was gefunden.. 2 mal 74LS273 , 8bit D FlipFlop Register. damit könnte ich es mal versuchen, nur wie mache ich es dann dass ich auch von der karte raus schreiben kann, die Ausgänge vom 74273 kann ich ja nicht plötzlich als eingänge nehmen... hmm ich könnte auch ein 82C55 nehmen, nur der hat nur 8bit datenleitungen, dann bräucht ich 2, wäre ziemlich ne verschwendung.. hat jemand ne idee ?
Hallo, wegen dem Schreiben: Es gibt Latch-Typen mit Tristate-Ausgängen, z.B. 74HC573, 74HC574. Zum Schreiben dann einfach vorher das Latch auf Tristate schalten. Gruß
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.