Cette interface de conversion MIDI<->TTL et TTL<->MIDI est une "révision" de mon interface MIDI 011.
Les modifications que j'ai apportées à l'interface initiale interface MIDI 011 sont les suivantes :
Malgré les modifications de câblage et les ajouts apportés sur le circuit initial (011), le montage reste très simple.
Le circuit peut être divisé en deux sections bien distinctes, une pour la partie réception MIDI et l'autre pour la partie émission MIDI.
Conversion MIDI-IN vers TTL-OUT
Les données MIDI arrivent sur l'optocoupleur U1 via la prise DIN d'entrée J1/MIDI-IN et la résistance R1. Elles ressortent au format TTL sur le connecteur J4/TTL-OUT. Les données TTL recueuillies sur la broche 4 de l'optocoupleur grâce à la résistance de rappel R2 pourraient être directement envoyées à la broche d'entrée Rx du microcontrôleur (du circuit en test), mais il est préférable de donner au signal reçu une forme la plus parfaite (la plus "carrée") possible. C'est la raison d'être des portes logiques U2:C et U2:D, contenues dans un circuit intégré 74HCT04 qui comporte 6 portes identiques. Ce circuit intégré sera de préférence monté sur un support, mais cela n'a rien d'obligatoire (pour ma part, je mets systématiquement un support pour tous mes circuits intégrés DIL traversants).
Il est possible d'utiliser d'autres optocoupleurs pour l'entrée MIDI, voir page Interfaces MIDI pour plus de détails.
Sortie MIDI-THRU
La porte logique U2:B autorise un prélèvement discret des données TTL délivrées par la porte U2:C. Cela permet, après une premièreinversion de polarité opérée par U2:C et une deuxième inversion de polarité opérée par U2:B, de disposer d'un signal conforme à une sortie MIDI-OUT ou MIDI-THRU. Le connecteur DIN J2/MIDI-THRU délivre ainsi des données rigoureusement identiques à celles arrivant sur le connecteur DIN J1/MIDI-IN, c'est une recopie pure et simple des messages MIDI reçus.
Conversion TTL-IN vers MIDI-OUT
Les messages MIDI au format TTL qui proviennent de la sortie Tx du microcontrôleur (du circuit en test) et qui arrivent à l'interface sur le connecteur J5/TTL-IN pourraient très bien être amenées directement à la prise DIN de sortie J3/MIDI-OUT, je l'ai fait plusieurs fois et ça ne pose pas de problème technique. Cependant, j'ai préféré là aussi jouer la carte de la prudence et profiter des portes logiques libres laissées par le 74HCT04, car on est toujours plus enclin à faire des erreurs pendant une phase de tests ou de débogage.
Petit luxe : les données arrivant sur J5/TTL-IN peuvent au besoin être inversées, grâce au cavalier (jumper) JP1. Cela bien sûr n'est utile que si les données entrantes sont de polarité opposée à la norme (0 V au repos, au lieu de +5 V au repos). En prélevant les données en sortie de la porte U2:A, les données arrivant sur le connecteur J5/TTL-IN sont inversées deux fois de suite avant d'arriver sur le connecteur J3/MIDI-OUT (passage par U2:A et U2:F). En prélevant les données en sortie de la porte U2:E , les données arrivant sur le connecteur J5/TTL-IN sont inversées trois fois de suite avant d'arriver sur le connecteur J3/MIDI-OUT (passage par U2:A, U2:E et U2:F).
Une alimentation de 5 V est nécessaire pour faire fonctionner cette interface. Contrairement à ce que j'avais décidé pour la petite soeur interface MIDI 011, j'ai décidé ici de placer un régulateur de tension 5 V (1117-50) et une prise jack d'alimentation traditionnelle directement sur le circuit imprimé. Cette façon de faire évite de prélever l'alimentation sur le circuit en cours de test, mais impose en revanche l'ajout d'un petit bloc d'alimentation externe délivrant une tension de 9 V.
Rien bien sûr n'empêche d'opérer sans le régulateur de tension en question, puisqu'il est possible de remplacer la diode D101 (protection contre les inversions de polarité) par un strap. Notons au passage qu'il est possible de laisser cette diode en place, mais dans ce cas mieux vaut utiliser une diode schottky (par exemple BAT42) pour limiter la chute de tension introduite. Seconde opération : placer un second strap entre les points d'entrée et de sortie du régulateur (ce dernier étant bien entendu absent).
Idem ci-devant, avec ajout de LED et de points test.
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. Ici on s'en fiche puisqu'il n'y a pas de prise MIDI OUT.
Versions 011b et 011bb réalisés selon les implantations de PCB proposées ci-après.
Si vous regardez bien les photos du prototype ci-devant, un détail bien curieux pourrait vous surprendre...
Le circuit a été testé en bouclant sa sortie TTL vers son entrée TTL et en le soumettant à un flux ininterrompu de messages MIDI délivrés par mon logiciel MidiTest associé à une interface MIDI M-Audio. Le comptage des messages MIDI au départ et à l'arrivée atteste de l'absence de perte de données.
Les copies d'écran de l'oscilloscope montrent en outre l'excellente qualité des signaux TTL, ce qui bien sûr n'est pas étranger à l'absence d'erreurs de communication.
Circuit quasi identique à la version 011b, avec ajout de LED pour visualiser les données entrantes et sortantes.
Là aussi, j'ai utilisé mon logiciel MIDI-Test pour valider le fonctionnement de l'entrée MIDI et des deux sorties MIDI OUT et THRU. Tout est OK.
Pour finir, oserai-je comparer mon interface MIDI 011 "originale" avec les plus récentes 011b et 011bb ?Réalisés en double face (quel luxe !).
Circuit avec une seule LED (témoin de présence d'alimentation).
Dessins du circuit imprimé (PCB 011b) au format PDF
Légères retouches apportées à mon interface 011b, qui devient 011bb. Quelques composants déplacés, ajout d'un plan de masse, de points tests et de LED signalant la présence de données en entrée (Rx) et en sortie (Tx). J'ai également créé une nouvelle empreinte pour les prises DIN afin de pouvoir accueillir des modèles différents.
Dessins
du circuit imprimé (PCB 011b)
au format PDF
29/05/2022
- Ajout photos prototype 011bb.
08/05/2022
- Ajout photos prototype 011b.
- Ajout vue nouveau PCB 011bb, un poil plus travaillé.
10/04/2022
-
Première mise à disposition.