Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
de audio
Jos Manuel Mendas Cuadros
Hortensia Mecha Lpez
Entrada/salida de audio
Una seal audible es un onda formada por la suma de ondas puras con
frecuencias entre 0 y 4000 Hz (aunque dependiendo de la sensibilidad
de cada uno es posible oir seales de mayor frecuencia).
La placa Xstend dispone de una entrada analgica que permiten
conectar la salida de un generador de msica o de un micrfono, para
recibir una seal audible. Tambin dispone de una salida analgica
donde se pueden conectar unos altavoces, con el fin de generar una
seal audible.
Adems, se dispone de un circuito conversor analgico digital (Codec
Ak4520A ) que permite convertir las seales analgicas en seales
digitales, que pueden procesarse en la FPGA. Este circuito es estreo,
es decir, existen dos canales, uno izquierdo y otro derecho, capaces de
digitalizar dos seales analgicas de 20 bits de resolucin, adems de
generar dos seales analgicas a partir de valores de hasta 20 bits. La
comunicacin del codec con la placa de FPGAs se establece mediante
un protocolo serie a travs de dos lneas (una para entrada y otra para
salida), y se explica en detalle en este documento.
Qu es?
Codec Ak4520A
Qu hace?
El conversor lo podemos dividir en dos partes:
1.- Conversor analgico-digital: recibe dos entradas analgicas, una por el canal
izquierdo (AINL+, AINL-) y otra por el derecho (AINR+, AINR-). Realiza un muestreo de
dichas seales con una frecuencia fs, y transmite en serie alternativamente el resultado de las dos
muestras a travs de STDO. Cada muestra se formatea dependiendo del valor de las entradas
(DIF1, DIF0). En la placa con la que vamos a trabajar el formato son 20 bits justificados segn
MSB. El reloj MCLK determina la frecuencia de muestreo. El reloj LRCLK determina qu canal
se est enviando en cada instante (LRCLK=1 canal izdo y LRCLK=0 drcho) y el reloj SCLK
determina en qu instante se enva cada uno de los bits de la mu estra.
2.- Conversor digital - analgico: recibe una entrada digital (STDI), por donde se
transmite en serie el valor digital de una muestra de uno de los dos canales, segn el valor del
reloj LRCLK. El formato de las muestras depende del valor de las entradas (DIF1, DIF0), y para
la placa xstend son 20 bits justificados segn MSB. Los datos digitales se convierten en dos
seales analgicas que salen por AOUTL (canal izquierdo) y AOUTR (canal derecho).
Interfaz digital
AINL-
MCLK
Entradas
analgicas
AINL+
AINRAINR+
Voltajes de
referencia
VREFH
VREFL
Salidas
analgicas
AK4520A
AOUTR
VD
DGND
Alim.
Digital
VA Alim.
AGND Analg.
3 TEST
2 DEM Frec. de
nfasis
PWDA Modo
Power
down
PWAD
Salida de datos
serie
SDTI Entrada de datos
serie
DIF0
Formato de datos
DIF1
serie
CMODE Selector de
frecuencia de
muestreo
Alimentacin y otros
SDTO
AOUTL
Reloj principal
Pinout
MCLK
LRCLK
SCLK
STDI
STDO
SDTO
SDTI
L/R
20 bit, justif.MSB 16 bit, justif.LSB H/L
20 bit, justif.MSB 20 bit, justif.LSB H/L
20 bit, justif.MSB 20 bit, justif.MSB H/L
IIS(I2s)
IIS(I2s)
L/H
fSCLK
>=32fs
>=40fs
>=40fs
32fs o >=40fs
En la placa XS40 tenemos cableado CMODE a 0 y DIF1, DIF0 A 10. Por tanto:
fMCLK=256fs
Formato de datos entrada/salida 20 bit, justif.MSB
fSCLK>=32fs
not (pin 9) coincide con switch 3 de la placa
not (pin 66) coincide con switch 7 de la placa
not (pin 77) coincide con switch 5 de la placa
not (pin 70) coincide con switch 6 de la placa
not (pin 6) coincide con switch 4 de la placa (es necesario poner el jumper 17)
Restricciones temporales
Para fMCLK=256fs
1 restriccin
LRCK
Como el periodo de este reloj debe ser suficiente para poder enviar o recibir una
muestra de cada canal, su frecuencia coincide con fs.
fLRCK=fs= fMCLK/256
Segn el valor de MCLK debe cumplirse:
fMCLK =256fs
16kHz<= fs<=54kHz
El ciclo de trabajo de LRCK debe estar entre 45% y 55%
SCLK es el reloj que determina la lectura y escritura
de los datos serie.
Para poder enviar los 20 bits por canal debe cumplirse
fSCLK>40fs
fSCLK>40 fMCLK/256
En general fSCLK=64fs= fMCLK/4
Por tanto:
Tsck>=1/(13.824MHz/4)=289.4ns
SCLK debe estar a 0 al menos 120 ns
SCLK debe estar a 1 al menos 120ns
2 restriccin
Restriccin 3, 4 y 5
Seleccin de frecuencias
1 restriccin 4.096MHz<= fMCLK<=13.824MHz
40>=27ns 40>=27ns
MCLK
2 restriccin
fSCLK>40 fMCLK/256
320>=289ns
160>=120ns 160>=120ns
Elegimos fSCLK=64fs=fMCLK/4
tSCLK=320ns
SCLK
3 restriccin
SCLK
LRCLK
S0
S1
S2
S3
S0
S1
MCLK
SCLK
320ns
LRCLK
MCLK
Canal derecho
Canal izquierdo
LRCLK
256 ciclos de MCLK
64 ciclos de SCLK
128 ciclos de MCLK
32 ciclos de SCLK
0
1
Contador 2
mod-256 3
4
5
6
7
S: Subciclo de MCLK
(S0, S1, S2, S3)
SCLK
5 NC: Ciclo de
SCLK dentro de
cada ciclo de canal
LRCLK
Entrada/Salida de datos
4 restriccin
S3 S0 S1
S2 S3 S0 S1
S2 S3
Como el tiempo de ciclo
es de 80ns, para cumplir
los 40ns de hold y setup
basta con colocar los
datos en los estados S0,
S2 S3
MCLK
SCLK
>=40ns
STDI
>=40ns
S2
S3 S0 S1
S2 S3 S0 S1
MCLK
SCLK
LRCLK
STD0
<=100ns
<=100ns
S2 S3
Protocolo de comunicacin
Los datos se leen y escriben cada cuatro
ciclos de MCLK coincidiendo con el
estado S2
32 ciclos de SCLK
32 ciclos
LRCLK
SCLK
STDI
19
18
17
STDO
19
18
17
....
Do not care
19
18
17
Do not care
19
Do not care
19
18
17
Do not care
19
19 MSB, 0 LSB
Canal izquierdo
19 MSB, 0 LSB
Canal derecho
Nota: STDI son los datos de entrada al CODEC, salida de nuestro circuito
STDO son los datos de salida del CODEC, entrada de nuestro circuito
Circuito receptor
Recibe los 20 bits (0<=NC<=19)
de la muestra por STDO en el
subciclo S2 dentro del ciclo de
SCLK
RST
CLK
STDO
LRCLK
IN
SHIFTER
OUT
SE
2
=2
S (Subciclo S0,
S1, S2, S3)
20
Canal izquierdo
RST
CLK
IN
SHIFTER
OUT
20
Canal derecho
SE
>=0
<=19
NC
5 Cont[6..2]
Circuito transmisor
Transmite los 20 bits (0<=NC<=19) de la muestra por
STDI en el subciclo S2 dentro del ciclo de SCLK
Canal izquierdo
LRCLK
20
RST
LRCLK
CLK
STDI
SHIFTER
OUT
SE
=31
=2
5 NC
Cont[6..2]
2
S (Subciclo S0,
S1, S2, S3)
Canal derecho
>=0
20
RST
CLK
SHIFTER
OUT
SE
<=19
NC
5 Cont[6..2]