Home‎ > ‎

USB to MIDI

MIDI CONEXION THROUGH USB PORT  - CONEXIÓN MIDI POR PUERTO USB

 

   For this project the chip PIC18F4550 is used that includes in its hardware the necessary modules for USB  communication. This project based on the MBHP_USB_PIC of Thorsten Klose that is in the web direction that appears in the links below the page.

Slight modifications have been introduced in order to recompile the modules in MPLAB IDE  being the one that we have worked and is familiar to us. The project we will use only work with modules in assembler meaning that the original module usbdsc.c was modified passing it to usbdsc.asm therefore they are possible to be recompiled directly using MPLAB IDE and it is not necessary to acquire a specific compiler in C language. In the original version it did not include an indication of the activity of USB port in the enumeration process, then in order to have a monitoring of the same until his conclusion (CONFIGURED_STATE) it is used two indicator LEDs sequence those that are connected to two pins of port PORTD, 0 and PORTD, 1 (see FIG. 1),  this port must be set as output (TRISD=0), this is declared in the original module main.asm. The added module to obtain this monitoring was denominated Mio.asm.

 

   Para este proyecto se utiliza el chip PIC18F4550 que incluye en su hardware los módulos necesarios para la comunicación USB. Está basado en el proyecto MBHP_USB_PIC de Thorsten Klose que se encuentra en la dirección web que aparece en los links debajo de la página.

Se han introducido leves modificaciones solo a los efectos de poder recompilar los módulos en el entorno MPLAB IDE por ser el que más hemos trabajado y nos resulta familiar.

El proyecto solo utilizaremos módulos assembler es decir que el módulo original usbdsc.c se modificó pasándolo a uno usbdsc.asm  así se puede recompilar directamente utilizando el entorno MPLAB IDE y no es necesario adquirir un compilador específico en lenguaje C.

En la versión original no incluía una indicación de la actividad del puerto USB en el proceso de enumeración, entonces a los efectos de tener un monitoreo de la misma hasta su finalización (CONFIGURED_STATE) se utiliza una secuencia de dos LEDs indicadores los que son conectados a dos pines del puerto PORTD, 0  y PORTD, 1 (ver FIG. 1), es decir que este puerto debe ser configurado como salida (TRISD=0), esto está declarado en el  módulo original main.asm . El módulo agregado para lograr este monitoreo fue denominado Mio.asm.
 
 
 
 
 
FIG. 1
 
 
 
BILL OF MATERIALS - LISTA DE MATERIALES 




Reference Description Manuf Part # Supplier Supplier Part #
C1 10uf x16V




C2 47uf x 16V




C3 0.47uf x 50V




C4,C5 22pf x 50V




D1 LED 5x7mm (rojo)




D2 LED 5x7mm (ambar)




D3 1N4148




DIN1 DIN 5 contacts




DIN2 DIN 5 contacts




R1, R2 220 1/4w




R3, R4 330 1/4w




R5 10K 1/4w




R6, R7 150 1/4w




R8 220 1/4w




R9 1K2 1/4w




U1 MICRO PIC18F4550




U2 4N35




USB USB connector for PCB




XTAL CRISTAL 20Mhz




Software
See the liks below the page






<script data-ad-client="ca-pub-9753636501396613" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
 
 
 

MIDI DRIVER PROBLEMS  WITH WINDOWS 7 - PROBLEMAS CON EL DRIVER MIDI EN WINDOWS 7

 

 The first tests with midi hardware were made in windows XP, when connecting the USB port the driver installed correctly. It was used to record midi sequences from a sequencer Yamaha model  QY20 to the PC using the software "cakewalk" through a midi cable.

The only problem was in the transfer of exclusive file dump (SysEx) direct to the memory of the QY20 almost immediately there was an error message "check-sum error" so it does not initialize the module with the sequences I made earlier.

Subsequently using a notebook with Windows 7   drivers were not installed even those recognized under XP, the error mentioned a driver signing issue that was not recognized as valid in win 7.

The solution I found and worked was:


        
1)     Login as administrator.
        2)     Go to Start > Search type cmd.exe
[ENTER]
                
Give the commands:
                 bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS 
[ENTER]
        
   
      bcdedit.exe -set TESTSIGNING OFF [ENTER]
         3)    Restart the PC

 

 With these modifications the USB-MIDI driver installed worked perfectly,  in "Device Manager" listed as "USB composite device", the module cakewalk software add midi IN / OUT as "MBHP USB PIC ". Also file transfer system exclusive (SysEx) that was not available under XP now successful (about 256kB of bulk-dump).  Windows 7 will probably make better use of USB memory buffer.


 

 Las primeras pruebas con hardware del midi se hicieron en la plataforma windows XP,  al  hacer la conexión USB el driver se instaló correctamente. Se usó para grabar secuencias midi desde un secuencer Yamaha modelo QY20 a la PC usando el software "cakewalk"  a través de un cable midi.

El único inconveniente que se presentó fue al volcar archivos exclusivos (SysEx) directo a la memoria de la QY20  casi inmediatamente esta daba el mensaje de error “checksum error” por lo que no pudía inicializar el módulo con secuencias anteriormente compuestas.

Posteriormente usando un notebook  con plataforma Windows 7  no se instalaban siquiera aquellos drivers reconocidos bajo XP,  el error mencionaba un problema de firma del driver la que no era reconocida como válida en win 7.

La solución que encontré y funcionó fue:

1)       Entrar como administrador.

2)       Ir a Start o Inicio en la línea Search o Buscar escribir cmd.exe [ENTER]

           Dar los comandos:

           bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS  [ENTER]

           bcdedit.exe -set TESTSIGNING OFF [ENTER]
3)       Reiniciar la PC

 

Con estas modificaciones el driver  USB- MIDI se instaló y funcionó perfectamente, en Administrador de dispositivos figura como “dispositivo compuesto usb ”, el software cakewalk adicionó el modulo midi IN/OUT como "MBHP USB PIC". Además la transferencia de archivos exclusivos (SysEx)  que no se conseguía bajo XP ahora se realizó correctamente (aprox. 256kB de bulk-dump).  Probablemente Windows 7 haga  un mejor manejo del buffer de la memoria usb.

 


 

Vídeo de YouTube




Contact for software: I've not included the PIC program but I can supply a pre-programmed on request.

telepicdata.projects@gmail.com


Thorsten Klose page : : http://www.ucapps.de/mbhp_usb_pic.html.
 
Comments