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.
Wenn man ihn findet würde die ein 74HCT4068 helfen. Ist aber ein NAND Ach Mist du willst ja was ganz anders, falsch gelesen. :( Aber mit einem GAL16V8 würde sowas gehen.
:
Bearbeitet durch User
Karl schrieb: > Hintergrund ist eine SPI Matrixsteuerung. Die SPI-Slaves haben keinen > Chipselect und der Hersteller schlägt vor, die Daten- und die > Clockleitung, zu multiplexen. Wieso nimmst du keinen Multiplexer(z.B.CD40?BE)?
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.
Jürgen D. schrieb: > Wenn man ihn findet würde die ein 74HCT4068 helfen. Ist aber ein NAND Ist dank komplementären Ausgängen AND und NAND, ist aber nicht das, was er sucht. Er sucht 8x 2-Input AND-Gates mit einem gemeinsamem Eingang.
:
Bearbeitet durch User
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.
Einen Tiny brennen, der genug Füße hat... Bit-Logik auf Bytebreite geht doch fix über den Chip, bei maximalem Takt und wenn er sonst nix zu tun hat. Welche Bandbreite wird denn gebraucht?
Karl schrieb: > Einen GAL16V8 gibt es wohl nicht mehr, Von Lattice nicht mehr, aber von anderen Herstellern. > und nicht noch komplizierter zu machen. Du machst es dir komplizierter indem du GALs nicht verwenden willst.
Simpel schrieb: > Einen Tiny brennen, der genug Füße hat... Bit-Logik auf Bytebreite geht > doch fix über den Chip Auch schneller wie durch einen 4500er CMOS 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 und wäre 2. auch viel zu langsam > gewesen.
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
:
Bearbeitet durch User
Gibt's den xx688 eingentlich noch? Der ist zwar relativ groß, sollte aber funktionieren. So Du die vergleichseingänge auf high legst.
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. Für inaktiv Low würde es den 74HC238 geben.
Was spräche (außer der Treiberlast) dagegen, 8 Einzelgatter zu nehmen? Das ist meistens vom Boardrouting her einfacher zu handhaben.
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.
@ Karl (Gast) >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. Dann machst du was falsch.
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
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
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?
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
Warum denn eigentlich kein GAL? Das müsste doch locker in einen 22V10 oder sogar 16V8 hineinpassen, oder nicht? Karl schrieb: > Einen GAL16V8 gibt es wohl nicht mehr Doch, die Bucht läuft über ;-) http://www.ebay.de/sch/Business-Industrie-/12576/i.html?_from=R40&_nkw=16V8
wozu cpld? den atf16v8 und atf22v10 gibts neu von Atmel, dk hat mehr als 4k stk. davon am lager.
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.
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.
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€.
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 :-)
Thomas R. schrieb: > wozu cpld? den atf16v8 und atf22v10 gibts neu von Atmel, dk hat mehr als > 4k stk. davon am lager. Das sind CPLDs die nach aussen ein PAL emulieren.
>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)
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.
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
:
Bearbeitet durch User
MCUA schrieb: > und wegen dem Bisschen wäre GAL/PLD völlig überflüssig) Nicht, wenn man sie (wie ich) noch herum liegen hat und (wie Karl) beim Routen Platzprobleme kriegt.
> 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)
Galdrian schrieb: > wie Karl) beim Routen Platzprobleme kriegt. Da verstehe ich nur nicht: 8 Einzelgatter lassen sich doch allemal viel einfacher routen als ein CPLD, welches all die Funktionen in sich vereint.
MCUA schrieb: > die Slaves alle par zu steuern würd ich, wegen evtl Probleme, Nicht > machen. Er will sie aber parallel ansteuern, dann ist es egal was du machen würdest. > (und wenns so simple ist, dass er die immer par steuern will/kann, > braucht er keine Gatter dazwischen Er will sie einzeln oder gemeinsam ansteuern können...
:
Bearbeitet durch User
Karl schrieb: > 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. ??? Vielleicht wärs mal an der Zeit, endlich diesen super geheimen Chip zu nennen, der so ne komische Ansteuerung hat.
>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.
>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"
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.
Karl schrieb: > Wenn ein Slave nur Clock erhält und keine Daten > (dauerhaft 0) reagiert er nicht, ebenso wenn er Daten erhält und keine > Clock Also reicht es doch, nur eine Leitung zu toren. Das halbiert schonmal den Aufwand.
>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?
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.
Ich rate mal, der geheime IC ist ein MM5450. Da wird in der Tat mit einem Startbit = 1 der Chip selektiert.
Karl schrieb: > Es handelt sich um "supergeheime" Displays, jedoch 50 Stück. Karl schrieb: > 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. Daß es eine so große Anzahl ist, hat wohl keiner vermutet. Da ist dann die Matrixverschaltung sparsamer.
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.
>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.
MCUA schrieb: > Nein, hat er nicht. Zumindest kann er sich besser ausdrücken als du offenbar lesen kannst.
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
>Zumindest kann er sich besser ausdrücken als du offenbar lesen kannst.
blabla
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.