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