Forum: Mikrocontroller und Digitale Elektronik PIO / Port Expander mit parallelem Interface gesucht


von Ralf (Gast)


Lesenswert?

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

von c-hater (Gast)


Lesenswert?

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...

von google (Gast)


Lesenswert?

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?

von Sebastian S. (amateur)


Lesenswert?

I/O (RD#, WR#) ist schon ein Sonderwunsch.

Schau' doch mal nach dem guten alten Latch. Am besten mit 
3-State-Ausgängen.

von Ursus P. (unwichtig)


Lesenswert?

Microchip bietet I/O Expander an, kenne nur die die SPI/I2C können, nach 
Parallelen Interface muss du dann mal gucken bei Microchip ;-)

Gute nacht

von hp-freund (Gast)


Lesenswert?

Ich hatte mal mit einem 8243 zu tun.
Kommt dem Wunsch schon etwas näher.

http://www.jameco.com/Jameco/Products/ProdDS/52581.pdf

An sonsten die guten alten XC9500 ohne XL für 5V Logik.

von (prx) A. K. (prx)


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

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.

von Irgendwer (Gast)


Lesenswert?

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:-)

von ethernet_fan (Gast)


Lesenswert?

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

von Ralf (Gast)


Lesenswert?

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

von michael_ (Gast)


Lesenswert?

Deinem Vorhaben kommt doch die Z-80 PIO am nächsten.
Aber die ist dir ja zu kompliziert zu initialisieren.

von Georg (Gast)


Lesenswert?

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

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Es gab die 8255 auch mal mit 5 Ports.

Das sollte man auch lesen:
https://www.altera.com/zh_CN/pdfs/literature/hb/nios2/n2cpu_nii51007.pdf

von Ralf (Gast)


Lesenswert?

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

von Nonsens (Gast)


Lesenswert?

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.

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
Noch kein Account? Hier anmelden.