English Version
French Version
Spanish Version
MIDIbox Hardware Platform, Le Module USB
NOTE: UN NOUVEAU MODULE USB PLUS ECONOMIQUE EST EN DEVELOPPEMENT!
Le module USB propose 2 ports MIDI In et 2 ports
MIDI Out reliés à l'ordinateur via le port USB. Le
pilote USB est basé sur la norme officielle "Device Class Definition" de www.usb.org et fonctionnera avec tout les systèmes supportant cette norme: WinME, Win2k, WinXP, Mac OS X, Linux, Pegasos, MorphOS ou OS4.
Note: la classe matérielle MIDI-USB n'est pas supportée par Win95, Win98, Win98SE, OS/2 ou Mac OS9!
Le module n'a pour l'instant été
testé qu'avec WinME, WinXP et Linux (v2.4.21), je ne peux
garantir qu'il fonctionnera avec d'autres systèmes, même
si ils supportent cette classe de pilote. Lors de son
développement j'ai constaté quelques anomalies lors desquelles
le pilote
Microsoft ne répondait pas aux spécifications de la classe
ou entraînait un crash du firmware ou du système (par
exemple si les modèles de descripteurs des Spec sont
utilisés tels quels, WinME freeze immédiatement ;-).
Dans le même temps, j'ai pu trouver des "workarounds" qui
permettent à l'implémentation actuelle de fonctionner
sans crasher. Il reste malgrès tout trois
imperfections qui doivent être prise en compte avant de se lancer
dans la construction de ce module:
- Le pilote Microsoft n'est pas multi-client.
Cela signifie que plusieurs applications ne pourront accéder au
port MIDI simultanément.
- Le pilote Microsoft n'est
pas capable d'envoyer une commande SysEx splittée et
renvoyée via plusieurs buffers sans erreur. La commande
SysEx
complète doit être envoyée depuis un seul buffer
(cela affecte plus particulièrement le download du
MIOS, dans le menu de configuration des ports de MIDI-Ox , vous aurez à augmenter la taille du buffer "Low level Output" de 256 à 2048).
- Le pilote Microsoft
n'autorise pas le module USB à changer le nom du
périphérique. Dans la distribution en allemand de
Windows, les ports sont simplement appellés "Audiogeraet" (Audio Device). Utilisez "regedit" et recherchez l'entrée portant ce nom puis renommez-la en "MBHP_USB"
Mis à part ces problèmes, le module
fonctionne très bien (sous WinME et Linux...). si vous
construisez ce module, n'hésitez pas à me faire part de
vos expériences!
Mais il y a aussi des bonnes nouvelles:
- Le pilote Linux est multiclient et n'a aucun problème avec les longues commandes SysEx .
...et juste quelques précisions ;-)
Le firmware USB firmware est écrit en C, en "open source", pour ceux qui voudraient améliorer le pilote ou juste mettre
un premier pied dans le monde de l'USB. Le code a été
développé avec la chaine d'outils gratuite EZ-USB
téléchargeable sur le site Cypress (Design Resources->Developer Kits->Universal Serial
Bus->Full Speed Peripherals->AN2131-DK001 EZ-USB Development
Kit->EZ-USB Development Tools V2.61.700 - 62 MB!). Notez
que ces outils ne sont pas requis pour faire fonctionner le module MBHP USB, le
panneau de contrôle qui permet l'upload du firmware est inclus
dans l'archive
mbhp_usb_v1_2.zip !
Le coeur de ce module est le AN2131SC de Cypress,
un dérivé du 8051 intégrant un
périphérique USB . l'avantage de ce chip est sa
disponibilité pour les hobbyistes (Reichelt: 10.50 EUR, DigiKey:
US $10.50), la mémoire 8k SRAM embarquée qui vous
évite d'avoir à y adjoindre une mémoire externe,
le bootloader IIC qui permet de charger le firmware depuis une
EEPROM (24LC64) dans la SRAM au démarrage, et bien sûr le
kit de développement gratuit
EZ-USB .
Désavantage de ce chip: il n'est disponible qu'en boitier SMD ! Cela suppose que vous disposiez:
- d'une certaine expérience en
soudure (soyez trés prudent si vous débutez et que
vous désirez construire ce module!!!)
- d'un bon fer
à souder ou d'une station avec une panne assez fine! un fer avec
une régulation de la température est recommandé
(la température de soudure doit être d'environ 310°
Celsius/590
Fahrenheit).
- d'une pompe à déssouder au cas
où vous soudiez malencontreusement deux pins côte à
côte
Du fait de ces contraintes, le module USB n'est pas
forcément une alternative plus économique que les
interfaces MIDI proposées dans le commerce, bien que les
composants ne coûtent pas plus de 20 Euro! Il est plus
destiné aux passionés d'électronique ou à
ceux ayant déjà réalisé tous les modules
MBHP avec succés et cherchant un nouveau projet à
réaliser ;-) Si vous cherchez une interface économique, achetez une M-Audio MIDIsport 2x2 (environ 90 EUR), ou allez faire un tour sur EBay
pour trouvez quelque chose d'équivalent, ou cherchez une
carte-son d'occasion avec des ports MIDI intégrés.
Téléchargements
-
Les modèles de PCB peuvent être ouverts, modifiés et convertis avec Eagle Light |
Module |
Schéma |
Layout |
Aperçu |
MBHP_USB_V1 |
mbhp_usb.pdf |
mbhp_usb_v1b.brd |
mbhp_usb_v1b.gif |
Note:
la différence entre les versions mbhp_usb_v1 et
mbhp_usb_v1b: nous avions oublié d'exécuter la commande
"ratsnest" avant d'enregistrer le fichier, du coup la masse et les
connections entre les pins 3 et 4 de l'
IC2 n'étaient pas visibles. si vous gravez vous
même le PCB, assurez-vous que ces pins sont
connectés à la masse. Si vous commandez un PCB
sur le site de Mike, vous constaterez que ces connections y sont
déjà. |
MBHP_USB mini |
mbhp_usb_mini.pdf |
--- |
--- |
Firmware |
Fichier |
Taille |
Description |
mbhp_usb_v1_2.zip |
453k |
Cette archive contient le firmware précompilé, le code-source et le panneau de contrôle
EZ-USB. Notez que l'application EZ-USB ne vous permet de "brûler" l' EEPROM que sous Windows. Nouveau:
la version v1_2 contient un fichier .syx qui peut être
chargé via un Core MIOS. Une description des
différents fichiers présents dans l'archive a
été ajoutée. Différence
entre v1_1 et v1_2: chaque
port est maintenant "buffrisé" avec 128 bytes ! |
Ports Disponibles
-
Les interfaces suivantes sont disponibles sur le module USB:
Nom |
Nbre de pins |
Description |
J1 |
2 |
Port pour une alimentation externe. Il peut
être utilisé pour alimenter le module USB depuis une
source externe si le Vout de votre ordinateur (pour les portables en
particulier)n'est pas suffisant (dans ce cas le jumper "Power Supply"
à côté du port USB doit être ouvert!)
ou servir à alimenter un module CORE (dans ce cas le jumper "Power Supply" à côté du port USB doit être fermé!) |
J2 |
2 |
Connection pour une Power-LED. Recommendé pour le débogage! |
J3 |
4 |
Port IIC pour de futures extensions (e.g un matériel audio) |
J4 |
2 |
LED d'activité pour le MIDI-In du port #1 |
J5 |
2 |
LED d'activité pour le MIDI-Out du port #1 |
J6 |
2 |
LED d'activité pour le MIDI-In du port #2 |
J7 |
2 |
LED d'activité pour le MIDI-Out du port #2 |
J8 |
4 |
Lien direct vers le port #1 @ J11 du module
CORE. Note: le pin Vd (+5V) ne doit pas être connecté afin
d'éviter d'éventuels problèmes. Si vous
désirez alimenter le module CORE, utilisez J1. |
J9 |
4 |
Lien direct vers le port #2 @ J11 du module CORE |
Composants Utilisés
-
Voici la liste des composants utilisés. Une liste de commande complète chez Reichelt est disponible ici, pour les U.S.A. une liste de commande chez MOUSER est disponible sur le site de SmashTV's, et si vous avez fait une liste pour un fournisseur dans votre pays,
n'hésitez pas à me la faire parvenir, elle sera
publiée ici.
Guide de Soudage
-
Voici quelques photos du premier prototype. Notez que
le layout final "mbhp_usb_v1" est un peu différent. Des
commentaires seront ajoutés dés que j'aurais soudé
le PCB de Mike.
Guide d'Installation
-
Pas encore écrit! Malgrés tout, c'est trés simple: connectez votre PC Windows
au module USB,une fois le module détecté, vous serez
invité à intaller le pilote EZ-USB ,vous le trouverez
dans l'archive "mbhp_usb_v1_2". Une fois le pilote installé,
vous pourrez uploader le firmware depuis le panneau de contrôle
de EZ-USB . Vous serez aussi en mesure de brûler le
firmware dans l'EEPROM 24LC64 . En faisant ceci, le module
pourra démarrer sans le pilote EZ-USB et sur d'autres
systèmes d'exploitation
Performance
-
Aucun problème de ce côté ;-) Voir aussi the Benchmark Results
Crédits
Un grand merci à SmashTV qui m'a
donné pleins de conseils pour la conception et à
réalisé le layout du PCB du module USB - il a aussi
réalisé les deux cartes
prototypes pour moi! :-)
Last update: 2015-09-24
Copyright © 1998-2015, Thorsten Klose. All rights reserved.
|