UNIVERSIDAD INDUSTRIAL DE SANTANDER
ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES
Perfecta Combinación entre Energía e Intelecto
1
RESUMEN: En el presente informe se presentaran los resultados del diseño e implementación de una octava musical, con dos modos
de trabajo (Piano y melodia), los cálculos para la obtención de fracuencias, y una breve explicación de como se lograron los objetivos,
utilizando lenguaje de descripción de hardware VHDL.
PALABRAS CLAVE: VHDL, notas musicales, frecuencia.
OBJETIVOS
Objetivo General:
Realizar el Hardware y Descripción de Hardware, que permitan interactuar con una Octava Musical, similar a un
Piano, con el fin de evaluar los conocimientos adquiridos durante el curso Sistemas Digitales.
Objetivos Específicos:
Desarrollar una tarjeta que permita interactuar con la descripción de Hardware en dos Modos; Modo 1. obtener
cada una de las notas de la una Octava Musical (DO-RE-MI-FA-SOL-LA-SI-DO) a través de pulsadores. Modo 2:
Obtener una melodía musical previamente seleccionada por cada uno de los grupos de trabajo.
Generar Sonido y la Escala Musical a través de la previa selección del diseño de software y modelo de trabajo de
cada uno de los grupos de Trabajo.
Integrar una melodía al sistema, el cual se debe activar a través de un switch contenido en el hardware.
INTRODUCCION
El siguiente proyecto es una pequeña muestra de la aplicación que se puede lograr con la teoría expuesta en la cátedra.
Se basa esencialmente en la generación de una octava musical por medio de señales digitales, el cual consta de tres etapas.
Donde se muestra la evolución para llegar a generar una nota musical completa. Como se sigue en la primera etapa, se
procesa el sonido de la nota musical DO y se muestra su señal por medio del osciloscopio, arrojando con éxito una una señal
cuadrada.
El segundo paso fue generar la octava musical completa con el contenido de la primera etapa agregándole, pequeños
cambios como se muestra previamente en la explicación de dicho proyecto .
La última etapa consistió en la generación de una onda senoidal y a su vez la implementación de una nota musical. Como se
verá más adelanta en la descripción fue un proyecto de constante evolución que nos da la muestra de la lógica que deben
llevar en los sistemas digitales.
OCTAVA MUSICAL Proyecto de clase Sistemas digitales.
Jota Mario Miranda 2042798, Gerardo Ramirez 2042983.
Presentado a: Carlos A Angulo.
UNIVERSIDAD INDUSTRIAL DE SANTANDER
ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES
Perfecta Combinación entre Energía e Intelecto
2
1. Diseño de PCB.
Para el diseño de la PCB (hardware) se utilizó el Software Kicad, tomando como referencia el esquemático suministrado por
el docente.
Fig. 1. Esquemático de PCB.
Posteriormente se obtuvieron físicamente los materiales necesarios para la construcción de la tarjeta de trabajo, los cuales se
listan a continuación:
Cantidad Elemento Característica
9 Resistencias 4.7 [KΩ] Montaje Superficial 1206
8 Pulsadores Mini Normalmente abiertos
1 Switch Sostenido
1 Base para CI 20 pines
1 Conector Header Doble macho vertical
1 DAC 8 bits TLC7226
2 Conectores Molex Macho y hembra 3 pines
1 Audífonos Normales Tabla 1. Materiales Utilizados.
Una vez obtenidos los materiales, se procedió a asignarle a cada uno de los elementos su respectivo empaquetado. A
continuación se construyó el archivo .brd, en el cual se ubicaron los elementos, en especial los headers, los cuales debían
cumplir con distancias predeterminadas por la tarjeta de desarrollo a utilizar (SIE). Además se tuvo en cuenta las
recomendaciones expuestas por el profesor en el transcurso de la catedra, subrayando las referentes a las dimensiones
mínimas de pistas, pads, drill y evitando al máximo ángulos rectos en el cobre.
UNIVERSIDAD INDUSTRIAL DE SANTANDER
ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES
Perfecta Combinación entre Energía e Intelecto
3
Fig. 2. Brd de PCB.
El resultado obtenido después de la fabricación de la PCB y la soldadura de los materiales fue la siguiente:
Fig. 3. PCB implementada.
UNIVERSIDAD INDUSTRIAL DE SANTANDER
ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES
Perfecta Combinación entre Energía e Intelecto
4
2. Obtención de notas musicales
2.1 Generación de señal de audio a través de una onda cuadrada.
Para esta parte del proyecto, se suministra el siguiente esquema por parte del docente:
Fig. 4. Esquema etapa 2.1.
Se procedió a realizar la descripción de hardware del anterior esquema, en lenguaje VHDL, utilizando el Software ISE 10.1.
A continuación se da una breve explicación del funcionamiento de cada módulo:
Control de Frecuencia
El dispositivo FPGA que utilizaremos será la XC3S100 de Xilinx la cual tiene conectado a su P38 un cristal oscilador de 50
Mhz, como deseamos obtener señales de audio, las cuales poseen frecuencias menores a la del reloj, necesitamos utilizar el
concepto de divisor de frecuencia.
Esta división se da por medio de un contador de pulsos de reloj, el cual está compuesto por n flip flops conectados en serie.
Se pueden conseguir divisiones sucesivas de la frecuencia del cristal oscilador (50 Mhz), conectando este a la entrada de
reloj del flip flop A, seguidamente se conecta la salida del flip flop A a la entrada de reloj del flip flop B (Ver figura 5).
Fig 5. División de
frecuencia (Tomada de Fundamentos de Sistemas Digitales, Floyd).
Ahora, si se conectan n flip flops se puede obtener una frecuencia:
Para obtener frecuencias distintas a múltiplos de la frecuencia del reloj, se utiliza la siguiente formula:
UNIVERSIDAD INDUSTRIAL DE SANTANDER
ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES
Perfecta Combinación entre Energía e Intelecto
5
Donde el modulo representa el límite de conteo del contador. De la figura 5 y las formulas anteriores, se puede observar que
la señal asociada al bit más significativo del conteo representa la frecuencia deseada.
Para la implementación de la octava musical se tomó como referencia la siguiente tabla de frecuencias:
Nota Frecuencia [Hz]
Do 523
Re 587
Mi 659
Fa 698
Sol 783
La 880
Si 987
Do# 1046
Silencio 50000 Tabla 2. Frecuencia de Notas musicales.
Se decidió implementar la nota Do la cual requería obtener una frecuencia de 523 [Hz], pero teniendo en cuenta que
posterior a esta etapa la señal se ve afectada por otro flip flop, el cual divide la frecuencia de salida del contador a la mitad,
se necesitó que a la salida del contador se obtuviera una señal con una frecuencia del doble de la frecuencia de salida (1046
[Hz]).
Del resultado anterior se concluye que el límite de conteo para obtener la nota Do será 47801, y para poder representar este
número decimal necesitamos un mínimo de 16 bits.
Control de Muestras
La señal asociada al bit más significativo del contador será una señal con frecuencia deseada, pero con un ciclo útil bajo, ya
que esta demora solo un ciclo de reloj en alto y el resto de tiempo asociado a su frecuencia en bajo, como se puede observar
en la siguiente figura:
Fig. 6. Ciclo útil de la salida del contador.
Por lo anterior se hace necesaria la existencia de este flip flop tipo T, el cual modifica el ciclo útil de la señal de entrada
asignándole un valor de 50% y dividiendo su frecuencia a la mitad.
Posteriormente y teniendo en cuenta las características del DAC a utilizar (TLC7226 TI), se hace necesaria la conversión
de la señal de salida del flip flop a una señal de 8 bits, la cual es finalmente convertida a una señal analógica con un nivel de
tensión de 3.3 V.
UNIVERSIDAD INDUSTRIAL DE SANTANDER
ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES
Perfecta Combinación entre Energía e Intelecto
6
2.2 Generación de una escala musical por medio de una onda cuadrada.
Para esta etapa era necesario generar una señal de onda cuadrada con una frecuencia asociada a cada uno de los pulsadores,
para esto se modificó el esquema de la etapa 2.1 de la siguiente manera:
Fig.
6. Esquema etapa 2.2.
Como se observa en la figura anterior, solo fue necesario agregar al esquema de la etapa 2.1 un decodificador, el cual se
explica a continuación:
Decodificador de modulo
Para obtener señales de audio asociadas a las frecuencias especificadas en la tabla 2, teniendo en cuenta que el flip flop del
control de muestras divide la frecuencia a la mitad, se hace necesario que a la salida del contador se obtengan las siguientes
frecuencias:
Nota Frecuencia [Hz] Modulo10 Modulo16
Do 1046 47801 BAB9
Re 1174 42589 A65D
Mi 1318 37936 9430
Fa 1396 35816 8BE8
Sol 1566 31928 7CB8
La 1760 28409 6EF9
Si 1974 25329 62F1
Do# 2092 23901 5D5D
Silencio 100000 500 01F4 Tabla 3. Codificación de módulo de las notas musicales.
Para implementar esta tabla se utilizó un decodificador de 8 bits en la entrada, los cuales están representados por los 8
pulsadores que a su vez corresponden a cada una de las notas musicales. De estos 8 bits se pueden obtener 256 valores
distintos a la salida, pero asumiendo que solo se puede presionar un pulsador a la vez y en el resto de posibles
combinaciones la salida será silencio entonces solo fue necesario describir 9 salidas.
Vale la pena aclarar, que se denominó silencio a una frecuencia de 50 [KHz], ya que esta no está dentro del espectro audible
del oído humano. También es necesario verificar el valor lógico de los pulsadores cuando estos están normalmente abiertos
y cuando son presionados.
Lo anterior se amplía con las siguientes figuras, obtenidas por simulación con el Software ISIS Proteus:
UNIVERSIDAD INDUSTRIAL DE SANTANDER
ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES
Perfecta Combinación entre Energía e Intelecto
7
Fig. 7. Pulsadores normalmente abiertos.
Fig. 8. Pulsadores cerrados.
Se observa que cuando los pulsadores están abiertos, la entrada tiene un valor lógico de 1, y cuando son presionados este
valor cambia a 0.
La descripción de lo expuesto con anterioridad se logró mediante el siguiente código:
Fig. 9. Descripción VHDL del decodificador de modulo.
Etapa 3. Generación de una escala musical por medio de una onda senoidal.
Para cumplir con este objetivo, el esquema inicial se modificó en el módulo control de muestras la modificación se basa en
lo expuesto a continuación:
El proceso implementado para generar la señal senoidal se basó básicamente, en hacer un muestreo de la señal senoidal,
creando una tabla de valores donde cada valor de la tabla tenga almacenado el correspondiente valor de la senoide.
Para realizar el diseño fue necesario utilizar una memoria ROM que se direccionara con un contador simple. Para dicha
etapa se utilizó una ROM de 256 valores comprendidos entre “00000000” y “11111111” (8bits) para generar un periodo
completo, como se muestra en la siguiente figura.
UNIVERSIDAD INDUSTRIAL DE SANTANDER
ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES
Perfecta Combinación entre Energía e Intelecto
8
Fig. 10. Señal senoidal.
Direccionamiento de la ROM a través de un contador simple
Debido a que el DAC no está configurado para obtener valores negativos fue necesario iniciar el conteo en la posición 0 el
cual tiene asignado un valor de 127 (01111111) en la memoria ROM, a su vez muestra un valor de salida análogo de
1.6371 [v]. Este proceso cumple la función de darle una secuencia lógica a cada uno de los valores o puntos utilizados para
generar la onda senoidal. Durante las 256 cuentas de la señal senoidal, este contador inicia de 0 hasta 63 y asigna valores a
la ROM DE 127 a 255 “01111111” a “11111111 “el cual corresponde a un cuarto de periodo de la señal, para completar
el periodo el contador accede a los otros valores, los cuales son especificados en la tabla 4. Cabe resaltar que cuando el
contador se encuentra en la posición 63 (00111111) este alcanza su valor pico máximo 255 (11111111) y su salida
analógica será 3.26 [v].
La información suministrada en la tabla, se basa en la codificación del DAC usado (TLC7226), el cual fue utilizado en
modo unipolar y siguiendo como ejemplo la siguiente figura:
Fig. 11. Codigo unipolar DAC (tomada datasheet TI).
UNIVERSIDAD INDUSTRIAL DE SANTANDER
ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES
Perfecta Combinación entre Energía e Intelecto
9
Tabla 4. Muestreo de un periodo de señal senoidal.
ConteoD
atoSal analogica [V
]Conteo16
Dato16
ConteoD
atoSal analogica [V
]Conteo16
Dato16
ConteoD
atoSal analogica [V
]Conteo16
Dato16
ConteoD
atoSal analogica [V
]Conteo16
Dato16
0127
1,6371093750
7F64
2533,261328125
40FD
128126
1,6242187580
7E192
00
C00
1130
1,675781251
8265
2533,261328125
41FD
129123
1,58554687581
7B193
00
C10
2133
1,7144531252
8566
2533,261328125
42FD
130120
1,54687582
78194
00
C20
3136
1,7531253
8867
2533,261328125
43FD
131117
1,50820312583
75195
00
C30
4139
1,7917968754
8B68
2533,261328125
44FD
132114
1,4695312584
72196
00
C40
5142
1,830468755
8E69
2523,2484375
45FC
133111
1,43085937585
6F197
10,012890625
C51
6145
1,8691406256
9170
2523,2484375
46FC
134108
1,392187586
6C198
10,012890625
C61
7148
1,90781257
9471
2513,235546875
47FB
135105
1,35351562587
69199
20,02578125
C72
8151
1,9464843758
9772
2503,22265625
48FA
136102
1,3148437588
66200
30,038671875
C83
9154
1,985156259
9A73
2503,22265625
49FA
13799
1,27617187589
63201
30,038671875
C93
10157
2,023828125A
9D74
2493,209765625
4AF9
13896
1,23758A
60202
40,0515625
CA4
11160
2,0625B
A075
2483,196875
4BF8
13993
1,1988281258B
5D203
50,064453125
CB5
12163
2,101171875C
A376
2473,183984375
4CF7
14090
1,160156258C
5A204
60,07734375
CC6
13166
2,13984375D
A677
2463,17109375
4DF6
14187
1,1214843758D
57205
70,090234375
CD7
14169
2,178515625E
A978
2453,158203125
4EF5
14284
1,08281258E
54206
80,103125
CE8
15172
2,2171875F
AC79
2443,1453125
4FF4
14381
1,0441406258F
51207
90,116015625
CF9
16175
2,25585937510
AF80
2433,132421875
50F3
14478
1,0054687590
4E208
100,12890625
D0
A
17178
2,2945312511
B281
2413,106640625
51F1
14575
0,96679687591
4B209
120,1546875
D1
C
18181
2,33320312512
B582
2403,09375
52F0
14672
0,92812592
48210
130,167578125
D2
D
19184
2,37187513
B883
2393,080859375
53EF
14769
0,88945312593
45211
140,18046875
D3
E
20186
2,3976562514
BA84
2373,055078125
54ED
14867
0,86367187594
43212
160,20625
D4
10
21189
2,43632812515
BD85
2353,029296875
55EB
14964
0,82595
40213
180,23203125
D5
12
22192
2,47516
C086
2343,01640625
56EA
15061
0,78632812596
3D214
190,244921875
D6
13
23194
2,5007812517
C287
2322,990625
57E8
15159
0,76054687597
3B215
210,270703125
D7
15
24197
2,53945312518
C588
2302,96484375
58E6
15256
0,72187598
38216
230,296484375
D8
17
25200
2,57812519
C889
2292,951953125
59E5
15353
0,68320312599
35217
240,309375
D9
18
26202
2,603906253A
CA90
2272,926171875
5AE3
15451
0,6574218759A
33218
260,33515625
DA
1A
27205
2,6425781251B
CD91
2252,900390625
5BE1
15548
0,618759B
30219
280,3609375
DB
1C
28207
2,6683593751C
CF92
2232,874609375
5CD
F156
460,59296875
9C2E
22030
0,38671875D
C1E
29209
2,6941406251D
D1
93221
2,8488281255D
DD
15744
0,56718759D
2C221
320,4125
DD
20
30212
2,73281251E
D4
94218
2,810156255E
DA
15841
0,5285156259E
29222
350,451171875
DE
23
31214
2,758593751F
D6
95216
2,7843755F
D8
15939
0,5027343759F
27223
370,476953125
DF
25
32216
2,78437520
D8
96214
2,7585937560
D6
16037
0,476953125A0
25224
390,502734375
E027
33218
2,8101562521
DA
97212
2,732812561
D4
16135
0,451171875A1
23225
410,528515625
E129
34221
2,84882812522
DD
98209
2,69414062562
D1
16232
0,4125A2
20226
440,5671875
E22C
35223
2,87460937523
DF
99207
2,66835937563
CF163
300,38671875
A31E
22746
0,59296875E3
2E
36225
2,90039062524
E1100
2052,642578125
64CD
16428
0,3609375A4
1C228
480,61875
E430
37227
2,92617187525
E3101
2022,60390625
65CA
16526
0,33515625A5
1A229
510,657421875
E533
38229
2,95195312526
E5102
2002,578125
66C8
16624
0,309375A6
18230
530,683203125
E635
39230
2,9648437527
E6103
1972,539453125
67C5
16723
0,296484375A7
17231
560,721875
E738
40232
2,99062528
E8104
1942,50078125
68C2
16821
0,270703125A8
15232
590,760546875
E83B
41234
3,0164062529
EA105
1922,475
69C0
16919
0,244921875A9
13233
610,786328125
E93D
42235
3,0292968752A
EB106
1892,436328125
6ABD
17018
0,23203125AA
12234
640,825
EA40
43237
3,0550781252B
ED107
1862,39765625
6BBA
17116
0,20625AB
10235
670,863671875
EB43
44239
3,0808593752C
EF108
1842,371875
6CB8
17214
0,18046875AC
E236
690,889453125
EC45
45240
3,093752D
F0109
1812,333203125
6DB5
17313
0,167578125AD
D237
720,928125
ED48
46241
3,1066406252E
F1110
1782,29453125
6EB2
17412
0,1546875AE
C238
750,966796875
EE4B
47243
3,1324218752F
F3111
1752,255859375
6FAF
17510
0,12890625AF
A239
781,00546875
EF4E
48244
3,145312530
F4112
1722,2171875
70AC
1769
0,116015625B0
9240
811,044140625
F051
49245
3,15820312531
F5113
1692,178515625
71A9
1778
0,103125B1
8241
841,0828125
F154
50246
3,1710937532
F6114
1662,13984375
72A6
1787
0,090234375B2
7242
871,121484375
F257
51247
3,18398437533
F7115
1632,101171875
73A3
1796
0,07734375B3
6243
901,16015625
F35A
52248
3,19687534
F8116
1602,0625
74A0
1805
0,064453125B4
5244
931,198828125
F45D
53249
3,20976562535
F9117
1572,023828125
759D
1814
0,0515625B5
4245
961,2375
F560
54250
3,2226562536
FA118
1541,98515625
769A
1823
0,038671875B6
3246
991,276171875
F663
55250
3,2226562537
FA119
1511,946484375
7797
1833
0,038671875B7
3247
1021,31484375
F766
56251
3,23554687538
FB120
1481,9078125
7894
1842
0,02578125B8
2248
1051,353515625
F869
57252
3,248437539
FC121
1451,869140625
7991
1851
0,012890625B9
1249
1081,3921875
F96C
58252
3,24843753A
FC122
1421,83046875
7A8E
1861
0,012890625BA
1250
1111,430859375
FA6F
59253
3,2613281253B
FD123
1391,791796875
7B8B
1870
0BB
0251
1141,46953125
FB72
60253
3,2613281253C
FD124
1361,753125
7C88
1880
0BC
0252
1171,508203125
FC75
61253
3,2613281253D
FD125
1331,714453125
7D85
1890
0BD
0253
1201,546875
FD78
62253
3,2613281253E
FD126
1301,67578125
7E82
1900
0BE
0254
1231,585546875
FE7B
63253
3,2613281253F
FD127
1271,637109375
7F7F
1910
0BF
0255
1261,62421875
FF7E
UNIVERSIDAD INDUSTRIAL DE SANTANDER
ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES
Perfecta Combinación entre Energía e Intelecto
10
Teniendo en cuenta que la señal senoidal es construida después de 256 ciclos de reloj y que anteriormente a esto la señal fue
modificada, y su frecuencia dividida a la mitad (Ver etapa 2, control muestras), se hizo necesario recalcular los módulos del
contador divisor para cada nota, concluyendo de igual forma que en la etapa 2, que la frecuencia deseada a la salida del
contador divisor debía ser 512 veces mayor a la de la frecuencia de salida; de lo cual obtenemos la siguiente tabla de valores
de modulo:
Nota Frecuencia [Hz] Modulo10 Modulo16
Do 267776 187 BB
Re 300544 166 A6
Mi 337408 148 94
Fa 357376 140 8C
Sol 400896 125 7D
La 450560 111 6F
Si 505344 99 63
Do# 535552 93 5D
Silencio 25600000 2 02
Tabla 5. Codificación de módulo de las notas musicales para señal senoidal.
El esquema del control de muestras quedo de la siguiente manera:
Fig. 12. Esquema control de muestras para generación de onda senoidal.
Después de verificar el correcto funcionamiento de lo hasta ahora implementado, se procedió a obtener una melodía
automatizada por la activación de un switch, este tiene un funcionamiento igual a los pulsadores por tanto mientras no está
activado hay un valor lógico de 1.
El esquema de lo realizado es el siguiente:
UNIVERSIDAD INDUSTRIAL DE SANTANDER
ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES
Perfecta Combinación entre Energía e Intelecto
11
Fig. 13. Esquema para generación de melodía
.
En la figura se observa que hay principalmente un multiplexor de dos estradas, cuya salida está determinada por la variable
de control “modo” (la cual está asignada al switch). Las entradas son los 8 pulsadores o los datos contenidos en la memoria
ROM, los cuales son accedidos por un contador simple, cuya frecuencia acceso ha sido previamente disminuida por el
contador divisor.
Los cálculos se hicieron para lograr un barrido de 0.5 [Seg] entre nota y nota, pero teniendo en cuenta también que asigno
una nota denominada silencio, la cual es de gran utilidad para obtener diferentes escalas de tiempo.
UNIVERSIDAD INDUSTRIAL DE SANTANDER
ESCUELA DE INGENIERÍAS ELÉCTRICA, ELECTRÓNICA Y DE TELECOMUNICACIONES
Perfecta Combinación entre Energía e Intelecto
12
CONCLUSIONES
Por medio de este proyecto podemos concluir que para el diseño de PCB es de gran importancia la obtención de los
materiales previos a utilizar en dicho diseño ya que así se reducen costos y tiempo que son grandes variables de
peso en los proyectos.
Se logró lo propuesto por el grupo de trabajo, de alcanzar las etapas más importantes y con mayor ponderación en
las notas establecidas por el profesor.
Este proyecto fue la muestra del proceso y la evolución que se debe tener en cada una de las etapas de la vida,
mostrando la lógica a seguir y la paciencia para lograr cada uno de los objetivos propuestos.
BIBLIOGRAFIA
Floyd, Fundamentos de Sistemas Digitales, 7 Ed, Prentice Hall.
Tocci, Sistemas Digitales, 6 Ed, Prentice Hall.
http://linuxencaja.net/wiki/Main_Page
https://sites.google.com/site/semilleroadt
https://sites.google.com/site/tecnicasdigitales22012/laboratorios
Top Related