Hallo,
@Lothar
>Du willst also den Rest der Schaltung beibehalten, und den AD-Bus über
>ein SPI-Interface nachbilden?
Richtig, der neue Controller hat keinen AD Bus mehr sondern ein HW SPI.
>An welcher Stelle soll dein SPI-Interface eingreifen?
Alt: µC (AD0-AD7, /RD, /RW, /CS, ALE) -> CPLD -> Peripherie
Neu: µC (SDI, SDO, CS, SCK) -> CPLD -> Peripherie
>Welche Komponenten hängen ausser den angesprochenen EA noch am AD-Bus?
- Ein Standard-LCD (auf 2 Adressen, die Logikumsetzung auf E, RW, RS des
LCDs ist im CPLD mit ein paar Logikgattern bewerkstelligt), auf beiden
Adressen (Command, Data) kann so einfach mit Portzugriffen geschrieben /
gelesen werden
- Ein ULN der ein paar Relais schaltet
- Ein paar Optokoppler als Eingänge (ULN und OKs sind derzeit auf der
gleichen Portadresse)
- Eine Matrixtastatur; Eine Adresse auf der schreibend die Zeile gesetzt
wird und lesend die Spalten ausgelesen werden
>SPI-Slave in einem CPLD verwenden.
Ja, jetzt kommen wir denke ich zum Knackpunkt; wie macht man das?
Ausschließlich für Ausgänge würde ich das mit Schieberegistern
vielleicht noch hinbekommen (z.B. 64 bit einlesen, wenn /CS abfällt
alles auf die Ausgänge latchen), aber auch noch lesend?
>Bei Punkten machst du das doch auch.
Hast recht, ich werde es versuchen.
@Peter
>Schau Dir mal den 74HC299 an, der kann beide Richtungen.
>Die /RD, /WR, ALE mußt Du aber über Portpins erzeugen.
Habe mir das IC mal angeschaut. /RD /WR ALE dann per Hand erzeugen zu
müssen ist zwar nicht sehr "kompakt", da das SPI auch blockweise
arbeiten kann, könnte aber andererseits den Aufwand im CPLD verringern
(ist ein XC9572, da passt nicht wahnsinnig viel rein).
Stefan