SPI vs. Logic Analyzer, einige Fragen

Hemi

Aktives Mitglied
Premium Benutzer
30. Nov. 2008
1.103
19
38
Korntal-Münchingen, Germany
Sprachen
  1. ANSI C
  2. C++
  3. PHP
  4. Java
Tach (bzw. Nacht) zusammen,

ich versuche geradedie Kommunikation zwischen dem TDA3612 (Tonbandlaufwerkkontroller) und der MCU im Radio zu reverse engineeren.

Eins vorweg, zum Chip gibt es keine Datenblätter, auch NXP rückt gar nichts raus :)angry:).

Es gibt nur diese eine Schaltung:

sca44.jpg

Mehr ist auch nicht drin.

Okay, wenn man die Pins von dem Käfer anschaut, sieht man am Pin 1 Data, am Pin 2 Clock und am Pin 24 Enable. Das sieht für mich nach einem SPI ohne Rückkanal aus, so meine Vermutung. Alles klar, die Steuerplatine ausgebaut, vier Drähte an de Käfer angelötet und das Ganze mit dem LA verbunden. In der Software dann 25M Samples @ 12 MHz eingestellt und Aufnahme gestartet. Das Laufwerk lief schon und ich habe eine Taste gedrückt, was dabei rauskam ist das hier:

s1.png

Wenn man dem Bild glauben kann, wurden drei Bytes gesendet, auf der Select-Leitung sieht man drei Ausschläge.

Hier ist der Byte 1 etwas genauer:

s2.png

Was mich etwas irritiert, die Frequenz vom Clock ist immer entweder 83,333kHz (+/-0,7%) oder 71,429kHz (+/-0,6%). Dann das Byte wird nicht während Enable auf low ist gesendet, sonden mitten drin irgendwie. Dabei ist Clock auf low, wechselt dann auf high und genau in den Moment startet das Byte. Hier auf dem Bild genau zu sehen:

s3.png

Die grünen Linien schließen genau das gesendete Byte ein. Bei den anderen beiden Bytes ist es genau so.

Kann das sein oder messe ich Schrott? Irgendwie stehe ich auf dem Schlauch.

Danke & Grüße
Heinrich
 
Hallo Heinrich,

zuerst muß man mal rausbekommen was für einen SPI-Mode das Ding verwendet (Phasenlage und Flanke usw) Da gibt es ja schonmal 4 Möglichkeiten wie man die Daten über den Bus schiebt. Dann auch noch ob MSB oder LSB first. Wer weiß was die da zusammengekocht haben. Man könnte versuchen das über andere TDA-Chips von Philips/NXP rauszubekommen. Die werden die Bussteuerung ja nicht bei jedem Chip neu designed haben. Ingenieure sind ja auch nur Menschen und versuchen sich Arbeit zu sparen :p

Ich hab auch mal kurz versucht was über den TDA3611/TDA3612 zu finden. Aber selbst in Foren ist da nichts was irgendwie lesenswert wäre.

Über den Bustakt würde ich mir jetzt erstmal keine Gedanken machen. Kann ja sein das der in Software erzeugt wird. Außerdem ist der Bus ja vom Master zwangsgetaktet. Da ist es egal ob etwas schneller oder langsamer. Der Takt könnte ja theoretisch sogar während der Übertragung schwanken.

Eingestellt hast du glaube ich das die Datenübernahme mit positiver Flanke gemacht wird (nehme ich mal an). Sieht für mich eigentlich recht plausibel aus. Der Taktpin wird für die richtige Phase vorbereitet. Dann wird Enable freigeschaltet und bei jeder positiven Flanke auf Clock der Datenbin gesampelt. Danach geht Enable wieder auf inaktiv und danach der Clock wieder in den Ruhezustand.

Du hast ja an sich nur den Enable von diesem IC abgegriffen. Wer weiß was sonst noch soam Bus hängt (EEPROM, weitere Steuer-ICs, ...) solltest du also den Rest erstmal gedanklich ausblenden.

Gruß
Dino
 
Hallo Heinrich!

Ich denke, du solltest dir das Leben nicht so schwer machen. :wink:

Nimm die Signale einfach so wie sie sind.
Der steuernde µC ist bei Audi z.B. ein 68HC05C8.

Es werden dort auch einfach nur normale I/O-Pins verwendet.
PA4 (DATA), PA5 (CLOCK) und PA6 (Enable)

Wenn du mit dem LA die Signale sicher aufnehmen und reproduzieren kannst, was hindert dich dann es mal mit SPI zu probieren. :cool:

Allerdings......
In irgendeiner "Anleitung" habe ich gelesen, dass die Bandgeschwindigkeit in Abhängigkeit zum CLOCK-Signal steht (oder so ähnlich).
Hast du das kleine Datenblatt ebenfalls mal gefunden und gelesen?


Grüße,
Cassio
 
Hallo Ihr Beiden,

danke schön erstmal für die Ratschläge.

@Dino: Es ist so, sobald ich die Einstellungen für den LA ändere, sprich die LSB/MSB, Bits pro Transfer, CPOL, CPHA und Polarität vom CS, sagt mir der LA, dass die Einstellungen nicht passen. Es ist wohl schon so, dass es einfach nur ein Standard-SPI ist mit Standarteinstellungen. Wenn es tatsächlich so ist, dass normale I/O-Pins (Soft-SPI) verwendet werden, dann kann es durchaus sein, dass der Takt zuerst generiert wird.

@Cassio: Aufnehmen kann ich es, bei allen Aktionen, die ich mache, kommen deterministische Ergebnisse raus, es passt also, so mein Bauchgefühl. Welches Datenblatt meinst Du? Das kleine zum SCA 4.4? Ja, habe ich. Da wird ja auch die Steuerung vom Laufwerk beschrieben.

Da steht zum Beispiel:

Bei laufendem Servomotor werden im TDA3611 aus den Kommutierungsimpulsen auf der Motorleitung mit Hilfe des IMPULS SHAPER Bandlauf-Kontrolimpulse erzeugt.

Sie werden über die CLOCK-Leitung vom Geräte uC für die Bandüberwachung abgefragt.

Was auch interessant ist, ist das hier:

Der TDA3611 ist busgesteuert über DATA, CLOCK und ENABLE und nimmt byteweise Befehle der Geräte-uC entgegen.

Ich denke, hier ist es so, dass ein Byte, was ich sehe, je ein Befehl ist. Sprich, "spul vor", "mach reverse" und so weiter.

Es hindert mich eins das direkt am SPI zu probieren: Ich habe keinen LevelShifter zur Hand im Moment. Und leider auch keinen Atmega mit dem ich es machen könnte, das ist echt zum Mäuse melken. :(

Die "gesamte" Beschreibung des SCA4.4 habe ich angehängt.

Grüße
Heinrich
 

Anhänge

  • SCA4-4.pdf
    370,3 KB · Aufrufe: 11
Hallo Heinrich!

Jepp, das Datenblatt meinte ich! :wink:

Ich hatte es nur mal überflogen und mir nicht jede Erklärung zur Funktion überlegt.
Eigentlich hatte ich gehofft, etwas zum Datenverkehr zu erfahren..... aber schweigt sich alles drüber aus.

Für das Audi-Chorus-Concert gibt es ein recht gutes Datenblatt (3,7MB).
Dort wird auch die Bandlaufsteuerung mit dem TDA3611 realisiert.
Auf den Plänen kann man sehen, dass DATA, CLOCK & ENABLE lediglich mit PullUp-Widerständen und dem µC 68HC05C8 verbunden sind.
Mehr gibt es da nicht.

Das Datenblatt zum µC zeigt mir dann, dass es ganz normale I/O-Pins sind (PA4, PA5, PA6).


Du benötigst zum Testen einen Levelshifter? :hmmmm:
OK, das IC wird zwar mit bis zu 14V betrieben..... generiert aber doch selber die 5V Signalspannung.
Oder habe ich das beim Überfliegen des SCA4.4-Datenblattes falsch in Errinnerung? :hmmmm:


Grüße,
Cassio


EDIT:
Hier mal der Auszug vom Schaltplan dazu--> Audi_SCA44_uC.gif
:ciao:
 
Moin Cassio,

Hallo Heinrich!

Jepp, das Datenblatt meinte ich! :wink:

Ich hatte es nur mal überflogen und mir nicht jede Erklärung zur Funktion überlegt.
Eigentlich hatte ich gehofft, etwas zum Datenverkehr zu erfahren..... aber schweigt sich alles drüber aus.

Für das Audi-Chorus-Concert gibt es ein recht gutes Datenblatt (3,7MB).
Dort wird auch die Bandlaufsteuerung mit dem TDA3611 realisiert.
Auf den Plänen kann man sehen, dass DATA, CLOCK & ENABLE lediglich mit PullUp-Widerständen und dem µC 68HC05C8 verbunden sind.
Mehr gibt es da nicht.

Genau, das Datenblatt habe ich auch und zwar von beiden Modellen, sowohl Blaupunkt als auch Panasonic, es gab von beiden das gleiche Radio. Über die Kommunikaiton ist da leider kein Wort drin, da haste Recht.

Das Datenblatt zum µC zeigt mir dann, dass es ganz normale I/O-Pins sind (PA4, PA5, PA6).

Das Datenblatt vom µC habe ich noch nicht angeschaut.

Du benötigst zum Testen einen Levelshifter? :hmmmm:
OK, das IC wird zwar mit bis zu 14V betrieben..... generiert aber doch selber die 5V Signalspannung.
Oder habe ich das beim Überfliegen des SCA4.4-Datenblattes falsch in Errinnerung? :hmmmm:

Nein, Du hast es richtig in Erinnerung, der Chip selber läuft mit 5v, aber mein Eva-Board läuft mit 3,3v. Deswegen brauche ich einen LevelShifter, sonst brate ich die MCU.

Grüße
Heinrich
 
Das Datenblatt vom µC habe ich noch nicht angeschaut.


Hallo Heinrich!

Musst du dir auch nicht extra besorgen.
Steht nichts weiter drin. :wink:

Der PortA hat auch keine alternativen Funktionen.
Ist lediglich ein 8-fach I/O-Port.



Ach so.....
dein Eva-Board hat nur 3,3V.
OK, dann verstehe ich das mit dem Levelshifter. :cool:

Da du aber nur etwas zum Laufwerk senden und nichts empfangen musst, würden doch ein paar Transistoren zum Test auch erst mal reichen.

Grüße,
Cassio
 
Hallo Cassio,

okay, dann spare ich mir die Suche nach dem Datenblatt.

Nee, die Idee ist eine Andere, das Laufwerk fliegt raus und ich empfange die Befehle vom Radio-µC und reagiere drauf. Ich will mein Eva-Board über's Radio steuern :) Über USART geht es schon sehr gut, nach npaar anfänglichen Schwiergikeiten :)

Grüße
Heinrich
 
Hallo Heinrich!

Ah ja......
brauchst dazu gar nichts weiter schreiben.
Ich weiß schon, was es werden wird. :wink:

Man muss ja nur mal eins und eins zusammenzählen. :cool:


Na, dann mal viel Spaß weiterhin. :ciao:
Cassio
 
Hallo Heinrich!

Ah ja......
brauchst dazu gar nichts weiter schreiben.
Ich weiß schon, was es werden wird. :wink:

Man muss ja nur mal eins und eins zusammenzählen. :cool:


Na, dann mal viel Spaß weiterhin. :ciao:
Cassio

Naja, so schwer ist es ja nicht drauf zu kommen. ;)

Soweit funktioniert das Ganze richtig gut und stabil, der Klang ist auch vernünftig. Okay, die Endversion wird eh zwei High-End DACs drauf haben. :cool:

Npaar von den MAX3378 und TXS0104 habe ich noch in meiner Kiste rumfliegen, muss sie nur finden. :) Dann kann Spielerei weitergehen.

Der aktuelle Saustahl auf dem Tisch:

024.jpg


Grüße
Heinrich
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)