English Version French Version Spanish Version

Plataforma de Hardware MIDIbox, Módulo USB 

NOTA: HAY UN MÓDULO USB ALTERNATIVO DE BAJO COSTE EN DESARROLLO!

El módulo USB tiene 2 puertos MIDI In y 2 puertos MIDI Out que están enlazados al ordenador via USB. El controlador está basado en la Definición de Clase de Dispositivo (Device Class Definition) de www.usb.org y funciona con todos los sistemas operativos que soporten esta clase:: WinME, Win2k, WinXP, Mac OS X, Linux, Pegasos, MorphOS y OS4.
Nota: la clase de dispositivo MIDI-USB  not soportada por Win95, Win98, Win98SE, OS/2 o Mac OS9!

De momento el módulo solo se ha probado en WinME, WinXP y Linux (v2.4.21), No puedo garantizar que funcione también en otros sistemas operativos, aunque soporten el mismo tipo de clase. Durante el desarrollo me encontré con algunas anomalías, como que el controlador de Microsoft no hace caso de la especificación o directamente se cuelga el driver o el SO completo. ( por ej. si se usan los descriptores del Spec 1:1, WinME se cuelga inmediatamente ;-). De momento he encontrado unos parches para que la implementación actual funcione sin cuelgues. Pero sigue habiendo tres imperfecciones que hay que tener en cuenta antes de empezar con este módulo.:

  • El controlador de Microsoft no soporta multi-cliente. Esto significa que solo un programa puede acceder al puerto MIDI al mismo tiempo.
  • El controlador de Microsoft no es capaz de enviar sin errores una cadena SysEx que es distribuída a través de buffers múltiples. Hay que enviar la cadena SysEx desde un solo buffer (esto afecta a la descarga de MIOS, tienes que incrementar el tamaño de salida de bajo nivel desde 256 hasta 2048 en el menú port config MIDI-Ox ).
  • El controlador de Microsoft no permite cambiar de nombre de dispositivo al módulo USB. En la distribución alemana de Windows los puertos se llaman  "Audiogeraet" (Dispositivo de Audio ). Usa "regedit" , busca su nombre y cámbialo a "MBHP_USB"

En cualquier caso, aparte de estos problemas, el módulo funciona bien (con WinME y Linux...). Si construyes este módulo, por favor, no olvides contarme tu experiencia!

Pero también hay buenas noticias:

  • el controlador de Linux soporta multi-cliente y no tiene más problemas con las cadenas SysEx.

 ;-)

El firmware del USB está escrito en C, código abierto para aquellos que quieran mejorar su controlador o solo den sus primeros pasos en el mundo de los USB. El código se ha desarrollado con la herramienta gratuíta EZ-USB que se puede descargar de la web de 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!).
Recuerda que estas herramientas no son necesarias para hacer funcionar el módulo MBHP USB, el panel de control que permite cargar el firmware viene en el paquete mbhp_usb_v1_2.zip!

El corazón del módulo es el AN2131SC de Cypress, un derivado de 8051 con periférico USB integrado. La ventaja de este chip es su disponibilidad (Reichelt: 10.50 EUR, DigiKey: US $10.50), la memoria SDRAM de 8k integrada, que te evita tener que instalar una memoria externa, el bootloader IIC que carga el firmware desde una EEPROM (24LC64) a una SRAM durante el encendido, y, por supuesto, el kit de desarrollo gratuíto EZ-USB .

Desventajas de este chip: solo está disponible en un paquete SMD! esto significa que necesitas:

  • nociones de soldadura (evita soldar este módulo si eres un principiante)
  • un buen soldador o estación de soldadura con una cabeza pequeña! Mejor si es con regulación de temperatura.(que debe ser de 310° Celsius/590 F).
  • un aspirador de soldadura por si sueldas por error dos pines cercanos

Estas condiciones hacen que el módulo USB no sea un sustituto barato de una interfaz MIDI, aunque las partes electrónicas no cuesten más de 20 €. Es solo una alternativa para verdaderos entusiastas de la electrónica o para los que hayan terminado con éxito todos los módulos MBHP y ...¡busquen un nuevo desafío! ;-)
Si estás buscando una alternativa barata, compra un M-Audio MIDIsport 2x2  por unos 90 €, busca un dispositivo similar en EBay o compra algunas tarjetas de sonido con interfaz MIDI de segunda mano.

Descarga

Los datos PCB se pueden visionar, modificar y convertir con Eagle Light
MóduloEsquemaDatos de Base Vista Rápida
MBHP_USB_V1 mbhp_usb.pdf mbhp_usb_v1b.brd mbhp_usb_v1b.gif
Nota: la diferencia entre mbhp_usb_v1 y mbhp_usb_v1b: olvidamos introducir el comando "ratsnest" antes de salvar el archivo, por eso el plano de tierra no se veía bien, así como la conexión entre los pines 3 y 4 de IC2. Si has creado ya tu propia PCB, comprueba que esos pines estén conectados a tierra. Si has encargado una PCB prefabricada verás que esa conexión ya está hecha.
MBHP_USB mini mbhp_usb_mini.pdf --- ---
Firmware
archivo TamañoDescripción
mbhp_usb_v1_2.zip 453k Este paquete contiene el firmware pre-compilado, el código fuente y el panel de control EZ-USB. Recuerda que la EEPROM solo se puede cargar en Windows con la aplicación EZ-USB.
Nuevo: v1_2 contiene un archivo .syx que se puede descargar vía core MIOS. Se ha añadido una descripción de los archivos. La diferencia entre v1_1 y v1_2: ¡cada puerto es precargado con 128 bytes!
Información adicional
Archivo Tamañodescripción
mbhp_usb_orderlist.txt 1k Lista de  pedido para Reichelt
mbhp_usb_connections_case1.pdf 5k Cómo conectar 1 módulo core y un teclado MIDI
mbhp_usb_connections_case2.pdf 5k Cómo conectar 2 módulos core
mbhp_usb_connections_case3.pdf 5k Cómo usar el standalone del módulo
mbhp_usb_connections_case4.pdf 5k Cómo alimentar un módulo core vía USB

Puertos disponibles

El módulo USB provee las siguientes interfaces:

Nombre No.de pins Descripción
J1 2 Puerto de alimentación externa. Se puede usar para alimentar el módulo USB de manera externa si el Vout de tu ordenador o portátil no es lo suficientemente "fuerte" (en este caso, el Jumper Power Supply junto al puerto USB debe ser abierto!) o se puede usar este puerto para alimentar un módulo Core (en este caso, el Jumper Power Supply junto al puerto USB debe cerrarse!)
J2 2 Conexión a un Led de encendido. Recomendado para corrección de errores!
J3 4 puerto IIC para futuras extensiones (por ej. un dispositivo de audio)
J4 2 LED indicador MIDI-Inpara puerto #1
J5 2 LED indicador MIDI-Out para puerto #1
J6 2 LED indicador MIDI-In para puerto #2
J7 2 LED indicador MIDI-Out para puerto #2
J8 4 Enlace directo a J11 del módulo Core, puerto #1. Nota: el pin Vd (+5V) no debe conectarse para evitar problemas de alimentación. Si quieres  proveer el módulo core, usa J1 en su lugar.
J9 4 Enlace directo a J11 del módulo core, puerto #2

Componentes Utilizados

Aquí hay una lista de los componentes usados. Puedes encontrar una lista de pedido completa para Reichelt pulsando aquí, lista de partes Mouser para US: ver Página Web de SmashTV; si tienes una lista de pedido para un distribuidor de tu país, siéntete libre de publicarla aquí!

Guía de Soldadura

Aquí teneis unas fotos del primer prototipo. Recuerda que la base final "mbhp_usb_v1"  parece diferente. Añadiré los comentarios tan pronto como haya soldado la PCB de Mike.

Guía de Instalación

No escrita aún. De todos modos es bastante fácil. Conecta tu PC Windows con el módulo USB. Después de conectarlo te pedirá el controlador EZ-USB, que puedes encontrar en el archivo mbhp_usb_v1_2 . Después de que el controlador se haya instalado, podrás cargar el firmware con el panel de control EZ-USB . También podrás grabar el firmware en la EEPROM 24LC64 . Haciendo esto, el módulo iniciará con o sin el controlador EZ-USB y en otros sistemas operativos.

Funcionamiento

El funcionamiento no es problema ;-) ver también los resultados de Benchmark

Créditos

Muchas gracias a SmashTV, que me dieron un montón de consejos de diseño muy útiles y crearon la base PCB del módulo USB- También me hicieron las dos placas del prototipo!! :-)



Last update: 2015-09-24

Copyright 1998-2015, Thorsten Klose. All rights reserved.