Forum: Mikrocontroller und Digitale Elektronik SI4688 / MAX98089 DAB+/FM Shield/Breakout


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Andreas M. (amesser)


Bewertung
0 lesenswert
nicht lesenswert
Mit Bezug auf Beitrag "Re: DABPi - FM/DAB Empfänger mit Si4688 für Raspberry Pi" 
starte ich mal eine neue Diskussion um den dortigen Thread nicht weiter 
Themenfremd zu füllen.

Zur Einführung: Ich habe vor längerer Zeit eine kleine Platine für 
DAB+/FM Radioempfang inklusive Audiocodec/Verstärker entwickelt. Diese 
Platine braucht ein paar Korrekturen und im Zuge dessen habe ich mir 
gedacht das daran vielleicht größeres Interesse besteht und es Sinn 
macht die neue Platine eventuell in einem breiter nutzbaren Format zu 
Entwickeln.

Der Grundgedanke der Platine ist: ein Si4688 DAB+/FM Radio IC der seine 
Audiodaten per I2S an den Max98089 übergibt. Dieser Max98089 gibt dann 
die Audiodaten in Stereo entweder per analogem Line-Out oder per 
integriertem Class-D Verstärker aus. (ca 2.9W@4Ohm pro Kanal) Zusätzlich 
kann ein Mikrocontroller über den 2. I2S Port des Max98089 ein eigenes 
Signal einspeisen. (Z.B. um MP3s oder Streams abzuspielen) Theoretisch 
könnte der Max98089 auch die Audiodaten vom Radio zum Mikrocontroller 
leiten. (Zum Aufnehmen...)

Ich habe mir die letzten Tagen mal die verschiedenen Formate: Arduino 
Uno, Arduino MKR, Arduino Nano sowie Teensy angeschaut. Leider ist es so 
sich sogar die Arduinos untereinander stark unterscheiden. Am liebsten 
würde ich eine Platine entwickeln, die mit möglichst verschiedenen 
Formaten direkt zurechtkommt und man einfach Aufstecken kann, wobei ich 
mir gar nicht sicher bin, ob es bei dem Arduino MKR oder dem Teensy 
überhaupt sinnvoll ist, die Zielgruppe von den Boards ist ja eine andere 
als die vom Arduino Uno. Die Grundfläche der Boards zwischen den Pins 
ist außerdem zu klein.

Wenn ich den Arduino Uno als Basis nehme, die Platine allerdings nur 
halb so breit, also so das nur links und rechts jeweils der obere 
Steckverbinder genutzt wird (Links Spannung, rechts I2C), dann wäre das 
eigentlich schon wieder zu viel Platz, die Boards werden teurer, man 
könnte dann aber noch mehr aufs Board packen, zB. ein SD-Karten Halter. 
Letzteres wäre auch für den Teensy sinnvoll.

Beim Arduino Uno Format kämen der Zero, und der Mega vermutlich in 
Frage, ist dafür der Interessentenkreis überhaupt groß genug, dass ich 
das lohnt?

Was meint Ihr?

: Verschoben durch Moderator
von Andreas M. (amesser)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So, ich habe jetzt nochmal ein bischen gespielt. Dabei bin ich bei einer 
Platine mit etwa 55x35mm Außenmaß angelangt. Nach diesem Entwurfsversuch 
wäre es möglich:

Die Platine auf einen Arduino Mega 2560, einen Arduino Zero oder auch 
einen Arduino Duo Quer draufzustecken. Der größte Teil der Pins bleibt 
dabei ungenutzt. Für I2S müsste man bei diesen Arduinos dann ein paar 
Jumpwires anbringen. Ansonsten wird mir die Platine zu groß.

In Längsrichtung könnte man einen Arduino MKR Zero oder einen Arduino 
MKR Wifi 1010 aufstecken. Zwei Schrauben wäre nutzbar. I2S würde ich 
über Lötbrücke (Widerstandarray) Jumperbar machen. Die anderen MKRS 
gehen vermutlich auch, habe da jetzt aber I2S nicht explizit geprüft, on 
es so sinnsoll ist LoRaWan damit zu kombinieren sei aber mal 
dahingestellt.

Außerdem würde in Längsrichtung auch ein Teensy V3.2 oder V4.0 gehen. 
(Quasi die kurzen Modelle) I2S wieder über Widerstandarray jumperbar. 
(USB Stecker wäre in dem Bild dann Links, wie auch beim MKR)

Als Extra könnte ich noch einen kurzen MicroSD Slot drauf bringen, der 
wäre dann per SPI angebunden.

Ich wollte eigentlich nur einseitig Bestücken, aber bei den 
Widerstandsarrays zum Jumpern könnte ich mir vorstellen das die auf der 
Rückseite plaziert einfacher lötbar wären, muss man dann nicht auf die 
Nachbarbauteile aufpassen und die würden ja eh erst im Nachgang bestückt 
werden.

von Engineer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich würde dir vermutlich einen ESP32 empfehlen hier. Unabhängig davon ob 
man jetzt mal die WiFi funktion nutzt.

Hier gibt es durchaus gute Tutorials wie man bidirektional I2S rein und 
rausfahren kann. Dann kannst du sogar DSP auf dem ESP32 noch machen 
z.B., gleichzeitig noch per I2C/SPI den chip kontrollieren und 
bidirektional Musik rein und rausstreamen (wenn man Lust hat das zu 
implementieren).

Hänge dich nicht auf dem Arduino auf. Da wird es schwierig mit I2S.
Außerdem verlangt der SI4688 eine externe Audio-Clock. Die muss erstmal 
erzeugt werden. ESP32 kann das alles.

von Engineer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
STM32 wäre auch eine gute Idee. Die haben auch einen nativen I2S und mit 
der HAL library sehr einfach zu bedienen.

Ich habe auf beiden uC's schon Audio Projekte implementiert.

von Thomas G. (Firma: Frickelhauptquartier) (taximan)


Bewertung
0 lesenswert
nicht lesenswert
ESP32 hätte den Vorteil, dass man auch ein Webradio einbauenkönnte.

von Andreas M. (amesser)


Bewertung
0 lesenswert
nicht lesenswert
Engineer schrieb:
> Ich würde dir vermutlich einen ESP32 empfehlen hier. Unabhängig davon ob
> man jetzt mal die WiFi funktion nutzt.

Es geht hier nicht um ein spezifisches Projekt für mich. Es geht hier um 
ein allgemein verwendbares Erweiterungsboard ("Shield"), dass man mit 
den üblich verfügbaren Entwicklerkits benutzen kann. Ich dachte das wäre 
in meinem Eingangspost klar geworden, anscheinend nicht. Natürlich kann 
man auch einen ESP32 verwenden. Gibt es den bei den ESP32 ein 
verbreiteteres Format für fertige Steckmodule?

Engineer schrieb:
> Hier gibt es durchaus gute Tutorials wie man bidirektional I2S rein und
> rausfahren kann. Dann kannst du sogar DSP auf dem ESP32 noch machen

Ich denke, das so ziemlich alle Microcontroller die I2S haben, das auch 
bidirektional können. Was wäre den der Anwendungsfall für DSP Funktionen 
beim Radiohören? Falls Du es nicht gelesen hast, auf der 
Erweiterungsplatine ist ein MA98089, der hat einen eingebauten DSP und 
kann mit seinem frei parametrierbarem 5-Band EQ und diversen anderen 
Funktionen eigentlich alles was man meiner Meinung nach so für ein Radio 
braucht.

Engineer schrieb:
> Hänge dich nicht auf dem Arduino auf. Da wird es schwierig mit I2S.
> Außerdem verlangt der SI4688 eine externe Audio-Clock. Die muss erstmal
> erzeugt werden. ESP32 kann das alles.

Der Takt fürs I2S des SI4688 wird vom Max98089 erzeugt dazu braucht der 
keinen Mikrocontroller. Das einzige was der Mikro bei meiner 
Erweiterungsplatine machen muss ist ein bischen I2C um den Si4688 und 
den Max98089 anzusteuern. Mehr nicht. I2S über den Mikro ist eine 
Zusatzfunktion, z.B. um Musik abzuspielen oder Aufzunehmen.

Was wird beim Arduino MKR schwierig mit I2S? Die haben alle mindestens 
einen SAM21D und der kann das ebenfalls wie der ESP32 in Hardware. Es 
gibt z.B. auch einen Arduino MKR Vidor, da ist zusätzlich zum SAM21D, 
einem Wifi Modul auch noch ein Cyclone 10 (Altera Max 10) FPGA drauf. 
Dem kann ein bischen I2S und Audio DSP nur ein müdes Lächeln entlocken. 
Arduino heist nicht unbedingt "kann nichts"

Engineer schrieb:
> STM32 wäre auch eine gute Idee. Die haben auch einen nativen I2S und mit
> der HAL library sehr einfach zu bedienen.

Thomas G. schrieb:
> ESP32 hätte den Vorteil, dass man auch ein Webradio einbauenkönnte.

Es gibt heutzutage massenweise Mikrocontroller die I2S können, und auch 
viele Boards die Wifi haben.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.