Bonjour à tous. Je suis le propriétaire d'un Japonais de dix ans, en qui tout me convenait, à l'exception du système audio standard - il n'y avait pas de Bluetooth dedans. Il existe trois façons possibles de résoudre ce problème:
1. Achetez une prise dans l'allume-cigare et ne vous montrez pas.
Inconvénients:
- Qualité sonore
- Pas de gestion
- Aucune sortie de titre de chanson
Il n'y a aucun avantage.
2. Pour acheter lors d'une épreuve de force pour beaucoup d'argent une unité Bluetooth régulière + une tête plus récente.
Inconvénients:
- Bloquer les problèmes de compatibilité
- Sortie audio mono (sur certaines unités)
- Le prix avec le remplacement de la tête et du câblage est presque égal à la radio d'urgence
- En plus de l'alphabet latin, il n'y a pas de support
Avantages:
3. Faites quelque chose vous-même, mais pour ne pas réduire les fonctionnalités existantes.
Inconvénients:
- Besoin de temps
- Plus d'argent a été dépensé que de choisir ensemble les deux premières options
Avantages:
- Satisfaction au travail
- Prise en charge audio sans perte
- Le support cyrillique, bien que translittéré, L'écran ne sait pas comment.
Comme vous l'avez compris par le nom, j'ai choisi le chemin numéro 3.
Données sources.
Le système audio natif, qui se compose d'une unité principale et d'un panneau qui ressemble à ceci:

Il a le mode AUX, qui vous permet de connecter des appareils externes pour écouter de la musique. Pourquoi ne pas l'utiliser à vos propres fins? Assurez-vous qu'avec une certaine combinaison de touches, le mode AUX démarre, mais en même temps toutes les données sur l'écran passent complètement sous notre contrôle et le son dans AUX est redirigé depuis le module Bluetooth.
Heureusement, dans le domaine public, vous pouvez trouver un manuel avec un circuit, à partir duquel il devient clair que l'interface entre la tête et le panneau est un UART normal.

À l'aide d'un analyseur logique, la vitesse et le protocole de l'échange entre la tête et le panneau ont été déterminés. (Taux de rafraîchissement de l'écran de 10 images par seconde, fréquence de clic 30 ms, 14400E2). Avec l'arduinka, un résultat a été obtenu sous la forme de Hello World.

L'étape suivante a été l'étape du choix d'un microcontrôleur pour la mise en œuvre. Le choix s'est porté sur le STM32F103, à bord duquel jusqu'à 3 UART sont pris en charge pour le bus CAN (pourquoi ne pas l'ajouter). Le CSR8645 a été initialement acheté en tant que module Bluetooth, la première version était avec, mais il ne pouvait pas afficher les noms des pistes (ou je ne l'ai pas compris complètement), et n'avait pas non plus de contrôle de bus numérique, donc un module appelé Bluegiga a été acheté directement aux États-Unis. WT32i, dans lequel il y avait tout ce qui était nécessaire et encore plus - prise en charge de la sortie audio numérique et du codec AptX. Pendant quelques mois, quand il y avait du temps libre, le développement d'un prototype a été effectué. Toutes les horreurs de HAL et les charmes de SPL étaient connus. Étudié à fond UART et DMA dans le microcontrôleur, car il était nécessaire de tout lier ensemble pour qu'il fonctionne sans freins ni défaillances.
Quelques photos du processus Ensuite, tout cela a été introduit dans l'unité principale, mais afin qu'il puisse être flashé et retiré sans aucun problème de révision. Un câble HDMI et un connecteur d'un ordinateur portable mort ont été utilisés comme interface.
Photos au moment du débogage, il vaut mieux ne pas regarderVue intérieure:

Vue extérieure:

Le boîtier a été fabriqué par une ancienne alimentation pour ordinateur portable.
Le moment est venu de placer la carte de circuit imprimé sous cette activité, ainsi que de tout retirer de la tête, afin qu'à tout moment vous puissiez supprimer cette ferme collective et ne pas perturber le fonctionnement de la machine. Le résultat a été une telle beauté:

J'ai élevé la planche pour la première fois de ma vie, vous pouvez critiquer, mais avec modération. La soirée a été soudée et cela a fonctionné la première fois, ce qui m'a beaucoup surpris.

Ensuite, a été ajouté l'émetteur-récepteur CAN TJA1051, avec lequel vous pouvez obtenir un tas de données intéressantes et peu volumineuses du bus CAN du véhicule. Pour l'instant, je n'utilise que la sortie de consommation de carburant par heure, car bk régulier n'a pas une telle fonction.

Vidéo comment cela fonctionne:
Comme vous l'avez peut-être remarqué, le texte russe est affiché en translittération, plus ou moins intelligent. Par exemple, la lettre
h est remplacée par ch, etc., ce qui n'a pas pu être réalisé par des moyens réguliers. Eh bien, en plus, la prise en charge de l'audio sans perte.
Pour ceux qui ont soif de détails. Les 3 UART sont impliqués. Un sur l'écran, un sur les touches et un sur le module Bluetooth. Le flux sonore est commuté par un multiplexeur analogique. CAN est également utilisé à partir de STM32. Il y a un DAC externe PCM5102, le son est très bon. Se connecte entre la tête et le câblage de la voiture. Les connecteurs ont été trouvés lors du démontage.
Il s'est avéré être plus cher que l'achat d'un système Bluetooth classique, mais il a apporté beaucoup plus de plaisir au développement.
Il est prévu de permettre de personnaliser les fonctions de personnalisation automobile (les propriétaires de Mitsubishi 2008+ comprendront de quoi il s'agit), le protocole est déjà là, tout est vérifié, il reste à implémenter dans le firmware.
Vous pouvez obtenir le code ici.