Forum: Mikrocontroller und Digitale Elektronik Wie am einfachsten Chip-Select-Logik realisieren??


von wg (Gast)


Lesenswert?

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!

von Christian (Gast)


Lesenswert?

Wie wärs wenn du dafür einen Portpin nimmst?

von wg (Gast)


Lesenswert?

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

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

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?

von karadur (Gast)


Lesenswert?

Hallo

such mal nach 74688. Damit haben wir früher Adressen dekodiert. Kann 
8Bit.

7485 könnte auch interessant sein.

von wg (Gast)


Lesenswert?

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

von (prx) A. K. (prx)


Lesenswert?

Der 74HC138 hat 3 frei decodierbare Inputs und 3 fest definierte. Damit 
lassen sich die meisten Kombinationen abdecken.

von eumel (Gast)


Lesenswert?

>Problem ist nur, ich habe 5 Singale und nicht 4. Deswegen habe ich auch
das 5te an CS oder G oder OE oder...

von wg (Gast)


Lesenswert?

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

von Tom E. (tkon)


Lesenswert?

wie wär's den mit einen einfachen Komparator 8Bit?
z.B den 74682 oder 74866

von wg (Gast)


Lesenswert?

>z.B den 74682 oder 74866

dazu habe ich nichts gefunden

von Christian Erker (Gast)


Lesenswert?

74154: 1-aus-16 Dekoder .. mit AFAIR 2 Enables (1 High-Aktiv, 1 
Low-Aktiv)
ist allerdings 24pinnig..

von Olaf (Gast)


Lesenswert?

> 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

von wg (Gast)


Lesenswert?

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

von (prx) A. K. (prx)


Lesenswert?

CMOS 4514, 74HC4514, sind aber ebenfalls DIP24 600mil.

Müssen alle 32 Kombinationen möglich sein, oder gibt es bestimmte 
Pattern?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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

von (prx) A. K. (prx)


Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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

von karadur (Gast)


Lesenswert?

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.

von Michael U. (amiga)


Lesenswert?

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

von wg (Gast)


Lesenswert?

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

von (prx) A. K. (prx)


Lesenswert?

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.

von karadur (Gast)


Lesenswert?

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.

von Michael U. (amiga)


Lesenswert?

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

von (prx) A. K. (prx)


Lesenswert?

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.

von wg (Gast)


Lesenswert?

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.

von wg (Gast)


Lesenswert?

Auf jeden Fall BESTEN DANK an alle Beteiligten!!!!!!!!

von kurz (Gast)


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

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.

von karadur (Gast)


Lesenswert?

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.

von gast (Gast)


Lesenswert?

Ein 4-Fach NAND und 4-Fach AND hättens auch getan.
Muss man nur ebend passend zusammenpuzzeln.
Ist teilweise billiger als ein ´688

von (prx) A. K. (prx)


Lesenswert?

gast schrieb:

> Ein 4-Fach NAND und 4-Fach AND hättens auch getan.

Wie erkennst du damit beispielsweise addr=00000?

von gast (Gast)


Lesenswert?

Nimmste halt ein 4 Fach NOR und nen Transistor als Inverter.

von wg (Gast)


Lesenswert?

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