Forum: Mikrocontroller und Digitale Elektronik Digitale Weiche gesucht!


von Christian J. (Gast)


Lesenswert?

Hallo,

ich suche so etwas wie eine digitale Weiche (74er?) für folgendes 
problem:

Ich möchte die SPI eines Atmegas abwechselt einem Display oder einem 433 
Mhz Funkmoul zur Verfügung stellen. Dazu müsste das Signal OUT wie mit 
einem Wechsler Relais umgeschaltet werden auf Display oder RF Modul und 
das IN Signal genau umgekehrt.

Gibt es da etwas aus der 74er Reihe oder ähnliches? Möchte jetzt keine 
Basis Gatter verschalten, da ich nur 1 IC verwenden möchte.

Grüße,
Christian

von TheAarauer (Gast)


Lesenswert?

Hoi,

wie wäre es den CS Pin zu benutzen? Dieser sollte dein Problem lösen.

Ciao

von Christian J. (Gast)


Lesenswert?

Ich suche aber einen digitalen Umschalter, da es keinen
Select Pin gibt......

von Markus -. (mrmccrash)


Lesenswert?

dann bau dir mit einem 74hc244 deinen eigenen select pin... (der chip 
ist ein 8-fach buffer mit enable eingang)

_.-=: MFG :=-._

von Ulrich H. (lurchi)


Lesenswert?

Als eine Art Relais-ersatz gibt es die 4066 , 4053 und ähnliche CMOS 
Schalter, auch als 74HC40xx.
Man braucht dazu dann ggf. noch einen Pull-Up / Pull-down weil man ggf. 
offenen Pins hat.

von Christian J. (Gast)


Lesenswert?

Yep, danke für den Tip! Gib es aber sowas überhaupt? Kommt ja wohl öfter 
vor, dass Daten aufgeteilt werden müssen... ich finde nur normale Anlog 
Schalter.

von Christian J. (Gast)


Lesenswert?

Ulrich H. schrieb:
> Als eine Art Relais-ersatz gibt es die 4066 , 4053 und ähnliche CMOS
> Schalter, auch als 74HC40xx.
> Man braucht dazu dann ggf. noch einen Pull-Up / Pull-down weil man ggf.
> offenen Pins hat.

Habe grad die Datenblätter offen.  Sind aber alles nur Schalter, die 
einen Eingang und einen Ausgang haben, aber eben kein "Wechsler - 
Relais"

von MaWin (Gast)


Lesenswert?

Christian J. schrieb:
> Gibt es da etwas aus der 74er Reihe oder ähnliches? Möchte jetzt keine
> Basis Gatter verschalten, da ich nur 1 IC verwenden möchte.

Obwohl die Signale pro Leitung unidirektional sind, ist die 
unterschiedliche Richtung ein Problem für herkömmliche 74xx, da gibt es 
nur mehrere Datenselektoren oder Datenmultiplexer in einem IC. Du 
müsstest eigentlich nur SCLK aufteilen.  Daher passt nur das CD4053, 
obwohl der überflüssigerweise bidirektional und sogar analog ist.

von Christian J. (Gast)


Lesenswert?

Hallo Mawin,

daran habe ich auch schon gedacht aber diese Analog Schalter sind die 
einzigen, die Datenrichtung keine Rolle spielt. Grundsätzlich ist es 
nicht schwer aus NAND, NOT oder NOR Gattern etwas aufzubauen, wo zb ein 
Eingang eines NAND als "Enable" verwendet wird und der andere die Daten 
führt.

Ich werde es jetzt so machen wie vorgeschlagen, dass ich nur den Clock 
aufteilen werde und die Datenleitungen immer vor die Türen der Geräte 
hämmern, auch wenn diese grad nicht gemeint sind.

Grüße,
Christian

von Easylife (Gast)


Lesenswert?

MaWin schrieb:
> Obwohl die Signale pro Leitung unidirektional sind, ist die
> unterschiedliche Richtung

Es gibt bei SPI nur unidirektionale Signale (CLK, MISO und MOSI gehen 
jeweils in eine Richtung).
Normale, tri-state buffer tun es also.
Den Enable-Eingang von einem von zwei buffern versorgt man mit 
invertierter CS_N, und schon hat man einen preisgünstigen Umschalter.

Ich frage mich allerdings, wie ein SPI slave ohne CS_N auskommen soll... 
Dient ja auch zur Abgrenzung der Datenworte...

von Anton (Gast)


Lesenswert?

Das geht auch mit Schottky-Dioden und ein Wiederstand !

von Werner (Gast)


Lesenswert?

Anton schrieb:
> Das geht auch mit ... und ein Wiederstand !

Damit bestimmt nicht.

p.s. Du plenkst

von Rufus Τ. F. (rufus) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ein '244 und ein einzelner Inverter sollte ausreichen.

Der '244 besteht aus zwei Gruppen à vier Tristate-Treiber, die mit je 
einem lowaktiven /G-Signal gesteuert werden können. Diese Gruppen nenne 
ich im folgenden Treibergruppen.

Im Anhang ein Bild der Innenbeschaltung.

Die Treibergruppen werden dort als 1 und 2 bezeichnet, Treibergruppe 1 
besteht aus den vier Treibern 1A1-zu-1Y1 bis 1A4-zu-1Y4 und wird mit /1G 
gesteuert.

Treibergruppe 2 besteht entsprechend aus den Treibern 2A1-zu-2Y1 bis 
2A4-zu-2Y4 und wird mit /2G gesteuert.

Die vom µC erzeugten SPI-Signale (SPI_CLK und SPI_DATA_OUT) werden 
jeweils an zwei Eingänge des '244 angeschlossen, die in den zwei 
verschiedenen Treibergruppen liegen:

SPI_CLK des µC an 1A1 und 2A1
SPI_DATA_OUT des µC an 1A2 und 2A2


Die korrespondierenden Ausgänge der einen Treibergruppe werden mit dem 
Display, die der anderen Treibergruppe mit dem Funkmodul verbunden.

1Y1 an SPI_CLK des Displays
1Y2 an SPI_DATA_IN des Displays

2Y1 an SPI_CLK des Funkmoduls
2Y2 an SPI_DATA_IN des Funkmoduls

Der SPI-Eingang des µCs wird parallel mit je einem Ausgang der beiden 
Treibergruppen des '244 verbunden:

1Y3 und 2Y3 an SPI_DATA_IN des µC

... die korrespondierenden Eingänge werden je nach Treibergruppe mit 
Display und Funkmodul verbunden:

SPI_DATA_OUT des Displays an 1A3
SPI_DATA_OUT des Funkmoduls an 2A3

Als Steuersignal defineren wir ein Signal namens "SPI_SWITCH", das der 
µC auf irgendeinem I/O-Pin ausgeben muss. Das wird mit /1G und über den 
einzelnen Inverter mit /2G verbunden.


Somit ist bei SPI_SWITCH = 0 das Display mit dem µC verbunden und bei 
SPI_SWITCH = 1 das Funkmodul.

von spontan (Gast)


Lesenswert?

>Ich werde es jetzt so machen wie vorgeschlagen, dass ich nur den Clock
>aufteilen werde und die Datenleitungen immer vor die Türen der Geräte
>hämmern, auch wenn diese grad nicht gemeint sind.


Ich hoffe für dich, die Clock-EIngänge gehen durch das "Gehämmere" nicht 
kaputt.

Man-o-man

von Udo N. (weinbauer73)


Lesenswert?

Wie wäre es einfach einen 74xx138 oder ähnlich zu nehmen, um den 
SS-Eingang der Slaves zu bedienen?

von Helmut L. (helmi1)


Lesenswert?


von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Udo Neist schrieb:
> um den
> SS-Eingang der Slaves zu bedienen?

Die sollen keinen haben:

Christian J. schrieb:
> Ich suche aber einen digitalen Umschalter, da es keinen
> Select Pin gibt

von Easylife (Gast)


Lesenswert?

Christian J. schrieb:
> Ich möchte die SPI eines Atmegas abwechselt einem Display oder einem 433
> Mhz Funkmoul zur Verfügung stellen.

Kannst du mal kurz durchgeben, um welches Display und um welches 
Funkmodul es sich handelt.
Ich kann mir das nach wie vor nicht vorstellen, dass es keine CS Inputs 
gibt. SPI kann ohne CS eigentlich nicht funktionieren.

von Axel R. (Gast)


Lesenswert?

www.onsemi.com/pub/Collateral/NLAS4599-D.PDF
ist auch analog ;) aber schön klein. Genau, das was Du wolltest. Ein 
Wechsler.

EDIT: http://www.onsemi.com/pub/Collateral/NLAS4599-D.PDF

von Christian J. (Gast)


Lesenswert?

Hallo,

ok, ich habe jetzt Geräte, die einen SS Eingang haben und meine 
eigenwillige Konstruktion abgeändert. Dass der eine 3,3V hat und der 
andere 5V wird hoffentlich nicht stören, sollen zumindest tolerant sein, 
die nRF24L01 Funkmodule.

Das Thema Datenweiche ist ganz easy: Einfach wie oben genannt steuerbare 
nicht-invertierende Buffer nehmen, die zu splittende Leitung an 2 davon 
legen und wahlweise durchschalten. Das wars.

Die Analog Umschalter von ON sind ja genial, direkt mal abgespeichert.

Bleibt noch eine Frage:

Bei einer jetzt nur denkbaren Lösung mit Buffern ... müssen die 
Busleitungen mit Pull Ups oder -downs versehen werden? Denn wird eine 
SPI Datenleitung abgeschaltet sind Ausgang des Buffers und gegenüber 
liegender Engang ja High-Z und können demnach lustig herumfloaten. Es 
reicht einen Finger dran zu halten, zb bei 74HCT595 um, wenn LEDs 
angesclossen sind lustige Lichtspiele zu sehen.

von Christian J. (Gast)


Lesenswert?

Helmut Lenzen schrieb:
> 74HC157
>
> http://www.ti.com/lit/ds/symlink/cd54hc157.pdf

Hallo,

die funktionieren leider nicht, da sie das Gegenteil machen: 2 Signale 
wechselweise auf eine Leitung legen. Aber gewünscht ist 1 Signal auf 2 
Leitungen zu splitten. Zudem muss berücksichtigt werden dass bei einer 
SPI "Gegenverkehr" herrscht, ein OUT und ein IN bestehen.


mfg
Christian

von Mike (Gast)


Lesenswert?

Christian J. schrieb:
> Bei einer jetzt nur denkbaren Lösung mit Buffern ... müssen die
> Busleitungen mit Pull Ups oder -downs versehen werden? Denn wird eine
> SPI Datenleitung abgeschaltet sind Ausgang des Buffers und gegenüber
> liegender Engang ja High-Z und können demnach lustig herumfloaten.

Das kommt drauf an, wie "High-Z" die sind. Klar, das ein Finger deutlich 
niederohmiger ist und mit der dranhängenden Antenne reichlich Störungen 
einspeist.

Zeig mal, wie deine Schaltung jetzt aussieht.

von Niklas (Gast)


Lesenswert?

Christian J. schrieb:
> Dass der eine 3,3V hat und der
> andere 5V wird hoffentlich nicht stören,
Das klingt irgendwie nicht danach, als ob Du weißt, was Du da tust...

von Easylife (Gast)


Lesenswert?

Christian J. schrieb:
> ok, ich habe jetzt Geräte, die einen SS Eingang haben und meine
> eigenwillige Konstruktion abgeändert. Dass der eine 3,3V hat und der
> andere 5V wird hoffentlich nicht stören, sollen zumindest tolerant sein,
> die nRF24L01 Funkmodule.

Also haben beide einen CS_N...?!
nRF24L01 ist 5V tolerant, und was ist der andere Baustein?

Mit scheint du benötigst eher einen Level-Shifter als einen Umschalter.
Poste doch mal einen Schaltplan, das hilft oft weiter als 1000 Worte.

von Peter D. (peda)


Lesenswert?

Easylife schrieb:
> Kannst du mal kurz durchgeben, um welches Display und um welches
> Funkmodul es sich handelt.

Ne, das wäre ja zu einfach und der Thread wäre schnell zuende.
Er will, daß alle nur nutzlos rumraten aber keine Lösung.

von Christian J. (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Easylife schrieb:
>> Kannst du mal kurz durchgeben, um welches Display und um welches
>> Funkmodul es sich handelt.
>
> Ne, das wäre ja zu einfach und der Thread wäre schnell zuende.
> Er will, daß alle nur nutzlos rumraten aber keine Lösung.

Menno,

ich nehme jetzt ein 5110 von Nokia und das Funkmodul nrF24L01 dazu und 
schon hat sich mein problem in Luft aufgelöst. Vorher hatte ich eine 
SPI-lisiertes 44780er als DIY Variante und das hatte keinen CS dran.

Problem gelöst :-)

Dass der Atmel 5V hat und die beiden Geräte 3.3V ist laut Datenblatt 
kein Thema, dennoch habe ich 1k in alle Datenleitungen geschaltet, nur 
zur Vorsicht, auch wenn dieses einen RC Pass darstellt, was bei 1MHZ 
aber kein Thema sein dürfte.

von Easylife (Gast)


Lesenswert?

Christian J. schrieb:
> ich nehme jetzt ein 5110 von Nokia und das Funkmodul nrF24L01 dazu und
> schon hat sich mein problem in Luft aufgelöst.

OK schön.

> Vorher hatte ich eine
> SPI-lisiertes 44780er als DIY Variante und das hatte keinen CS dran.

Ich nehme an einen Hitachi 44780 Display Controller.
Interessehalber: wie ist denn der "SPI-lisiert" worden?
Mit einem 74HC595, so wie hier: 
http://www.instructables.com/id/3-Wire-HD47780-LCD-for-less-than-1-dollar

Pin 12 ST_CP wäre dein CS_N gewesen... ;-)

Das Schieberegister schiebt zwar die Daten für den anderen SPI slave 
munter durch sein shift register, solange es aber am ST_CP keine 
low-high Flanke sieht, wird nichts davon ins storage register 
übernommen.

von Easylife (Gast)


Lesenswert?

Also so:
1
uC (5V)  SCLK   >----------+
2
         MOSI   >----------)-+
3
         MISO   <----------)-)-+
4
         CS_N_1 >----------)-)-)-+
5
         CS_N_2 >----------)-)-)-)-+
6
                           | | | | | 
7
                           | | | | |
8
nrF24L01 SCLK   <----------+ | | | |
9
(3.3V)   MOSI   <----------)-+ | | |
10
(5V tol) MISO   >----------)-)-+ | |
11
         CS_N   <----------)-)---+ |
12
                           | |     |
13
                           | |     |
14
74HC595  SH_CP (11) <------+ |     |
15
Kette    DS    (14) <--------+     |
16
(5V)     ST_CP (12) <--------------+

von Christian J. (Gast)


Lesenswert?

Hi,

genau so :-) Sag mal, wie hast du denn diese nette Grafik so schnell 
gemacht? Gib es da ein Tool für?

von Easylife (Gast)


Lesenswert?

Christian J. schrieb:
> Gib es da ein Tool für?

Jupp, gibt's schon ewig, nennt sich "vi"

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.