I²C: TDA7318 Mixer-Chip blockiert / ruiniert den Bus?

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Moin!

    Der Anschluss eines TDA7318 Audio-Mixer-Chips über I²C sorgt gerade für gewaltige Probleme mit meinem Raspi 3B: Sobald ich ihn anschließe, geht der gesamte I²C-Bus mitsamt zwei HATs und zwei Breakout-Boards nicht mehr! Ein Durchprobieren des Busses kommt zu folgendem Ergebnis:

    Code
    pi@autoradio:~ $ sudo i2cdetect -y 1
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 
    10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 
    20: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 
    30: 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 
    40: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c UU 4e 4f 
    50: 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 
    60: 60 61 62 63 64 65 66 67 UU 69 6a 6b 6c 6d 6e 6f 
    70: 70 71 72 73 74 75 76 77

    Stecke ich erst den Mixer und hernach ein Gerät nach dem anderen vom Bus ab (zum Schluss die beiden HATs), ändert sich nichts an dieser Anzeige. Auf den Tipp eines Experten hin durchsuchte ich den Bus nach Masseschlüssen, fand aber keine. Noch seltsamer mutet diese Ausgabe von gpiotest an:

    Code
    Testing...
    Write 1 to gpio 2 failed.
    Pull up on gpio 2 failed.
    Skipped non-user gpios: 0 1 28 29 30 31 
    Tested user gpios: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 
    Failed user gpios: 2

    Ist also der I²C-Bus (und damit der Raspi) im Eimer? Haben die Probleme vielleicht damit zu tun, dass der Mixer eine Betriebsspannung von 9 V verlangt (eigentlich für die eingebauten Operationsverstärker) und eine Antwort an den Pi auf 9-Volt-Level geschickt hat? :conf: Danke für jeden zweckdienlichen Hinweis!

    Einmal editiert, zuletzt von Oldsmobile (26. März 2021 um 00:26)

  • I²C: TDA7318 Mixer-Chip blockiert / ruiniert den Bus?? Schau mal ob du hier fündig wirst!

  • * Befindet sich der TDA7318 auf einer fertigen käuflichen Leiterplatte?

    * Wie hoch ist die PullUp-Spannung an den I2C-Busleitungen SCL (Pin 28) und SDA (Pin 27)? Bitte am nackten Board messen! Ich vermute befürchte 5V.

    * Auf Seite 5 des Datenblattes befindet sich unter "BUS INPUTS" die Kenngröße VIH, die Mindestspannung für high-Signale am I2C-Bus. Sie ist mit "min 3V" angegeben. Somit erwartet der I2C-Bus wohl Spannungen von ca.  >=5V

    Man kann aber für I2C einen Pegelwandler einbauen, z.B. mit zwei MOSFETs gemäß NXP Semiconductors AN10441. Dann herrschen auf der RPi-Seite definiert 3,3V und auf der anderen Seite dürfen die Pegel beinahe beliebig hoch sein, z.B. sogar 9V.

  • Der Anschluss eines TDA7318 Audio-Mixer-Chips über I²C ....... Sobald ich ihn anschließe

    Wie?

    Ich lese im Datenblatt Supply Voltage: min 6V typ 9V max 10V .....

    zuerst zeige mal deinen Schaltplan!

    Ist also der I²C-Bus (und damit der Raspi) im Eimer?

    Das kannst doch nur du messen, ohne Raspi an Power:

    1. Die Leitungen SDA und SCL führen Spannung? -> interne pullups vorhanden!

    2. Welche Spannung? -> ein Hinweis ob du Pegelwandler brauchst!

    Man kann aber für I2C einen Pegelwandler einbauen, z.B. mit zwei MOSFETs gemäß NXP Semiconductors AN10441.

    funktioniert für 3,3V zu 5V mit BS138 oder BS170 habe ich schon gemacht,

    https://de.wikipedia.org/wiki/Pegelumse…tzer_wikide.svg

    einfacher sind fertige 4-Kanal Platinen ohne Spannungsregler!

    https://www.ebay.de/itm/382706727030

    sogar mit 470 Ohm Serien Widerstand und pullup Diode BAT42 habe ich schon 3,3V 5V Verbindungen geschafft

    https://forum-raspberrypi.de/attachment/166…ke-5v-3-3v-jpg/

    https://forum-raspberrypi.de/attachment/1615-rs232-jpg

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Hm, wenn ich mir das Datenblatt ansehe, vor allem den Block "Bus Inputs" auf Seite 6, stehen da Spannungen, die beim PI nicht aus dem Rahmen fallen.

    Da ist eher das Gegenteil der Fall, das die Spannung für SDA Acknoledge mit 1,6V angegeben ist.

    Auch sind keine Pullup´s für den I2C da, (pull-up resistors to positive supply voltage must be connected), die müssen extern vorgesehen werden.

    Auch scheint da keine I2C Adresse vorgegeben zu sein.

    Ich würde den Mixer nicht an den PI anschließen, in aber mal mit 9 oder 10V versorgen und mal Messen was er am I2C für Spannungen ausgibt.

    Denn eines ist klar, der Mixer erfordert eine separate Spannungsversorgung.

    Dem reichen die 5V vom PI nicht.

    Die andere Frage wäre dann das Interface Protokoll mit dem der Mixer dann vom PI aus gesteuert werden muss.

    Diese Sequenzen muss man im Pi erstmal erzeugen, also programmieren.

    Ohne scheint das Ding nicht zu funktionieren.

  • Also mal eins nach dem Anderen:

    • Diesen Schaltplan habe ich umgesetzt: GAMP
    • Pin 26 vom Mixer hängt beim Pi an Pin 39, Pin 27 an Pin 3 und Pin 28 an Pin 5.
    • Der TDA ist ein Solo-Chip ohne Ausbruch-Platine. Eine solche habe ich schlich nicht gefunden.
    • Er hängt an einem externen 9-Volt-Pegelwandler, der wiederum mit 12 V gespeist wird (Netzgerät; später Auto-Akku).
    • Das mit den min. 3 V im I²C habe ich auch gelesen, doch welche Spannung haben die Antworten vom Chip? Die gleiche 3,3 V, wie die Befehle vom Pi kommen? Die I²C-Norm spezifiziert selber nur > 0.7 × Vcc. Sollte ein Pegelwandler nötig sein: Ich habe noch einen übrig. :)
    • Ich messe gerade am Chip zwischen Pin 26 und Pin 28 gerade mal +2,21 Volt.
    • Pull-Ups hat der Mixer keine.
    • Adresse ist fest vorgegeben: 0b1000100, also 0x44.
    • Zu den Befehlen, die der Pi an den Mixer schickt, bin ich noch gar nicht gekommen. Erst habe ich den Chip gemäß Anleitung angeschlossen und habe schon Zoff.

    Wichtig ist für mich aber zu wissen: Ist der I²C-Bus am Pi jetzt tot?

  • Moin Oldsmobile,

    in deinem ersten Beitrag ist eine Ausgabe von i2cdetect. Da war nichts angeschlossen?

    Die Frage ist, kannst du am SDA-Pin (Pin3) noch 3,3 Volt messen?

    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.

  • Wichtig ist für mich aber zu wissen: Ist der I²C-Bus am Pi jetzt tot?

    woher sollen wir das wissen? teste doch einfach mit einem I2C Slave, RTC, PCF8574(a), LED und manuelles Setzen der Ports!

    Ich tippe du nutzt nicht den default I2C vom PI siehe GPIO Leiste, denn der hat Pullups eingebaut 1,8k und müsste ohne Slave im Leerlauf 3,3V führen, I2C Nr. 2 hat IMHO keine eingebauten pullups da dürfte unbeschaltet nichts zu messen sein!

    Wie immer gilt, es muss ein komplettes Schaltbild deines Aufbau gezeigt werden + Bilder, denn der Fehler liegt bei dir und nicht im Prinzipbild oder Bilder von anderen Aufbauten. Mit Fremdbilder können wir oft nur sehen das es gehen würde!

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Moin Oldsmobile,

    dann haben wir ja eine Erklärung warum immer was gefunden wird.

    Nach der Adressenfrage soll ein vorhandenes Gerät mit LOW antworten.

    Nur die eingebauten PULLUP's weg? Kannst du die messen. Gegen Plus. Aber, BITTE, ohne Spannung.

    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:

    SDA (#1 gegen #3): 1800 Ω
    SCL (#1 gegen #5): 750 Ω

    aua!

    sieht kaputt aus, sollte immer 1800 Ohm oder 1,8k rauskommen

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Moin Oldsmobile,

    die Widerstandswerte messe ich an einen RPi2 auch.

    Aber, egal ob I2C aktiviert ist oder nicht, an beiden Pins 3,3V. Das sollten eigentlich die Widerstände machen.

    Du weißt wie man einen GPIO-Pin schaltet? Mach mal die Funktion i2C aus und versuche beide Pins zu schalten. Mit dem messgerät kontollieren.

    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.

  • die Widerstandswerte messe ich an einen RPi2 auch.

    oh, haben die den R für SCL niederohmiger gemacht?...

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • SCL gibt ~3,1 V aus, der SDA vielleicht 0,1 V.

    Schalte ich bei SDA den Pull-Down ein, kommen dort ~2,9 V an.

    verstehst du Strom?

    wer pulldown einschaltet bekommt nie mehr Spannung! (ausser er misst falsch)

    So hat man aber Schwierigkeiten eine gemeinsame Sprachbasis zu finden.

    Lerne pullup, pulldown richtig zu nutzen.

    Lerne wie man misst!

    ich gebe auf!

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Verzeihung? Ich habe vorher OHNE Pulldown gemessen und nur 0,1 Volt angezeigt bekommen

    dann gib mir Nachhilfe, wer ohne pulldown 0,1V misst und mit pulldown 2,9V der soll das Wunder der Spannungserhöhung erklären können.

    Ich kann es nicht.

    pulldown

    https://www.elektronik-kompendium.de/public/schaerer/pullr.htm

    https://www.elektronik-kompendium.de/sites/grd/1505041.htm

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Moin Oldsmobile,

    pi@autoradio:~ $ gpio mode 8 out

    pi@autoradio:~ $ gpio write 8 1

    pi@autoradio:~ $ gpio mode 9 out

    pi@autoradio:~ $ gpio write 9 1

    Ich kenne den Befehl gpio nicht so genau. mode 8 damit ist GPIO8 gemeint?

    SRI

    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!