Erweiterung der Funktionalität des Standard-Audiosystems

Hallo an alle. Ich bin der Besitzer eines zehnjährigen Japaners, bei dem bis auf das Standard-Audiosystem alles zu mir passte - es war kein Bluetooth darin. Es gibt drei Möglichkeiten, um dieses Problem zu lösen:

1. Kaufen Sie einen Stecker im Zigarettenanzünder und zeigen Sie nicht.

Nachteile:

  • Klangqualität
  • Kein Management
  • Keine Songtitelausgabe

Es gibt keine Pluspunkte.

2. Um bei einem Showdown für viel Geld ein normales Bluetooth-Gerät + einen neueren Kopf zu kaufen.

Nachteile:

  • Blockieren Sie Kompatibilitätsprobleme
  • Mono-Audioausgang (bei einigen Geräten)
  • Der Preis mit dem Austausch des Kopfes und der Verkabelung entspricht fast dem Notfunkgerät
  • Neben dem lateinischen Alphabet gibt es keine Unterstützung

Vorteile:

  • Serienausstattung

3. Machen Sie etwas selbst, aber um die vorhandene Funktionalität nicht einzuschränken.

Nachteile:

  • Brauche Zeit
  • Es wurde mehr Geld ausgegeben, als die ersten beiden Optionen zusammen zu wählen

Vorteile:

  • Arbeitszufriedenheit
  • Verlustfreie Audio-Unterstützung
  • Kyrillische Unterstützung, obwohl transliteriert, als Der Bildschirm weiß nicht wie.

Wie Sie aus dem Namen verstanden haben, habe ich Pfad Nummer 3 gewählt.

Ausgangsdaten.

Das native Audiosystem, das aus einer Headunit und einem Panel besteht, das so aussieht:

Bild

Es verfügt über den AUX-Modus, mit dem Sie externe Geräte anschließen können, um Musik zu hören. Warum nicht für eigene Zwecke nutzen? Stellen Sie sicher, dass mit einer bestimmten Tastenkombination der AUX-Modus startet, gleichzeitig jedoch alle Daten auf dem Bildschirm vollständig von uns gesteuert werden und der Ton in AUX vom Bluetooth-Modul umgeleitet wird.
Glücklicherweise finden Sie im öffentlichen Bereich ein Handbuch mit einer Schaltung, aus dem hervorgeht, dass die Schnittstelle zwischen Kopf und Bedienfeld ein normaler UART ist.

Bild

Unter Verwendung eines Logikanalysators wurden die Geschwindigkeit und das Protokoll des Austauschs zwischen dem Kopf und der Platte bestimmt. (Bildschirmaktualisierungsrate von 10 Bildern pro Sekunde, Klickfrequenz 30 ms, 14400E2). Zusammen mit der Arduinka wurde ein Ergebnis in Form von Hello World erzielt.

Bild

Der nächste Schritt war die Auswahl eines Mikrocontrollers für die Implementierung. Die Wahl fiel auf den STM32F103, an Bord von bis zu 3 UART wird der CAN-Bus unterstützt (warum nicht hinzufügen). CSR8645 wurde ursprünglich als Bluetooth-Modul gekauft, die erste Version war mit dabei, aber es konnte die Namen der Tracks nicht anzeigen (oder ich habe es nicht vollständig herausgefunden) und hatte auch keine digitale Bussteuerung, so dass ein Modul namens Bluegiga direkt aus den USA gekauft wurde WT32i, in dem alles vorhanden war und noch mehr - Unterstützung für digitale Audioausgabe und den AptX-Codec. Für ein paar Monate, wenn es Freizeit gab, wurde die Entwicklung eines Prototyps durchgeführt. Alle Schrecken von HAL und die Reize von SPL waren bekannt. Gründlich studiert UART und DMA im Mikrocontroller, weil es war notwendig, alles zusammenzubinden, damit es ohne Bremsen und Ausfälle funktionierte.

Einige Fotos des Prozesses
Bild
Bild

Dann wurde all dieses Zeug in die Haupteinheit eingeführt, aber damit es ohne Probleme zur Überarbeitung geflasht und entfernt werden konnte. Als Schnittstelle wurden ein HDMI-Kabel und ein Anschluss eines toten Laptops verwendet.

Fotos zum Zeitpunkt des Debuggens ist es besser, nicht hinzuschauen
Innenansicht:

Bild

Außenansicht:

Bild

Der Fall wurde von einem alten Laptop-Netzteil gemacht.

Es ist an der Zeit, die Leiterplatte unter dieses Geschäft zu stellen und alles aus dem Kopf zu nehmen, damit Sie diese Sammelfarm jederzeit entfernen und den Betrieb der Maschine nicht stören können. Das Ergebnis war so schön:

Bild

Ich habe das Board zum ersten Mal in meinem Leben gezüchtet, das kann man kritisieren, aber in Maßen. Der Abend war verlötet und es hat beim ersten Mal funktioniert, was mich sehr überrascht hat.

Bild

Als nächstes wurde der CAN-Transceiver TJA1051 hinzugefügt, mit dem Sie eine Reihe interessanter und nicht sehr genauer Daten vom CAN-Bus des Fahrzeugs abrufen können. Im Moment verwende ich nur die Ausgabe des Kraftstoffverbrauchs pro Stunde, weil reguläres bk hat eine solche Funktion nicht.

Bild

Video wie es funktioniert:


Wie Sie vielleicht bemerkt haben, wird der russische Text mehr oder weniger intelligent in Transliteration angezeigt. Zum Beispiel wird der Buchstabe h durch ch usw. ersetzt, was mit regulären Mitteln nicht erreicht werden konnte. Nun, zusätzlich Unterstützung für verlustfreies Audio.

Für diejenigen, die sich nach Details sehnen. Alle 3 UARTs sind beteiligt. Eine auf dem Display, eine auf den Tasten und eine auf dem Bluetooth-Modul. Der Schallstrom wird von einem analogen Multiplexer geschaltet. CAN wird auch von STM32 verwendet. Es gibt einen externen DAC PCM5102, der Sound ist sehr gut. Verbindet zwischen dem Kopf und der Verkabelung des Autos. Die Steckverbinder wurden bei der Demontage gefunden.

Es stellte sich als teurer heraus als der Kauf eines normalen Bluetooth-Systems, brachte aber viel mehr Freude an der Entwicklung.

Es ist geplant, die Funktionen der Fahrzeuganpassung anzupassen (Besitzer von Mitsubishi 2008+ werden verstehen, worum es geht), das Protokoll ist bereits vorhanden, alles wird überprüft, es muss noch in der Firmware implementiert werden.

Den Code erhalten Sie hier.

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


All Articles