Download - Como mezclar dj
1. INVESTIGACIÓN TEÓRICA
1.1. BREVE RESEÑA DE LA TECNOLOGÍA MUSICAL Y DJ
Si hay algo que marca el inicio de la revolución tecnológica en el área de la música
(así como en muchas áreas) es el avance exponencial de la capacidad de
procesamiento y el abaratamiento en el costo de las computadoras.
La tecnología VLI de los microchips DSP, la cantidad de memoria RAM y la
velocidad de los discos duros entre otras características, permitieron la
implementación de software capaz no solo de tener la funcionalidad MIDI – Musical
Instrument Digital Interface- (Interfase Digital de Instrumento Musical) , sino de
soportar subprogramas que emulan el sonido e interfase de equipos de hardware
reales.
Entre las principales aplicaciones de software para creación musical con
funcionalidad MIDI, son los Secuenciadores. Estos son la principal herramienta para
la creación de los metronómicos típicos beats sonoros escuchados especialmente en
la música electrónica de hoy. Y en definitiva, ningún músico electrónico profesional
o DJ consideraría crear música sin la asistencia del secuenciador.
Justamente esta velocidad de procesamiento de los computadores es una de las
principales razones por los cual, prácticamente todo el proceso de producción
musical: grabación, edición, arreglos, mezcla y masterización se lo realiza a nivel
digital. Cada vez hay más software para diferentes aplicaciones: sintetizadores,
procesadores de efectos, procesadores dinámicos, emuladores de sistemas DJ; que
afortunadamente consiguen excelentes resultados de calidad sonora, gracias a los
altos niveles de conversión A/D – D/A (analógica/digital – digital/analógica), y a los
interfaces de audio con resoluciones por ejemplo de hasta 32 bits y frecuencias de
muestreo (“Sampling”) de hasta 96 Khz. por segundo. El bajo costé de los nuevos
computadores y equipamiento de audio, ha permitido que la creación musical de
calidad decente, esté al alcance de muchas personas. Cada día proliferan más y más
estudios caseros, donde las personas pueden dar rienda suelta a su creatividad,
aprovechando la cantidad de software asequibles incluso gratuitamente y en su
mayoría a través del Internet.
El DJ digital. Es la tendencia que actualmente se encuentra en auge, de igual manera
debido a la capacidad de los nuevos computadores. Además, del aporte tecnológico
antes mencionado, un factor sumamente importante en el “boom” del DJ digital es el
Internet y el MP3. Temas muy conocidos y familiarizados por todos, que
prácticamente están enterrando una era del DJ que utiliza discos de vinilo prensados
para realizar sus mezclas. Ahora una computadora, una colección de archivos MP3,
un software adecuado para la realizar virtualmente el procedimiento básico del DJ y
finalmente un Controlador MIDI, abren un abanico enorme de manipulación sonora
para el DJ de hoy.
La tecnología DJ ha evolucionado de los sistemas tradicionales basados en un par de
tocadiscos de vinilo y un mezclador, a su emulación perfecta en software. Programas
como el Ableton Live y el NI Traktor han conseguido no sólo integrar y recrear un
sistema completo para DJ, sino incluso en muchas ocasiones superarlo. Al
aprovechar la flexibilidad y profundidad de manipulación que brinda el audio digital
Todos estos programas tienen lo elementos básicos que se necesitan para empezar a
mezclar y experimentar sesiones de DJ: 2 canales de audio, mezclador, ecualización,
monitoreo en privado, y procesadores de efectos.
Para comprender de una mejor manera las ventajas de un sistema digital para DJ, es
necesario revisar las técnicas básicas utilizadas para la mezcla de pistas de audio.
1.2. RESUMEN DE TÉCNICAS BÁSICAS DE MEZCLA PARA
DJ
La técnica básica de mezcla utilizada por muchos DJs se resume en los siguientes
pasos:
1. Reproducir el primer tema que empieza a sonar para “el público” o “al aire” a
través del Dispositivo Reproductor 1 en el Canal 1 del Mezclador
2. Escoger el siguiente tema para cargarlo en el Dispositivo Reproductor 2 en el
Canal 2 del Mezclador y escucharlo o monitorearlo en los audífonos para
verificar el punto de inicio de la reproducción y su velocidad (o tempo) o en
relación con el tema que está ya sonando en vivo.
3. Una vez ajustado el tema 2 en interno, se empiezan a mezclar los dos temas
utilizando los controles de volumen para cada canal
4. Finalmente se termina la mezcla y la transición de un tema al otro.
5. Se repiten los pasos del 1 – 4 indefinidamente de manera alternada, es decir, en
este caso la nueva mezcla sería del canal 2 – 1, después 1 – 2 otra vez y así
sucesivamente.
Durante todo este proceso se puede hacer uso de recursos extras como son la
ecualización y los procesadores de efectos para aportar con una mayor improvisación
y manipulación del sonido según el gusto de cada DJ.
A continuación podemos observar un flujo grama del proceso que implica la mezcla
de pistas, en una sesión para DJ:
Figura 1 diagrama de flujo para la mezcla de pistas de audio que realiza un DJ
Fuente: El Autor
Cargo pista
Reproductor A
CANAL 1
Suena Pista
A
(PUBLICO)
2
MEZCLA
PISTA A Y
PISTA B
Suena
transición
entre pistas (PUBLICO)
1
Preparo tempo o
ajusto pista A
(AUDIFONOS)
¿Primera
pista?
SI
NO
Cargo pista
Reproductor B
CANAL 2
Suena Pista
B
(PUBLICO)
Preparo tempo o
ajusto pista B,
(AUDIFONOS)
¿Primera
pista?
SI
NO
¿Lista para
mezcla?
NO
SI
¿Lista para
mezcla?
SI
NO ¿Lista para
mezcla?
Primera pista
finaliza
A
B
¿Qué pista
finalizó? 1
2
4
Nueva Pista
Suena
(PUBLICO)
A
B
¿Qué pista
suena? 3
4
3
INICIO
1.3. TECNOLOGÍA MIDI
Cada músico “real” se expresa con su instrumento de una manera conciente o
inconciente utilizando una serie de interpretaciones de diferentes tipos. Por ejemplo,
un pianista podría golpear ciertas notas más fuerte que otras, un guitarrista podría
deslizar sus dedos hacia arriba por el mástil de trastes flexionando el sonido, o podría
sostener algunas notas mientras acorta otras. Todos estos matices contribuyen al
elemento humano detrás de la música, y sin ellas la música sonaría aburrida y sin
vida.
Mucha gente podría discutir que no hay un elemento humano detrás de la música
electrónica “dance” debido a que todo su principio está basado en golpes exactos y
melodías que suenan como si una máquina los hubiera creado. En la mayoría de
casos esto no es verdad y con un detalle minucioso se podría encontrar que incluso el
más repetitivo “Techno1” está copado con pequeñas instancias sónicas que previenen
a que llegue a ser tedioso. Esta es la razón clave de el porqué algunas canciones
parecen tener mucha de energía o “alma” y otras inmóviles y monótonas; y también
es por esto que debe ser imperativo entender como el protocolo MIDI puede ser
utilizado. Conociendo esto, la tecnología MIDI puede ser explotada para crear la
impresión de que un tema tenga energía, manejo y un carácter indefinible.
Mucha de la energía y flujo de cualquier música puede ser atribuida al desarrollo
ligero o agresivo de los sonidos a través de la longitud del arreglo. Mientras el
músico interpreta la pieza musical o el DJ realiza la mezcla de las pistas
naturalmente inyecta esto en su presentación, capturando este sentimiento a través de
MIDI requiere el uso de una serie de controladores MIDI. Por ejemplo, cuando el
músico toca una nota y mueve la rueda “pitch-bend”, esta rueda envía un flujo
continuo de mensajes de control al motor del sintetizador, el cual a su vez flexiona la
afinación hacia arriba o abajo. Si esto juega un papel importante en su rendimiento,
entonces el músico necesitará realizar esto en tiempo real cada vez que interprete su
música. O en el caso del DJ cuando mueve el control deslizante de nivel, este control
1 “Techno” es un subgénero de la música electrónica de baile, caracterizado generalmente por su
mínima variación en el tiempo y sonidos de percusión repetitivos e hipnóticos.
de igual manera incrementa o disminuye el volumen de la pista de audio en alguno
de los canales del mezclador.
Todo esto se lo podría automatizar o controlar gracias al protocolo MIDI ya sea
desde el secuenciador o los controladores MIDI.
1.3.1. Controladores MIDI
Tiempo atrás en 1980 uno de los propósitos originales del desarrollo de la
especificación MIDI, era permitir a los intérpretes en vivo, la habilidad de controlar
los sonidos de múltiples sintetizadores desde un simple teclado. Ese concepto ha
tenido un gran éxito y hoy en día cantautores con portátiles, músicos de estudio,
diseñadores de sonido y otros, se han podido beneficiar de la flexibilidad que ofrece
un controlador MIDI.
Técnicamente, un controlador MIDI es un dispositivo que posee un conjunto de
actuadores que adoptan la forma de por ejemplo las teclas estilo piano, deslizadores
como las encontradas en los mezcladores de DJ, o perillas de volumen en equipos de
audio, botones, etc. Todos estos transmiten datos MIDI a módulos de sonido externo,
a sintetizadores, “samplers” (muestreadotes) y secuenciadores de software, tanto
reales como virtuales.
La mayoría de los controladores MIDI adoptan cualquier tipo de diseño dependiendo
del tipo de aplicación o instrumento que se quiera interpretar. Pudiendo ser por
ejemplo, similar al de un teclado – piano, una batería eléctrica o una flauta; incluso
como en el caso de este proyecto, un sistema para DJ. Vale la pena mencionar, que
un controlador MIDI en concreto, no procesa ni genera señales de audio; maneja
exclusivamente señales digitales que comandan los parámetros de audio de otros
instrumentos o programas.
Como habíamos mencionado, una de las principales ventajas que poseen los
controladores MIDI es permitir la interpretación del músico en vivo de su
instrumento electrónico, además de brindar versatilidad y portabilidad. Ellos brindan
el control sobre virtualmente el rango entero de hardware y software musical incluso
al mismo tiempo siendo lo suficientemente compactos para ajustarse a una bolsa de
laptop.
En el siguiente capítulo, se podrá conocer en mayor detalle sobre el protocolo MIDI.
1.3.2. Especificaciones MIDI
Con lo mencionado en capítulos anteriores podemos tener una idea de lo que abarca
el tema MIDI. Específicamente, la palabra MIDI son las siglas en inglés de “Musical
Instrument Digital Interface” traducido equivale a Interfase Digital de Instrumento
Musical.
MIDI es un protocolo de comunicaciones generalizado que habilita a los
instrumentos equipados con MIDI a que sean interconectados y controlados por un
secuenciador. Es decir, permite que equipos de audio de diferentes compañías
puedan trabajar juntos, lo cual significa que una pieza de software (secuenciador)
pueda convertir un banco de sintetizadores hechos por diferentes empresas en una
orquesta coherente (o banda de rock, ensamble de jazz, instalación de DJs, o casi
todo). Al usar un secuenciador MIDI – un programa que permite grabar y editar
datos MIDI- es posible componer música con una velocidad y flexibilidad que supera
los métodos antiguos de composición. Y finalmente, es posible guardar estas
composiciones en archivos en un formato que permite una fácil colaboración.
MIDI es similar al audio digital en sí, debido al hecho de que reduce varios
elementos de una interpretación musical en comandos numéricos generados. Usando
números, el lenguaje MIDI básico dice por ejemplo a un sintetizador (o
secuenciador, o software con compatibilidad MIDI) la siguiente información:
o Cuándo tocar la nota: el número de la nota2
o Cuándo empezar y terminar esa nota: nota encendida y nota apagada
o Qué tan alto tocar esa nota: esto se conoce como velocidad de la nota
2 Al final del documento en el Anexo 2 podemos apreciar el número de nota MIDI
o Para que parámetros son: flexión de afinación (pitch bends), modulaciones,
movimientos de rueda, y el uso del pedales sostenido
o Que sonidos tocar y cuando, y si el sonido cambia ( por ejemplo empezar con un
sonido de guitarra eléctrica y después enviar mensajes MIDI para cambiar al
sonido de una guitarra acústica)
En definitiva el MIDI es un vía estandarizada (protocolo) para la comunicación entre
dispositivos musicales. Con la capacidad de manejar hasta 16 canales -16
instrumentos- Este protocolo especifica diferentes tipos de mensajes que están
conformados por palabras de 10 bits y son transmitidos serialmente a una velocidad
de 31250 bits / segundo.
De estos 10 bits dos especifican el inicio y el final del mensaje, (0 y 1
respectivamente) restando entonces 1 byte (8 bits) que define en sí la palabra MIDI
del mensaje.
El MIDI byte puede ser de dos tipos: estado e información.
1. Estado: Un byte de estado (empieza con el MSB en 1. Entonces, un byte de estado
varía entre 128-255 en decimal y 0x80-0xFF en hexadecimal.
Ejemplo: 1001xxxx
2. Información: En este caso el octavo BIT inicia con 0. Por lo tanto, prácticamente
un mensaje de información MIDI consta de 7 bits. Es decir varía desde 0-127 en
decimal, 0x00-0x7F en hexadecimal.
Ejemplo: 00111100
Enviar bytes de datos con valores ≥ 128 violarían el protocolo MIDI y puede
provocar un comportamiento aleatorio en el lado del receptor, porque el receptor
puede asumir que un nuevo mensaje MIDI empieza (8vo BIT ajustado en el byte de
estado)
En conclusión un mensaje MIDI se compone de un byte de estado y varios bytes de
información continuos.
Por ejemplo:
1. 1001xxxx (note ON)
2. 00111100 (valor 64 que corresponde a la nota do)
3. 0xxxxxxx (la velocidad con la que haya sido apretada la tecla)
4. Pero al soltarla, puede omitir el byte status y apagarla por volumen (otra
posibilidad es que usase el 1000xxxx “note off” para apagarla). Es decir,
transmitiría sólo los dos siguientes bytes:
5. 00111100 (valor 64 que corresponde a la nota do)
6. 00000000 (la velocidad cero, que indica que tiene que dejar de sonar esa nota).
Omitiendo así el byte status. Es más, si nuevamente pulsamos la tecla do,
volvería a omitir el byte status.
1.3.3. Tipos de Mensajes MIDI
Existen diferentes tipos de mensajes MIDI3:
1. Mensajes De Canal:
Mensajes de Voz. Que contienen datos referentes a la interpretación musical. Se
los puede identificar porque varían su byte de estado desde 1000nnnn a
1110nnnn
Mensajes de Modo. Los mensajes de modo contienen datos que alteran la forma
en que el instrumento receptor interpreta los datos de los mensajes de voz. Inician
con el byte de estado de 1011nnnn y seguidos por los mensajes de información:
0ccccccc y 0vvvvvvv, donde "c" varía entre 120 y 127, siendo bastante similar al
mensaje de voz “Cambio de Control” pero que adopta valores fuera del rango.
3 Al final del documento en en el Anexo 1 podemos encontrar un resumen de los diferentes tipos de
mensajes MIDI, expuestos desde la propia página Web de la MMA -MIDI Manufacturers
Association- (Asociación de Fabricantes MIDI)
2. Mensajes de Sistema:
Sistema común. están destinados a todos los receptores del sistema. Estos
mensajes cumplen varias funciones como por ejemplo: alertar un dispositivo en
específico, apuntar la posición de una canción, seleccionar la canción, petición de
afinación, finalización de un mensaje exclusivo. Su byte de estado inicia en
11110000 hasta 11110111.
Sistema de tiempo real. Se utilizan para la sincronización de los elementos que
funcionan mediante un reloj temporizador, como secuenciadores, cajas de ritmo,
arpegiadotes, etc. Tienen la mayor prioridad entre todos los tipos de mensaje. Su
byte de estado inicia en 11111000 a 11111111.
3. Mensajes Auxiliares.
Sistema exclusivo “Sysex”. Estos mensajes incluyen un código de identificación
del fabricante y se utilizan para transferir bytes de datos formateados según una
especificación diseñada por ese fabricante. Este tipo de mensajes son los que más
nos interesa conocer para nuestra aplicación. En el próximo capítulo los vamos a
conocer más detalladamente.
4. Otros.
Se utilizan habitualmente para enviar datos de parámetros a un sintetizador para la
edición de sonidos. Los Números de parámetro registrados (Registered Parameter
Number - RPN) son aquellos a los que las organizaciones MIDI Manufacturers
Association (MMA) y Japan MIDI Standards Committee (JMSC) han asignado
alguna función particular. Por ejemplo, existen RPNs definidos para controlar la
sensibilidad de pitch bend y la afinación general de un sintetizador. Por su lado, los
no registrados (Non-Registered Parameter Number - NRPN) no tienen asignada
ninguna función específica y pueden ser utilizados de forma distinta según el
fabricante. De nuevo en este caso Roland y Yamaha, entre otros, han adoptado sus
propios estándares.
1.3.4. Mensajes de Sistema Exclusivos
Este tipo de mensajes como su nombre lo indica son de uso exclusivo de cada
software de audio, sintetizador o sampler. Conocidos también como mensajes Sysex,
nos permite comunicarnos de manera personal y confidencial con cualquiera de estos
equipos y así poder controlar diferentes parámetros que son propios de su estructura.
Cada fabricante define sus propios formatos para este tipo de datos y dispone de un
código de identificación único garantizado por la MMA (MIDI Manufactures
Association) y el JMSC (Japanese MIDI Standard Committee). Esta ID del
fabricante, incorporada en cada mensaje de Sistema Exclusivo, precede a los
distintos paquetes de datos, a continuación de los cuales aparece el mensaje EOX
(End of Sysex) con el que finaliza la transmisión de datos. Los fabricantes están
obligados a publicar los detalles que conforman sus formatos de datos de Sistema
Exclusivo para que puedan ser utilizados libremente por otros fabricantes o por el
propio usuario, siempre y cuando no se alteren o se utilice el formato de forma que
entre en conflicto con las especificaciones originales definidas por el fabricante.
Algunos de estos números de identificación están reservados para protocolos
especiales, entre los que figuran el Estándar para Volcado de Muestras MIDI (MIDI
Sample Dump Standard), un formato de datos de Sistema Exclusivo dedicado a la
transmisión de datos entre muestreadores; así como MIDI Show Control y MIDI
Machine Control.
Al enviar mensajes exclusivos es posible controlar cualquier aspecto del sintetizador
incluyendo controles enlistados en las especificaciones MIDI que no es reconocida
por el sintetizador.
Estructura.
Los mensajes Sysex típicamente consisten de una dirección hexadecimal, que
apuntan a la función dentro del sintetizador que queremos ajustar y un valor Sysex
hexadecimal que dice a la función como queremos ajustarla. Además, un mensaje
Sysex necesita proveer de información básica con respecto al sintetizador al cual
estamos transmitiendo el mensaje. Entonces, por esto un sintetizador requiere que el
mensaje Sysex sea de ocho o nueve palabras de largo, combinando todos los
elementos descritos para completar el mensaje.
A continuación analizaremos un ejemplo de mensaje Sysex:
Figura 2 Partes y Descripción de un mensaje MIDI tipo Sysex
PARTE VALOR DESCRIPCIÓN
1 F0
Byte de Estado Sysex (mensaje Sysex encendido).
Siempre todo mensaje Sysex inicia con este valor.
2 41H
Valor específico del fabricante. Ignorado por equipos
a los cuales no pertenece.
3 10H
Identificar un sintetizador en particular incluso si es
del mismo fabricante
4 42H
Código de ID del modelo del fabricante. Permite
asignar un valor entre 1 y 32 (por defecto suele ser
17) así podemos distinguir hasta 32 Instrumentos
'gemelos' dentro del Sistema MIDI. Este código suele
coincidir con el Canal Básico (también llamado
Global) del Instrumento.
5 12H
Puede ser de 2 variables: 12H o 11H, usado para
especificar ya sea si el mensaje está enviando (12H)
o solicitando (11H). Un mensaje 11H es usualmente
empleado para volcar enteramente todos los ajustes
del sintetizador en un secuenciador conectado.
6 00 00 11H
Dirección Sysex de la función que vamos a
modificar, en la memoria del instrumento
7 04H
Valor Sysex. Que puede ser el valor enviado si la
parte 5 está en modo enviar (12H), o si la parte 5
contiene el valor de 11H de petición, esta parte 7
indica el número de bytes solicitados por el
sintetizador para retornar en su mensaje de respuesta.
8 10H
Esta parte del mensaje es opcional dependiendo del
fabricante. Algunos lo emplean para validar los
mensajes y asegurarse de que el sintetizador haga
específicamente lo que el código hexadecimal
solicita. Es una especie de byte de "checksum".
9 F7
EOX - fin de mensaje Sysex. Siempre todo mensaje
Sysex termina con este valor.
Fuente: El Autor
Comúnmente una cadena de mensajes Sysex es insertada al inicio de cualquier
arreglo MIDI, para que el archivo pueda ser ajustado y reprogramado en cualquier
otro sintetizador con diferente ubicación. De hecho Sysex es muy utilizado para
actualizar el sistema operativo del sintetizador (ejemplo MIOS) o para arreglar
errores en el programa, o proveer un nuevo set de sonidos. También es muy utilizado
para alterar ciertas partes específicas de un sintetizador durante una secuencia MIDI,
como por ejemplo cambiar el tipo de filtro o la forma de onda del LFO (Oscilador de
Baja Frecuencia).
Vale la pena también notar que solo un mensaje Sysex puede ser transmitido a la vez.
Entonces si dos mensajes tienen que ser enviados seguidamente, se debe establecer
una pausa entre los dos hasta que se haya procesado el primero. Es también
importante saber que los instrumentos nunca deben recibir Mensajes de Sistema
Exclusivo en el momento de su encendido.
1.3.5. Conexión con el Computador
Todo instrumento o equipo que tenga capacidad MIDI por lo general tiene tres
conectores: MIDI IN, MIDI OUT y MIDI THRU. En estos conectores se insertan
lógicamente los cables para establecer la comunicación entre el controlador,
sintetizador o teclado y el computador en el que está instalado el programa
secuenciador o de DJ. La “conversación MIDI” real viaja desde el conector MIDI
OUT de un instrumento hasta el conector MIDI IN de otro. La información recibida
en el puerto MIDI IN de un dispositivo puede ser también retransmitida o replicada
en el conector MIDI THRU para que sea reenviada a su vez, al puerto MIDI IN de
otro instrumento; de tal manera que puedan conectarse varios dispositivos MIDI en
cadena. Al conectar equipos MIDI con esta configuración, se crean sistemas más
elaborados permitiendo al secuenciador comunicarse con varios sintetizadores,
samplers o controladores al mismo tiempo.
En la Figura 3 podemos apreciar una configuración típica para la Producción de
Música Electrónica. En el que el secuenciador MIDI instalado en el computador,
funciona como una especie de “director de orquesta”, enviando diferentes tipos de
información digital, los cuales son interpretados por los instrumentos conectados a la
cadena MIDI para reaccionar de una u otra manera según la especificación de estos
mensajes, y finalmente su interpretación de audio sea escuchada a través de la mesa
de mezcla.
Figura 3 Configuración típica de un Estudio para Producción de Música Electrónica
Fuente: Rick Snoman, A simple Dance-Based Studio, 2004 y el Autor.
Los conectores -receptores- MIDI tienen 5 zócalos que encajan perfectamente con
las 5 patillas tipo DIN que forman los conectores -macho- de los cables:
Figura 4 Conexiones MIDI, In, Out y Thru
Fuente: Roland, Manual MIDI, Año no disponible
Figura 5 Conector – receptor MIDI
Fuente: el Autor
Figura 6 Conector – cable MIDI
Fuente: BBD Soft, AT keyboard connector (DIN5), 2007
http://www.bbdsoft.com/keyboard.html
En estos cables la transmisión de los datos se lo realiza a través de un solo pin, el
número 5. Los pines 1 y 3 fueron agregados para futuras funcionalidades. El pin # 2
se utiliza como blindaje (tierra) y finalmente el pin 4 es para transmitir un voltaje de
5 V, y de esta manera garantizar un flujo correcto de la corriente eléctrica.
Obviamente las conexiones MIDI no son comunes de encontrar en los computadores
disponibles normalmente en el mercado, muchas veces es necesario utilizar una
interfase MIDI adicional, ya sea dedicada o integrada en una tarjeta de sonido.
Figura 7 Conexión de diferentes dispositivos a través de una interfase MIDI
Fuente: Rick Snoman, Single and Multi-Buss MIDI Setups, 2004 y el Autor.
También se pueden encontrar interfases MIDI en forma de un conector para palanca
de juegos -joystick-, con la ventaja de utilizar un solo cable para establecer la
comunicación. En la Figura 8 y 9 se puede apreciar un conector de este tipo y la
conexión con un controlador MIDI
Figura 8 Conector MIDI tipo “joystick”
Fuente: Crutchfield, Game MIDI Plug, 2009.
http://akamaipix.crutchfield.com/lifestyle/2001/hGameMIDIPlug.jpeg
Figura 9 Conexión de un controlador y un computador a través de cable MIDI y conector “Joystick”
Fuente: Turtle Beach, MIDI Cable Connection Charts (Joystick & USB), 2009.
http://support.turtlebeach.com/site/kb_ftp/167217296.asp
Incluso actualmente podemos encontrar de una manera prácticamente estandarizada
el uso del puerto USB o Firewire para establecer la comunicación MIDI entre un
dispositivo MIDI (sea este controlador DJ, sintetizador o teclado master) y el
computador. Con la ventaja de evitar una conexión extra como en la conexión
original, ya que a través de un solo cable se establece la comunicación de entrada y
salida. Adicionalmente, en varias ocasiones se han configurado ensambles de varios
computadores que se comunican entre ellos a través del protocolo MIDI pero
utilizando cable Ethernet.
Figura 10 Conexión de un controlador y un computador a través de cable MIDI y conector USB
Fuente: Turtle Beach, MIDI Cable Connection Charts (Joystick & USB), 2009.
http://support.turtlebeach.com/site/kb_ftp/167217296.asp
Para nuestro proyecto utilizaremos la conexión típica a través de los conectores
MIDI normales.
1.4. SOFTWARE PARA APLICACIONES DE AUDIO
1.4.1. 1.4.1. Ableton Live
“Ableton Live” es un programa secuenciador de audio que se lo puede tocar como si
fuera un instrumento. Ya sea por sí solo o con otros músicos y DJs, en presentaciones
en vivo o remixeando en estudio, lo único que requiere Ableton es un computador.
Es prácticamente un secuenciador en tiempo real que utiliza loops, archivos de audio
y MIDI, además de un amplio arsenal de efectos. Una gran ventaja es que puede
funcionar también con otros programas de audio, como Reason, Logic y Cubase.
Gracias a estas características en tiempo real, “Ableton Live” ha abierto enteramente
nuevos mundos de expresión creativa para los DJs; es posible mezclar cualquier
cantidad pistas y loops, remezclar sobre la marcha, capturar loops de audio en tiempo
real desde cualquier fuente externa de sonido como compacteras o tocadiscos.
A continuación revisaremos, la configuración básica del software para utilizarlo
como equipo de DJ.
1.4.1.1. CREACIÓN DE CANALES DE AUDIO
Figura 10 Pantalla Inicial del Software – Ableton Live
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009.
Inicialmente Ableton tiene ya creados un canal MIDI y un canal de Audio en su
“Vista “Sesión”. La vista Sesión ofrece un enfoque hacia la producción musical
permitiendo grabar, reproducir y combinar ideas en la marcha. Esta herramienta es
igualmente útil para la composición musical, “jamming" (sólo o con otros músicos) y
"DJing". Sus transiciones permanecen siempre sincronizadas al tiempo musical,
incluso durante los cambios de tempo y el groove.
Las hileras horizontales de la vista de Sesión se llaman escenas. En esta
configuración cada escena representa una sección de la canción, como por ejemplo
intro, coro, estrofa, etc. En este modo al reproducir una parte se reproducen todos los
clips cargados en los canales y se mantienen sonando todo el tiempo que se desee.
Figura 11 Reproducción de Clips por Secciones
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009.
Estos clips que conforman una escena, son simples contenedores de datos de audio o
MIDI y permiten llevar la composición no linear un paso más allá al desviarse de las
escenas y probar variaciones
Figura 12 Reproducción de Clips por escena
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009.
Cualquier clip o escena que se “dispare” estará sincronizado con el tempo del Set.
Por defecto, todos los clips se inician solo en el primer tiempo del compás siguiente
una vez que hayan sido disparados, permitiendo obtener una máxima sincronización.
Se debe notar que si disparamos un nuevo clip este detiene la reproducción del clip
que estaba reproduciéndose anteriormente en la misma columna. Las columnas
verticales en la vista de Sesión representan a las pistas, y una pista solo puede
reproducir un clip al mismo tiempo. Por eso uno normalmente coloca las variaciones
de un clip en la misma pista.
Si queremos detener un clip sin que se inicie otro, podemos usar el botón detener
Clip de la misma pista. Estos botones cuadrados aparecen por defecto en todos los
spots de clip vacíos:
Figura 13 Detener un clip de una escena
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009.
Al hacer doble clic sobre cualquiera de los clips podemos observar la onda de audio.
Figura 14 Forma de Onda del Audio de un Clip
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009.
Vamos a eliminar el canal MIDI y crear un nuevo canal de Audio para tener dos
canales de audio en total, ya que el enfoque de nuestro controlador y la configuración
básica para un sistema DJ no necesita más canales:
Figura 15 Selección de un canal MIDI
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009.
Seleccionamos el canal MIDI y presionamos la tecla DEL.
Figura 16 Canal MIDI eliminado
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Ahora para crear un nuevo canal de audio damos clic derecho donde está el cursor de
la imagen anterior y seleccionamos la opción “Insertar pista de audio”:
Figura 17 Inserción de un nuevo canal de audio
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Figura 18 Dos canales de audio listos para cargar nuevos clips
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
1.4.1.2. INSERCIÓN DE MÓDULOS DE EFECTOS.
Una vez que tenemos listos los canales de audio lo que nos corresponde hacer ahora es
insertar los efectos básicos para un sistema DJ.
Primero empezamos insertando los Ecualizadores:
En el panel de navegación de dispositivos Live, nos dirigimos a la opción que dice
“Audio Effects”
Figura 19 Explorador de efectos de Audio
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Donde podemos apreciar un listado completo de los diferentes módulos de efectos que
ofrece Live. Buscamos la opción que dice "EQ Three", la seleccionamos y sin soltar el
botón del Mouse, arrastramos el módulo hace el panel de efectos de cualquiera de los
canales de audio.
Figura 20 Efecto de Ecualizador de Tres Bandas seleccionado para arrastrarlo al panel de efectos de un
canal de audio
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Figura 21 Efecto de Ecualizador de Tres Bandas, Bajos Medios y Agudos, con botones para eliminación
de banda y control de ganancia
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Ahora, podemos seguir agregando una cadena de efectos después del ecualizador, que
esté en acorde a nuestros gustos. Para este proyecto, hemos decidido seleccionar un
módulo de “Delay” uno de “Reverb” y finalmente uno de Filtro. Para añadirlos,
utilizamos el mismo método indicado para el ecualizador.
Figura 22 Seleccionamos el efecto "Grain Delay", para sumarlo a la cadena de efectos
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Figura 23 Efecto Reverb, insertado en la cadena de efectos
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Y finalmente seleccionamos y arrastramos un módulo de Filtro que decidimos ubicarlo
entre el ecualizador y el Delay.
Figura 24 Efecto Reverb, insertado en la cadena de efectos
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Esta inserción de cadena de efectos lo realizamos nuevamente pero esta vez para el
canal de audio 1, de tal manera que tendríamos dos canales idénticos.
Figura 25 Canal 1 seleccionado para ser insertado con una cadena de efectos
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Figura 26 Configuración final con los 2 canales de audio y sus respectivas cadenas de efectos
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Una vez listos la configuración de canales y efectos lo que necesitamos ahora configurar
es la comunicación MIDI.
1.4.1.3. CONFIGURACIÓN MIDI
Lo que primero tenemos que hacer es verificar que Ableton Live se encuentre
detectando los puertos MIDI de nuestra interfase.
Figura 27 Ingresamos a la opción “Preferencias” dentro del menú de “Opciones” para ajustar la
configuración MIDI
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Para esto nos dirigimos a la opción de preferencias, ubicado en el menú de Opciones, y
en la pestaña de “MIDI Sync” verificamos que estén seleccionados los puertos de
entrada y salida de nuestra interfase y/o controlador MIDI:
Figura 28 Tanto en Entrada como en Salida debe estar el nombre del controlador MIDI
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Y también debe estar activada la opción “Remote” para el puerto de entrada de nuestro
controlador MIDI:
Figura 29 Habilitamos la entrada para el control remoto de Ableton
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Ahora el siguiente paso, sería asignar los diferentes controles y botones de nuestro
dispositivo MIDI a cada parámetro que nos gustaría modificar o manipular en Ableton
Live. Para realizar esto lo primero que tenemos que hacer es presionar el botón MIDI
ubicado en la esquina superior izquierda:
Figura 30 Al presionar el botón MIDI, Ableton ingresa a modo de reconocimiento de controles
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Al activar esta opción, Live entra en modo de “aprendizaje”, en el cual automáticamente
asignara cualquier parámetro que seleccionemos al control que movamos en nuestro
controlador:
Figura 31 Ableton en Modo “MIDI Learn”, listo para asignar el mapeo de controles
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Entonces ah continuación seleccionamos cualquier parámetro que necesitemos asignar a
algún actuador, por ejemplo seleccionamos la opción "Dry/Wet" del módulo “Simple
Delay”:
Figura 32 Seleccionamos en Ableton algún actuador que deseamos controlar
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Ahora movemos la perilla o deslizador en nuestro controlador para que sea asignado, al
hacer esto automáticamente Live graba esta información para que esté disponible
después de terminar las asignaciones:
Figura 33 Después de mover un control para que Ableton lo reconozca, aparece la nomenclatura
asignada al actuador
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Podemos verificar la asignación de este control en el panel de Mapeo MIDI:
Figura 34 Verificación en el Panel de Mapeos MIDI, de todos los actuadores asignados
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Aquí podemos interpretar que el parámetro Dry/Wet del módulo “Simple Delay”
ubicado en el Canal de Audio 2 está asignado el Control de Cambio # 10 del
Controlador MIDI detectado en el canal MIDI 1.
Mientras estemos en este modo podemos seguir asignando controles a cualquier otro
parámetro, y la ventaja es que la reproducción de audio no se interrumpe mientras se
realiza el mapeo MIDI.
Por ejemplo ahora vamos asignar un potenciómetro deslizante de nuestro controlador
para manipular el volumen de uno de los canales de audio:
1. Seleccionamos el control de volumen en Live
Figura 35 Verificación en el Panel de Mapeos MIDI, de todos los actuadores asignados
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
2. Movemos un potenciómetro deslizante en el controlador MIDI para que Live lo
reconozca
Figura 36 Una vez reconocido el control externo para el volumen del canal, podemos observar su
nomenclatura
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
3. Verificamos en el panel del mapa MIDI esta asignación
Figura 37 Comprobación en el panel de mapeos
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Podemos verificar que el parámetro “Track Volume” del módulo Mixer en la pista
de Audio 1, está asignada por el Control de Cambio 10 del dispositivo externo
asignado a través del Canal MIDI 1.
4. En el caso que hayamos terminado la asignación de los diferentes parámetros
podemos finalmente presionar el botón MIDI para salir del modo de edición del
mapeo
Figura 38 Finalizar Modo edición MIDI
Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Este proceso lo podemos repetir cuántas veces sean necesarias, tomando en cuenta
la capacidad de nuestro controlador MIDI.
5. Una vez ajustados todos estos parámetros podemos proceder con la reproducción y
mezcla de los archivos de audio para crear una sesión DJ
1.4.2. NI Traktor
Para este programa la configuración de un sistema DJ es mínima debido a que está
diseñado para este tipo de aplicación.
Por lo tanto, nos limitaremos a configurar el mapeo MIDI, el cual es similar al proceso
para el Ableton Live.
Figura 39 Pantalla inicial de NI Traktor Pro
Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009
Para realizar la configuración MIDI lo que tenemos que hacer es simplemente ingresar
al panel de preferencias dando clic en el siguiente icono:
Figura 40 Pantalla inicial de NI Traktor Pro
Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009
En el cuadro de dialogo que se abre seleccionamos la opción “MIDI Setup” y aquí en
las opciones que aparecen tanto para la entrada y salida seleccionamos nuestro
dispositivo MIDI:
Figura 41 Configuración de Dispositivos MIDI
Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009
Una vez seleccionados los controladores MIDI, seleccionamos la opción que se llama
“MIDI Mapping” ubicado al final de la lista de opciones de las preferencias.
Figura 42 Configuración de Dispositivos MIDI
Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009
Ahora en la parte derecha damos clic en el botón “Add” para agregar un control que
deseamos modificar remotamente con nuestro dispositivo MIDI. En este ejemplo vamos
a agregar el parámetro correspondiente a la ganancia de la banda media para el
ecualizador del canal A:
Figura 43 Configuración de Dispositivos MIDI
Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009
Figura 44 Podemos añadir cualquier parámetro para ser asignado al Controlador
Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009
Ahora en la sección “Control Configuration” seleccionamos el enfoque al canal que
necesitamos asignar:
Figura 45 Seleccionamos el enfoque del parámetro seleccionado, Canal A, B o C
Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009
Ahora presionamos el botón “Learn” y movemos la perilla en nuestro controlador MIDI
para que sea grabado el mapeo:
Figura 46 Después de presionar el botón Learn, podemos asignar el parámetro seleccionado al
controlador MIDI
Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009
Figura 47 Podemos comprobar la asignación del parámetro seleccionado
Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009
Ahora por ejemplo queremos asignar el encendido de la sección de efectos 2 para el
canal B, procedemos de la misma manera:
Figura 48 Seleccionamos nuevamente uno de los parámetros
Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009
Presionamos el botón al cual queremos asignar este control, debido a que Traktor
mantuvo su estado de “Aprendizaje”:
Figura 49 No es necesario presionar el botón de “Learn” nuevamente, directamente seleccionamos el
parámetro y accionamos el control al cuál queremos asignar
Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009
En este caso podemos modificar el tipo de acción del botón asignado, para definir un
comportamiento específico, pudiendo ser este “Hold” -Mantenido-, “Toggle” -
Alternado-, “Direct” -Directo- y “Output” -Salida-.
Estas opciones nos permiten personalizar de cierta manera los diferentes parámetros,
independientemente del tipo de botón que hayamos escogido para nuestro controlador
MIDI. Por ejemplo en este sentido se puede notar una ventaja de Traktor ante Ableton
Live. Ya que esta es una función que no está disponible en Live.
Figura 50 Seleccionamos el modo de interacción
Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009
En este ejemplo cada vez que presionemos el botón provocará que el control de efectos
asignado se mantenga encendido, sin la necesidad de mantener el botón presionado.
Una vez finalizado el mapeo de todos los parámetros, podemos cerrar el cuadro de
preferencias y empezar a utilizar el programa.
1.5. MICROCONTROLADORES PIC
1.5.1. Diagrama De Pines
Figura 51 Nombres de los pines del PIC18F452
Fuente: Microchip, Pin Diagrams, 2006
1.5.1.1. DESCRIPCIÓN DE LOS PINES
Figura 52 Nombres de los pines del PIC18F452
Fuente: Microchip, Pinout I/O Descriptions, 2006
Figura 53 Nombres de los pines del PIC18F452 (continua)
Fuente: Microchip, Pinout I/O Descriptions, 2006
Figura 54 Nombres de los pines del PIC18F452 (continua)
Fuente: Microchip, Pinout I/O Descriptions, 2006
Figura 55 Nombres de los pines del PIC18F452 (continua)
Fuente: Microchip, Pinout I/O Descriptions, 2006
1.5.2. Oscilador De Cristal
El oscilador de cristal, es una de las opciones de oscilación que se encuentran
disponibles con el microcontrolador PIC18F452. Este oscilador puede ser seleccionado
a través de los bits de configuración FOSC2, FOSC1 y FOSC0. Para su funcionamiento
este oscilador de cristal es conectado a los pines OSC1 y OSC2 del microcontrolador y
además requiere el uso de un capacitor de corte paralelo. Existen diferentes modos de
oscilación, con cristal:
1. LP - Cristal de Baja Potencia
2. XT - Cristal/Resonador
3. HS - Cristal/Resonador de Alta Velocidad
Figura 56 Diagrama del Oscilador para el PIC18F852
Fuente: Microchip, Crystal/Ceramic Resonator Operation (HS, XT or LP Configuration), 2006
Figura 57 Selección de Capacitores para Oscilador de Cristal
Fuente: Microchip, Capacitor Selection for Crystal Oscillator, 2006
Se debe tomar en cuenta las siguientes notas:
1. Mientras más alta sea la capacitancia más estabilidad tiene el oscilador, pero
también aumenta el tiempo de arranque
2. Rs puede ser requerida en el modo HS, como también en XT, para evitar los
cristales distorsionantes, con un manejo demasiado bajo.
3. Siempre debemos consultar las características de cada oscilador propuestas por el
fabricante, para estar seguros de los componentes que deben ser conectados.
1.5.3. Reset Maestro
El reset maestro para el PIC puede ser de varios tipos:
a. Power-on Reset (POR). Reinicio en el encendido.
b. MCLR. Reinicialización maestra en plena operación. A través del pin 1 MCLR
c. MCLR. Reinicialización maestra en modo SLEEP.
d. Reinicio a través del temporizador de “perro guardián” Watchdog Timer (WDT)
durante operación normal
e. Reinicio programable por baja de tensión BOR.
f. Instrucción RESET.
g. Stack lleno
h. Stack vació cuando es apuntado.
De estos diferentes tipos de Reinicialización, los que utilizaríamos para el proyecto son
el POR y BOR.
Para implementar el POR (pulso de reinicio generado en el chip cuando se detecta una
subida de Vdd) basta simplemente con conectar al pin 1 a través de una resistencia a
Vdd. Esto también elimina la necesidad de conectar componentes RC externamente.
Al utilizar la reinicialización debido a una caída de tensión en Vdd, Brown – out Reset,
estamos protegiendo de cierta manera al chip de un posible corto circuito en alguna
parte del sistema al cual integra, además establecemos una reinicialización del mismo
únicamente cuando Vdd haya superado los parámetros establecidos. Este tipo de
reinicialización puede ser habilitada a través del BIT BOREN. Y ajustados sus
lumbrales con los bits BORV1 y BORV0. Dependiendo de los bits en los que hayan
sido configurados se establece el umbral mínimos en el cual se activa BOR, si Vdd es
menor a este voltaje por un tiempo mínimo de 200 µs, se resetea el chip y permanece de
esta manera hasta que sea reestablecido.
1.5.4. Puertos
El PIC18F452 posee 5 puertos, en los que su pines de entrada/salida son multiplexados
con una función alternativa de los periféricos del dispositivo. En general, cuando un
periférico está habilitado, ese pin no debe ser usado como un pin de entrada o salida de
propósito general.
Cada puerto tiene tres registros para su operación. Estos registros son:
- TRIS, que es el registro de direccionamiento
- PORT, en el cuál lee los niveles en los pines del dispositivo
- LAT, registro de salida del Latch, el cual es útil para leer-modificar o operaciones
en el valor que los pines de I/O están manejando.
A continuación podemos ver los diferentes puertos que caracterizan al PIC18F452, las
funciones de sus pines y los registros asociados a cada uno:
Funciones y Registros Asociados del Puerto A:
Figura 58 Funciones de cada Pin en el Puerto A
Fuente: Microchip, PORTA Functions, 2006
Figura 59 Registros Asociados al Puerto A
Fuente: Microchip, Summary of Registers Associated with PORTA, 2006
Funciones y Registros Asociados del Puerto B:
Figura 60 Funciones de cada Pin en el Puerto B
Fuente: Microchip, PORTB Functions, 2006
Figura 61 Registros Asociados con el Puerto B
Fuente: Microchip, Summary of Registers Associated with PORTB, 2006
Funciones y Registros Asociados del Puerto C:
Figura 62 Funciones de cada Pin en el Puerto C
Fuente: Microchip, PORTC Functions, 2006
Figura 63 Registros Asociados con el Puerto C
Fuente: Microchip, Summary of Registers Associated with PORTB, 2006
Funciones y Registros Asociados del Puerto D:
Figura 64 Funciones de cada Pin en el Puerto D
Fuente: Microchip, PORTD Functions, 2006
Figura 65 Registros Asociados con el Puerto D
Fuente: Microchip, Summary of Registers Associated with PORTD, 2006
Funciones y Registros Asociados del Puerto E:
Figura 66 Funciones de cada Pin en el Puerto E
Fuente: Microchip, PORTE Functions, 2006
Figura 67 Registros Asociados con el Puerto E
Fuente: Microchip, Summary of Registers Associated with PORTE, 2006
1.5.5. Conversión Analógica-Digital
La conversión AD del microcontrolador PIC18F452 se la realiza a través de 8 entradas.
El módulo de conversión AD es controlado por las definiciones de los registros ACON0
y ADCON1. La conversión A/D permite transformar la señal de entrada analógica en un
número digital correspondiente de 10-BIT.
El módulo A/D tiene 4 registros en total:
- Resultado Alto de la conversión A/D (ADRESH)
- Resultado Bajo de la conversión A/D (ADRESL)r
- Registro de Control 0 (ADCON0)
- Registro de Control 1 (ADCON1)
El registro ADCON0 controla la operación del módulo A/D y el registro ADCON1
configura las funciones de los pines del puerto. A continuación podemos apreciar las
diferentes opciones y funciones de cada registro:
Registro ADCON1
Figura 68 Registro ADCON1
Fuente: Microchip, extracto de PIC18F452 Data Sheet, 2006
La salida de la muestra y retención es la entrada en el convertidor, el cual genera el
resultado vía aproximaciones sucesivas. Cada puerto asociado con el convertido A/D
puede ser configurado con una entrada analógica (RA3 puede ser también una
referencia de voltaje) o como una entrada/salida digital.
Los registros ADRESH y ADRESL contienen el resultado de la conversión A/D.
Cuando la conversión está completa, el resultado es cargado en los registros
ADRESH/ADRESL, el BIT GO/DONE (ADCON0 -2- ) es limpiado, y el BIT de la
bandera de interrupción, ADIF es encendido.
Figura 69 Diagrama de bloques del convertidor A/D
Fuente: Microchip, A/D Block Diagram, 2006
El valor que está en los registros ADRESH/ADRESL no es modificado por una reseteo
al encendido. Los registros ADRESH/ADRESL contendrán datos desconocidos después
de una reinicialización al encender el chip.
Después de que el módulo haya sido configurado como deseamos, el canal seleccionado
debe adquirido antes que la conversión se iniciada. Las entradas analógicas deben tener
su respectivo TRIS seleccionado como una entrada. Después que el tiempo de
adquisición haya pasado, la conversión A/D puede ser iniciada. Se deben seguir los
siguientes pasos para realizar una conversión:
1. Configurar el modulo A/D:
- Configurar los pines analógicos, el voltaje de referencia y la entrada/salida
digital (ADCON1)
- Seleccionar el canal de entrada de A/D (ADCON0)
- Seleccionar el reloj de conversión A/D (ADCON0)
- Encender el módulo A/D (ADCON0)
2. Configurar la interrupción de A/D (si se desea)
- Limpiar el BIT ADIF
- Ajustar ADIE
- Encender el PEIE
3. Esperar el tiempo de adquisición requerido
4. Iniciar la conversión
- Encender el bit GO/DONE (ADCON0)
5. Esperar que la conversión se complete, ya sea,
- Esperando que el BIT de GO/DONE sea limpiado (si las interrupciones no están
habilitadas) o
- Esperando por la interrupción de A/D
6. Leer los registros de resultados A/D (ADRESH/ADRESL); limpiar el BIT ADIF si
es necesario
7. Para la siguiente conversión, ir al paso 1 o paso 2 como sea necesario. El tiempo de
conversión por BIT es definido como TAD. Un tiempo de adquisición de 2 TAD es
requerido para iniciar la próxima conversión.
El tiempo de conversión por BIT es definido como TAD. La conversión A/D requiere 12
TAD por cada conversión de 10-BIT. La fuente del reloj de conversión A/D es elegible
por software. Las siete opciones siguientes son posibles:
• 2 TOSC
• 4 TOSC
• 8 TOSC
• 16 TOSC
• 32 TOSC
• 64 TOSC
• Módulo Interno A/D oscilador RC (2-6 μs)
Para un correcta conversión, el reloj TAD debe ser seleccionado de tal manera que
asegure un mínimo TAD de 1.6 µs.
Figura 70 Tabla de TAD vs. Frecuencia de Operación
Fuente: Microchip, TAD vs. Device Operating Frecuencies, 2006
1.5.6. Set de Instrucciones
Figura 71 Tabla de descripción de campos “Opcode”4
Fuente: Microchip, Table 20-1: OPCODE Field Descriptions, 2006
4 OPCODE hacer referencia a “Operational Code” -Código Operacional-
Figura 72 Set de Instrucciones para el PIC18F452
Fuente: Microchip, Table 20-2: PIC18FXXX Instruction Set, 2006
Figura 73 Set de Instrucciones para el PIC18F452 (continuación)
Fuente: Microchip, Table 20-2: PIC18FXXX Instruction Set (continued), 2006
Figura 74 Set de Instrucciones para el PIC18F452 (continuación)
Fuente: Microchip, Table 20-2: PIC18FXXX Instruction Set (continued), 2006
1.6. SISTEMA OPERATIVO MIDI (MIOS)
El sistema operativo MIDI, ha sido desarrollado para los requerimientos de aplicaciones
flexibles de controladores MIDI. En diferencia a las soluciones comerciales dedicadas
de hoy, MIOS sigue el concepto de un sistema de computo abierto como fundamento
para la idea del intercambio y las adaptaciones personales. Existen diferentes
aplicaciones que varían según el diseño del panel, elementos de control o flujo de
trabajo preferido, la mayoría de estas aplicaciones son basadas en diseños
preestablecidos que por ende están limitados a las características proporcionadas del
firmware. Con MIOS tales controladores pueden ser realzados para dispositivos de
multipropósito y con código intercambiable, totalmente personalizable para la
aplicación anfitriona aproximada, sintetizador o similares “Dispositivos MIDI”.
1.6.1. Programación Básica En C
Si bien la aplicación implementada para el proyecto utiliza código ensamblador en su
mayoría, gracias a la cantidad de aplicaciones y librerías MIOS incluidas en el código,
el uso del lenguaje ensamblador no muestra mayor dificultad. Por lo que funciones en
lenguaje C no fueron utilizadas en su mayoría.
Las principales funciones utilizadas de este lenguaje fueron:
a) #include
La directiva #include hace que se incluya una copia de un archivo especificado en lugar
de la directiva. Las dos formas de la directiva #include son:
#include <nombrearchivo>
#include “nombrearchivo”
La diferencia entre estas dos formas es la ubicación en la que el preprocesador busca el
archivo a incluir. Si el nombre del archivo está encerrado entre paréntesis angulares (< y
>), que se utilizan para archivos de encabezado de la biblioteca estándar, el procesador
busca el archivo especificado de una manera dependiente de la implementación, por lo
general mediante directorios previamente designados. Si el nombre del archivo se
encierra entre comillas el procesador busca primero en el mismo directorio en el que se
va a compilar el archivo y después en la misma manera dependiente de la
implementación.
Esta directiva también se utiliza con programas que consisten en varios archivos fuente
que se van a compilar en conjunto. A menudo se crea e incluye en el archivo de
encabezado que contiene declaraciones y definiciones comunes para los archivos de
programa separados.
Ejemplo:
#include <mios.h>
Copia el archivo de toda la estructura de MIOS en el código de la aplicación que
estemos desarrollando.
b) #if, #else y #endif
Estas operaciones de compilación condicional que permite al programador controlar la
ejecución de las directivas de preprocesador y la compilación del código de programa.
Cada una de las directivas condicionales del preprocesador evalúa una expresión entera
constante que determina si el código se compila o no. Siempre toda función #if
termina con #endif. Son muy similares a las operaciones condicionales estándar if,
else y endif.
La estructura de selección if realiza una acción indicada solamente cuando la condición
es verdadera; de lo contrario, se evita dicha acción. La estructura de selección permite
al programador especificar una acción a realizar cuando la condición es verdadera, y
una acción diferente a realizar cuando la acción es falsa.
Ejemplo:
if (calificación >= 60)
cout << “Aprobado”;
else
cout << “Reprobado”;
Este código simplemente Aprobado si la calificación del estudiante es mayor o igual
que 60, pero imprime Reprobado si la calificación del estudiante es menor que 60.
1.6.2. Funciones Propias
Las principales funciones propias del MIOS5, que han sido utilizadas en la aplicación
específica son:
5 Klose, Thorsten, “MIOS Functions Reference (ASM Version)”, 2009-01-01, http://www.ucapps.de/
MIOS_AIN_NumberSet Descripción: Ajusta el numero de pines AIN (analogic inputs) disponibles. Si el
número es > 64, el valor será forzado a 64
Entrada: Número de entradas analógicas WREG
Salida: –
Usa: BSR (registro selector de banco)
MIOS_AIN_Muxed
Descripción: Habilita el modo de multiplexación para que puedan ser conectados y
multiplexados hasta 64 potenciómetros a través del modulo AIN.
Entrada: –
Salida: –
Usa: BSR (registro selector de banco)
MIOS_AIN_DeadbandSet
Descripción: Ajusta la diferencia entre el ultimo y el actual valor del
potenciómetro, el cuál tiene que ser alcanzado para disparar la función
“NotifyChange” (Notificación de Cambio).
Entrada: Valor de ajuste in WREG (registro en uso – acumulador)
Salida: –
Usa: BSR (registro selector de banco)
MIOS_SRIO_NumberSet
Descripción: Ajusta el número de registros SR (shift registers) disponibles, si es >
16, el valor es forzado a 16.
Entrada: Número de SRs en WREG
Salida: –
Usa: BSR (registro selector de banco)
MIOS_SRIO_UpdateFrqSet
Descripción: Ajusta la frecuencia de actualización de los registros SR.
Entrada: Frecuencia de actualización (unidad: milisegundos) en WREG
Salida: –
Usa: BSR (registro selector de banco)
MIOS_AIN_UnMuxed
Descripción: Deshabilita el modo de multiplexación, 8 potenciómetros pueden ser
conectados directamente a pines de las entradas analógicas en el PIC.
Entrada: –
Salida: –
Usa: BSR (registro selector de banco)
MIOS_LCD_PrintMessage
Descripción: Imprime un mensaje por aproximadamente 2 segundos. El flujo
normal del programa no será interrumpido durante este tiempo, simplemente solo la
rutina "DISPLAY_Tick" no será llamada. Después del mensaje, "DISPLAY_Init"
será llamado antes del siguiente "DISPLAY_Tick"
Entrada: Apuntador a la cadena en TBLPTR[LH]. Primera palabra de la cadena
debe contener el largo y la posición del LCD.
Salida: Algunos caracteres en el LCD por 2 segundos
Usa: BSR
MIOS_SRIO_DebounceSet
Descripción: Ajusta la recarga del contador de rebote para los DIN (módulo de
entradas digitales) que no son asignados a los codificadores rotativos para eliminar
los rebotes de botones de baja calidad.
Entrada: Valor de recarga del contador de rebote en WREG
Salida: –
Usa: BSR (registro selector de banco)
MIOS_SRIO_TS_SensitivitySet
Descripción: Ajusta la sensibilidad del sensor táctil. Si es igual a 0x00 deshabilita
el TS (sensor táctil) de tal manera que el PIN RD.4 (J14 del módulo principal) ya
no sea controlado por MIOS y de ahí en adelante queda libre para otros propósitos.
Entrada: Valor de sensibilidad en WREG
Salida: –
Usa: BSR (registro selector de banco)
MIOS_TIMER_Init
Descripción: Inicializa el temporizado el cual llama a la función USER_Timer
periódicamente y la arranca. La resolución del temporizador es de 100nS con un
Prescaler 1:1, 200nS con 1:2, 400nS con 1:4, 800nS con 1:8. El período (número de
señales de reloj) está especificado como un valor de 16.
Entrada: Valor del prescaler en WREG:
0x00: 1:1
0x01: 1:2
0x02: 1:4
0x03: 1:8
número de flancos (byte-inferior) en MIOS_PARAMETER1 (registro MIOS para
funciones especiales)
número de flancos (byte-superior) en MIOS_PARAMETER2 (registro MIOS para
funciones especiales)
Salida: –
Usa: BSR (registro selector de banco)
USER_Timer
Descripción: Esta función periódicamente es llamada por MIOS. La frecuencia
tiene que ser inicializada por con MIOS_Timer_Set. Note que esta es una rutina de
interrupción. Use FSR2 en reemplazo de FSR0 y IRQ_TMPx en reemplazo de
TMPx – y crear una rutina lo más rápida posible.
Entrada: –
Salida: –
ISR: Sí
MIOS_MIDI_DeviceIDGet
Descripción: Retorna la identificación del dispositivo MIDI
Entrada: -
Salida: Número del dispositivo en WREG y MIOS_PARAMETER1 (0x00-0x7f)
Usa: BSR
MIOS_EEPROM_Read
Descripción: Lee un byte desde la EEPROM.
Entrada: Dirección en EEADR (0x00-0xff) EEADRH (0-3, PIC18F4620
únicamente)
Salida: Contenido de la EEPROM en WREG. EEADR será incrementado.
EEADRH (PIC18F4620) no va a ser incrementado en EEADR rebasamiento.
Usa: BSR, EEADR, EEDATA, EECON1, EECON2
USER_MPROC_DebugTrigger
Descripción: Esta función es llamada por MIOS cuando un comando de depuración
ha sido recibido vía SysEx.
Entrada: WREG, MIOS_PARAMETER1, MIOS_PARAMETER2,
MIOS_PARAMETER3 como se especifica en el comando de depuración
Salida: Retorna valores WREG, MIOS_PARAMETER1, MIOS_PARAMETER2,
MIOS_PARAMETER3
ISR: No
USER_MPROC_NotifyReceivedByte
Descripción: Esta función es llamada por MIOS cuando un byte MIDI ha sido
recibido.
Entrada: byte MIDI recibido en WREG y MIOS_PARAMETER1
Salida: -
ISR: no
USER_MIDI_NotifyTx
Descripción: Esta función es llamada por MIOS antes de transmitir un byte MIDI .
Puede ser usado para monitorear la actividad de transmisión o para hacer cualquier
otra acción (por ejemplo cambiar un pin para salidas MIDI multiplexadas) antes que
el byte sea enviado. Note que este es una rutina de servicio de interrupción
Entrada: byte MIDI transmitido en WREG
Salida: -
ISR: yes
USER_DISPLAY_Init
Descripción: Esta función es llamada por MIOS cuando el contenido del display
debe ser inicializado. Ese es el caso durante el arranque y después de un mensaje
que has sido impreso en pantalla.
Entrada: -
Salida: -
ISR: no
USER_DISPLAY_Tick
Descripción: Esta función es llamada por MIOS en el loop principal cuando no se
ha mostrado un mensaje temporal en
Entrada: -
Salida: -
ISR: no
USER_MPROC_NotifyReceivedEvent
Descripción: Esta función es llamada por MIOS cuando un evento completo MIDI
ha sido recibido.
Entrada: Primer byte de evento MIDI en MIOS_PARAMETER1, segundo byte de
evento MIDI en MIOS_PARAMETER2, tercer byte de evento MIDI en
MIOS_PARAMETER3
Salida: -
ISR: No
USER_MPROC_NotifyFoundEvent
Descripción: Esta función es llamada por MIOS cuando un evento completo MIDI
ha sido recibido, el cual ha sido especificado en la tabla CONFIG_MIDI_IN
Entrada: Primer byte de evento MIDI en MIOS_PARAMETER1, segundo byte de
evento MIDI en MIOS_PARAMETER2, tercer byte de evento MIDI en
MIOS_PARAMETER3
Salida: -
ISR: No
USER_MPROC_NotifyTimeout
Descripción: Esta función es llamada por MIOS cuando un evento MIDI no ha sido
completamente recibido dentro de 2 segundos.
Entrada: -
Salida: -
ISR: No
USER_DIN_NotifyToggle
Descripción: Esta función es llamada por MIOS cuando un botón ha sido alternado.
Entrada: Número del botón en WREG y MIOS_PARAMETER1. Valor del botón
en MIOS_PARAMETER2:
- 1 si el botón ha sido soltado (=5V)
- 0 si el botón ha sido presionado (=0V)
Salida: -
ISR: no
USER_ENC_NotifyChange
Descripción: Esta función es llamada por MIOS cuando un encoger (codificador)
ha sido movido.
Entrada: Número de Encoder en WREG y MIOS_PARAMETER1
valor con signo del incrementador en MIOS_PARAMETER2:
- es positivo cuando el codificador has sido girado en torno a las agujas de reloj
- negativo cuando el encoger ha sido girado al contrario.
Salida: -
ISR: no
1.6.3. Implementación Sysex
La implementación de los mensajes Sysex6 para nuestra aplicación en especial son:
a) F0 00 00 7E 43 <d>3 <b> F7
Solicita un bloque de 256 bytes
<d> = número del dispositivo (0-7)
<b> = número de bloque (00-07)
b) F0 00 00 7E 43 <d>4 <b> <256 bytes> <checksum> F7
Escribe un bloque de 256 bytes
<d> = número del dispositivo (0-7)
<b> = número de bloque (00-07)
<256 bytes> = el bloque de datos
<checksum> = el checksum7 de <b> y <256 bytes>
6 KLOSE, Thorsten, MIDIbox64 SysEx Implementation, Version 73,
midibox64_sysex_implementation.txt, 2008. 7 “Checksum” entiéndase por checksum, un dígito que representa la suma de los dígitos en una instancia
de datos digitales; usados para revisar ya sea si los errores ocurrieron en la transmisión o en el
almacenamiento
USER_SR_Service_Prepare
Descripción: Esta función es llamada por MIOS antes que el shift register sea
cargado. Note que esta es una rutina de servicio de interrupción, use FSR2 en vez de
FSR0 e IRQ_TMPx en vez de TMPx.
Entrada: -
Salida: -
ISR: no
USER_AIN_NotifyChange
Descripción: Esta función es llamada por MIOS cuando un potenciómetro ha sido
movido.
Entrada: Número del Potenciómetro en WREG y MIOS_PARAMETER1
Valor de LSB en MIOS_PARAMETER2. Valor MSB en MIOS_PARAMETER3
Salida: -
ISR: no
c) F0 00 00 7E 43 <d>5 F7
Solicita todos los 8 bloques
<d> = número del dispositivo (0-7)
d) F0 00 00 7E 43 <d>6 <p> F7
Solicita un Patch (programa) (Snapshot – Instantánea, de la configuración)
<d> = número del dispositivo (0-7)
<p> = número del programa (0-127)
e) F0 00 00 7E 43 <d>7 <p> <96 bytes> <checksum> F7
Graba un programa o patch (Snapshot)
<d> = número del dispositivo (0-7)
<p> = número del programa (0-127)
<checksum> = el checksum de <96 bytes>
f) F0 00 00 7E 43 <d>8 0n F7
Solicitar un Banco, n = 0 a 15
Envía un dato de Acknowledge (admisión) cuando el Banco ha sido cambiado:
F0 00 00 7E 43 <d>F 0n F7
O un Disacknowledge (desacuerdo) si el BankStick8 no está conectado:
F0 00 00 7E 43 <d>F 7F F7
g) F0 00 00 7E 43 <d>9 00 <pot> <value> F7
Control remoto de un Potenciómetro
<d> = número del dispositivo (0-7)
<pot> = número del potenciómetro (0-63)
<value> = valor del potenciómetro (0-127)
h) F0 00 00 7E 43 <d>9 01 <button> <value> F7
Control remoto de un botón
<d> = número del dispositivo (0-7)
8 “Bankstick” es un banco de programa almacenado en memoria adicional al microcontrolador
<button> = número del botón (0-63)
<value> = valor del botón (0=presionado, 1=soltado)
i) F0 00 00 7E 43 <d>9 02 <sfbn> <sfbp> <value> F7
Control remoto de un botón especial
<d> = número del dispositivo (0-7)
<sfbn> = número del botón especial (0-127)
<sfbp> = parámetro del botón especial (0-127)
<value> = valor del botón (0=presionado, 1=soltado)
j) F0 00 00 7E 43 <d>F F7
Ping (simplemente envía la misma cadena Sysex)
.
1.6.4. Uso De IO -Input / Output- (Entrada / Salida)
El sistema operativo consta de un tipo de “kernel” ( núcleo) que dota al usuario de
atajos a eventos de hardware y software, y que ofrece funciones para una interacción
simple entre los módulos de la Plataforma de Hardware MIDIbox . Un módulo Core,
con un PIC18F452, puede manejar :
hasta 128 entradas digitales
hasta 128 salidas digitales
hasta 64 entradas analógicas
LCD matriciales gráficas y tipográficas.
BankSticks (IIC EEPROMs)
Un MIDI In, un MIDI Out, opcionalmente como interfaz to-COM
Han sido incluidos numerosos controladores que manejan las siguientes tareas de
control desde en segundo plano:
Procesamiento de MIDI IO
Cargador “Bootstrap”
Conversión analógica de hasta 64 pots, faders u otras fuentes analógicas con
resolución de 10 bits.
Manejo de motor para hasta 8 motorfaders con resolución de 10 bits.
Manejo de hasta 64 detenido/no-detenido codificadores rotativos
Manejo de hasta 128 botones, sensores táctiles o dispositivos de entrada similares.
Manejo de hasta 128 LEDs, relés, conversores analógico-digitales o dispositivos de
salida similares. En el modo "multiplexado", se puede controlar un número casi
ilimitado de LEDS, anillos de LED y números con LEDs.
Lectura/Escritura desde/hacia EEPROM, Flash o BankStick
PIC18F cores enlazables .
El sistema operativo ha sido escrito completamente en lenguaje ensamblador y ha sido
optimizado para mayor velocidad .Actualmente MIOS asigna 8k de memoria de
programa ( se reservan 4k para futuras extensiones) y 640 bytes de RAM. La
arquitectura de sistema es bastante estable, las funciones adicionales que carga la CPU
no están planeadas. El manejador de SRIO (Shift Registers Input – Output) requiere
solo 75 uS para captar los datos de128 pines digitales de entrada y escribir datos en 128
pines de salida. 16 codificadores rotatorios (rotary encoders) se manejan dentro de los
100 uS. Las entradas analógicas son escaneadas en segundo plano, con un resultado de
conversión cada 200 uS. Hasta 256 eventos MIDI pueden accionar funciones
dedicadas, el procesamiento de la lista de eventos requiere cerca de 300 uS. Los eventos
MIDI también pueden ser procesados por una rutina de usuario para parseado SysEx o
trabajos similares. Un temporizador de usuario permite realizar código activado en el
tiempo. Se han hecho numerosas mediciones para permitir una interacción unificada
con MIOS: Todas las variables de tiempo de ejecución han sido localizadas en el área
BANKED de la RAM y no asigna la página ACCESS. Los parámetros de entrada
(Input) y salida (output) de las funciones y "atajos" se transfieren mediante WREG, tres
registros adicionales (MIOS_PARAMETER[123]) y el indicador FSR1.
TBLPTR[LH], TABLAT, PROD[LH], FSR0 y FSR2 son guardadas y se restaurarán si
una función MIOS hace uso temporal de estos SFRs.
1.6.5. Plataforma De Procesamiento MIDI
Figura 75 Plataforma de Procesamiento MIDI, MIOS Studio
Fuente: KING Adam, MIOS Studio, 2005-06-14, http://miosstudio.midibox.org/
La plataforma de procesamiento MIDI, se conoce también con el nombre de MIOS
Studio. MIOS Studio fue iniciado por Jason Williams in Noviembre 2003, y después
retomado por Adam King. Esta aplicación es de mucha utilidad al momento de revisar
las comunicaciones entre nuestro dispositivo MIDI y el computador. Además,
proporciona herramientas de simulación y la disponibilidad de cargar los archivos Sysex
al hardware del controlador MIDI para definir nuestra aplicación específica.
Debemos mencionar que adicionalmente a permitirnos la depuración de MIOS, tiene
también funciones de propósito general como ruteo de puerto MIDI, Monitoreo,
Filtración y un teclado virtual.
1.7. ELECTRÓNICA DIGITAL
1.7.1. Optoacopladores
Un optoacoplador, también llamado optoaislador o aislador acoplado
ópticamente, es un dispositivo de emisión y recepción de luz que funciona
como un interruptor excitado mediante la luz. La mencionada luz es emitida
por un diodo LED que satura un componente optoelectrónico, normalmente en
forma de fototransistor. De este modo se combinan en un solo dispositivo
semiconductor, un fotoemisor y un fotorreceptor cuya conexión entre ambos
es óptica. […]. Se suelen utilizar como medio de protección para dispositivos
muy sensibles.
Figura 76 Plataforma de Procesamiento MIDI, MIOS Studio
Fuente: Colaboradores de Wikipedia, Optoacoplador, 26 de enero del 2009,
http://es.wikipedia.org/w/index.php?title=Optoacoplador&oldid=23552960
La Figura 76 […] muestra un optoacoplador 4N35 formado por un LED y un
fototransistor. La tensión de la fuente de la izquierda y la resistencia en serie
establecen una corriente en el LED emisor cuando se cierra el interruptor S1.
Si dicha corriente proporciona un nivel de luz adecuado, al incidir sobre el
fototransistor lo saturará, generando una corriente en R2. De este modo la
tensión de salida será igual a cero con S1 cerrado y a V2 con S1 abierto.
Si la tensión de entrada varía, la cantidad de luz también lo hará, lo que
significa que la tensión de salida cambia de acuerdo con la tensión de entrada.
De este modo el dispositivo puede acoplar una señal de entrada con el circuito
de salida.
La ventaja fundamental de un optoacoplador es el aislamiento eléctrico entre
los circuitos de entrada y salida. Mediante el optoacoplador, el único contacto
entre ambos circuitos es un haz de luz. Esto se traduce en una resistencia de
aislamiento entre los dos circuitos del orden de miles de MΩ. Estos
aislamientos son útiles en aplicaciones de alta tensión en las que los
potenciales de los dos circuitos pueden diferir en varios miles de voltios.9
El optoacoplador utilizado en el proyecto fue el 6N138, que tiene el siguiente esquema
interno:
Figura 77 Diagrama Funcional para el Optoacoplador 6N138
Fuente: Hewlett-Packard, Low Input Current, High Gain Optocouplers - Technical Data, 1998
Sin embargo para nuestra aplicación en específico y para cumplir los requerimientos
eléctricos que establece el estándar MIDI, fue conectado de la siguiente manera:
Figura 78 Esquema de conexión eléctrica para el 6N138 para el puerto de entrada MIDI
Fuente: Klose Thorsten, MIDIbox Hardware Platform – MBHP_Core_V3, 2006-06-10
9 Colaboradores de Wikipedia, Optoacoplador, 26 de enero del 2009,
http://es.wikipedia.org/w/index.php?title=Optoacoplador&oldid=23552960
Este esquema lo podremos apreciar completamente, más adelante cuando veamos el
diseño de hardware. Nótese el diodo en la entrada 2 y 3, el cual invierte la polaridad de
funcionamiento.
A continuación el detalle de las condiciones recomendadas de operación:
Figura 79 Condiciones Recomendadas de Operación
Fuente: Hewlett-Packard, Low Input Current, High Gain Optocouplers - Technical Data, 1998
Especificaciones Eléctricas:
Figura 80 Condiciones Recomendadas de Operación
Fuente: Hewlett-Packard, Low Input Current, High Gain Optocouplers - Technical Data, 1998
1.7.2. LCD
Una pantalla de cristal líquido o LCD (acrónimo del inglés Liquid Crystal Display) es
una pantalla delgada y plana formada por un número de píxeles en color o monocromos
colocados delante de una fuente de luz o reflectora. A menudo se utiliza en dispositivos
electrónicos de pilas, ya que utiliza cantidades muy pequeñas de energía eléctrica.
Para la realización del proyecto se utilizó un módulo LCD estándar de 16X2 caracteres.
Por lo que fue necesario conocer sus parámetros más relevantes tanto eléctricos como
mecánicos, además de los comandos que utiliza para su manejo.
Características Eléctricas:
Figura 81 Características Eléctricas para un Módulo LCD 16x2
Fuente: Shenzhen Techstar Electronics, TS1620G-1 LCD Module Specification, Fecha no disponible
Designación de Pines:
Figura 82 Designación de Pines
Fuente: Shenzhen Techstar Electronics, TS1620G-1 LCD Module Specification, Fecha no disponible
Diagrama de bloques:
Figura 83 Diagrama de bloques
Fuente: Shenzhen Techstar Electronics, TS1620G-1 LCD Module Specification, Fecha no disponible
Tiempos de Acceso:
Escritura:
Figura 84 Tiempos de Acceso para Escritura
Fuente: Shenzhen Techstar Electronics, TS1620G-1 LCD Module Specification, Fecha no disponible
Lectura:
Figura 85 Tiempos de Acceso para Lectura
Fuente: Shenzhen Techstar Electronics, TS1620G-1 LCD Module Specification, Fecha no disponible
Comandos:
Figura 86 Comandos para manejar el LCD
Fuente: Shenzhen Techstar Electronics, TS1620G-1 LCD Module Specification, Fecha no disponible
Dimensiones:
Figura 87 Dimensiones del módulo LCD
Fuente: Shenzhen Techstar Electronics, TS1620G-1 LCD Module Specification, Fecha no disponible
1.7.3. Multiplexación
El concepto de multiplexación fue necesario aplicar en el proyecto, debido a la cantidad
de señales analógicas y la capacidad de entradas en el microprocesador.
Básicamente con tan solo 8 entradas analógicas del PIC se pueden controlar hasta 64
potenciómetros (en el módulo principal), todo gracias al concepto de multiplexación y
al diseño del MIOS.
Un multiplexor selecciona una de sus entradas presentes y la transmite a la salida
principal para su posterior tratamiento. En acorde a una señal de reloj y un código
binario que determina cuando y qué entrada seleccionar.
El multiplexador utilizado en el módulo de entradas analógicas del proyecto, es el chip
4051, que es un multiplexador simple de 8 canales provisto de entradas binarias para
control y de una entrada para inhibición. Las tres señales binarias seleccionan 1 de los 8
canales para ser encendido y conectar una de las 8 entradas a la salida.
Distribución de Pines:
Figura 88 Pines del Multiplexor 4051
Fuente: Texas Instruments, CD 4051B, CD4052B, CD4053B Data Sheet, 2005
Diagrama de bloques:
Figura 89 Diagrama de Bloques Funcional para el Multiplexor 4051
Fuente: Texas Instruments, CD 4051B, CD4052B, CD4053B Data Sheet, 2005
Tablas de Verdad:
Figura 90 Tabla de Verdad para el Multiplexor 4051
Fuente: Texas Instruments, CD 4051B, CD4052B, CD4053B Data Sheet, 2005
Principales Características Eléctricas:
Figura 91 Principales características eléctricas para el Multiplexor 4051
Fuente: Texas Instruments, CD 4051B, CD4052B, CD4053B Data Sheet, 2005
Figura 92 Principales características eléctricas para el Multiplexor 4051 (continua)
Fuente: Texas Instruments, CD 4051B, CD4052B, CD4053B Data Sheet, 2005
Valores máximos absolutos:
Fuente de Voltaje (V+ a V-)
Voltajes referenciados al terminal VSS . . . . . . . -0.5 V a 20 V
Rango de Voltaje de Entrada Digital . . . . . . . . -0.5 V a VDD + 0.5 V
Corriente de Entrada DC, en cualquier entrada . . . . . . . . . . . ±10 mA
1.7.4. Registros IO (Input – Output)
Entender brevemente el uso de los registro de entrada y salida, nos permitió el manejo
de los botones y los LEDs. La plataforma MIDIBOX, en la que está basada el desarrollo
de los controladores con MIOS, utiliza tanto para los módulos de entradas como para las
salidas este tipo de registros.
A continuación revisaremos sus principales características:
1.7.4.1. REGISTRO 74HC165
El 74HC165 es un registro de desplazamiento (shift register) de 8 BIT para entradas
paralelas y 1 salida serial.
Características principales:
- Carga paralela de 8 BIT asincrónica
- Entrada serial sincrónica
- Capacidad de salida: Estándar
- Categoría del ICC: MSI
Los 774HC/HCT165 son registros de desplazamiento de 8-BIT carga-paralela o
entrada-serial, con salidas seriales complementarias (Q7# y Q7) disponibles de la última
etapa. Cuando la entrada de carga paralela (PL) es baja, los datos paralelos desde la
entrada D0 a D7 son cargadas en el registro asincrónicamente.
Cuando PL es alto, los datos ingresan al registro serialmente en la entrada DS y desplaza
un lugar a la derecha (Q0 Q1 Q2, etc.) con transición positiva del reloj. Esta
característica permite una expansión del convertidor paralelo a serial al unir la salida de
Q7 a la entrada DS de la etapa consecutiva.
La entrada del reloj es una estructura de compuerta OR la cual permite a una entrada ser
usada como una entrada de habilitación activa en LOW de reloj (CE). La asignación
para las entradas CP y CE son arbitrarias y pueden ser invertidas para conveniencia de
diseño. La transición BAJO-a-ALTO de la entrada CE debe tomar lugar solamente
cuando CO ALTO para una operación predecible. Ya sea CP o CE deben ser ALTOS
antes de la transición BAJO-a-ALTO de PL para prevenir desplazamiento de los datos
cuando PL está activado.
Descripción de pines:
Figura 93 Descripción de Pines para el registro 74HC165
Fuente: Philips, 74HC/HCT165 8 Bit Parallel In/Serial Out Shift Register Data Sheet, 1990
Figura 94 Distribución de los pines en el encapsulado del registro 74HC165
Fuente: Philips, 74HC/HCT165 8 Bit Parallel In/Serial Out Shift Register Data Sheet, 1990
Diagrama Funcional
Figura 95 Diagrama Funcional del registro 74HC165
Fuente: Philips, 74HC/HCT165 8 Bit Parallel In/Serial Out Shift Register Data Sheet, 1990
Tabla de funcionamiento:
Figura 96 Tabla de funcionamiento del registro 74HC165
Fuente: Philips, 74HC/HCT165 8 Bit Parallel In/Serial Out Shift Register Data Sheet, 1990
1.7.4.2. REGISTRO 74HC595
Características Principales:
- Entrada serial de 8 BIT
- Salida paralela o serial de 8 BIT
- Registro de almacenaje con salidas de 3-estados
- Registro de desplazamiento con limpiado directo
- Capacidad de salida:
- Salida paralela, manejador de bus
- Salida serial, estándar
- ICC categoría: MSI
Descripción:
Estos registros son utilizados en el módulo de salida para el manejo de LEDs en el
controlador MIDI. Cada registro está provisto de 8 señales digitales, las cuales son
actualizadas con la señal de habilitación del latch, RCLK y son desplazadas con la señal
de reloj SCLK. La ventaja de usar tales registros es que pueden conectados en cascada.
El registro de desplazamiento y almacenaje tienen relojes separados. Los datos son
desplazados en las transiciones positivas del la entrada SHCP. Los datos en cada
registro son transferidos al registro de almacenamiento en una transición positiva de la
entrada STCP. Si ambos relojes son conectados juntos, el registro de desplazamiento
siempre estará un pulso de reloj adelante del registro de almacenamiento.
El registro desplazamiento tiene una entrada serial (DS) y una salida serial estándar
(Q7’) para conexión en cascada. Esta también provisto con un reset asincrónico (activo
a BAJO) para todas las 8 etapas de los registros de desplazamiento. El registro de
almacenaje tiene 8 salidas paralelas manejadas de 3 estados. Los datos en el registro de
almacenamiento aparecen en las salidas cuando la entrada (OE) sea BAJA.
Pines:
Figura 97 Descripción de Pines para el registro 74HC595
Fuente: Philips, 74HC/HCT595 8-Bit Serial-In/Serial Or Parallel-Out Shift Register With Output
Latches; 3-State, 4 de Junio del 1998
Figura 98 Distribución de Pines en el encapsulado para el registro 74HC595
Fuente: Philips, 74HC/HCT595 8-Bit Serial-In/Serial Or Parallel-Out Shift Register With Output
Latches; 3-State, 4 de Junio del 1998
Diagrama Funcional:
Figura 99 Diagrama funcional para el registro 74HC595
Fuente: Philips, 74HC/HCT595 8-Bit Serial-In/Serial Or Parallel-Out Shift Register With Output
Latches; 3-State, 4 de Junio del 1998
Tabla de funcionamiento:
Figura 100 Tabla de funcionamiento para el registro 74HC595
Fuente: Philips, 74HC/HCT595 8-Bit Serial-In/Serial Or Parallel-Out Shift Register With Output
Latches; 3-State, 4 de Junio de 1998
1.8. ELECTRÓNICA ANALÓGICA
En el entorno referente a estudios de electrónica analógica, los temas que de pronto
según nuestro criterio merecían una breve revisión, era sobre lo que respecta a las
fuentes de voltaje, especialmente en el aspecto de rectificación. Ya que los módulos
utilizados se alimentan básicamente de DC.
1.8.1. Fuentes De Voltaje
La fuente de voltaje especificada para nuestro proyecto, es una fuente en la que
prácticamente se omite la etapa inicial de transformador, básicamente por la razón de
que el controlador MIDI está diseñado para ser un dispositivo portátil, utilizado por DJs,
es decir no puede ser pesado ni muy grande. Además, es más factible por facilidad de
uso, utilizar directamente un adaptador de DC disponibles en el mercado, y a un precio
asequible.
Figura 101 Diagrama de bloques de las etapas de una fuente VDC
Fuente: Unicrom.com, Fuentes de Poder, Diagrama de bloques,
http://unicrom.com/Tut_fuentepoder.asp
Por lo antes mencionado, se ha adaptado una etapa de rectificación, filtro y regulación,
en el módulo principal.
Explicaremos rápidamente las diferentes etapas:
Figura 102 Esquema electrónico para una fuente de 5 VDC (utilizada en el proyecto)
Fuente: Klose Thorsten, MIDIbox Hardware Platform – MBHP_Core_V3, 2006-06-10
Segunda etapa: rectificación.
La segunda etapa de nuestra fuente de alimentación es la que queda constituida por la
rectificación, en este punto, la señal inducida al secundario, será nuevamente inducida
pero ahora a una señal directa. La fuente más común, posee una rectificación a base de 4
diodos, por lo que su rectificación será de onda completa y esta conectado en “tipo
puente”. Al alimentar el en esta etapa circuito con un adaptador de CC, se evade el
problema que implicaría una inversión de polaridad, gracias al puente rectificador.
Figura 103 Forma de un Rectificador por puente
Fuente: Won-Top Electronics, B40C800-B500C800 Bridge Rectifier, 2002
Tercera Etapa: Filtro
Esta etapa, tiene como función, “suavizar” o “alisar” o “reducir” a un mínimo la
componente de rizo y elevar el valor promedio de tensión directa. El capacitor de 2200
uF es de un tamaño y capacidad considerable, para eliminar notablemente las
ondulaciones de la anterior etapa, además de eliminar ruidos que puedan ingresar al
circuito.
Cuarta Etapa: Regulador De Voltaje.
En esta etapa final, garantizamos una alimentación estable a nuestro sistema, gracias al
IC 7805 que nos entrega una salida bastante limpia de 5 VDC, con una alimentación
máxima de 10 VDC, para no recalentar el integrado. Junto a este se conectan
capacitores adicionales, como podemos apreciar en la Figura 102, los condensadores
C6, C4 y C3. Estos valores han sido implementados como sugiere el "data sheet" del IC
7805.
1.8.2. Transistores BJT
El transistor bipolar es el más común de los transistores, y como los
diodos, puede ser de germanio o silicio.
Existen dos tipos transistores: el NPN y el PNP, y la dirección del flujo de la
corriente en cada caso, lo indica la flecha que se ve en el gráfico de cada tipo
de transistor.
El transistor es un dispositivo de 3 patillas con los siguientes nombres: base
(B), colector (C) y emisor (E), coincidiendo siempre, el emisor, con la patilla
que tiene la flecha en el gráfico de transistor.
Figura 104 Simbología para los diferentes tipos de transistores BJT
Transistor NPN Transistor PNP
Fuente: Unicrom.com, Transistor Bipolar o BJT,
http://www.unicrom.com/Tut_transistor_bipolar.asp
El transistor bipolar es un amplificador de corriente, esto quiere decir que si
le introducimos una cantidad de corriente por una de sus patillas (base), el
entregará por otra (emisor), una cantidad mayor a ésta, en un factor que se
llama amplificación.
Este factor se llama β (beta) y es un dato propio de cada transistor.
Entonces:
- Ic (corriente que pasa por la patilla colector) es igual a β (factor de
amplificación) por Ib (corriente que pasa por la patilla base).
- Ic = β * Ib
- Ie (corriente que pasa por la patilla emisor) es del mismo valor que Ic, sólo
que, la corriente en un caso entra al transistor y en el otro caso sale de él, o
viceversa.10
Figura 105 Variación de la corriente de Colector, en función del Voltaje Colector – Emisor, al mantener
una corriente de base constante
Fuente: 7
El funcionamiento de este tipo de transistores es bastante conocido por todos, pero vale
la plena explicar el funcionamiento del circuito que utiliza estos transistores en módulo
principal del proyecto.
Figura 106 Esquema electrónico en el que se utiliza un transistor BJT para variar la iluminación de un
diodo LED
10 Unicrom.com, Transistor Bipolar o BJT, http://www.unicrom.com/Tut_transistor_bipolar.asp
Fuente: Klose Thorsten, MIDIbox Hardware Platform – MBHP_Core_V3, 2006-06-10
Al variar el potenciómetro P1, estoy modificando la corriente que llega a la base, por lo
tanto debido a la formula mencionada anteriormente Ic = β * Ib también estoy variando
la corriente que llega al LED del módulo LCD.