Wie man Omega 2 oder die Legende von I2S spricht

Was ist die große Sache mit I2S, sagst du? Schließen Sie die Verkabelung an die gewünschten Stifte an und alles funktioniert.

Omega2-Minicomputer Das dachte ich auch, aber mit dem Omega2-Minicomputer stellte sich heraus, dass es nicht so einfach war. Also habe ich beschlossen, diesen Artikel zu schreiben.

Beginnen wir mit dem, was ich am Ende erreicht habe. Ich habe den TDA1543-Chip (Stereo-I2S-DAC mit einer Auflösung von 16 Bit in der Amplitude) an den Omega-2-Mikrocomputer angeschlossen. Der Klang ist gut, ich höre gerne Internetradiosender (es sollte einen Witz über audiophilen und warmen Röhrensound geben). Ich verstand den Grund für die Überlastung des Audios jedoch immer noch nicht, sondern lernte nur, ihn mit der Krückenmethode zu umgehen. Und ich würde sehr gerne Ihre Ideen zu diesem Thema hören.

Vielleicht weiß jemand nicht, was Omega2 ist. Dies ist der Minicomputer, auf dem Linux auf LEDE basiert, einem Zweig von OpenWRT. MT7688-Prozessor, 64 MB RAM und 16 MB Flash. Im Allgemeinen können Sie hier und hier mehr auf Wikipedia lesen.

Es ist auch wichtig zu beachten, dass alle Aktionen mit der ursprünglichen Firmware-Version 0.2.0 ausgeführt werden

Und jetzt lass uns ein wenig über den Schmerz sprechen, als ich dazu kam.
Zunächst ist alles transparent, wir verbinden alle Leitungen von I2S TDA'shki und Omega. Dies sind die CLK-Taktleitung, die WS-Kanalsynchronisationsleitung, die DATA-Datenleitung bzw. die GND-Masse. Außerdem fügen wir einige Widerstände und Kondensatoren hinzu, aber die Hauptsache ist der Abstimmwiderstand am 7. Zweig des TDA1543. Auf dieses Bein muss ein Nullpunktversatz angewendet werden, auf dem ich zum ersten Mal eingeschlafen bin. Tatsache ist, dass der für seine Zeit einzigartige TDA1543-Chip mit unipolarer Energie betrieben wird. Nun, das Tonsignal besteht aus Schwingungen in Bezug auf 0 nach unten und oben. Sie müssen diese Null also in die Mitte des Versorgungsspannungsbereichs verschieben und die Schwingungen relativ zu diesem Punkt ermitteln. Alles ist im Datenblatt geschrieben, aber anfangs habe ich eine Schaltung mit einem herkömmlichen Widerstand (aus diesen aus Ihrem Internet) zusammengebaut und Verzerrungen erhalten, die ich lange nicht verstanden habe. Setzen Sie einen variablen Widerstand ein und erreichen Sie eine Nullvorspannung, wenn am Eingang kein Signal vorhanden ist (Standby-Modus). 1,3-1,5 V (mit 3,3 V-Stromversorgung). Es stellt sich das folgende Schema heraus.

Anschlussplan TDA1543 zu Omega2

Außerdem werden wir gemäß den Schritten auf der offiziellen Zwiebel-Website aktualisiert, um die Firmware-Version zu entwickeln, die Unterstützung für I2S hinzufügt (ich wollte weniger als ein Jahr schreiben, aber es ist kein ... vergangen). Wir aktualisieren und installieren die notwendigen Pakete für Sound:

opkg update opkg install alsa-utils mpg123 

Schalten Sie GPIO mit dem folgenden Befehl in den I2S-Modus:

 omega2-ctrl gpiomux set i2s i2s 

Wir kopieren die Test-WAV-Datei, ich habe die klassische Suzanne Vega - Tom's Diner verwendet. Und versuchen Sie, mit aplay zu spielen:

 aplay za_sebya_i_za_sashky.wav 

Und wir hören Verzerrungen. Nur viel harte Überlastung. So sehr, dass es so aussieht, als wären Sie 2007 zurück. Aber das Schockmotiv des Songs lässt sich darin nachvollziehen, also funktioniert dort etwas, oder?

Ich habe versucht, die Lautstärke im alsa-Mixer zu verringern - ohne Erfolg, da der Treiber durch den von I2C gesteuerten MAX98090-Chip geschärft wird und dementsprechend alle Einstellungen einfach an I2C gesendet werden und sich die I2S-Daten selbst nicht ändern.

Ok, öffnen Sie das Datenblatt auf dem MAX98090. Und wir fangen an zu leuchten. Die Mikroschaltung unterstützt viele Eingabedatenformate: I2S / LJ / RJ / TDM und kann ein großes Bit verarbeiten. Der MT7688-Prozessor selbst kann auch größer und schneller als der TDDA sein. Vielleicht Datenprobleme in I2S?

Ich bastelte allmählich am Oszilloskop.

Bit 16 Bit? Ja Ich habe die WS-Leitung an einen Kanal des anderen Kanals, die CLK-Leitung, gehängt. Und ich war von der Pulslänge WS - 16 überzeugt.

Falsche Betriebsfrequenzen? Nein. Die Frequenzen entsprechen alle den Arbeitern. WS - 44100 Hz, CLK - 1411200 Hz.

Typnummern in den Daten formatieren? Es wird das richtige Zeichenformat verwendet (ja, ich dachte, es wäre nicht signiert erforderlich). Er überprüfte, indem er künstliche Sinus erzeugte und sie relativ zu 0 in der Kühnheit auf und ab bewegte und die Amplitude änderte. Es gibt keine qualitativen Änderungen.
Gibt es überhaupt I2S? höchstwahrscheinlich ja. Erstens, weil dann alles für mich funktioniert hat (na ja, oder so scheint es mir), und zweitens habe ich versucht, dies mit einem Oszilloskop zu überprüfen, obwohl dies ohne einen Logikanalysator natürlich schwierig ist. Es kann sich lohnen, einen genaueren Test durchzuführen und Ihren Beaglebone hierher zu bringen.

Es scheint, dass alles wahr ist und für die Jungs vom Zwiebelforum funktioniert alles, aber die Wahrheit ist auf anderen Chips: MAX98357A und PCM5102. Im Allgemeinen gebe ich die Idee auf, Wav'ki zu spielen und mpg123 dazu zu bringen, MP3s abzuspielen. Ich schneide es mit dem Flag -C und beginne die Lautstärke zu verringern. Und hier habe ich mich gesetzt. Wenn ich die Lautstärke im Programm mpg123 auf ungefähr 1 Prozent einstelle, erhalte ich einen großartigen Klang. Der Chip schwingt auf volle Amplitude. Ich starte das Radio mit der Flagge -f 128:

 mpg123 -f 128 http://us2.internet-radio.com:8443/ 

Und die Klänge eines entspannenden amerikanischen Blues treffen mich. Übrigens funktioniert die Verbindung zum Radio möglicherweise nicht, von hier aus .

Bild Ich starte ein Sägezahnsignal und erhöhe allmählich die Amplitude. Als Ergebnis habe ich gesehen, dass Verzerrungen chaotische Sprünge von 0 zur Versorgungsspannung sind und je höher der Pegel, desto mehr diese Sprünge. Ich habe mehrere Wochen gebraucht, um Omega zum Sprechen zu bringen. Ich war sehr müde und deshalb habe ich mich in diesem Moment entschlossen aufzuhören - es funktioniert!

Ich verstehe jedoch, dass dies unmöglich ist, und freue mich über Ihre Ideen und Vorschläge. Nun, für diejenigen, die versuchen, Omega in Qualen zum Reden zu bringen, hoffe ich, dass ich Ihnen geholfen habe!

Danke an alle!

Source: https://habr.com/ru/post/de413623/


All Articles