Mehrfach-UND IC gesucht

Gast #3645186
Lesenswert?

Hallo,
ich suche einen "speziellen" IC. Eigentlich brauche ich acht und-Gatter, 
wobei ein Pin jeweils einen Eingang von allen unds schaltet. Oder anders 
ausgedrückt einen 8-Bit Leitungstreiber mit einem gemeinsamen Strobe. 
Dabei sollen die Ausgänge nicht hochohmig werden, sondern nur auf 0 
gehen.
Hintergrund ist eine SPI Matrixsteuerung. Die SPI-Slaves haben keinen 
Chipselect und der Hersteller schlägt vor, die Daten- und die 
Clockleitung, zu multiplexen. D.h. es wird immer nur der Slave aktiv 
gesteuert, der sowohl Daten, als auch Clock anliegen hat. Ich möchte nun 
eine normale SPI-Schnittstelle am MC verwenden und einige GPOs, um die 
Slaves auszuwählen. 3zu8 Decoder oder so möchte ich nicht nehmen, da ich 
auch z.B. alle Slaves gleichzeitig steuern möchte.
Ich suche also nur einen Baustein, um die GPOs und die Clock/Daten zu 
verheiraten.
Bisher habe ich es mit normalen 7408 versucht, aber die sind ziemlich 
blöd zu layouten für Busse und ich muss dann auch mit einem Ausgang 
wieder acht Gatter besaften...

Danke euch.
Gast #3645204
Lesenswert?

Karl schrieb:

> Oder anders
> ausgedrückt einen 8-Bit Leitungstreiber mit einem gemeinsamen Strobe.
> Dabei sollen die Ausgänge nicht hochohmig werden, sondern nur auf 0
> gehen.

Mir fielen spontan sowas wie 74HC245, 74HC541, oder 74HC573 und 74HC574 
ein. Manche kann man am Ausgang hochohmig schalten, vielleicht hilft da 
ein Pulldown-Widerstandsarray mit 8 Widerständen.

Aber die Bausteinserien 4000 und 7400 haben auch noch weitere.
Gast #3645251
Lesenswert?

Einen GAL16V8 gibt es wohl nicht mehr, klar könnte ich das mit einem 
CPLD oder FPGA machen, es geht aber doch darum die Dinge zu vereinfachen 
und nicht noch komplizierter zu machen.

Ein Multiplexer fällt unter die "3zu8 oder so" Kategorie wo ich nicht 
alle Leitungen durchschalten kann.

74HC245 und die ganzen anderen Konsorten aus der Reihe sind sind ja 
eigentlich alle Leitungstreiber mit Tristate, die normalerweise den 
Nachteil haben, dass der EN Eingang negativ ist. Dieser EN wäre ja aber 
genau mein Daten-Eingang.
Der einzige solche Typ, mit dem ich bis jetzt halbwegs konform bin ist 
der 74HC623, weil der in eine Busrichtung einen positiven Enable hat, 
aber ich finde die benötigten Pulldowns nicht so toll. Deswegen suche 
ich nach einer besseren Lösung.

Es gab vor 1000 Jahren mal einen 4502, der wäre schon ganz gut, ist aber 
1. schon lange nicht mehr erhältlich und wäre 2. auch viel zu langsam 
gewesen.
#3645264
Lesenswert?

Wenn der inaktive Pegel H sein darf, dann tuts ein popeliger 1-auf-8 
Demultiplexer (aka 3-zu-8 Decoder) wie z.B. 74x138. Das durchzu- 
schaltende Signal geht dann an einen der beiden invertierenden 
Freigabeeingänge. Alternativ ein 8-auf-1 Analogmultiplexer wie 
(CD|74HC)4051 und Pulldown-Widerstände.


XL
Gast #3645305
Lesenswert?

Acht Einzelgatter habe ich momentan in der Schaltung, aber genau das 
Boardrouting und die Treiberlast sind da die Hindernisse. Ich layoute an 
dem Part jetzt schon seit über einem Tag und werde einfach nicht 
glücklich damit.
Gast #3645384
Lesenswert?

Karl schrieb:
> Es gab vor 1000 Jahren mal einen 4502, der wäre schon ganz gut, ist aber
> 1. schon lange nicht mehr erhältlich

www.ebay.de/sch/i.html?_nkw=4502+ic&_sacat=0&_from=R40

Amateur schrieb:
> Gibt's den xx688 eingentlich noch? Der ist zwar relativ groß, sollte
> aber funktionieren. So Du die vergleichseingänge auf high legst.

http://www.ebay.de/sch/i.html?_nkw=74ls688&_sacat=0&_from=R40
http://www.ebay.de/sch/i.html?_nkw=74hc688&_sacat=0&_from=R40
#3645529
Lesenswert?

Max H. schrieb:
> Axel Schwenke schrieb:
>> Wenn der inaktive Pegel H sein darf, dann tuts ein popeliger 1-auf-8
>> Demultiplexer (aka 3-zu-8 Decoder) wie z.B. 74x138
>
> Karl schrieb:
>> 3zu8 Decoder oder so möchte ich nicht nehmen, da ich
>> auch z.B. alle Slaves gleichzeitig steuern möchte.

Hmm. Das hab ich wohl überlesen. In dem Falle kann es doch gar keine 
andere Lösung geben, als 8 Einzelgatter. Dinosaurier-Technik a'la 
PAL/GAL wurde schon genannt (und nicht gemocht). Ich frage mich ja, wie 
wichtig es ist, auch mehrere Slaves parallel ansteuern zu können. Denn 
eigentlich will man das mit SPI gar nicht, weil das in Verbindung mit 
dem Rückkanal eine Punkt-zu-Punkt Verbindung ist.


XL
Gast #3645703
Lesenswert?

Eigentlich würde ich dir da auch Recht geben, aber in diesem Fall gibt 
es keinen MISO, es geht nur in eine Richtung und alle zusammen oder 
einzelne Gruppen zusammen (so wie es die Matrix halt erlaubt) dient zum 
Reset und um sich bei ein paar Befehlen das ein oder andere Byte zu 
sparen.

Der günstigste CPLD kostet ungefähr das, was auch die entsprechenden 
Einzelgatter in Summe kosten würden und ich gewinne dadurch noch etwas 
Flexibilität, habe aber auch wieder mehr Programmieraufwand.
Für mich ist das nur persönlich ein größerer Schritt, da ich noch nie 
mit CPLDs gearbeitet habe (ist auch kein Hexenwerk, klar, aber wieder 
eine Baustelle mehr wo es eigentlich weniger werden sollten).

Gibt es da irgendwelche Empfehlungen für einen CPLD, der z.B. besonders 
gut mit suboptimalen 4MHz Signalen nach 30cm Flachbandkabel zurecht 
kommt?
Gast #3645733
Lesenswert?

Karl schrieb:
> Gibt es da irgendwelche Empfehlungen für einen CPLD

Kleine CPLD kosten ca. 2 EUR, hier zwei Eval-Boards:

XC9572XL 5V (wird es aber nicht mehr lange geben):
http://www.watterott.com/de/XC9572XL-CPLD-development-board

XC2C64A 3.3V:
http://www.exp-tech.de/Hacking---Measurement/CoolRunner-II-CPLD.html?XTCsid=737c144b0f60233313acb4e4a6c2959c

Allerdings muss das CPLD ja geflasht werden. Dazu kann man einen uC mit 
SPI nehmen, es gibt Firmware für ARM, AVR, PIC oder was Fertiges nehmen:
http://www.exp-tech.de/Hacking---Measurement/Bus-Pirate-SparkFun-Version.html
#3645905
Lesenswert?

Karl schrieb:
> der Hersteller schlägt vor, die Daten- und die
> Clockleitung, zu multiplexen.

Warum die Daten?
Ohne Takt werden keine Daten übernommen.

Karl schrieb:
> 3zu8 Decoder oder so möchte ich nicht nehmen, da ich
> auch z.B. alle Slaves gleichzeitig steuern möchte.

Dann prüfe erstmal, wie groß die CPU-Last überhaupt ist.
Ein nacheinander Beschreiben sollte keine merkbar zu hohe Last 
darstellen.
Gast #3646054
Lesenswert?

Peter Dannegger schrieb:
> Warum die Daten?
> Ohne Takt werden keine Daten übernommen.

Na der Takt in die Spalten und die Daten in die Zeilen. Es reagiert nur 
der Baustein, an dem sowohl Daten, als auch Takt anliegen.

Das mit der gleichzeitigen Ansteuerung liegt weniger an der erzeugten 
CPU Last, sondern eher an der dann gleichzeitigen Ausführung eines 
Befehls.
Gast #3646304
Lesenswert?

Karl schrieb:
> Thomas R. schrieb:
> wozu cpld? den atf16v8 und atf22v10 gibts neu von Atmel
>
> Weil ein einfacher CPLD einen GAL oder PAL nicht nur mehr als ersetzen
> kann, sondern auch noch günstiger ist. Den 5M40 von Altera gibt es für
> unter unter 1€.

Wir kennen Dein Projekt nicht. Ist es kommerziell, so daß es auf solche 
Preisdifferenzen ankommt? Wenn ja, eher CPLD.

Außerdem hast Du weiter oben geschrieben, daß Du von CPLDs (noch) keine 
Ahnung hast und dieses Hürde eigentlich etwas scheust. Wie sieht es mit 
GALs aus? Hast Du damit Erfahrung? Wenn nein, lieber gleich CPLDs 
lernen.

Wenn es dagegen ein Einzelstück, Hobbyprojekt oder Kleinstserie werden 
soll, dann könnte auch die Bauform eine Rolle spielen. Die GALs kriegst 
Du auch als DIL, den Altera nicht. Und deshalb kannst Du so ein GAL ohne 
Adapter in jeden besseren Universalprogrammer stopfen, in den GALEP zum 
Beispiel. Der heißt ja schon so, wie lustig :-)
Gast #3646450
Lesenswert?

>Eigentlich brauche ich acht und-Gatter,
>wobei ein Pin jeweils einen Eingang von allen unds schaltet.
.....
>die Daten- und die Clockleitung, zu multiplexen.......

Nimm einfach 2x '138 oder '238 (oder 1x '139), um Clk u Data von 1 aus 
8(4) auszuwählen. kostet 0,20eu.
(MUXs sind ja höher in Dichte als reine Gatter,
und wegen dem Bisschen wäre GAL/PLD völlig überflüssig)
#3646454
Lesenswert?

Wenn ich alles richtig verstanden habe hast du einen SPI-Master und 4 
SPI-Slaves, die du einzeln oder in Gruppen ansteuern willst.

Wie schon vorgeschlagen würde ich ein CPLD nehmen. Wenn du das aber 
unbedingt vermeiden willst kannst du auch zum Durchschalten der beiden 
Leitungen zu den 4 Slaves Analog Schalter (2*4066  oder was 
neueres/besseres) nehmen. Brauchst dann halt 4 Ausgänge an deinem MC zum 
Ansteuern.
#3646455
Lesenswert?

MCUA schrieb:
> Nimm einfach 2x '138 oder '238 (oder 1x '139), um Clk u Data von 1 aus
> 8(4) auszuwählen. kostet 0,20eu.
Lies den eröffnungspost ganz:

Karl schrieb:
> 3zu8 Decoder oder so möchte ich nicht nehmen, da ich
> auch z.B. alle Slaves gleichzeitig steuern möchte.

Karl schrieb:
> Acht Einzelgatter habe ich momentan in der Schaltung, aber genau das
> Boardrouting und die Treiberlast sind da die Hindernisse. Ich layoute an
> dem Part jetzt schon seit über einem Tag und werde einfach nicht
> glücklich damit.
Hast du es mit diesen Einzelgattern versucht: 74V1G08STR
Gast #3646472
Lesenswert?

> 3zu8 Decoder oder so möchte ich nicht nehmen, da ich
> auch z.B. alle Slaves gleichzeitig steuern möchte.
hab ich gelesen.
die Slaves alle par zu steuern würd ich, wegen evtl Probleme, Nicht 
machen.
(und wenns so simple ist, dass er die immer par steuern will/kann, 
braucht er keine Gatter dazwischen)
Gast #3646547
Lesenswert?

>an dem sowohl Daten, als auch Takt anliegen.

Wie sieht das aus, wenn keine Daten anliegen 0 oder 1 oder was?
Keine Daten gibts auf jeden Fall nicht. Da stimmt an Deiner Überlegung 
oder Formulierung was nicht.
Gast #3646762
Lesenswert?

>Er will sie einzeln oder gemeinsam ansteuern können...
oder er weiss es selbst nicht genau

>Vielleicht wärs mal an der Zeit, endlich diesen super geheimen Chip zu
>nennen,
den "Spalten-Zeilen-Tabellen-Chip"
Gast #3648502
Lesenswert?

Es handelt sich um "supergeheime" Displays, jedoch 50 Stück. Die Dinger 
haben, wie ich schon schrieb, kein CS. Mit keine Daten meine ich einen 
dauerhaften 0-Pegel. Wenn ein Slave nur Clock erhält und keine Daten 
(dauerhaft 0) reagiert er nicht, ebenso wenn er Daten erhält und keine 
Clock. Das ganze ist kein Hobbyprojekt, aber auch keine Großserie. 
Ebay-Lösungen scheiden jedenfalls aus. Es geht mir nicht vorrangig um 
die billigste Lösung, sondern um die günstigste. Das ganze Gerät enthält 
natürlich noch andere Schaltungsteile und da macht es dann schon einen 
Unterschied, ob ich hier mal ein GAL und dort ein paar Gatter usw. 
verwende, oder gleich einen Rutsch CPLDS.
Ich habe mich somit mit großer Wahrscheinlichkeit für CPLDs entschieden. 
Vielen Dank für alle eure Hinweise.
Gast #3648677
Lesenswert?

>Mit keine Daten meine ich einen dauerhaften 0-Pegel.


Konsequent gedacht heißt das aber, daß man nur 1-Pegel als Daten hat, 
Daten mit 0-Pegel existiren ja nicht. Also kann man nur 1-Pegel 
schreiben.
Hast Du das wirklich richtig verstanden und wiedergegeben?
Gast #3648766
Lesenswert?

Das Thema mit der Matrix scheint ja hier für Verwirrung zu sorgen.
SPI ist eine synchrone Datenübertragung, immer bei einer (in meinem Fall 
steigenden) Flanke der Clock wird ein Bit von der Datenleitung 
eingelesen. Also wie ein Schieberegister. Liegt an einem Baustein die 
Clockleitung dauerhaft auf 0, werden keine Daten eingelesen, auch wenn 
ich sie auf der Datenleitung anliegen habe. Der Baustein reagiert also 
nicht. Liegt die Datenleitung dauerhaft auf 0 und die Clock kommt an, 
dann werden ständig 00-Bytes eingelesen. Genau dieser Befehl ist in 
diesem speziellen Baustein als NOOP definiert. D.h. darauf reagiert der 
Baustein ebenfalls nicht. Ein Display reagiert nur wenn es einen 
gültigen Befehl erhält und dazu benötigt es einen Takt und mindestens 
ein von 0 verschiedenes Datenbit.

Peter Dannegger schrieb:
> Also reicht es doch, nur eine Leitung zu toren. Das halbiert schonmal
> den Aufwand.

Um mir eine Matrix zu bauen, könnte ich jetzt natürlich z.B. die Daten 
an alle Bausteine anschließen und dann den Takt an alle Bausteine führen 
und dann mit einer Matrix-Leitungsanordnung dort multiplizieren (3-fach 
UND), aber das wäre in Summe doch ein sehr großer Aufwand. Ich bräuchte 
ein Gatter für jedes Display.
Die Matrix-Anordnung funktioniert so, dass z.B. die Taktleitungen in 
Zeilen angeordnet sind und die Datenleitungen in Spalten. Mit den UNDs 
kann ich jede Takt- oder Datenleitung gaten. An jedem Kreuzungspunkt 
sitzt ein SPI Slave. Wie jetzt schon mehrfach beschrieben reagiert der 
Slave dann nur, wenn die beiden Leitungen, an denen er sitzt 
gleichzeitig aktiv durchgeschaltet sind und somit Clock, bzw. Daten 
führen. Alle anderen Slaves in der gleichen Spalte bekommen nur Daten 
und alle anderen Slaves in der gleichen Zeile bekommen nur Takt und alle 
übrigen Slaves bekommen weder Daten, noch Takt.

Somit brauche ich ein Gatter pro Matrix-Leitung, d.h. bei einer 8x8 
Matrix z.B. 16 Gatter mit denen ich maximal 64 Kreuzungspunkte ansteuern 
kann.
Gast #3648863
Lesenswert?

Karl schrieb:
> Ich habe mich somit mit großer Wahrscheinlichkeit für CPLDs entschieden.

Die genannten XC9572XL 5V oder XC2C64A 3.3V gibt es auch in entsprechend 
größeren Packages z.B. LQFP144 sollte also kein Problem sein. Trotzdem 
kann man vorab für einen Programmier-Test das Evalboard mit LQFP44 
nehmen.
Gast #3648956
Lesenswert?

>Wenn ein Slave nur Clock erhält und keine Daten
>(dauerhaft 0) reagiert er nicht, ebenso wenn er Daten erhält und keine
>Clock.
Unsinn.
Ein Slave erhält immer irgentwas an Daten.
Massgeblich ist (nur) der Clock.
Man braucht also (wenn man nicht alles parall. beschicken will) NIX 
anderes zu machen, als den Clk umzuschalten/verteilen.
Dafür ist ein PLD völlig überflüssig.

>Hast Du das wirklich richtig verstanden und wiedergegeben?
Nein, hat er nicht.

>Das Thema mit der Matrix scheint ja hier für Verwirrung zu sorgen.
Ja, aber nur bei dir.
Persönliche Seite #3649076
Lesenswert?

Ich werfe mal einen ADG714 in die Runde (per SPI steuerbarer 
8x-Analogswitch, es gibt bestimmt auch noch andere). Davon kannst du je 
einen Ausgang an den CLK-Eingang deiner Devices setzen, und die Auswahl 
der SPI-Devices geht dann ganz bequem per SPI.

Du musst nur prüfen, ob die Adressierung des ADG714 und deiner Slaves 
sich ggf. ins Gehege kommen kann. Der ADG hat nämlich auch keinen /CS, 
so weit ich sehe.

Max

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren