Frage:
Identifizierung des SPI-Masters
Toby Jaffey
2010-10-13 17:35:58 UTC
view on stackexchange narkive permalink

Ich versuche, die SPI-Kommunikation zwischen zwei Chips rückzuentwickeln. Es ist jedoch nicht klar, wer der Master und wer der Slave ist.

Ich habe die Chipauswahl gefunden. Gibt es eine Möglichkeit, zu erkennen, welches Ende dies bestätigt, ohne Stifte anzuheben oder Spuren zu schneiden?

Die Chips sind: CC1110 (SoC-Radio) und CY7C63803 (USB-MCU). Die Chipauswahl erfolgt über die SSEL-Leitung (Slave Select) des CY7C63803 und über einen GPIO-Pin des CC1110.

Der CY7C63803 ist ein SOIC, sodass ich ein Bein anheben kann, aber nicht will es brechen.

Wissen Sie, was die beiden Chips sind? Wenn nicht genaue Teilenummern, Packungsgröße, allgemeine Funktion, sonst noch etwas?
@pingswept Aktualisierte Frage
Fünf antworten:
mjh2007
2010-10-13 18:35:09 UTC
view on stackexchange narkive permalink

Es ist schwierig, einen GPIO-Pin an einem Slave-Gerät als Chipauswahl zu verwenden. Wenn das Chipauswahlsignal am Slave-Gerät nicht früh genug erkannt wird, nachdem es bestätigt wurde, können Sie die Daten übersehen, die der Master abtaktet. Da der SSEL-Pin des CY7C63803 mit der Chipauswahlleitung verbunden ist, ist er vermutlich der Slave. Der CC1110 ist wahrscheinlich der Master. Sie müssen wahrscheinlich einen Stift an einem der Geräte anheben, um dies sicher zu wissen.

Gemäß diesem CC1110-Datenblatt (focus.ti.com/lit/ds/symlink/cc1110f32.pdf) "sollten im SPI-Master-Modus nur MOSI, MISO und SCK als Peripheriegeräte konfiguriert werden. Wenn der externe Slave einen Slave benötigt Auswahlsignal (SSN) Dies kann mithilfe eines Allzweck-E / A-Pins und einer Steuerung von SW implementiert werden. " Da Sie angegeben haben, dass die Chipauswahl von einem GPIO-Pin am CC1110 stammt, unterstützt dies die Antwort von mjh2007.
Akzeptiert - das half mir zu verstehen, was ich sah. Es stellte sich heraus, dass der Bus weder SPI war, noch hatte ich die Chipauswahl gefunden. Es war eine von zwei Aufmerksamkeitslinien, die verwendet wurden, um den Beginn einer Datenübertragung zu signalisieren. Eine davon endet an CY7C63803: SSEL, die andere an einem (Interrupt-fähigen) Pin des CC1110. Die Aufmerksamkeitsleitung wird vor jeder Übertragung kurz gepulst, dann werden Daten über eine der beiden Datenleitungen getaktet. Trotzdem weiß ich immer noch nicht, wer die gemeinsame Uhr fährt ;-)
Toby Jaffey
2010-10-13 19:40:59 UTC
view on stackexchange narkive permalink

Wie wäre es, wenn Sie jeden der Chips (nacheinander) zurücksetzen und die CS-Linie beobachten?

Die Theorie besagt, dass die Linie tristiert, während der Chip zurückgesetzt wird.

Sollte funktionieren, es sei denn, der Master deaktiviert SS, wenn versucht wird, den Slave zu kontaktieren. Dies bedeutet jedoch nur, dass Sie möglicherweise ein Oszilloskop anstelle eines Multimeters verwenden müssen.
Gute Idee. Wenn Sie den Slave zurücksetzen, sollte die CS-Leitung immer noch auf einem Oszilloskop umschalten. Wenn Sie den Master zurückgesetzt haben, schwebt die Linie.
Nick T
2010-10-13 19:35:42 UTC
view on stackexchange narkive permalink

Wie schnell wird die Leitung umgeschaltet? Wenn es langsam genug ist, können Sie die Spannung zwischen den Pins mit einem guten Multimeter messen, um festzustellen, welche Seite versucht, den Strom abzusenken. Ausgehend von Pullup-Werten / Antriebsstärke / Spurwiderstand würde ich vermuten, dass dies beispielsweise mit meinem 187 möglich ist.

Ohne absoluten Beweis ist mjh2007 wahrscheinlich richtig; Wenn eine Seite den vom SPI-Hardware-Peripheriegerät gemeinsam genutzten SS-Pin verwendet, während die andere einen zufälligen GPIO verwendet, ist dies alles andere als schlüssig.

ajs410
2010-10-13 21:16:25 UTC
view on stackexchange narkive permalink

Versuchen Sie, waaaaaaaaaaaaay mit einem wirklich hochauflösenden O-Scope zu vergrößern. Vielleicht können Sie die Reflexion auf der Spur sehen? Das Klingeln an der Last sollte schlechter sein als das Klingeln an der Quelle.

pingswept
2010-10-13 18:15:03 UTC
view on stackexchange narkive permalink

Sie müssen herausfinden, in welche Richtung der Strom fließt - der vorgeschaltete Chip auf der Chipauswahlleitung ist der Treiber. Das ist schwer, ohne Spuren zu schneiden. Meine beste Idee wäre, eine Spule aus Magnetdraht, die mit einem großen Widerstand verbunden ist, neben der Spur zu platzieren. Messen Sie die im Widerstand induzierte Spannung durch die Gegeninduktivität, wenn die Chipauswahlleitung ihren Zustand ändert. Die Polarität der Spannung sollte der Richtung des Stromflusses entsprechen.

Aber ehrlich gesagt ist das nur eine theoretische Antwort. Angesichts der Tatsache, dass Sie wahrscheinlich versuchen, uA zu erkennen, was nV-Potentiale in der Spule induzieren würde, denke ich, dass die Chancen, dass es tatsächlich funktioniert, sehr nahe bei Null liegen. Versuchen Sie es vielleicht zuerst mit einem Kabel und einem Signalgenerator, um zu sehen, wie klein eine Änderung ist, die Sie erkennen können?



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 2.0-Lizenz, unter der er vertrieben wird.
Loading...