I²C: Muss der TDA7318 jedes Mal alle acht Befehls-Bytes übertragen bekommen?

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Moin!

    Nachdem der TDA7318-Mixer-Chip immer noch Probleme macht (ignoriert Befehle, doch den I²C-Bus habe ich per Logik-Analysierer geprüft), hätte ich hier folgende Frage: Muss ich immer, wenn ich via I²C einen Befehl an den Mixer schicke, alle acht Befehls-Bytes senden? Die Doku macht da keine eindeutigen Angaben, doch vielleicht kann einer von Euch zwischen den Zeilen lesen:

    command sequence

    Register hat der TDA anscheinend nicht. Er versteht lediglich acht verschiedene Befehle, die allesamt (mitsamt Argumenten) 1 Byte lang sind:

    list of commands

    In die Variable N (Anzahl Bytes) wird im gesamten Dokument nirgends ein Wert eingesetzt, doch die Tabelle mit den Data Bytes lässt sich dahingehend auslegen, dass immer alle acht Bytes gesendet werden müssen, selbst wenn nur ein einziger Befehl erteilt werden soll, oder sehe ich da etwas falsch? Danke.

  • I²C: Muss der TDA7318 jedes Mal alle acht Befehls-Bytes übertragen bekommen?? Schau mal ob du hier fündig wirst!

  • Welche 8 Bytes meinst du?

    Ich sehe nur 8 Bits und die sind jedesmal wenn der Chips angesprochen werden soll notwenig.

    Dann folgt ein ACK und die Datenbytes (1 Byte = 8 Bit) hinter jedem Byte ein ACK und wenn keine Daten mehr kommen die Stopsequenz.

    Danach legt sich der Chip sozusagen schlafen und wacht erst wieder auf wenn er erneut adressiert wird.

  • Schau mal auf die Tabelle. Das sind 8 Befehls-Bytes à 8 Bit. Meine Frage war ja, ob ich immer, wenn ich dem TDA einen Befehl senden will, alle 8 Befehls-Bytes hintereinander (selbst, wenn sich nur an einem der Bytes etwas ändert) und ganz hinten das Stoppsignal schicken muss. Die Grafik mit der Bit-Sequenz scheint zu suggerieren, eine Nachricht bestünde grundsätzlich aus mehreren Bytes.

  • Moin Oldsmobile,

    ich verstehe es so: AdressByte , Kommandobyte, ACK abwarten, Stopbyte. Siehe Seite 9 des Datenblattes.

    Und das geht nicht?

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Also ich les das so, dass man z.B. die Lautstärke in z.B. 10dB verändert, indem man die Bits B2 B1 B0 von 000 bis 111 setzt, das wären dann 7 Datenbytes.

    Und im Datenblatt steht auch: A sequence of data (N-bytes + acknowledge wobei N nicht definiert ist, aber soviele Möglichkeiten gibts ja nicht

  • Moin!

    Habe mal ein büschen gesucht.

    Auf dieser Seite: https://github.com/lamik/uC_contr…A7318/tda7318.c

    Ein Auszug.

    Wie man sieht, nur ein Byte.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!