Ce processeur MIDI permet de traiter des évenements provenant de différentes entrées MIDI, et de les router vers différentes sorties MIDI.
Ce
projet Pro ne peut
actuellement pas être obtenu dans sa version
logicielle intégrale. Toutefois pour les amateurs, je pourrai dans
certains cas fournir une version
logicielle limitée et
adaptée à leur besoins. Voir conditions en fin de page.
Le coeur du montage est un PIC32MX575 (ou 32MX695F512H ou 32MX795F512H), qui dispose en interne de 6 module UART mis à profit pour la réception et l'envoi des données MIDI.
Les données MIDI parvenant aux 6 entrées sont placées dans un buffer circulaire (1 Ko dédié à chaque entrée MIDI). Elles sont ensuite analysées et traitées au fil de l'eau, avant d'être envoyées vers la ou les sorties désirées.
Fonctions actuellement implémentées :
C'est un point de départ, d'autres fonctions s'y ajouteront très certainement.
La latence est calculée à partir du moment où un évenement MIDI arrive complet sur une entrée MIDI, et le moment où il ressort filtré et/ou routé sur une des sorties. Il dépend des traitements effectués sur les données MIDI entrantes, mais reste voisin de 2 ms.
A terme, tous les paramètres pourront être modifiés par les 6 boutons-poussoirs SW1 à SW6 associés à un écran OLED relié au port E du PIC, ceci pour permettre une totale autonomie du système. Avec la maquette actuelle, la connexion de l'écran OLED n'est pas prévue sur le PCB, mais de petits fils de liaison feront l'affaire, en temps utile.
Le port USB permettra un pilotage avec un logiciel Windows (HID, sans nécessité de déployer un driver spécifique).
A ce stade, je ne sais pas encore si je laisserai implémentées les deux méthodes de configuration. Sur le plan logiciel, l'écran OLED réclame plus de ressources mémoire que n'en réclame le port USB (oui, oui). A suivre...
L'isolation optique des entrées MIDI est assurée par des optocoupleurs de type PC900 ou H11L1 (testé avec les deux, alimentés sous 3V3).
Pour cette réalisation, j'ai en effet laissé de côté les 6N13x que j'utilisais fréquemment. Les 6N13x sont très efficaces, robustes et mieux distribués, mais aussi plus chers.
Les sorties MIDI sont classiques et adaptées pour travailler avec une tension de +3,3 V et non de +5 V. Contrairement à ce qui est indiqué sur le schéma, les résistances marquées 220R aux broches des prises DIN de sortie ne font pas 220 ohms.
Une source de tension de +3,3 V est nécessaire pour faire fonctionner le processeur MIDI. Tout bloc secteur capable de délivrer une tension comprise entre +5 V et +12 V sous un courant max de 200 mA convient, une régulation locale (3,3 V) est assurée par un régulateur de tension LF33CV.
Câblage valable pour les prises MIDI IN, MIDI OUT et MIDI THRU.
La borne 2 est reliée à la masse au niveau des sorties, mais pas au niveau des entrées, pour éviter toute boucle de masse entre équipements.
Tout d'abord testé avec ma platine d'adaptation QFP-DIL à PIC32. , j'ai ensuite pris le taureau par les cornes et ai soudé les gentilles papattes du PIC32 QFP sur sa toute nouvelle et belle carte.
N'allez pas croire que j'ai réussi du premier coup à souder ce type de circuit intégré ! Je me suis préalablement entrainé avec plusieurs composants et je peux dire que les premiers résultats étaient... décevants, la preuve en photos :
Pas de mystère, il faut persévérer et avoir de bons yeux (une bonne loupe ou un microscope USB n'est pas du luxe). La suite n'a pas posé de problème, les condensateurs CMS au format 1206 semblent tellement faciles à traiter après avoir sué sur les 4x16 broches au pas de 0,5 mm ! Quant aux composants traversants, n'en parlons pas, c'est presque devenu de la routine.
Quel stress lors de la première mise sous tension... et quel soulagement quand tout fonctionne comme attendu ! Avec mon PICkit3 enfiché à la verticale sur les 5 broches du connecteur ICSP, la phase de programmation du PIC s'est déroulée sans problème.
Le logiciel injecté dans le PIC s'est comporté correctement, comme lorsqu'il avait été introduit dans le PIC de ma précédente maquette avec ses nombreux fils volants. Les 6 entrées MIDI et les 6 sorties MIDI sont opérationnelles, les tests "de robustesse" réalisés avec mon logiciel MIDI-Test configuré pour envoyer en permanence (sans pause) des milliers de messages MIDI n'ont fait apparaître aucune erreur. Même des Sysex de 1000 octets ont été correctement digérés.
Le logiciel du PIC peut être mis à jour en ICSP ou via USB avec bootloader.
Processeur MIDI 001 - 32MX575F512H - 01/05/2021Pour tout utilisateur désirant utiliser ce projet à titre amateur (engagement par écrit à ne pas produire des PCB dans un but commercial), je pourrai adapter le logiciel complet en un logiciel allegé et adapté aux besoins dudit utilisateur, si la fonction demandée n'est pas trop "conséquente", et moyennant une faible contribution financière.
Terminé dans sa version prototype avec composants traversants (sauf uC qu'on ne trouve qu'en CMS et quelques condensateurs de découplage d'alimentation situés à côté de lui).
Une version tout CMS sera peut-être élaborée après validation totale de ce prototype.
02/05/2021
- Assemblage des composants sur PCB tout neuf.
- Tests des 6 entrées et des 6 sorties MIDI, tout fonctionne.
- Correction erreur sérigraphie
PCB inversion libellés +V et 0V sur points d'alimentation. Heureusement
que j'avais prévu la diode D101 !
18/04/2021
- Première mise à disposition.