Hallo allerseits, was ist der einfachste Weg, aus einem 5-Bit-Signal einen Select-Signal zum Aktivieren eines SPI-Slaves zu generieren? Der Slave ist ein µC. Kann man das unkompliziert im Controller realisieren?? Danke schon mal!
>Wie wärs wenn du dafür einen Portpin nimmst?
Wie mit nur einem Portpin? Vielleicht habe ich nicht gut erklärt, was
ich genau brauche. Aus 5 digitalen Signalen soll bei einer bestimmten
Kombination (z.B. 01101) ein Select-Signal von 1 auf 0 gehen, bei allen
anderen Kombinationen (ungleich 01101) soll Select-Signal auf 1 bleiben.
Ich habe mir zwar gedacht, dass man die 5 Signale an 5 Pins einlesen
kann und dann das Select-Signal an einem weiteren Pin ausgeben, aber wie
mache ich das geschickt in der Software?
Gibt es vielleicht Decoder, die man für so etwas verwenden lassen?
wg schrieb:
> Gibt es vielleicht Decoder, die man für so etwas verwenden lassen?
Ne sowas hat vor dir noch nieeeeemals nie nicht jemand versucht ;)
Gib einfach mal bei Reichelt in die Suche 'Decoder' ein...
> Gibt es vielleicht Decoder, die man für so etwas verwenden lassen?
Binär-Decoder heißt das Stichwort, aber mit 5 Bits hast du immerhin 32
Möglichkeiten. Da wird eine diskrete Logik oder ein GAL sicher einfacher
sein...
Aber aufpassen:
du wirst Glitches auf deiner Slave-Select-Leitung haben :-o
Kommst du bzw. dein uC damit klar?
Lothar Miller schrieb: > Aber aufpassen: > du wirst Glitches auf deiner Slave-Select-Leitung haben :-o im Datenblatt des 74HC/HCT237 ist ein 6 zu 64 Decoder beschrieben mit LE da solte es doch eigentlich keine GLitches geben oder?
Hallo such mal nach 74688. Damit haben wir früher Adressen dekodiert. Kann 8Bit. 7485 könnte auch interessant sein.
>Ne sowas hat vor dir noch nieeeeemals nie nicht jemand versucht ;) >Gib einfach mal bei Reichelt in die Suche 'Decoder' ein... Nach Decodern habe ich ja schon gesucht, nur habe ich keine gefunden, die 5 Eingänge haben. Zum Beispiel die BCD-to-Decimal Decoder (1-of-10) haben 4 Eingänge und 10 Ausgänge. Ein Ausgang ließe sich als Select-Signal verwenden und die anderen 9 kann man vergessen. Das Problem ist nur, ich habe 5 Singale und nicht 4. Deswegen habe ich auch gefragt, ob ihr welche kennt, die passen würden. Eine weitere Einschränkung, ich hätte gerne was mit 3.3 V als Versorgungsspannung. >Da wird eine diskrete Logik oder ein GAL sicher einfacher >sein... Mit Logik brauche ich ja ein AND mit 5 Eingängen (ob es so was gibt) oder 2 ANDs mit insgesamt 6 Eingängen und dann dazu bis zu 5 Negierer. Ob das z.B. vom Platz her besser ist als ein Decoder, hm.... GAL ist CPLD oder? Ist ein CPLD nicht ein Overkill für so etwas? >du wirst Glitches auf deiner Slave-Select-Leitung haben :-o Decoder z.B. haben keine Glitches, oder?
Der 74HC138 hat 3 frei decodierbare Inputs und 3 fest definierte. Damit lassen sich die meisten Kombinationen abdecken.
>Problem ist nur, ich habe 5 Singale und nicht 4. Deswegen habe ich auch
das 5te an CS oder G oder OE oder...
>das 5te an CS oder G oder OE oder...
Das wäre ja fast ideal, Decoder mit vier Dateneingängen und einem
Enable, aber so etwas habe ich auch nicht gefunden.
wie wär's den mit einen einfachen Komparator 8Bit? z.B den 74682 oder 74866
>z.B den 74682 oder 74866
dazu habe ich nichts gefunden
74154: 1-aus-16 Dekoder .. mit AFAIR 2 Enables (1 High-Aktiv, 1 Low-Aktiv) ist allerdings 24pinnig..
> Eine weitere Einschränkung, ich hätte gerne was mit 3.3 V > als Versorgungsspannung. Ich glaube ja du solltest ein CPLD verwenden. Das hat genug ein und Ausgaenge, ist fuer 3.3V und du kannst deine Decodierung auch spaeter mal aendern. Und sollte sich in deiner Schaltung noch das ein oder andere Gatter befinden dann haust du es auch noch mit darein. Olaf
>wie wär's den mit einen einfachen Komparator 8Bit?
Dazu soll ja einer der Komparator-Ausgänge nur bei einer bestimmten
Kombination an seinen Eingängen LOW sein, bei anderen Kombinationen
HIGH. Die Komparatoren, die ich mir aber angesehen habe, liefern an den
Ausgängen nur das Ergebnis des Vergleichs von zwei zugehörigen
Eingängen. Ich sehe keine Möglichkeit der Verwendung in meinem Fall.
CMOS 4514, 74HC4514, sind aber ebenfalls DIP24 600mil. Müssen alle 32 Kombinationen möglich sein, oder gibt es bestimmte Pattern?
>> du wirst Glitches auf deiner Slave-Select-Leitung haben :-o > Decoder z.B. haben keine Glitches, oder? Doch, denn ein Decoder ist nur Kombinatorik. Und wenn z.B. die 5 Bit jetzt gerade 00000 sind und auf 11111 wechseln, dann tun sie das nicht gleichzeitig. Zudem müssen sie durch ein paar AND, NAND, NOR und was-weiß-ich Gatter durch, und kommen dann erst als 1 Signal am Ausgang heraus. Und solange nicht alle Strompfade durchlaufen sind und alles stabil ist, kann an diesem Ausgang einiges passieren. Läubi schrieb: > im Datenblatt des 74HC/HCT237 ist ein 6 zu 64 Decoder beschrieben mit LE > da solte es doch eigentlich keine GLitches geben oder? Doch, denn der Decoder (Kombinatorik) kommt nach dem Latch (Fig. 5)
Ist ein Glitch als SPI-SS überhaupt ein Problem? Den meisten Slaves sollte ein Glitch kurz auf Low egal sein, wenn zu diesem Zeitpunkt der Takt inaktiv ist.
> Ist ein Glitch als SPI-SS überhaupt ein Problem? Richtig, das war meine Frage ;-) >>>>> du wirst Glitches auf deiner Slave-Select-Leitung haben :-o >>>>> Kommst du bzw. dein uC damit klar?
Hallo wie ich oben schon schrieb 7485 und 74688 sind dafür mal entwickelt worden. Eine Seite deine 5 Bit daran andere Seite dein Bitmuster. Wenn gleich dann Signal.
Hallo, wg schrieb: >>wie wär's den mit einen einfachen Komparator 8Bit? > > Dazu soll ja einer der Komparator-Ausgänge nur bei einer bestimmten > Kombination an seinen Eingängen LOW sein, bei anderen Kombinationen > HIGH. Die Komparatoren, die ich mir aber angesehen habe, liefern an den > Ausgängen nur das Ergebnis des Vergleichs von zwei zugehörigen > Eingängen. Ich sehe keine Möglichkeit der Verwendung in meinem Fall. Du hast Dir aber das Datenblatt z.B. eines 74HC688 mal angeschaut? Der Ausgang geht auf L, wenn die Eingangsmuster an beiden 8Bit-Ports übereinstimmen. Ein Port nach Deinen wünschen verdrahten, am anderen Deine 5 Bit anlegen und fertig. Die überzähligen 3 Bit eben an beiden auf den gleichen Logikpegel legen. Ein 74HC138 hat einen H-aktiven Select und 2 L-aktive Selecteingänge und seine 3 Adressbits. Wenn also mindestens ein H und ein L in Deiner 5 Bitkombination vorkommen, geht der auch. Das kann doch nicht so schwer sein! Gruß aus Berlin Michael
>Eine Seite deine 5 Bit daran andere Seite dein Bitmuster. Wenn gleich >dann Signal. Aber die Ausgänge liefern jeweils den Vergleich an den zugehörigen Eingängen und sind unabhängig ob die Kombination an den anderen Eingängen passt oder nicht. Und in meinem Fall soll es nur bei einer ganz bestimmten Kombination den Select-Signal geben, darum lassen sich die Komparatoren nicht verwenden.
wg schrieb: > Aber die Ausgänge liefern jeweils den Vergleich an den zugehörigen > Eingängen und sind unabhängig ob die Kombination an den anderen > Eingängen passt oder nicht. Der '688 liefert genau und nur dann ein LOW am Ausgang, wenn alle Eingänge Pi den gleichen Pegel haben wie die zugehörigen Eingänge Qi (und G=low). Das sind nicht 8x 1-Bit Vergleicher, sondern 1x 8-Bit Vergleicher. Wenn das jumperbar sein soll, dann ist das der einfachste Weg, alle 32 möglichen Kombinationen abzudecken. Wenn das nicht das ist, was du suchst, dann solltest du nochmal vor vorne beschreiben was du eigentlich willst.
Hallo das ist falsch, es werden alle Bits verglichen. Ist genau für deine Anwendung gemacht. Genau genommen werden 2 4 bzw. 8 Bit Zahlen verglichen. Der Ausgang = kommt nur dann wenn die Zahlen gleich sind. Der 74688 wurde früher oft mit einem "Mäuseklavier" und einem R-Array für die Adressauswahl verwendet. Eine Seite Adressbus eines Prozessors andere Seite "Mäuseklavier" und schon kann man die Adresse einer Baugruppe einstellen.
Hallo, wg schrieb: >>Eine Seite deine 5 Bit daran andere Seite dein Bitmuster. Wenn gleich >>dann Signal. > > Aber die Ausgänge liefern jeweils den Vergleich an den zugehörigen > Eingängen und sind unabhängig ob die Kombination an den anderen > Eingängen passt oder nicht. Und in meinem Fall soll es nur bei einer > ganz bestimmten Kombination den Select-Signal geben, darum lassen sich > die Komparatoren nicht verwenden. Du hast also noch nie in das Datenblatt eines 74HC688 geschaut... Sonst wüßtest Du, daß der nur EINEN Ausgnag hat! Den haben ja nun schin mehrere Leute hier empfohlen. Was soll das also hier? Gruß aus Berlin Michael
karadur schrieb: > Der 74688 wurde früher oft mit einem "Mäuseklavier" und einem R-Array > für die Adressauswahl verwendet. Nur ist das Pinout dafür leider suboptimal. Weil eben nicht links/rechts, sondern hübsch abwechselnd.
Jezt habe ich endlich das Datenblatt gefunden, das ihr meint. Ich habe nach 74688 gesucht und nichts gefunden, dann habe ich mir unterschiedliche 8-Bit-Komparatoren angeschaut, die hatten aber alle 8 unabhängige Ausgänge. Jetz ist es ja klar. Was noch bleibt, gibt es diesen Baustein auch mit 3.3 V Versorgungsspannun? Der Controller läuft eben mit 3.3V.
Auf jeden Fall BESTEN DANK an alle Beteiligten!!!!!!!!
Man-o-man war das eine schwere Geburt. Wenn Du (wg) Deine Applikation preisgegeben hättest, wär vielleicht noch was ganz anderes herausgekommen. Ist aber irgendwie Methode bei den Fragestellern: Auf wahnsinnig kleinen Aufgabenstellungen rumreiten. Im Vergleich dazu wäre ein Tunnelblick ja schon fast Rundumsicht. Andere Leute hätten vielleicht eine ganz andere Sicht (Übersicht) auf das konkrete Problem. Da gäbs oftmals sicher elegantere Lösungen. Ich denk da nur an einen, der hat partout Tasten über 3 R, 1 C und einen Transistor an einen uC-Eingang anschließen wollen. Dieser TE war ja hochgradig beratungsresistent. Soll er die Schaltung halt verwirklichen. Aber das Problem war sicher ganz wo anders versteckt. Er wird es nie erfahren.
wg schrieb: > Jetz ist es ja klar. Was noch bleibt, gibt es diesen Baustein auch mit > 3.3 V Versorgungsspannun? Der Controller läuft eben mit 3.3V. 74HC geht ab 2V.
Hallo @ A.K. ist halt vor 30 Jahren entwickelt worden. Hat auf dem ECB-Bus gut funktioniert. Ich weiß ist Steinzeit. Tut aber noch. Ich vermute aber das du das sehr wohl weißt.
Ein 4-Fach NAND und 4-Fach AND hättens auch getan. Muss man nur ebend passend zusammenpuzzeln. Ist teilweise billiger als ein ´688
gast schrieb:
> Ein 4-Fach NAND und 4-Fach AND hättens auch getan.
Wie erkennst du damit beispielsweise addr=00000?
Nimmste halt ein 4 Fach NOR und nen Transistor als Inverter.
74HC688 mit einem Dip-Schalter ist wirklich genau das was ich brauche. NOCHMALS VIELEN DANK FÜR EURE HILFE!!!!
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.