Electronique > Réalisations > Interfaces > Interfaces MIDI > Processeur MIDI 001 - Pro 

Dernière mise à jour : 02/05/2021

Présentation

Ce processeur MIDI permet de traiter des évenements provenant de différentes entrées MIDI, et de les router vers différentes sorties MIDI.


midi_processor_001_pcb_3d_a  midi_processor_001_pcb_3d_b  

Pour cela, le système comporte 6 entrées MIDI et 6 sorties MIDI, le tout est géré par un PIC32.

Avertissement

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.


Schéma

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.


midi_processor_001


Fonctionnement général

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.


Temps de traitement et latence

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.


Réglage des paramètres utilisateur

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...


Entrées MIDI

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).


midi_processor_001_proto_rm_001g 


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.


Sorties MIDI

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.


Alimentation

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.


Brochage des prises MIDI

Câblage valable pour les prises MIDI IN, MIDI OUT et MIDI THRU.


midi_din_cablage_001

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.


Prototype

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.


adaptateur_qfp50-64_dil64_001_proto_001a  midi_processor_001_proto_rm_001a midi_processor_001_proto_rm_001b midi_processor_001_proto_rm_001d

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 : 


debutant_rm_soudage_cms-qfp


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.


midi_processor_001_proto_rm_001c  midi_processor_001_proto_rm_001e midi_processor_001_proto_rm_001f 


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.



Logiciel du PIC

Le logiciel du PIC peut être mis à jour en ICSP ou via USB avec bootloader.

Processeur MIDI 001 - 32MX575F512H - 01/05/2021
Pro - Logiciel complet non disponible en libre service.

Offre exclusivement réservée aux amateurs - à partir de janvier 2022

Pour 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.


Circuit imprimé (PCB)

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).


midi_processor_001_pcb_components_top

Une version tout CMS sera peut-être élaborée après validation totale de ce prototype.


Historique

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.