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ódulo | Esquema | Datos 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ño | Descripció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! |
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.
|