Capítulo 5 Reproductor de mensajes basado en el dispositivo ISD 25XX La familia ISD 25XX proporciona servicios de grabación y reproducción de mensajes vocales integrados en un solo circuito integrado. El dispositivo de clase CMOS integra todos los elementos necesarios para la digitalización y posterior reproducción de las señales, para lo cual incorpora el oscilador, preamplificador para micrófono, control automático de ganancia (AGC), filtro “antialiasing“, filtro de reconstrucción, amplificador de audio y una memoria no volátil con una estructura multi-nivel que permite la grabación de varios mensajes. 5.1 Descripción general Existen varias versiones que proporcionan diferentes niveles de calidad y duración dependiendo de la frecuencia de muestreo que emplean. Las diferentes versiones trabajan con frecuencias de muestreo de 8, 6.4, 5.3 y 4 Khz. con una duración respectivamente de 32, 40, 48 y 64 segundos, cubriendo así un amplio abanico de necesidades en cuanto a calidad y duración. Una de las ventajas de la familia ISD 25XX reside en la utilización de una memoria EEPROM capaz de conservar el mensaje durante 100 años sin necesidad de alimentación y permitiendo que pueda ser regrabado del orden de 100.000 veces. Cabe reseñar que el dispositivo puede funcionar de dos formas, en Modo de Dirección y en Modo de Función. En el primer modo la dirección proporcionada por las entradas de dirección marcará el inicio de la grabación o reproducción de los mensajes, mientras que en el segundo modo se han integrado 7 funciones (M0 - M6) que permiten la utilización del dispositivo de una forma sencilla. 5.1.1 La memoria EEPROM de ISD25XX Merece la pena entretenerse en este punto por lo peculiar de esta memoria. El chip de ISD almacena en esta memoria el dato en formato analógico directamente, por lo que se 1 ahorra en el proceso dos conversiones, la A/D al grabar y la D/A al reproducir. El método de grabación es denominado por ISD como “break through” (abrir paso) y permite almacenar cada muestra en una celda en formato analógico. La grabación de cada celda es un proceso en bucle cerrado donde se compara el valor de la muestra con el contenido en la celda de memoria y se van inyectando electrones en la misma hasta que se iguala la tensión de la muestra. El dato almacenado tiene una cuantificación equivalente de 256 niveles (ocho bits). El proceso se basa en la tecnología EEPROM floating gate. Figura 1 – Diagrama de bloques (Tomado del catálogo de ISD). 5.2 Descripción de las señales y del patillaje 5.2.1 Alimentación (VCCA, VCCD, VSSA, VSSD) La tensión de alimentación es de 5 voltios. Para reducir al mínimo el ruido, las partes digital y analógica de los circuitos disponen de entradas de alimentación independientes. 5.2.2 Entrada de corte de corriente (PD - power down) Cuando la señal PD se pone a nivel alto el circuito entra en el modo de muy bajo consumo. Cuando se produce la condición de desbordamiento de la memoria, PD se utiliza para llevar el puntero al inicio de la zona de grabación o reproducción. Además tiene una funcionalidad adicional cuando se trabaja en el Modo de Función M6 (PushButton) que se describirá en la siguiente sección. 2 5.2.3 Entrada para habilitar circuito (CE – chip enable) La entrada CE debe ponerse a nivel bajo para habilitar la operación del circuito. Las direcciones de entrada y la señal de grabación/reproducción (P/R) son capturadas durante el flanco de bajada de la señal. Además tiene una funcionalidad adicional cuando se trabaja en el Modo de Función M6 (Push-Button) que se describirá en la siguiente sección. 5.2.4 Entrada de Reproducción/Grabación playback/record) (P/R – La entrada P/R permite seleccionar entre el modo de reproducción (nivel alto) y el de grabación (nivel bajo). Durante un ciclo de grabación la dirección de comienzo se proporciona a través de las correspondientes entradas y se detiene cuando se pone a nivel alto cualquiera de las señales PD o CE, o cuando se produce un desbordamiento. Cada vez que se termina un ciclo de grabación mediante las señales PD o CE, se pone una marca de fin de mensaje (EOM) en la dirección de memoria donde se finalizó. Durante un ciclo de reproducción se proporciona la dirección de comienzo y la grabación se reproduce de manera continua hasta que se encuentra una marca de fin de mensaje (EOM). El dispositivo puede seguir reproduciendo a continuación de una marca de fin de mensaje (EOM) cuando se encuentra en el Modo de Función. 5.2.5 Señal de fin de mensaje y de funcionamiento (EOM) La salida EOM genera un pulso a nivel bajo de duración TEOM al final de cada mensaje. Cuando el dispositivo se configura en el Modo de Función M6, esta salida se mantiene a nivel alto mientras el dispositivo está grabando o reproduciendo. 5.2.6 Señal de desbordamiento (OVF) Se genera un pulso a nivel bajo cuando se agota el espacio de memoria. La salida OVF sigue a la entrada CE hasta que se reinicia el puntero de memoria con la señal PD. Esta salida puede utilizarse para la conexión de varios dispositivos en cascada. 5.2.7 Entrada de micrófono (MIC) La entrada va conectada a un preamplificador integrado junto con un control automático de ganancia (AGC) que regula la ganancia de éste desde –15 hasta 24 dB. La conexión de un micrófono externo deberá hacerse a través de un condensador serie de desacoplo 3 que, junto con la resistencia interna de 10 K de la entrada, determina la frecuencia de corte inferior. 5.2.8 Entrada de referencia de micrófono (MIC REF) Es la entrada no inversora del preamplificador para la conexión del micrófono y proporciona una cancelación de ruido gracias a su elevado grado de rechazo al modo común. 5.2.9 Entrada del Control Automático de Ganancia (AGC) El control automático de ganancia permite cubrir un amplio margen de niveles de entrada procedentes del micrófono, que van desde un pequeño susurro hasta sonidos muy altos. El tiempo de activación viene determinado por la constante de tiempo que conforma un condensador externo conectado entre AGC y VSSA y la resistencia interna de 5 K. El tiempo de desactivación viene determinado por la constante de tiempo asociada al condensador externo anterior junto con una resistencia externa conectada en paralelo con él. Los valores de 4.7 F y 470 K para el condensador y la resistencia respectivamente dan en la mayoría de los casos un resultado satisfactorio. 5.2.10 Salida analógica (ANA OUT) La salida del conjunto preamplificador – control automático de ganancia se conduce a través de este pin. 5.2.11 Entrada analógica (ANA IN) A través de esta entrada se conduce la señal al chip para su grabación. La señal de entrada debe desacoplarse con un condensador externo, incluso si procede de la salida ANA OUT (caso de un micrófono), debiendo tenerse en cuenta que este condensador junto con la resistencia interna de 3K de la entrada conforma un filtro paso bajo que pudiera recortar la señal. 5.2.12 Entrada de reloj externo (XCLK) La tolerancia del reloj interno es de 5%. En caso de que se requiera una mayor precisión, puede controlarse con una señal de reloj externa cuyo valor dependerá del dispositivo de la familia que estemos utilizando. De este modo deberán usarse los siguientes valores 1024 Khz., 819.2 Khz.,682.7 Khz. y 512 Khz. para las frecuencias de 4 muestreo de 8 Khz., 6.4 Khz., 5.3 Khz. y 4 Khz. que usan los dispositivos ISD 2532, ISD 2540, ISD 2548 e ISD 2564 respectivamente. En caso de no usarse, esta entrada deberá conectarse a masa. 5.2.13 Salidas de altavoz (SP+ y SP-) Todos los dispositivos de esta familia disponen de una salida diferencial para altavoces capaz de proporcionar 50 mW sobre un altavoz con impedancia de 16 si la señal procede de AUX IN o 12.2 mW si procede de la memoria. Nota: Cuando se usan varios dispositivos no se deben conectar en paralelo las salidas de altavoz, ya que podría dañar los dispositivos. Nunca se deben poner a masa las salidas de altavoz. 5.2.14 Entrada auxiliar (AUX IN) La entrada auxiliar permite multiplexar una señal al amplificador de salida y el altavoz cuando las señales CE y P/R están a nivel alto o cuando se produce un desbordamiento durante la reproducción. Esto permite conectar la señal de reproducción al siguiente dispositivo de una cascada. 5.2.15 Entradas de dirección y modo (AX/MX) Las entradas de dirección y modo tienen dos funciones dependiendo de cómo se conecten los dos bits más significativos (A7 y A8). Si cualquiera de estos dos bits o ambos se conectan a masa, las entradas A0..A8 se interpretan como bits de dirección. Cuando ambos bits (A7 y A8) se conectan a nivel alto, las entradas (M0..M6) se interpretan como bits indicativos de cada modo de función. De los siete modos posibles sólo seis están operativos. Es posible combinar varios modos a la vez. 5.3 Modos de función Hay dos consideraciones importantes que hacer sobre el uso de los modos de función. En primer lugar, todas las acciones comienzan en la dirección cero y las posteriores pueden hacerlo en cualquier posición, dependiendo del modo en cuestión. Además el puntero de direcciones se pone a cero cada vez que se cambia del modo reproducción al 5 modo grabación o viceversa y cuando se ejecuta un ciclo de corte de corriente (PowerDown). En segundo lugar, los Modos de Función se ejecutan cuando la señal CE pasa a nivel bajo y los dos bits de dirección más significativos (A7-A8) están a nivel alto, manteniéndose en el modo en cuestión hasta que se produce una nueva transición de nivel alto a bajo en la señal CE. 5.4 Descripción de los modos de función 5.4.1 M0 – Búsqueda de mensaje Esta función permite al usuario pasar de mensaje en mensaje sin conocer la dirección de inicio de cada uno. Cada transición a nivel bajo de la señal CE hace que el puntero salte al inicio del siguiente mensaje. Este modo inhabilita el amplificador de salida y reproduce el mensaje a una velocidad 800 veces superior a la normal. Funciona como si de un avance rápido se tratase. 5.4.2 M1 – Borrado de los marcadores de fin de mensaje Permite reproducir los mensajes grabados de modo continuo como si de un solo mensaje se tratara. 5.4.3 M2 – Sin uso M2 debe ponerse a nivel bajo en el Modo de Función. 5.4.4 M3 – Repetición de mensaje La función M3 permite la repetición continua del mensaje situado en la primera posición de la memoria. 5.4.5 M4 – Direccionamiento consecutivo Durante el funcionamiento normal, el puntero de direcciones se pone a cero cuando se llega al final del mensaje (EOM). Este modo inhibe la puesta a cero del puntero y los mensajes son reproducidos consecutivamente. 6 5.4.6 M5 – Activación por nivel de la entrada CE Por defecto la activación del chip se realiza con el flanco de bajada de la señal CE durante la reproducción y por el nivel detectado de la señal CE durante la grabación. El modo de función M5 provoca que la activación mediante la señal CE se realice siempre por la detección del nivel. 5.4.7 M6 – Pulsar Botón El modo Pulsar Botón se usa, ante todo, en aplicaciones de muy bajo coste y ha sido diseñado para reducir al máximo los circuitos y componentes externos. En este modo el dispositivo siempre entra en desconexión (power-down) al final de cada reproducción. En este modo varios de los terminales de entrada-salida tienen otra función diferente que se describe a continuación. 5.4.7.1 Entrada CE (START/PAUSE) En el modo Pulsar Botón, CE actúa como una señal START/PAUSE cuando se lleva a nivel bajo. Un pulso a nivel bajo iniciará la grabación o reproducción y el siguiente pulso aplicado generará una pausa. El contador de direcciones no es puesto a cero y otro pulso más provocará que la operación continúe en el punto donde se quedó. 5.4.7.2 Entrada PD (STOP/RESET) En el modo Pulsar Botón, cuando PD se lleva a nivel alto se termina el ciclo en progreso y se pone a cero el contador de direcciones. 5.4.7.3 Salida EOM (RUN) En este modo, EOM se convierte en una señal activa a nivel alto mientras el dispositivo se encuentra funcionando, lo que permite alimentar un LED o activar cualquier otro dispositivo externo. 5.5 El modo Pulsar Botón (Grabación y reproducción) El modo Pulsar Botón es ideal para multitud de aplicaciones. Para el control del dispositivo sólo se requieren dos pulsadores y un conmutador para atacar las tres líneas de control necesarias. Con el conmutador se selecciona el modo de grabación o el de reproducción y con los pulsadores se activan las líneas CE (START/PAUSE) y PD 7 (STOP/RESET). Los pulsos generados para el control de las líneas CE y PD han de tener, al menos, un ancho de 300 ns. 5.5.1 Proceso de grabación en el modo Pulsar Botón 1. La entrada PD deberá ponerse a nivel bajo. (normalmente mediante una resistencia de pull-down) 2. La entrada P/R se pone a nivel bajo. 3. Se genera un pulso a nivel bajo en la entrada CE y la grabación comienza. La salida EOM se activa a nivel alto indicando la operación en progreso. 4. Generando otro pulso a nivel bajo, la grabación se detiene y EOM retorna a nivel bajo. El contador de direcciones mantiene su valor y se almacena un marcador de fin de mensaje en la memoria. La entrada P/R podría llevarse a nivel alto para iniciar la reproducción. 5. Un nuevo pulso en CE ocasiona que la grabación se inicie de nuevo en la siguiente dirección y la salida EOM se activa a nivel alto. 5.5.2 Proceso de reproducción en el modo Pulsar Botón 1. La entrada PD deberá ponerse a nivel bajo. (normalmente mediante una resistencia de pull-down) 2. La entrada P/R se pone a nivel alto. 3. Se genera un pulso a nivel bajo en la entrada CE y la reproducción comienza. La salida EOM se activa a nivel alto indicando la operación en progreso. 4. Cuando se genera un pulso a nivel bajo en la entrada CE o bien cuando se encuentra una marca EOM, la reproducción se detiene y EOM retorna a nivel bajo. La entrada P/R podría llevarse a nivel bajo para iniciar una grabación. 5. Un nuevo pulso en CE ocasiona que la reproducción se reanude donde se dejó y la salida EOM se activa a nivel alto. 8 6. La reproducción continúa según los pasos 4 y 5 hasta que se genera un pulso a nivel alto en la entrada PD o se produce un desbordamiento. 5.5.3 Esquema de conexión. Figura 2 – Esquema de conexión en modo Pulsar Botón (Tomado del catálogo de ISD). 9 Figura 3 – Esquema de conexión al microcontrolador MC68331 (Adaptado del catálogo de ISD). 5.6 Conexión al microcontrolador MC68331 Se desea utilizar el dispositivo para grabar mensajes y luego reproducirlos en el orden adecuado en función de la opción seleccionada en un menú interactivo. El proceso de grabación se va a realizar de forma secuencial, por lo que lo más sencillo es utilizar el modo Pulsar Botón (M6). Se ha determinado que la mejor forma de hacerlo es instalando un pulsador en el propio circuito que permita iniciar y finalizar la grabación de cada mensaje de forma manual por el usuario. Durante la reproducción se desea seleccionar previamente el mensaje a reproducir. Para ello, se hace un reset del puntero de la memoria para situarlo al inicio de la misma. Seguidamente se irán reproduciendo los mensajes previos al deseado en el modo M0, cuidando de seleccionar también el modo M4 para que el puntero no vuelva al inicio del mensaje una vez reproducido. La señal EOM va a ser muy útil para conocer cuándo empieza y finaliza la reproducción de un mensaje. 10 ****************************************************************************** * REGISTROS SIM * ****************************************************************************** SIMCR EQU $FFFA00 * Controla la configuración del sistema ($00CF). SYNCR EQU $FFFA04 * Fija frecuencia y modo de operación del reloj ($3F08). RSR EQU $FFFA06 * Guarda la causa de un reset (Ej.-$80, reset hardware). PORTE EQU $FFFA11 * Registro de lectura y escritura en el puerto E. PORTE1 EQU $FFFA13 * Tiene exactamente la misma función que el anterior. DDRE EQU $FFFA15 * Determina el sentido del puerto E pin a pin. PEPAR EQU $FFFA17 * Asignación del puerto E (Puerto o control de BUS). PORTF EQU $FFFA19 * Registro de lectura y escritura en el puerto F. PORTF1 EQU $FFFA1B * Tiene exactamente la misma función que el anterior. DDRF EQU $FFFA1D * Determina el sentido del puerto F pin a pin. PFPAR EQU $FFFA1F * Asignación del puerto F (Puerto F o control de BUS). PICR EQU $FFFA22 * Configuración de interrupciones periódicas ($000F). PITR EQU $FFFA24 * Contiene la cuenta del timer periódico ($0000). SYPCR EQU $FFFA21 * Controla las funciones de monitorización del sistema * como es el caso del Watchdog. ($40 anula watchdog). SWSR EQU $FFFA27 * Se debe escribir periódicamente con Watchdog activado. CSPAR0 EQU $FFFA44 * Sirve junto con CSPAR1 para configurar la función de CSPAR1 EQU $FFFA46 * los pins de Chip Select (CS, Port C, etc.). PORTC * Registro de escritura en el puerto C. EQU $FFFA41 ****************************************************************************** * REGISTROS GPT-PWM * ****************************************************************************** GPTMCR EQU $FFF900 * Configuración del GPT. ICR EQU $FFF904 * Configuración de interrupciones del GPT. DDRGP EQU $FFF906 * Determina el sentido del puerto GP. PORTGP EQU $FFF907 * Registro de lectura y escritura del puerto GP. OC1M EQU $FFF908 * Máscara para asignar los pin de captura de OC. OC1D EQU $FFF909 * Registro de datos a comparar con el puerto OC. TCNT EQU $FFF90A * Registro del GPT asociado a las capturas IC, OC y PAI. PACTL EQU $FFF90C * Configuración del acumulador de pulsos PAI. PACNT EQU $FFF90D * Es el contador de registro de eventos del PAI. TIC1 EQU $FFF90E * Capturan el TCNT cuando se registra un evento en IC1. TIC2 EQU $FFF910 * Capturan el TCNT cuando se registra un evento en IC2. TIC3 EQU $FFF912 * Capturan el TCNT cuando se registra un evento en IC3. TOC1 EQU $FFF914 * Cuando coincide con TCNT causa eventos en los pin OC. 11 TOC2 EQU $FFF916 * Si el valor coincide con TCNT causa un evento en OC2. TOC3 EQU $FFF918 * Si el valor coincide con TCNT causa un evento en OC3. TOC4 EQU $FFF91A * Si el valor coincide con TCNT causa un evento en OC4. TI4O5 EQU $FFF91C * Pin compartido (Puede realizar una función TIC o TOC). TCTL1 EQU $FFF91E * Configura el modo de comparación y nivel de salida. TCTL2 EQU $FFF91F * Configura que flanco provoca la captura en los IC. TMSK1 EQU $FFF920 * Habilita las interrupciones de IC y OC. TMSK2 EQU $FFF921 * Habilita las interrupciones del PAI y del TIMER. TFLG1 EQU $FFF922 * Registro de flags de interrupciones de IC y OC. TFLG2 EQU $FFF923 * Registro de flags de interrupciones del PAI y TIMER CFORC EQU $FFF924 * Fuerza una salida en los pin OC y PWM. PWMC EQU $FFF925 * Configuración del PWM. PWMA EQU $FFF926 * Determina el ancho de pulso. ($80 es medio ciclo) PWMB EQU $FFF927 * Determina el ancho de pulso. ($80 es medio ciclo) PWMCNT EQU $FFF928 * Registro del contador del PWM. PWMBUFA EQU $FFF92A * Buffer para prevenir glitches cuando modificamos PWMA. PWMBUFB EQU $FFF92B * Buffer para prevenir glitches cuando modificamos PWMB. PRESCL * Guarda el valor del multiplicador del GPT. EQU $FFF92C ****************************************************************************** * TIPOS DE RETARDO * ****************************************************************************** CORTO EQU $03FF * Del orden de 100us. MEDIO EQU $03FF * Del orden de 1ms. LARGO EQU $BFFF * Del orden de 5ms. ****************************************************************************** * CONSTANTES DE INTER•S * ****************************************************************************** ****************************************************************************** * PUERTO Y BITS DE CONTROL DEL DISPOSITIVO * ****************************************************************************** BYTE_CONTROL EQU PORTE * Puerto de control. GRAB_M6 EQU $0C * Activa la grabación en modo M6. REPR_M6 EQU $2C * Activa la reproducción en modo M6. REPR_M04 EQU $2B * Activa la reproducción en los modos M0 y M4 BIT_M0 EQU 0 * Con valor 1 selecciona el modo M0. BIT_M4 EQU 1 * Con valor 1 selecciona el modo M4. BIT_M6 EQU 2 * Con valor 1 selecciona el modo M6. 12 BIT_CE EQU 3 * Con valor 0 activa el chip. BIT_PD EQU 4 * Con valor 1 provoca un POWER-DOWN. BIT_PR EQU 5 * Con valor 1 reproduce y con 0 graba. BIT_EOM EQU 6 * Bit de funcionamiento. (RUN) BIT_PUSH EQU 7 * Bit de lectura de la tecla START/STOP. ****************************************************************************** * VECTORES DEL RESET * ****************************************************************************** ORG $0 PILA_RESET DC.L FIN_PILA PC_RESET DC.L PRINCIPAL ****************************************************************************** * VECTORES DE INTERRUPCIÓN * ****************************************************************************** ORG $80 VECTOR0 DC.L MENSAJE_N ****************************************************************************** * PUNTERO DE PILA * ****************************************************************************** ORG $4000 PILA DS.L 200 FIN_PILA: ****************************************************************************** * SUBRUTINAS * ****************************************************************************** ORG $1000 ****************************************************************************** * CONFIGURACION DEL HARDWARE DEL MICRO * ****************************************************************************** *************************** INHAB_WDOG **************************** * Inhabilita el Watchdog que es una función de monitoriración del * * sistema para detectar la entrada en un bucle infinito. * ******************************************************************* 13 INHAB_WDOG: MOVE.B #$40,SYPCR * Inhabilitamos WatchDog RTS *----------------------------------------------------------------------------* ************************** PORT_E_CFG ***************************** * Con esta rutina se configura el puerto E que es el que se usa * * para controlar el display y el teclado. * ******************************************************************* PORT_E_CFG MOVE.B #$3F,DDRE * PE0..PE5 salidas y PE6..PE7 entradas. MOVE.B #$00,PEPAR * Configura el registro de control del puerto E. MOVE.B #8,PORTE * Pone la señal CE a nivel alto, el resto a cero. RTS *----------------------------------------------------------------------------* ****************************************************************************** * RUTINAS DE CONTROL * ****************************************************************************** ***************************** DELAY ******************************* * Produce un retardo cuya duración viene determinada por el valor * * almacenado en el registro D1. * ******************************************************************* DELAY SUB.L #1,D1 BNE DELAY RTS *----------------------------------------------------------------------------* ************************** PULSAR_BOTON *************************** * Espera hasta que se accione el pulsador instalado. * ******************************************************************* PULSAR_BOTON BTST.B BNE #BIT_PUSH,BYTE_CONTROL PULSAR_BOTON RTS *----------------------------------------------------------------------------* 14 **************************** PULSO_CE ***************************** * Genera un pulso a nivel bajo en la línea CE. * ******************************************************************* PULSO_CE MOVE.L D1,-(A7) MOVE.L #CORTO,D1 BCLR.B #BIT_CE,BYTE_CONTROL BSR DELAY BSET.B #BIT_CE,BYTE_CONTROL MOVE.L (A7)+,D1 RTS *----------------------------------------------------------------------------* ****************************** RESET ****************************** * Genera un reset en el puntero de direcciones mediante un pulso * * a nivel alto en la línea PD. * ******************************************************************* RESET MOVE.L D1,-(A7) MOVE.L #LARGO,D1 BSET.B #BIT_PD,BYTE_CONTROL BSR DELAY BCLR.B #BIT_PD,BYTE_CONTROL MOVE.L (A7)+,D1 RTS *----------------------------------------------------------------------------* *************************** INI_DSP_VOZ *************************** * Inicializa el dispositivo de voz para reproducción, con los mo- * * dos M0 y M4 habilitados. Se coloca también el puntero de direc- * * ciones al inicio mediante un reset. * ******************************************************************* INI_DSP_VOZ BSR PORT_E_CFG BSR RESET RTS *----------------------------------------------------------------------------* 15 ************************* GRABAR_MENSAJE ************************** * Se configura el chip en modo grabación y se espera la orden de * * arranque para iniciarla. La grabación se termina cuando se re- * * cibe la orden de Pausa o cuando se desborda la memoria del dis- * * positivo. * ******************************************************************* GRABAR_MENSAJE MOVE.B #GRAB_M6,BYTE_CONTROL * Configura puerto modo grabación BSR PULSAR_BOTON * Espera la orden de arranque BSR PULSO_CE * Inicia la grabación PARADA BTST.B #BIT_EOM,BYTE_CONTROL * Se comprueba desbordamiento. Quizá no * funcione y se requiera la señal OVF. BEQ FIN BTST.B * Si hay desbordamiento termina #BIT_PUSH,BYTE_CONTROL BNE PARADA * Espera la orden de parada BSR PULSO_CE * Finaliza la grabación FIN RTS *----------------------------------------------------------------------------* **************************** BUSCAR_N ***************************** * Se configura el chip en modo M0 y se van reproduciendo los men- * * sajes previos al deseado cuyo número de orden se encuentra en * * en el registro D0. (Sólo tiene sentido a partir del segundo) * ******************************************************************* BUSCAR_N MOVE.B #REPR_M04,BYTE_CONTROL * Se configuran los modos M0 y M4 SUBI.B #1,D0 * Se ajusta la salida del bucle DBF BSR RESET * Se ejecuta un reset del chip BCLR.B #BIT_CE,BYTE_CONTROL * Se inicia reproducción rápida BSET.B #BIT_CE,BYTE_CONTROL SIGUIENTE EOM_ESPERAR BTST.B #BIT_EOM,BYTE_CONTROL BNE EOM_ESPERAR SUBI.B #1,D0 BNE SIGUIENTE * Se espera a que finalice el mensaje RTS 16 *----------------------------------------------------------------------------* ************************** REPRODUCIR ***************************** * Se configura el chip en modo M6 y se reproduce el mensaje que * * señala el puntero de direcciones. * ******************************************************************* REPRODUCIR MOVE.B #REPR_M6,BYTE_CONTROL BSR PULSO_CE * Activa el modo reproducción M6 * Inicia la reproducción del mensaje RTS *----------------------------------------------------------------------------* *************************** MENSAJE_N ***************************** * Reproduce el mensaje cuyo número de orden N está contenido en * * el registro D0. * ******************************************************************* MENSAJE_N BSR BUSCAR_N BCLR.B #BIT_M0,BYTE_CONTROL BCLR.B #BIT_CE,BYTE_CONTROL BSET.B #BIT_CE,BYTE_CONTROL * Busca el mensaje N. * Reproduce el mensaje. RTE *----------------------------------------------------------------------------* ****************************************************************************** * PRINCIPAL * ****************************************************************************** ORG $400 PRINCIPAL BSR INHAB_WDOG MOVE.L #5,D0 TRAP #0 * Reproduce el mensaje número 5 FINAL BRA FINAL END 17 ÍNDICE DE CONTENIDO 5. REPRODUCTOR DE MENSAJES BASADO EN EL DISPOSITIVO ISD25XX ...................................................................................................................... 1 5.1 DESCRIPCIÓN GENERAL ............................................................................................................ 1 5.1.1 5.2 LA MEMORIA EEPROM DE ISD25XX ....................................................................................... 1 DESCRIPCIÓN DE LAS SEÑALES Y DEL PATILLAJE .......................................................... 2 5.2.1 ALIMENTACIÓN (VCCA, VCCD, VSSA, VSSD) ................................................................................. 2 5.2.2 ENTRADA DE CORTE DE CORRIENTE (PD - POWER DOWN) ........................................................... 2 5.2.3 ENTRADA PARA HABILITAR CIRCUITO (CE – CHIP ENABLE) ........................................................ 3 5.2.4 ENTRADA DE REPRODUCCIÓN/GRABACIÓN (P/R – PLAYBACK/RECORD) ..................................... 3 5.2.5 SEÑAL DE FIN DE MENSAJE Y DE FUNCIONAMIENTO (EOM) ....................................................... 3 5.2.6 SEÑAL DE DESBORDAMIENTO (OVF) ......................................................................................... 3 5.2.7 ENTRADA DE MICRÓFONO (MIC) ............................................................................................... 3 5.2.8 ENTRADA DE REFERENCIA DE MICRÓFONO (MIC REF) .............................................................. 4 5.2.9 ENTRADA DEL CONTROL AUTOMÁTICO DE GANANCIA (AGC) .................................................. 4 5.2.10 SALIDA ANALÓGICA (ANA OUT) .............................................................................................. 4 5.2.11 ENTRADA ANALÓGICA (ANA IN) .............................................................................................. 4 5.2.12 ENTRADA DE RELOJ EXTERNO (XCLK) ...................................................................................... 4 5.2.13 SALIDAS DE ALTAVOZ (SP+ Y SP-) ............................................................................................ 5 5.2.14 ENTRADA AUXILIAR (AUX IN) .................................................................................................. 5 5.2.15 ENTRADAS DE DIRECCIÓN Y MODO (AX/MX) ............................................................................ 5 5.3 MODOS DE FUNCIÓN ................................................................................................................... 5 5.4 DESCRIPCIÓN DE LOS MODOS DE FUNCIÓN ....................................................................... 6 5.4.1 M0 – BÚSQUEDA DE MENSAJE .................................................................................................... 6 5.4.2 M1 – BORRADO DE LOS MARCADORES DE FIN DE MENSAJE ........................................................ 6 5.4.3 M2 – SIN USO ............................................................................................................................. 6 5.4.4 M3 – REPETICIÓN DE MENSAJE .................................................................................................. 6 5.4.5 M4 – DIRECCIONAMIENTO CONSECUTIVO .................................................................................. 6 5.4.6 M5 – ACTIVACIÓN POR NIVEL DE LA ENTRADA CE .................................................................... 7 5.4.7 M6 – PULSAR BOTÓN ................................................................................................................. 7 5.4.7.1 Entrada CE (START/PAUSE) ............................................................................................... 7 5.4.7.2 Entrada PD (STOP/RESET) ................................................................................................. 7 5.4.7.3 Salida EOM (RUN) ............................................................................................................... 7 5.5 EL MODO PULSAR BOTÓN (GRABACIÓN Y REPRODUCCIÓN) ....................................... 7 5.5.1 PROCESO DE GRABACIÓN EN EL MODO PULSAR BOTÓN ............................................................. 8 I 5.5.2 PROCESO DE REPRODUCCIÓN EN EL MODO PULSAR BOTÓN........................................................ 8 5.5.3 ESQUEMA DE CONEXIÓN. ............................................................................................................. 9 5.6 CONEXIÓN AL MICROCONTROLADOR MC68331.............................................................. 10 II