Wie man einen Audiocodec und Mikrocontroller für eingebettete Audio-Feedback-Dateien auswählt und verwendet
Zur Verfügung gestellt von Nordamerikanische Fachredakteure von DigiKey
2020-12-02
Bei eingebetteten Systemen besteht ein wachsender Bedarf an High-Fidelity-Audio anstelle von Summern für Benutzer-Feedback, einschließlich Alarme und Warnungen. Während Piepsen und Zwitschern in der Vergangenheit wirksam waren, erwarten die Benutzer heutzutage komplexere Klänge, die nur durch das Abspielen von Audio aus Dateiformaten wie MP3s erzeugt werden können. Das Problem besteht darin, dass die Audiowiedergabetechnik einschüchternd wirken und einem System zusätzliche Kosten und Komplexität hinzufügen kann. Der erste Instinkt ist, einen Mikrocontroller zu finden, der MP3s abspielen kann, aber das verteuert die Stückliste (BOM) und erhöht die Komplexität der eingebetteten Software erheblich.
Eine Lösung, die die zusätzlichen Kosten und die Komplexität der Software besonders effizient optimiert, ist die Verwendung eines Audiocodecs. Audiocodecs akzeptieren nicht nur einen Audiodatenstrom von einem Mikrocontroller, sie verfügen oft auch über mehrere Funktionen, die es dem Entwickler ermöglichen, das Audiowiedergabesystem sorgfältig abzustimmen, um die Qualität des vom System wiedergegebenen Tons zu verbessern.
In diesem Artikel werden die Rolle von Audiocodecs, die Hauptmerkmale, die Entwickler bei der Auswahl berücksichtigen sollten, und ihre effektive Anwendung besprochen. Lösungen von AKM Semiconductor, Texas Instruments und Maxim Integrated werden hier vorgestellt und als Beispiele verwendet, aber auch andere sind verfügbar. Den Abschluss bilden Tipps und Tricks darüber, wie die Entwicklung von Audiowiedergabeanwendungen mit einem Codec beschleunigt und gleichzeitig die Systemkosten gesenkt werden können.
Was sind Audiocodecs?
Ein Audiocodec ist eine Hardwarekomponente, die in der Lage ist, einen digitalen Datenstrom, der Audioinformationen enthält, zu codieren oder zu decodieren1. Ein Audiocodec ist nützlich, da er es ermöglicht, die Audioverarbeitung vom Mikrocontroller abzukoppeln. Dies kann die Software-Komplexität erheblich verringern und auch die Verwendung eines weniger teuren und weniger leistungsfähigen Mikrocontrollers für eine Anwendung ermöglichen.
Ein typischer Audiocodec wird mehrere Funktionsblöcke enthalten:
- Eine I2S-Schnittstelle zum Senden oder Empfangen kodierter digitaler Audiodaten
- Eine I2C-Schnittstelle zum Konfigurieren und Lesen der Steuerregister des Audiocodecs
- Ein Mikrofoneingang, der mit einem Analog/Digital-Wandler (ADC) verbunden ist
- Mindestens einen Audio-Ausgangskanal wie z.B. einen Lautsprecherausgang, aber die meisten verfügen auch über einen Line-Ausgang und können mehrere Lautsprecherausgänge für die Stereowiedergabe enthalten
- Ein digitaler Block, der Hochpass-, Tiefpass-, Notch- und Equalizer-Filter zur Abstimmung von Audiowiedergaben und -aufnahmen enthält
Ein Beispiel für einen Audiocodec, der aufgrund seiner geringen Kosten und Audiofähigkeiten recht beliebt ist, ist der 24-Bit-Audio-Codec AK4637EN von AKM Semiconductor (Abbildung 1). Der AK4637EN verfügt über all diese Merkmale, zusätzlich zu einem Pieptongenerator-Eingang, der verwendet werden kann, um einen Piepton mit einem Pulsweitenmodulationssignal (PWM) bei einer gewünschten Frequenz zu erzeugen.
Abbildung 1: Der AK4637EN ist ein Audiocodec mit Mono-Lautsprecherausgang, der über Funktionen zur Audiowiedergabe und -aufnahme verfügt. Er enthält zudem einen internen Audioblock, der zur Filterung ein- und ausgehender Audiosignale verwendet werden kann, um die Tonwiedergabe zu verbessern. (Bildquelle: AKM Semiconductor)
Entwickler werden feststellen, dass das Hauptunterscheidungsmerkmal eines Audiocodecs darin besteht, ob er Mono- oder Stereoton ausgibt, sowie in den digitalen Blockfunktionen. Zum Beispiel bietet der AK4637EN einen Hochpassfilter, einen Tiefpassfilter, einen Vierband-Equalizer, eine automatische Kanalpegel-Abgleichfunktion und einen Einband-Equalizer. Letzterer kann als Notch-Filter verwendet werden. Wie ein Entwickler diese digitalen Filter einstellt, kann den Klang eines Systems dramatisch beeinflussen.
Der Audiocodec kann einen Entwickler, der neu in der Audiowiedergabe ist, manchmal einschüchtern. Während der AK4637EN zum Beispiel ein einfacher Audiocodec ist, zeigt eine schnelle Prüfung des Datenblatts, dass er 64 konfigurierbare Register hat. Das mag auf den ersten Blick viel erscheinen, aber die meisten dieser Register werden zur Einstellung der Filterkoeffizienten für die verschiedenen verfügbaren digitalen Filter verwendet. Es gibt nur eine Handvoll, die verwendet werden müssen, damit das System Audio korrekt ausgibt, was die Treiberentwicklung für einen Audiocodec viel einfacher macht, als sich ein Neuling vorstellen kann.
Wie man einen Audiocodec auswählt
Einer der Hauptfaktoren bei der Auswahl von Produkten in der Produktentwicklung sind die Kosten, und bei den Audiocodecs ist das nicht anders. Dennoch ist es wichtig, daran zu denken, dass Entwickler das bekommen, wofür sie bezahlen. Wenn es also um Audio geht, muss ein Team die Designanforderungen sorgfältig gegen die wichtigsten Lösungsparameter abwägen.
Die erste Überlegung ist die erforderliche Ausgabe des Audiocodecs. Es gibt mehrere verschiedene Auswahlmöglichkeiten. Die AK4637EN verfügt beispielsweise über einen Line-Ausgang und einen Mono-Lautsprecherausgang. Es gibt andere Codecs wie den Stereo-Audiocodec TLV320AIC3110IRHBR von Texas Instruments, der zwei Lautsprecher mit 1,29 Watt ansteuern kann (Abbildung 2).
Abbildung 2: Der TLV320AIC3110IRHBR von TI ist ein Audiocodec mit Stereoausgang und Verstärkung zusätzlich zu einem Mikrofoneingang. Der Codec kann 1,29 Watt aus internen Verstärkern treiben und verfügt über programmierbare digitale Audioblöcke. (Bildquelle: Texas Instruments)
Andere Audiocodecs wie der MAX9867 von Maxim Integrated sind nur für den Betrieb eines Kopfhörers ausgelegt (Abbildung 3). Der MAX9867 verfügt über die typischen I2S- und I2C-Digitalschnittstellen, enthält aber auch Stereomikrofoneingänge und zwei Line-Eingänge, die digital ausgewählt werden können.
Abbildung 3: Der integrierte Audiocodec MAX9867 von Maxim kann Stereokopfhörer ansteuern und zwischen Digital-, Mikrofon- und Line-Eingang wählen. (Bildquelle: Maxim Integrated)
Die Entscheidung zwischen diesen drei Lösungen hinsichtlich des Ausgabetyps (oder sogar des Eingangs) ist eine frühe aber kritische Entscheidung.
Die Entwickler müssen sich auch überlegen, was sie ansteuern werden. Wird der Audiocodec Kopfhörer, einen Lautsprecher oder ein Lautsprecherpaar direkt ansteuern? Und wie hoch wird die Ausgangsleistung sein? Wenn das System einen 5-Watt-Lautsprecher ansteuern soll, gibt es nicht viele Codecs für eingebettete Systeme, die dies können. Stattdessen möchte ein Entwickler möglicherweise den Line-Ausgang auswählen und einen separaten Verstärker der Klasse D verwenden, um den Lautsprecher anzusteuern. Dies spart Kosten und bietet gleichzeitig Flexibilität bei der Entwicklung.
Zwei abschließende Überlegungen sind die internen Routing- und digitalen Filterfunktionen. Hier werden die tatsächliche Differenzierung und die Kostenunterschiede für einen Audiocodec bestimmt. Zum Beispiel verfügt der TLV320AIC311IRHBR über De-Pop- und Sanftanlauf-Funktionen, um das Lautsprecher-Knacken zu minimieren und einen sanften Übergang in die Audiowiedergabe zu ermöglichen. Er verfügt außerdem über einen internen Mixer für jeden Ausgangskanal und einen digitalen Lautstärkeregler.
Es ist Sache des Entwicklers, seine Anforderungen an den Audiocodec mit der Stückliste und dem Platinenplatz, der von der Schaltung verbraucht wird, sorgfältig abzuwägen.
Das Audio-Wiedergabesystem
Bei der Arbeit mit einem Audiocodec ist es wichtig zu erkennen, dass es mehrere verschiedene Blöcke außerhalb des Audiocodecs gibt, die für eine erfolgreiche Audiowiedergabe erforderlich sind. Die genauen Blöcke werden je nach Anwendung und der für die Wiedergabe gewählten Methode leicht variieren, aber ein verallgemeinertes Diagramm ist in Abbildung 4 dargestellt.
Abbildung 4: Ein verallgemeinertes Anschlussblockdiagramm für ein Audiowiedergabesystem in einer typischen eingebetteten Anwendung zeigt, dass Speicherplatz für Audiodateien vorhanden sein muss, der sich auf dem Mikrocontroller oder in einem externen Speicher befinden kann. (Bildquelle: Beningo Embedded Group)
Es gibt mehrere Punkte in diesem Diagramm, die eine Diskussion wert sind. Zunächst muss es eine Methode geben, die zum Speichern der Audio-Wiedergabedateien verwendet wird. Dazu gibt es zwei Möglichkeiten: die Dateien intern im Flash-Speicher des Mikrocontrollers oder extern im Flash-Speicher zu speichern. Die Wahl hängt davon ab, wie groß die Audiodateien sind und wie groß der interne Flash-Speicher auf dem Mikrocontroller ist.
Die Entwickler müssen sich auch überlegen, welches Audio-Wiedergabeformat verwendet werden soll. Das gebräuchlichste Format ist MP3. In diesem Fall muss der ausgewählte Mikrocontroller über einen Softwarestack verfügen, der die MP3-Dekodierung unterstützt. Dadurch kann die MP3-Datei geöffnet und dann mit Hilfe eines DMA-Controllers (Dynamic Memory Access) über die I2S-Schnittstelle ausgegeben werden. Sogar der I2S-Port kann für Master/Slave und verschiedene andere Modi konfiguriert werden, so dass dies sorgfältig geprüft werden muss, um sicherzustellen, dass die Daten mit der richtigen Rate an den Codec übertragen werden.
Wie bereits erwähnt, kann je nach Anwendung ein externer Audioverstärker erforderlich sein oder auch nicht. Ein typischer Codec gibt etwa 1 bis 1,5 Watt aus, was ausreicht, um einen kleinen Lautsprecher anzusteuern. Um einen Lautsprecher mit 3 Watt oder mehr anzusteuern, muss ein externer Verstärker verwendet werden. Auch hier sind die am weitesten verbreiteten Verstärker die der Klasse D. Der Verstärker muss auch nicht unbedingt eine variable Verstärkung haben. Der Audiocodec kann die Lautstärke digital einstellen, um einen weiten Bereich an Ausgangsleistung zur Verfügung zu stellen.
Ein Bereich, der oft übersehen wird, ist die Massenkapazität. Wenn Audio abgespielt wird, kann dies die Versorgungsschienen stark belasten. Wenn die Kapazität auf dem Board nicht ausreicht, kann die Ausgangsqualität dramatisch beeinträchtigt werden und neben verschiedenen anderen unerwünschten Geräuschen einen schrillen Klang annehmen. Dies kann durch sorgfältige Überwachung der Versorgungsschienen während der Tests festgestellt werden. Es ist keine schlechte Idee, bei der Entwicklung von Leiterplatten zusätzliche Platinenflächen zu hinterlassen, damit verschiedene Kapazitätswerte ausprobiert werden können, um die Ausgangsschaltung abzustimmen.
Tipps und Tricks zur Auswahl und Verwendung eines Audiocodecs
Audiocodecs können die eingebettete Software dramatisch vereinfachen und eine Anwendung mit großartig klingender Audioqualität liefern. Audiocodecs können aber auch knifflig sein, wenn ein Entwickler noch nicht mit ihnen gearbeitet hat. Um einen Audiocodec erfolgreich einzusetzen, gibt es einige „Tipps und Tricks“, die Teams beachten sollten, wie zum Beispiel
- Verwendung von direktem Speicherzugriff (DMA, Direct Memory Access) innerhalb eines Mikrocontrollers, um den Audiocodec mit minimalem CPU-Eingriff zu speisen. Dadurch wird sichergestellt, dass der Codec bezüglich der Datenversorgung nicht „ausgehungert“ wird.
- Wenn kein Ton wiedergegeben wird, verwenden Sie die Stummschaltungsfunktion (Mute) des Codecs, um zu verhindern, dass niedriges Ausgangsrauschen den Lautsprecher erreicht.
- Wenn Sie die Wiedergabe deaktivieren oder aktivieren, verwenden Sie die Soft-Mute-Funktion eines Audiocodecs, um Lautsprecherknacken und andere unerwünschte Geräusche zu verhindern.
- Verwenden Sie eine Terminalanwendung zur Ausgabe der Codec-Register, nachdem der Codec initialisiert wurde. Dies kann besonders nützlich sein, wenn Sie versuchen, Probleme zu beheben oder die Lautsprecherausgangsschaltung und das Gehäuse abzustimmen.
- Nutzen Sie die internen digitalen Filtermechanismen, die in einem Codec enthalten sind. Die digitalen Filter ermöglichen es dem Entwickler, die Ausgabe zu entzerren, unerwünschte hohe und niedrige Frequenzen herauszufiltern und die Qualität des Soundsystems zu maximieren.
- Vergessen Sie nicht, dass die Abstimmung des Klangs nur dann sinnvoll ist, wenn die Leiterplatte und der Lautsprecher im Gehäuse installiert sind, da das Gehäuse und die Befestigung einen großen Unterschied machen.
Als Einstieg können Entwickler mit dem Evaluierungskit MAX9867EVKIT+ für den MAX9867 von Maxim Integrated experimentieren (Abbildung 5).
Abbildung 5: Das Evaluierungskit MAX9867EVKIT+ für den MAX9867 wird über ein USB-Kabel an einen PC angeschlossen und verfügt über Cinch-Eingänge, Kopfhörerausgänge und faseroptische Sende- und Empfangsmodule. (Bildquelle: Maxim Integrated)
Das Kit besteht aus dem Board und der zugehörigen Software und ist so konfiguriert, dass es Audiodaten über die digitale S/PDIF-Schnittstelle (Sony/Philips Digital Interface) sendet und empfängt, kann aber auch auf die Verwendung von I2S eingestellt werden. Es verfügt über zwei RCA-Eingangsbuchsen, zwei Kopfhörerbuchsen mit 3,5 mm Analogausgang und faseroptische Empfangs- und Sendemodule. Die Software ist Windows-kompatibel, und wenn sie über ein USB-Kabel an einen PC angeschlossen wird, öffnet sich eine grafische Benutzeroberfläche (GUI), über die der Entwickler mit den Einstellungen des MAX9867 experimentieren kann (Abbildung 6).
Abbildung 6: Unter Verwendung der Windows-basierten GUI können Benutzer mit einer Vielzahl von MAX9867-Einstellungen experimentieren, angefangen bei Takt und Digital Audio (ausgewählter Reiter) bis hin zu Register 1 und Register 2 (rechts). (Bildquelle: Maxim Integrated)
Fazit
Die Benutzer eingebetteter Systeme haben sich an hohe Audioqualität so sehr gewöhnt, dass diese nun anstelle von Summer und Piepton bei Alarmen, Warnungen und anderen Audio-Feedbacks erwartet wird. Dies stellt die Entwicklungsteams vor die Aufgabe, MP3-Wiedergabefunktionen in ihre Systeme zu implementieren. Dies kann auf den ersten Blick als ein komplexes Unterfangen erscheinen. Durch die Verwendung des richtigen Audiocodecs zusammen mit einem Mikrocontroller und durch die Befolgung einiger bewährter Methoden beim Design können Entwickler jedoch die Kosten und die Komplexität, die mit Audio-Anwendungen verbunden sind, ausgleichen.
Referenzen
Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der DigiKey oder offiziellen Politik der DigiKey wider.

