Reproductor mensajes

Anuncio
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
Documentos relacionados
Descargar