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 !
Informations Complémentaires
Fichier Taille Description
mbhp_usb_orderlist.txt 1k Liste de commande chez Reichelt 
mbhp_usb_connections_case1.pdf 5k Comment connecter un module CORE et un clavier MIDI
mbhp_usb_connections_case2.pdf 5k Comment connecter 2 modules CORE
mbhp_usb_connections_case3.pdf 5k Comment utiliser le module en "standalone"
mbhp_usb_connections_case4.pdf 5k Comment alimenter un module CORE via USB

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.