Forum: Mikrocontroller und Digitale Elektronik I2S Verstärker


von Markus (Gast)


Lesenswert?

Ich habe mir hier diesen I2S Verstärker auf einem Breakout-Board 
gekauft:
https://datasheets.maximintegrated.com/en/ds/MAX98357A-MAX98357B.pdf

Im Datenblatt steht, dass er z.B. 16kHz und 30kHz sampling rate 
unterstützt.
Eigentlich ist das I2S interface ja synchron, warum soll nicht eine 
beliebige Rate funktionieren? Hat jemand eine Idee?

von Clemens L. (c_l)


Lesenswert?

Seite 16: "LRCLK ONLY supports 8kHz, 16kHz, 32kHz, 44.1kHz, 48kHz, 
88.2kHz and 96kHz frequencies." Auf Seite 6 stehen die erlaubten 
Abweichungen für diese Frequenzen.

Ich vermute mal, dass andere Frequenzen auch funktionieren, aber dass 
der Chip nicht notwendigerweise den richtigen digitalen Filter (S. 17) 
auswählt.

Beitrag #4981493 wurde vom Autor gelöscht.
von Markus (Gast)


Lesenswert?

Danke. Es könnte also sein, dass er eigentlich funktioniert, aber nicht 
ganz so gut klingt.

Etwas bedenklich finde ich den Satz auf Seite 19:
>Do  not  remove  LRCLK  while  BLCK  is  present.
>Removing LRCLK while BCLK is present can cause
>unexpected output behavior, including a large DC output
>voltage.

Das hört sich fast so an, als wenn es zu Schäden kommen könnte, wenn ein 
Softwarefehler auftritt.

von Markus (Gast)


Lesenswert?

Hier gibt es eine Anleitung und Breakout-Board von Adafruit zu dem 
Verstärker:

https://www.adafruit.com/product/3006

von Markus (Gast)


Lesenswert?

Und hier das Beispiel, wie er an einen Arduino Zero angeschlossen wird.

https://www.arduino.cc/en/Tutorial/ArduinoSoundWavePlayback

( Ich poste die Links nur, weil ich diese Threads immer wieder als 
Wissenssammlung benutze und dann schnell die Informationen wieder 
zusammen kriege )

von Bummsfallera (Gast)


Lesenswert?

Markus schrieb:
> Und hier das Beispiel, wie er an einen Arduino Zero angeschlossen wird.
>
> https://www.arduino.cc/en/Tutorial/ArduinoSoundWavePlayback
>
> ( Ich poste die Links nur, weil ich diese Threads immer wieder als
> Wissenssammlung benutze und dann schnell die Informationen wieder
> zusammen kriege )

Dir ist bekannt, dass es am PC Programme wie Notepad gibt?
Also solche, wo man Text aufschreiben kann?

von Markus (Gast)


Lesenswert?

>Dir ist bekannt, dass es am PC Programme wie Notepad gibt?
>Also solche, wo man Text aufschreiben kann?

Können die andere Leute auch lesen, wenn sie bei mir auf dem Computer 
liegen?

von Markus (Gast)


Lesenswert?

Die Lernkurve beginnt: es funktioniert nicht.

So wie es aussieht, geht der Verstärker in den sogenannten "TDM" mode, 
wenn die Flanken auf dem LRCLK nicht gleich lang sind ...

von Markus (Gast)


Angehängte Dateien:

Lesenswert?

Hat den Codec schon mal jemand erfolgreich benutzt?
Er scheint gerne beim Raspi verwendet zu werden.

von STler (Gast)


Lesenswert?

Markus schrieb:
> Hat den Codec schon mal jemand erfolgreich benutzt?
> Er scheint gerne beim Raspi verwendet zu werden.

Welche Antwort ergibt sich wohl aus Deiner letzten Aussage auf die 
Frage?

von Markus (Gast)


Lesenswert?

Die Zusammenfassung dieses Threads:

Der MAX98358A braucht einen sehr stabilen Takt, da er einen 
Auto-Detection-Modus hat, mit dem er sich konfiguriert.

Ein STM32F103 ohne I2S Schnittstelle ist für die Ansteuerung dieses 
Chips nicht geeignet, es ist dem Chip kein Ton zu entlocken.

Mit einer I2S-Schnittstelle wie sie z.B. beim STM32F407 vorhanden ist, 
funktioniert der Chip problemlos:

Beitrag "Re: STM32F407 Black und Arduino"

von Info (Gast)


Lesenswert?

Markus schrieb:
> Hat den Codec schon mal jemand erfolgreich benutzt?
> Er scheint gerne beim Raspi verwendet zu werden.

Habe ein Board von Adafruit: es knackt immmer hörbar und damit störend, 
wenn I2S beim Abspielen anläuft (je nach Player und ohne ALSA-Softmixer 
auch zwischen Audiodateien). CLK startet (auch nicht schön: mit kurzer 
Unterbrechung) vor LRCLK und verursacht vermutlich je nach Timing 
unterschiedlich starkes Knacken.

Wahrscheinlicher Zusammenhang:

Markus schrieb:
> Etwas bedenklich finde ich den Satz auf Seite 19:
>>Do  not  remove  LRCLK  while  BLCK  is  present.
>>Removing LRCLK while BCLK is present can cause
>>unexpected output behavior, including a large DC output
>>voltage.
>
> Das hört sich fast so an, als wenn es zu Schäden kommen könnte, wenn ein
> Softwarefehler auftritt.

Es klingt auch so (aber noch deutlich stärker als das Knacken).

Die I2S-Spezifikation scheint Beginn und Ende der Übertragung gar nicht 
zu definieren.

Abhilfe:
 - Kernel-Treiber ändern
   - CLK-Reihenfolge ändern (unwahrscheinlich)
   - I2S-CLKs nicht abschalten (knackt nur einmal beim Einschalten)
 - dauernd "nichts" abspielen (knackt nur einmal beim Einschalten)
 - Board und Treiber mit STDBY-Unterstützung verwenden (Treiber 
existiert, muss aber selbst kompiliert werden)

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
Noch kein Account? Hier anmelden.