Hallo,
ich bin auf der Suche nach einem Port Expander mit parallelem Interface
(kein SPI/I2C, sondern Datenbus, RD#, WR#, CS#). Also etwas in der Art
des guten alten 82C55, allerdings brauch ich TriState- bzw.
In-/Out-Funktionalität auf Bitebene, nicht auf dem ganzen Port, d.h.
jeder Portpin muss separat auf Eingang/Ausgang konfigurierbar sein.
Der 82C55 unterstützt das nicht, und ansonsten fiel mir nur noch die
Z80-PIO ein, aber die hat eine beknackte Ansteuerung :(
Da ich in der Richtung nichts weiter gefunden habe kommt mir der
Verdacht, dass ich das wohl oder übel in ein CPLD packen muss. Wenn ich
da nicht drumrum komme, dann steh ich vor dem Problem, dass CPLDs wohl
nicht mehr für 5V IO-Spannung produziert werden - also auch ne
Sackgasse.
Im Grunde geht's mir darum, einen Port zu haben, wie er heutzutage in
den meisten Controllern vorhanden ist. Das ganze mit einem kleinen
Controller in Software zu realisieren wäre zwar möglich, aber da kommt
dann das Timing ins Spiel: selbst wenn es "nur" darum geht, den
betreffenden Port umzukonfigurieren bzw. zu schreiben/lesen, gehen da ja
auch einige Zyklen drauf, ein 82C55 & Co. (oder generell "reine Logik")
reagieren da ja quasi sofort. Ganz kniffelig dürfte bei einer
Software-Lösung ja ein Lesezugriff sein, man muss den Beginn eines
Lesezugriffs erkennen und dann auch fix die passenden Daten parat haben,
wenn das Readsignal die Daten übernehmen will.
Serielle SPI/I2C Expander, die das können gibt's wohl wie Sand am Meer.
Dass es mit parallelem Interface eher keinen Markt dafür gibt ist mir
klar, aber vielleicht hab ich auch einfach was übersehen? Hat jemand
noch einen Tip in der Richtung?
Ralf
Ralf schrieb:> Das ganze mit einem kleinen> Controller in Software zu realisieren wäre zwar möglich, aber da kommt> dann das Timing ins Spiel: selbst wenn es "nur" darum geht, den> betreffenden Port umzukonfigurieren bzw. zu schreiben/lesen, gehen da ja> auch einige Zyklen drauf, ein 82C55 & Co. (oder generell "reine Logik")> reagieren da ja quasi sofort. Ganz kniffelig dürfte bei einer> Software-Lösung ja ein Lesezugriff sein, man muss den Beginn eines> Lesezugriffs erkennen und dann auch fix die passenden Daten parat haben,> wenn das Readsignal die Daten übernehmen will.
Wenn dir das soweit schon alles klar ist, dann wäre es ja wohl nicht
zuviel verlangt, wenn du auch noch den Bustakt spezifizierst, bei dem
die Sache laufen muß.
Mit ein wenig konkretem Futter in dem ganze Blabla-Gewäsch kann man ja
vielleicht mal überlegen, womit das gehen könnte...
Ralf schrieb:> Hallo,>> ich bin auf der Suche nach einem Port Expander mit parallelem Interface> (kein SPI/I2C, sondern Datenbus, RD#, WR#, CS#). Also etwas in der Art> des guten alten 82C55, allerdings brauch ich TriState- bzw.> In-/Out-Funktionalität auf Bitebene, nicht auf dem ganzen Port, d.h.> jeder Portpin muss separat auf Eingang/Ausgang konfigurierbar sein.>> Im Grunde geht's mir darum, einen Port zu haben, wie er heutzutage in> den meisten Controllern vorhanden ist.
Wofür brauchst Du so etwas, was bequem anders zu lösen ist?
Ralf schrieb:> ansonsten fiel mir nur noch die> Z80-PIO ein, aber die hat eine beknackte Ansteuerung :(
Abgesehen vom erwähnten 8255 haben die ollen Portbausteine m.W. alle
eine Art Taktanschluss. Ohne diesen verlieren sie etwas an Funktion,
z.B. bei Interrupts und irgendwelchen Port-Handshakes.
Vielleicht liessen sich 6520/6821 zur Funktion überreden, aber die sind
schon ziemlich aus der Mode gekommen. Kessler hat freilich noch.
Sebastian S. schrieb:> Schau' doch mal nach dem guten alten Latch. Am besten mit> 3-State-Ausgängen.
Mit 3-State kommt er nicht wirklich weiter, weil das immer für alle Bits
gilt. Der Sache näher käme er mit Open Collector Ausgängen, weil sich
die bitweise als Eingang nutzen lassen - der 8051 lässt grüssen.
Ralf schrieb:> sondern Datenbus, RD#, WR#, CS#
Eventuell einen beliebigen µC mit genügend Pins.
11 für Parallele Kommunikation, eventuell noch Takt, Reset und ISP. Der
Rest dann als frei Programmerbare I/O-Pins.
Wenn man sich die Firmware entsprechend Bastelt kann man damit sogar
einen 8255 virtuell nachbilden:-)
Nimm doch einfach ein CPLD von Altera
z.B. EPM7032SLC44 gibt es bei aliexpress für 1 Euro / Stück
oder
EPM7128SLC84 wenn du sehr viele I/O brauchst ... gibt es für 2 Euro bei
verschiedenen Aliexpress Verkäufern !!
Die Teile laufen noch mit 5 Volt und lassen sich sehr leicht anwenden.
Altera Quartus Software kostenlos und für ein paar Euro den USB Blaster
Clone dazu. Fertig ist die Zauberei
Hallo zusammen,
@c-hater:
> Wenn dir das soweit schon alles klar ist, dann wäre es ja wohl nicht> zuviel verlangt, wenn du auch noch den Bustakt spezifizierst, bei dem> die Sache laufen muß.> Mit ein wenig konkretem Futter in dem ganze Blabla-Gewäsch kann man ja> vielleicht mal überlegen, womit das gehen könnte...
Gestern abend n bisschen gereizt gewesen? ;)
Wenn du mit "blabla" zum Ausdruck bringen willst, dass ich evtl. mit
viel Text zu wenig Infos (für dich) gegeben habe, tut mir das leid - in
der Regel sehe ich mitunter Beiträge in denen nur sehr rudimentäre
Informationen gegeben werden und man dann erst mal nachhaken muss, was
denn konkret schon da ist, weitere Infos anfordern etc. Aus dem Grund
ist meine Eingangsbeitrag etwas größer ausgefallen.
Wenn ich also deine Frage nach dem Bustakt in einer Antwort auf meinen
eigenen Beitrag gestellt hätte, wäre daraus nur ein "Wie schnell muss
das ganze laufen?" o.ä. geworden - womit du auch einen Großteil "blabla"
hättest einsparen können ;)
Und wenn für mich die Geschwindigkeit ein primäres Merkmal gewesen wäre,
hätte ich darauf hingewiesen. Das ändert freilich nichts daran, dass ich
es der Vollständigkeit halber hätte erwähnen sollen, da geb ich dir
recht.
So, um vom "blabla" wegzukommen und deine Frage zu beantworten:
Die kleinst*mögliche* Pulsbreite RD#, WR#, CS# ist 25ns, also 40MHz -
ist aber zweitrangig, ich hab auch kein Problem damit, wenn ich
beispielsweise mit 10MHz auskommen müsste. Nur 10Hz wär mir dann doch zu
wenig grins
@google:
> Wofür brauchst Du so etwas, was bequem anders zu lösen ist?
Da du "bequem" nicht weiter spezifizierst gehe ich davon aus dass du
entweder "nimm den Controller im nächst größeren Gehäuse" oder "nimm
serielle Port Expander" (was ich explizit ausgeklammert habe) meinst.
Korrekt?
@Sebastian S.:
> I/O (RD#, WR#) ist schon ein Sonderwunsch.
Ich weiss, normal kann schließlich jeder :)
> Schau' doch mal nach dem guten alten Latch. Am besten mit 3-State-> Ausgängen.
Geht nicht, weil a) TriState nur fürs ganze Latch gilt und b) damit
keine Eingänge realisiert werden können.
@Frank:
> Microchip bietet I/O Expander an, kenne nur die die SPI/I2C können, nach> Parallelen Interface muss du dann mal gucken bei Microchip ;-)
Ich schau mal nach, aber ich denke dass Google es mir dann eigentlich
angezeigt hätte (vorausgesetzt meine Suchbegriffe waren richtig).
@hp-freund:
> Ich hatte mal mit einem 8243 zu tun. Kommt dem Wunsch schon etwas näher.
Ja, geht in die richtige Richtung. Für den Prog-Pin könnte evtl.
Adressleitung A0 herhalten. Ist aber eben mit 4-Bit Ports.
> Ansonsten die guten alten XC9500 ohne XL für 5V Logik.
Wäre wie eingangs erwähnt ein gangbarer Weg. Werden die noch gefertigt
oder sind die nur noch über Restbestände zu haben?
@A. K.:
> Abgesehen vom erwähnten 8255 haben die ollen Portbausteine m.W. alle> eine Art Taktanschluss. Ohne diesen verlieren sie etwas an Funktion,> z.B. bei Interrupts und irgendwelchen Port-Handshakes.
Soooo schlecht war der 8255 ja gar nicht =) Das Handshaking brauch ich
nicht.
> Vielleicht liessen sich 6520/6821 zur Funktion überreden, aber die sind> schon ziemlich aus der Mode gekommen. Kessler hat freilich noch.
Ich schau mir die Teilchen mal an.
>> Sebastian S. schrieb:>> Schau' doch mal nach dem guten alten Latch. Am besten mit 3-State-Ausgängen.> Mit 3-State kommt er nicht wirklich weiter, weil das immer für alle Bits> gilt. Der Sache näher käme er mit Open Collector Ausgängen, weil sich> die bitweise als Eingang nutzen lassen - der 8051 lässt grüssen.
Korrekt. Aber ich meine mal OpenCollector Latches gesehen zu
haben...hm... du bringst mich da auf eine Idee: wenn es auch Latches
gibt, welche High-Pegel und hochohmig für den Low-Pegel zulassen, wäre
das ein Plan C. Wären dann halt drei Chips pro Port.
@Irgendwer:
> Eventuell einen beliebigen µC mit genügend Pins.> 11 für Parallele Kommunikation, eventuell noch Takt, Reset und ISP. Der> Rest dann als frei Programmerbare I/O-Pins.> Wenn man sich die Firmware entsprechend Bastelt kann man damit sogar> einen 8255 virtuell nachbilden:-)
Genau, der eingangs erwähnte Plan B (neben CPLD). In dem Fall muss halt
die Busfrequenz runter.
@ethernet_fan:
> Nimm doch einfach ein CPLD von Altera, z.B. EPM7032SLC44 gibt es bei> aliexpress für 1 Euro / Stück> oder EPM7128SLC84 wenn du sehr viele I/O brauchst ... gibt es für 2 Euro> bei verschiedenen Aliexpress Verkäufern !!> Die Teile laufen noch mit 5 Volt und lassen sich sehr leicht anwenden.> Altera Quartus Software kostenlos und für ein paar Euro den USB Blaster> Clone dazu. Fertig ist die Zauberei
Ist wie gesagt ebenfalls ein gangbarer Weg und aufgrund der Timings dann
wohl auch der bevorzugte Weg. Ich muss mir das mal genauer anschauen.
Die Teile werden wohl auch noch gefertigt.
Ralf
michael_ schrieb:> Deinem Vorhaben kommt doch die Z-80 PIO am nächsten
Noch besser geeignet wäre das CIO Z8536, aber mit 48 Registern ist es
für den TO wohl auch viel zu kompliziert, nichts für Anfänger. Aber
vielseitige Konfigurierbarkeit und Primitivstbedienung lassen sich nun
mal nicht vereinbaren.
Georg
Guten Morgen,
@michael_:
> Deinem Vorhaben kommt doch die Z-80 PIO am nächsten.> Aber die ist dir ja zu kompliziert zu initialisieren.
Das habe ich nicht gesagt. Ich habe gesagt dass die Ansteuerung beknackt
ist. Weil ich nicht glaube dass die Z80-PIO direkt mit meinem Bus
kompatibel ist (habe ich aber ggw. noch nicht verifiziert).
@Georg:
> Noch besser geeignet wäre das CIO Z8536, aber mit 48 Registern ist es> für den TO wohl auch viel zu kompliziert, nichts für Anfänger. Aber> vielseitige Konfigurierbarkeit und Primitivstbedienung lassen sich nun> mal nicht vereinbaren.
Warum zu kompliziert? Es scheint hier ein Missverständnis zu geben: mit
beknackter Ansteuerung meinte ich nicht das Register-Handling oder die
Konfiguration, sondern den Anschluss an den Bus.
Den Z8536 schaue ich mir gleich mal genauer an.
@Abdul:
> Es gab die 8255 auch mal mit 5 Ports.
Oo Echt? Interessant, ich suche mal nach Datenblättern.
> Das sollte man auch lesen: ...
Gut zu wissen, danke.
Ralf
Ralf schrieb:> @Abdul:>> Es gab die 8255 auch mal mit 5 Ports.> Oo Echt? Interessant, ich suche mal nach Datenblättern.
Der heißt 82C255, ein 64-Pinner.