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
Hoi, wie wäre es den CS Pin zu benutzen? Dieser sollte dein Problem lösen. Ciao
Ich suche aber einen digitalen Umschalter, da es keinen Select Pin gibt......
dann bau dir mit einem 74hc244 deinen eigenen select pin... (der chip ist ein 8-fach buffer mit enable eingang) _.-=: MFG :=-._
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.
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.
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"
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.
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
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...
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.
>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
Wie wäre es einfach einen 74xx138 oder ähnlich zu nehmen, um den SS-Eingang der Slaves zu bedienen?
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
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.
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
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.
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
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.
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...
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.
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.
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.
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.
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) <--------------+ |
Hi, genau so :-) Sag mal, wie hast du denn diese nette Grafik so schnell gemacht? Gib es da ein Tool für?
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.