Hallo liebe Leute Vielleicht hat jemand eine Idee zu meinem Problem ? Ich habe da ein unbekanntes Gerät.... und das Gerät besteht aus zwei Modulen die miteinander kommunizieren. Ich versuche das mal vernünftig zu beschreiben. ;-) Modul A (hat einen TMS320LF2406) (CPU) Modul B (hat einen TMS320F2808) (verschiedene Sensoren) Zwischen den Modulen ist noch ein 24LCX244 als Treiber (3 State) Die Verbindung besteht aus 10 Leitungen wobei ich ein paar Leitungen zu SPI zuordnen kann. (die anderen sind Versorgung und Serielle Signale) Ich werde aber aus den SPI Signalen nicht ganz schlau. Wer ist jetzt der Master und wer der Slave ? Die Leitungen im LA, habe ich mal Logisch zugeordnet.. (CS,Clock,MOSI;MISO usw.) (durch das Datenblatt vom TMS320LF2406 (Modul1) muss MOSI/MISO aber nicht mehr stimmen) Jetzt habe ich mal die Richtungen des Bustreibers (24LCX244) analysiert und jetzt bin ich ganz verwirrt. Die Richtungen sind wie folgt: Signal 2 (Enable?!) Modul A -> Modul B Signal 3 (MISO?!) Modul A <- Modul B Signal 4 (MOSI?!) Modul A -> Modul B Signal 5 (CS) Modul A -> Modul B Signal 6 (Clock) Modul A <- Modul B Soweit ich zum SPI raus finden konnte, müsste Clock immer vom Master kommen. Dann müsste Modul B der Master sein ?! Dann passt aber das CS nicht dazu, weil das kommt hier von Modul A Laut TMS329LF2406 (Modul A)müsste Signal 3 MISO sein und Signal 4 MOSI (Datenblatt) Clock stimmt mit SPI CLK CS und Enable sind beim Modul A an jeweils einen I/O Pin vom TMS329LF2406(Modul A) geführt Diese Signale seht ihr im Bild (Abschnitt 2) ----- Dann ist mir noch der Abschnitt 1 im Bild aufgefallen. Hier gibt es auch ein Clock Signal und Daten auf der MOSI und MISO Leitung Da ich im LA die CS Leitung als CS definiert habe, sieht man bei Abschnitt 1 keine Daten. Sobald ich aber im LA, dass Enable als CS einstelle, sehe ich bei Abschnitt 1 Daten. Scheinbar wird da ein anderer Bereich angesprochen ?! Enable kommt aber auch von Modul A ?! Ich weiß kompliziert, aber vielleicht hat jemand eine Idee Dazu ;-) Danke für Antworten :-) l.G. Robert
A - Slave, B - Master Signal 2 - fordert den Master zum SPI-Transfer auf Signal 3 - MOSI Signal 4 - MISO Signal 5 - low Flanke sagt dem Master, er kann das nächste Byte takten. Signal 6 - SCK Das erste Byte ist vermutlich ein Befehl, daher braucht der Master etwas länger, den Befehl zu parsen.
Hallo Peter D. Danke für die schnelle Antwort :-) >Das erste Byte ist vermutlich ein Befehl, daher braucht der Master etwas >länger, den Befehl zu parsen. Wer sendet hier den Befehl ? Master oder Slave ? Auf Signal 3 ist der Wert 1 und auf Signal 4 ein hoher Wert (weiß den gerade nicht..) Wie funktioniert das, wenn da immer MOSI und MISO Werte kommen ? Ich war der Meinung, dass z.B. der Master zuerst auf MOSI die Werte schickt (z.B. Befehle oder Speicheradresse) und die Antwort vom Slave dann auf der MISO Leitung kommt. Hier sehe ich immer Daten auf beiden Signalen gleichzeitig .(MISO/MOSI)
Hallo, 1.) prinzipiell würde ich die Richtungen wie folgt festlegen: Modul A = Master Modul B = Slave Warum ? Der Slave hat die Sensoren drauf und die sollen abgefragt werden. 2.) Dann würde ich sagen, dass Dein ENABLE eher das CS ist. Warum ? Nur dann sind die Daten durchgehend auch gültig ( und zwar auch in Abschnitt 1) 3.) Dein CS ist eine (unabhängig vom SPI) weitere Steuerleitung, die dem Slave lediglich sagt: 'Bitte jetzt den nächsten Sensorwert anlegen' Gruß Peter
Hallo Peter(gast) >prinzipiell würde ich die Richtungen wie folgt festlegen: >Modul A = Master >Modul B = Slave Aber Modul B sendet den Clock Modul A kann diesen durch den Treiber nur empfangen.. -- >Dann würde ich sagen, dass Dein ENABLE eher das CS ist. Das habe ich auch probiert. Dann habe ich im Abschnitt 1 zwar Werte, aber die weiteren Werte von Abschnitt 2 werden verfälsch, weil dann Enable low ist, wenn gar keine Daten übernommen werden sollen. Das jetzige CS passt viel besser zum Clock. Zuerst CS low und dann Takt und Daten.
Robert schrieb: > Dann ist mir noch der Abschnitt 1 im Bild aufgefallen. > > Hier gibt es auch ein Clock Signal und Daten auf der MOSI und MISO > Leitung > Da ich im LA die CS Leitung als CS definiert habe, sieht man bei > Abschnitt 1 keine Daten. > Sobald ich aber im LA, dass Enable als CS einstelle, sehe ich bei > Abschnitt 1 Daten. Das verstehe ich nicht. Dem LA ist es doch egal, wie Du die Signale zuordnest. Der zeichnet lediglich auf. Auf Deinem Bild sieht man in Abschnitt 1 die Clock (Signal 6), den CS (Signal 2), MISO (oder MOSI, Signal 3) = 0, und MOSI (oder MISO, Signal 4) = 0b01001101 = 77 (mal so geraten). Oder versteh ich Dein Problem nicht ? Dann erklär bitte nochmal genauer. Gruß Peter
Ich habe gerade gesehen, dass es ja 16 Bit sind. Aber ich denke Du weisst was ich gemeint habe. Im Übrigen passt es auch sehr gut zu dem, was Peter D. gleich am Anfang gesagt hat: In Abschnitt 1 wird ein Kommando gesendet, dann wird durch den langen High Pegel auf MISO (Signal 3) die Antwort verzögert (z.B. weil der Slave erstmal das Kommando interpretieren muss), und zum Schluß werden die Daten rausgegeben - und zwar schoen getaktet (durch Signal 5). Gruß Peter
Hallo Sorry für die späte Antwort.. (Urlaub) @Peter (Gast) >Das verstehe ich nicht. Dem LA ist es doch egal, wie Du die Signale >zuordnest. Der zeichnet lediglich auf. Ja, aber er rechnet mir auch die Werte aus. Wenn ich das CS als Signal 5 definiere, rechnet er mir die Werte für MISO und MOSI aus (siehe Bild) Wenn ich Signal 2 als CS definiere, habe ich zwar auch Werte (auch beim Steuerbefehl (Abschnitt1)) aber MOSI ist irgendwann mal High und das falsche CS (Enable) noch low und es kommen dann falsch Werte raus. Berufe mich auf volgendes Bild: https://www.rahner-edu.de/s/cc_images/teaserbox_10249292.png?t=1506590058 Da ist das CS nur low, wenn der Takt anliegt und Werte übernommen werden sollen. --- Verwirrend ist für mich: Im obigen Bild kommen alle Signale (ausser MISO) vom Master. Bei mir kommt das Clock und Signal 3(vermutlich MOSI) vom Master und Enable,CS und Signal 4(MISO) vom Slave Aber scheinbar kann der Slave auch das CS geben und nicht nur der Master ?! Und das Steuersignal wird wohl per Takt übernommen, wenn Enable = Low und CS = High ist ?! l.G. Robert
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.