Usando un conector MIDI como entrada y salida MIDI (no simultáneamente)

3

En mi proyecto actual (Arduino) tengo (actualmente) 3 MIDI IN y 2 MIDI OUT. Sin embargo, sería bueno si puedo configurar cada uno de los conectores MIDI como IN o OUT por software (Arduino).

Los circuitos que estoy usando son:

(Actualización:MicircuitodeentradaMIDItieneundiodo1N4001enlugarde1N914,yentreelpin6a+5v,un10Kohmenlugarde220ohmios).

(Actualización:MicircuitodesalidaMIDItieneunaresistenciade10Kohmenlugardeunaresistenciade220ohmios)

LoquemegustaríaesusarelconectorquesemuestraenlaimagendearribacomoMIDIInoMIDIout.Noloheprobadotodavía,yaquetengodemasiadasdudasynoquieroromperuncomponente.Sinembargo,lopensé(conmiconocimientoelectrónicolimitado),ypienso:

  1. Pin2afaikparaMIDIIn,normalmentetiene+5V.EnelcircuitodeentradaMIDInoestáconectado,peroenelcircuitodesalidaMIDI,estáconectadoaGND.NocreoqueestoseabuenocuandoseusacomosalidaMIDI,loqueresultaenuncortocircuito(?).Asíquesupongoquetengoquehacerqueseade+5VcuandoseusacomoentradaMIDIyGNDcuandoseusacomosalidaMIDI(porlotanto,ponerHIGHoLOW'digital'paraArduino).

  2. Lospines1y3permanecenintactosenamboscircuitos(asíquesupongoquepuedohacerlomismo).

  3. Lospin4y5sonunpocodifíciles,yaqueestánconectados.Creoquetengoqueusarunoodostransistoresparacreardosrutasalternativasparalospines4y5paralaentradaysalidaMIDI.¿Opuedosimplementeestablecerunvoltajeespecíficoenlospines4y5cuandoseusacomoentradaosalidaMIDI?(¿Ycuálesseríanesosvalores?).

  4. ParalaentradaMIDI,seusaunoptoacoplador,mientrasqueparalasalidaMIDI,directamenteseusaelArduino.Mepreguntositengoqueusartantoparaunoptoacoplador(yaquelagentepodríaconectarlo'accidentalmente'aunasalidaMIDIdesdeundispositivoMIDI.

  5. YtampocoestoysegurodecómomanejarlospinesRXyTX...para5dispositivosMIDI,necesitaríausar5pinesRXyTX,peroelArduino(Mega)solotiene4decada.PeroestaesprobablementeunapreguntaparaeltableroArduino.

(enlacealapreguntadeArduinoStackExchangeconrespectoalapregunta5): pregunta de Arduino

[actualizar]

Basado en la respuesta de CL:

  • Acerca del resistor 220R, el condensador a GND y el tipo de diodo: tendré que verificar si los uso (el ejemplo anterior es más parecido a un circuito genérico, el mío ya es ligeramente adaptador). Comprobaré el viernes exactamente mi circuito.
  • Aunque estoy planeando usar un adaptador de 12V / 1A (no estoy seguro de cómo todavía), podría ser mejor conservar la memoria en caso de que luego quiera usar una batería o 5V de la solución MIDI, así que gracias por el comentario acerca de la otra resistencia 220R.
  • (No quiero usar interruptores físicos, quiero que sea configurable (software), para que una salida sea MIDI In o MIDI Out. Así que eso significa que para un conector MIDI, ambos deben estar conectados al MIDI en el circuito AND out, o mediante un transistor (?), controlado por el software en el Arduino. Pero no sé cómo agregar este transistor al circuito MIDI In / Out y qué tipo de transistor usar ... ¿O tal vez hay una solución mejor ... o ni siquiera es posible? - > Respondida ya por replate
  • Actualmente uso un 6N138 sin problemas, excepto que noté que cuando uso la primera serie para la depuración, el procesamiento es demasiado lento, pero creo que se debe al rendimiento de la CPU / lo que sea, no del 6N138. Por otro lado, no quiero que el optoacoplador sea el punto débil en ningún caso, por lo que cambiaré a otro (por ejemplo, H11L1).

Según tus artículos:

  1. El problema es que no sé de antemano si se inserta el cable correcto (haré una pregunta diferente para esto).
  2. Borrar.
  3. Necesito poner los pines 4 y 5 tanto en el circuito MIDI IN como en el de MIDI Out. Un interruptor 'físico' (SPDT) no funcionará. - > ya respondido por repleto
  4. En ese caso, no necesito hacer nada especial para esto.
  5. He oído de otras fuentes que no se recomienda una serie de software. También quiero hacer un poco de procesamiento, pero tal vez ayude.

Actualización de trabajos en curso:

  • Hice el circuito con los componentes existentes que tengo, usando un interruptor DIP hasta que tenga el CD4053 (usando 4 interruptores DIP, 2 para entrada MIDI, pin 2 y 4, y 2 para salida MIDI, pin 2 y 4) .
  • Utilizando 6N138 ... los reemplazaré hasta que llegue el H11L1.
  • Utilizando 1N4014 ... los reemplazaré hasta que llegue el 1N4148.
pregunta Michel Keijzers

1 respuesta

6

Hay algunos errores y opciones subóptimas que son comunes en los circuitos que se copian a ciegas & pegado alrededor en la comunidad Arduino:

  • El circuito de salida debe tener una resistencia de 220 entre TXD y el pin 5 del conector.
  • La resistencia de pull-up entre los pines 6 y 8 es demasiado pequeña; desperdicia energía y carga el suministro innecesariamente. Hazlo al menos 1 kΩ.
  • El diodo 1N914 estaba desactualizado hace décadas; Puedes reemplazarlo con un 1N4148. (El 1N4148 es compatible con versiones anteriores; en la actualidad, lo que se vende como 1N914 es solo un 1N4148 etiquetado, posiblemente con un precio más alto).
  • El pin 2 del receptor debe conectarse a tierra a través de un pequeño condensador (para reducir el ruido de alta frecuencia).
  • El 6N138 es bastante lento y una mala opción para las señales digitales de alta velocidad. El PC900 de la especificación MIDI se suspende, pero fue solo un clon del H11L1, que todavía está ampliamente disponible. Alternativamente, use el 6N137.

Sería una buena idea leer la especificación MIDI .

De todos modos:

  1. El pin 2 del conector es el blindaje del cable y no tiene nada que hacer con +5 V. Debe implementar algún tipo de interruptor para conectarlo solo cuando sea necesario. (Para facilitar el trabajo, puede dejarlo abierto cuando sea receptor).

  2. Los pines 1 y 3 no están conectados a nada.

  3. Los pines 4 y 5 implementan el bucle de corriente MIDI, lo que significa que no puedes simplemente establecer un poco de voltaje. Debe utilizar los conmutadores SPDT para conectarlos al circuito correcto.

  4. Un optoacoplador no se puede usar en la dirección inversa.

  5. En general, si no tiene suficientes UART de hardware, debe implementarlos en el software (con la ayuda de temporizadores o planeación de bit bit). MIDI es bastante lento (31250 baudios), por lo que la emulación de software en realidad es factible en la mayoría de los microcontroladores.

Para resumir: la única forma práctica de compartir un conector MIDI para entrada y salida es construir ambos circuitos y usar interruptores (por ejemplo, CD4053, 74LV4053 o cualquier otro interruptor analógico SPDT, pero considerar la resistencia de los interruptores) para activar solo uno de ellos.

    
respondido por el CL.

Lea otras preguntas en las etiquetas