Electronique > Réalisations > InterfacesInterfaces MIDI > Contrôleur MIDI 005

Dernière mise à jour : 26/01/2014

Présentation

J'ai réalisé ce contrôleur MIDI qui se base sur un PIC 16F628A, dans le seul but de délivrer des événements MIDI à répétition et à un rythme très soutenu, pour tester/valider les entrées MIDI IN de mes réalisations.

controleur_midi_005_pcb_3d_a

Cinq interrupteurs permettent de définir le type de messages à envoyer sur la sortie MIDI OUT : notes simples ou regroupées (accords), SysEx (System Exclusive), active sensing, Program Change et Control Change. Aucune difficulté de réalisation, le circuit est simple et peut rendre de grands services pour tester des récepteurs MIDI divers et variés, du commerce ou faits maison.

Schéma

Une copie presque parfaite du contrôleur MIDI 004 ! Les boutons-poussoirs ont été remplacés par des interrupteurs, tout le reste est identique.

controleur_midi_005

Ah non, pas tout à fait. Un cavalier a aussi été ajouté sur l'entrée RA5. Non, ce n'est pas pour une fonction de Reset du PIC.

Principe général
Il consiste à envoyer en boucle des événement MIDI en fonction de l'état des interrupteurs. Si aucun interrupteur n'est fermé, alors l'interface ne délivre aucun message sur sa sortie MIDI OUT. La fermeture d'un interrupteur provoque aussitôt l'envoi de données MIDI en rafale dans le domaine qui le concerne. Il est ainsi possible d'avoir une trame composée d'une seule sorte d'événement MIDI, ou une trame où on retrouve un peu de tout. Pour ne pas envoyer toujours la même chose, le programme incrémente plusieurs variable à chaque itération de boucle, ces variables (dont la plage de variation est limitée) sont utilisées pour le numéro de canal MIDI, la valeur des notes et de vélocité, de program change, etc.
. SW1 -> Active sensing (volontairement envoyé plus souvent qu'en temps normal)
. SW2 -> Notes seules et accords
. SW3 -> Sysex
. SW4 -> Program Change
. SW5 -> Control Change
Idéal pour tester la robustesse d'une entrée MIDI ! Mais comme c'est tout de même un peu sévère, le circuit autorise aussi quelques pauses de temps en temps. C'est la raison d'être du cavalier branché sur la broche RA5 du PIC. Quand cette broche est à l'état logique 0, aucune pause n'est permise, les messages MIDI se succèdent à un rythme effrené. Si au contraire RA5 est soumise à l'état logique haut, quelques pauses de quelques ms sont insérées de temps en temps pour soulager l'appareil en test.

Coeur du montage
Là encore c'est un PIC 16F628A qui s'occupe de tout. Le programme analyse en permanence l'état des entrées RA0 à RA4 et détermine s'il doit ou non envoyer les événements correspondant sur la sortie Tx de l'UART (et donc en sortie MIDI OUT). Au démarrage, et quel que soit l'état des interrupteurs, le PIC envoie une note de courte durée pour indiquer que tout va bien.

Oscillateur interne ou externe ?
Oscillateur interne avec quartz externe de 4 MHz. Je ne reviendrai pas sur ma décision.

Programmation in situ
J'ai laissé les broches RA5, RB6 et RB7 libres pour y raccorder un connecteur ICSP, qui permet de reprogrammer le PIC sans le retirer de son support.

Prototype

J'ai réutilisé le proto du contrôleur MIDI 004. Pratique, hein ?

controleur_midi_004_proto_001a controleur_midi_004_proto_001c  controleur_midi_004_proto_001d

Comme dit avant, les broches RA5, RB6 et RB7 permettent la programmation du PIC sur son circuit d'utilisation final (ICSP) avec un programmateur PICkit2 (ou autre du style, n'importe quel autre doit convenir pour ce modèle de PIC). Le connecteur utilisé à cette fin est celui à 5 points situé à côté du quartz, complètement à droite du circuit imprimé. La première utilisation de ce circuit a été de valider l'entrée MIDI de mon interface MIDI 015za

controleur_midi_005_proto_001a controleur_midi_005_proto_001b

Et je peux dire que ce petit générateur de test MIDI m'a bien servi, il est bien plus efficace que de plaquer des accords de fou sur un clavier !

Logiciel du PIC

Fichiers binaires compilés (*.hex) et source MikroPascal (*.mpp*) fournis (deux fichiers hex, pour usage avec ou sans quartz)
Contrôleur MIDI 005 - PIC 16F628A - Version du 26/01/2014
Pour obtenir un PIC préprogrammé avec ce logiciel, voir page Logiciel PIC - Sources .

Circuit imprimé

Réalisé en simple face, rigoureusement identique au typon du contrôleur MIDI 004. Quand on peut éviter de se fatiguer, n'est-ce pas...

controleur_midi_005_pcb_composants

Typon aux formats PDF, EPS et Bitmap 600 dpi

Historique

26/01/2014
- Première mise à disposition.