Dernière mise à jour :
01/01/2012
Présentation
Cette interface MIDI, basée sur un microcontroleur de type PIC
16F628A,
dispose de 2 entrées logiques auquelles peuvent être
connectés des interrupteurs ou pédales au pied, et d'une
sortie MIDI OUT.
Les
deux entrées sont appelées Start et Stop, et permettent simplement
d'envoyer des
commandes
MIDI Start ou Stop à un séquenceur de musique
autonome ou informatique (Cubase ou autre) afin de le commander à
distance. Si les commandes Start et
Stop doivent être envoyées via un seul poussoir, cela est également
possible, un interrupteur de mode permet de choisir si les commandes se
font via deux organes mécaniques
séparés ou un seul.
Dans tous les cas, l'entrée de commande Stop envoie la commande MIDI
Stop. Voilà donc une interface simple, pour ceux qui ne veulent pas
s'encombrer d'un système doté de 6000 entrées avec des fonctions
programmables à ne plus savoir quoi en faire...
Type de commande
- Sélection possible entre les commandes "standard" Start et Stop et
les commandes MMC Start et Stop.
- Les commandes MMC Record / FastForward et Rewind sont
également implémentées, mais je le dis tout bas
pour ne pas faire peur à ceux qui pensent que l'interface ne
gère que les commandes Start et Stop et qui n'ont pas besoin des
autres commandes.
Remarques
Ce
petit circuit a été conçu pour rester simple, pas
pour le voir évoluer
(ou alors très peu). Aucune programmation par l'utilisateur
n'est
prévue ni ne devrait voir le jour. Un circuit tout aussi simple
et complémentaire (sorties logiques depuis commandes MIDI Start
/ Stop) est étudié en page
Interface
MIDI 005b.
Schéma
Bon, par où commencer ?
Oscillateur de référence
Les données MIDI doivent être transmises à une
vitesse de 31250 bauds, et cette vitesse doit être
respectée à quelques dizièmes de pourcents
près. Le PIC 16F628A dispose d'un oscillateur interne de 4 MHz,
dont la précision suffit même pour des applications MIDI,
aussi est-il possible de l'utiliser tel quel. Si vous ne faites pas
confiance à l'oscillateur interne, vous pouvez opter pour
l'usage d'un quartz externe de 4 MHz, le schéma est prévu
pour. La seule contrainte est de charger le programme qui va bien, dans
le PIC (les deux versions logicielles sont fournies).
Rôle des interrupteurs et poussoirs
Si interrupteur
SW3 Mode ouvert
- Bouton poussoir SW1 START : envoie toujours la commande MIDI START
- Bouton poussoir SW2 STOP : envoie toujours la commande MIDI STOP
Si interrupteur SW3 Mode
fermé
-
Bouton poussoir SW1 START : envoie la commande MIDI
START au
premier appui ou quand une commande MIDI STOP a été envoyée juste
avant. Sinon, envoie la commande MIDI STOP. Si c'est
le seul
bouton poussoir utilisé, il envoie donc de façon alternée les commandes
MIDI START et MIDI STOP.
- Bouton poussoir SW2 STOP : envoie toujours la commande MIDI
STOP
Quelque
soit le mode utilisé (un poussoir ou deux), la led D1 établit un
compte-rendu du dernier message envoyé. Elle s'allume en même temps que
l'envoi d'une commande MIDI Start et s'éteint en même temps que l'envoi
d'une commande MIDI Stop.
Résumé des entrées de commande
Les entrées fonctionnent toutes de la même façon,
et sont actives quand elles sont portées à l'état
logique bas (masse). Pour les exploiter toutes, vous devez donc placer
un bouton poussoir entre ces dernières et la masse, comme cela
est montré pour les deux entrées de commande Start et
Stop.
Mode RT :
entrée RA0 à la masse
Mode MMC :
entrée RA0 au +5 V
- RB6 : commande STOP (RT) ou STOP (MMC)
- RB5 : commande START (RT) ou START (MMC)
- RB4 : commande CONTINUE (RT) ou PAUSE (MMC)
- RB3 : commande RECORD (MMC)
- RB1 : commande FASTFORWARD (MMC)
- RB0 : commande REWIND (MMC)
Remarque :
les commandes MMC
correspondant aux entrées RB0, RB1 et RB3 sont toujours
envoyées, quelque soit le mode RT / MMC choisi avec
l'entrée RA0.
Sortie MIDI Out
Que dire de cette sortie, qui se fait entre les pattes 4 et 5 d'un
traditionnel connecteur DIN 5 points ?
Les données MIDI sortent
telles quelles au format TTL de la patte RB2 du PIC, qui est aussi la
sortie TX de l'UART matériel, et sont délivrées
via les deux résistances de limitation de courant R1 et R2, de
220 ohms chacune. Le fait que le PIC possède un UART simplifie
bien le développement du logiciel interne et permet surtout une
grande précision dans le timing des données émises
(même si pour ce genre de montage l'usage d'une gestion
totalement logicielle des données MIDI aurait été
possible).
Prototype
Réalisé avec ma platine EasyPic4 et une petite plaque
d'expérimentation annexe pour faciliter l'accès aux ports
du PIC.
Tests réalisés avec succès :
- en mode "standard" Start / Stop avec mon logiciel
MidiTest
et avec mon
séquenceur matériel QY70.
- en mode "MMC" Start / Stop / Rec / FastForward / Rewind avec mon
logiciel
MidiTest
et
avec mes séquenceurs logiciel Cubase 4 et Cubase 5.
Circuit imprimé
Le
peu de composant autorise le montage sur une plaque à pastilles ou à
bande, mais vous pouvez bien entendu adopter un montage traditionnel
sur circuit imprimé, tel que celui que je propose ci-après.
Typon
aux
formats PDF, EPS et Bitmap 600 dpi
Remarques :
- Le
circuit imprimé proposé dispose des connections
d'entrées pour les commandes Start / Stop (RB5 et RB6). Si vous
voulez utiliser les autres entrées de commande (RB4, RB3, RB1 et
RB0), vous pouvez tirer des fils directement sur les pattes
correspondantes. Ce n'est pas très pro j'en conviens, mais je
sais que vous êtes soigneux, et que ça ne posera pas de
problème majeur.
- Si vous chargez le programme "oscillateur interne 4 MHz", vous n'avez
pas besoin d'implanter le quartz X1, ni les condensateurs C1 et C2
(c'est cette méthode que j'emploie).
- Si vous chargez le programme "quartz externe 4 MHz", vous devez
implanter le quartz X1 et les condensateurs C1 et C2.
- Le condensateur de découplage d'alim C5 est placé et
soudé directement sous le PIC, voir vue ci-après (le
coucher pour qu'il tienne moins d'épaisseur, ou mieux mettre un
CMS).
Logiciel du PIC
Les fichiers de code source
(MikroPascal Pro V5.30) et binaire compilé (*.hex) sont disponibles
dans l'archive dont le lien suit. Cette archive comporte les
fichiers pour version avec oscillateur interne et avec quartz externe.
Interface
MIDI 005a - PIC 16F628A - 01/01/2012
Si
vous souhaitez recevoir par la poste un PIC préprogrammé
et prêt à utiliser, merci de consulter la page
PIC - Sources.
Problèmes ?
01/01/2012
- Mise à jour logiciel PIC pour compilation dans MikroPascal Pro V5.30.
16/07/2009
- Un utilisateur qui a réalisé cette interface m'a fait
savoir qu'elle générait des SysEx de façon
aléatoire, lorsque l'entrée RB1 était
laissée en l'air (et curieusement pas les autres). La
configuration du PIC indique pourtant bien que les résistances
internes de pullup sont activéees, ce qui normalement
évite d'en ajouter en externe. Dans le doute, et si vous
constatez ce même genre de disfonctionnement, n'hésitez
pas à ajouter une résistance de 10 kO entre les
entrées inutilisées et le +5 V (vous pouvez aussi les
relier entre entrées et masse, l'important étant qu'aucun
changement d'état ne soit vu sur les entrées).