Música despertador (14 / 24 paso)

Paso 14: Introducción a la VS1033D

El VS1033d es un decodificador de música, digital a analógico convertidor, y auriculares todos construidos en un solo paquete, con otras campanas y silbidos como grabación. VLSI hace estos chips. SparkFun vende el VS1033D en un tablero de arranque, vaya compre uno o algo similar.

VS1033D página del producto: http://www.vlsi.fi/en/products/vs1033.html
SparkFun breakout Junta: http://www.sparkfun.com/products/8792
Ficha técnica: http://www.vlsi.fi/fileadmin/datasheets/vlsi/vs1033d.pdf

La Junta de arranque de SparkFun ya cuenta con los circuitos externos recomendados para el chip VS1033D desnudo, si no utilizas este breakout Junta, deberá implementar los circuitos externos recomendados, que usted debe averiguar mediante la lectura de la hoja de datos. Pero no le mostrará cómo hacerlo, le mostrará mi esquema usando el tablero de arranque. Si usted toma una mirada en esquemas de SparkFun VS1033D breakout board, puede hacer comparaciones entre los esquemas recomendados dentro de la hoja de datos y la Junta de arranque.

Este chip tiene dos interfaces SPI, uno de comandos y configuración (velocidad de reloj, volumen, etc.) llamado SCI, el otro para la transmisión de datos de audio llamados SDI. Ambos autobuses SPI utilizan el SPI modo 0 (CPOL y CPHA ambos 0, igual a nuestra tarjeta SD, que es bueno), significado el reloj comienza baja y bajo las hojas y los datos se lee en el borde de levantamiento. Existe una activo chip bajo selección para ambas interfaces (CS de SCI y DCS para SDI, el pin DCS es también llamado BSYNC a veces). Con el cristal de 12,288 MHz en el tablero de arranque, su velocidad de reloj SPI no puede ser más de 2 MHz (así que... tenemos que retrasar el reloj SPI antes de enviar datos a la VS1033D y lo volver a 4 MHz, ya que la tarjeta SD usa un reloj de 4 MHz SPI y tenemos la tarjeta SD para ser rápido).

(nota, esto es corte de http://www.frank-zhao.com/cache/mp3_decoder.htm que es mi propia página web)

Todos los comandos, lee / escribe a VS1033D internos registros se realizan a través de la interfaz SCI.
Usted necesita leer la hoja de datos para entender los diferentes comandos y tal, por favor hágalo.

Los únicos datos que se envían a través de la interfaz SDI están el contenido de un archivo de canción. No tenemos que enviar el nombre del archivo, los datos dentro de una canción ya contienen información de identificación por lo que el VS1033D siempre sabe qué formato de archivo que estamos enviando, que es una cosa menos que tendrá que preocuparse. También, envío de datos no válidos hará que la VS1033D simplemente descartar esos datos y pedir más datos, esto significa que si enviamos un archivo mal, la VS1033D no va a flipar o congelar.

Hay un búfer FIFO (primero en primero hacia fuera) de decodificador interno dentro de la VS1033D. El pin "DREQ" es el pin de petición de datos, y si es alta, significa que nos permite enviar más de 32 bytes de datos de la canción.

La hoja de datos a hablar a modo de VS1002 y un modo de compatibilidad VS1001. Esto es porque la VS1002 y sus fichas después de la VS1002 (incluyendo la VS1033) vinieron después el VS1001, pero pueden ser configurado para ser compatible con el VS1001. Esto puede ser configurado con el registro de "Modo", pero nos estamos pegando con el modo más reciente.

También las dos interfaces SPI, SDI y SCI, pueden compartir el mismo chip select. Esta opción puede habilitarse en el registro de "Modo". No podemos utilizar esta característica porque tenemos un chip adicional seleccione la tarjeta MicroSD para cuidar.

Según el shematics de la Junta de arranque de VS1033D de SparkFUn, el cristal utilizado es 12,288 MHz. El "CLOCKF" registro de necesidades se establece en 0x9000 según la hoja de datos. La hoja de datos tiene más detalles sobre esta configuración. En mi código de 0xF800 para apoyar a WMA y AAC descifrar.

Existen varias maneras eficaces de determinar cuánto tiempo una canción y la posición actual en la canción que estamos jugando. Por eficiente, me refiero a que no tenemos que leer el contenido de la canción. La hoja de datos dice "SCI_DECODE_TIME" almacena el tiempo que se ha reproducido en segundos, bastante simples. La hoja de datos también detalles "SCI_HDAT0" y "SCI_HDAT1", que contendrá el tipo de archivo actual y tasa de bits, y si conocemos el tamaño de archivo total y tasa de bits (lo que hacemos, nos dice FatFs), entonces simplemente podemos calcular el tamaño total de una canción.

Volumen se controla mediante el registro de "SCI_VOL". Más signi? cativo bytes del registro de volumen controla el volumen del canal izquierdo, la parte inferior controla el volumen del canal derecho. Por lo general, volumen es un valor logarítmico (un aumento lineal de la amplitud de la onda no equivale a un aumento lineal del volumen producido) y no queremos hacer cálculos logarítmicos en un microcontrolador pequeño, pero el VS1033D se encarga de esto para nosotros. El volumen del canal establece la atenuación del nivel de volumen máximo en pasos de 0,5 dB. Puesto que el cambio es en pasos de decibelios, significa que el VS1033D tomó el cuidado de las matemáticas para nosotros. El volumen máximo es 0 x 0000 y el silencio total es 0xFEFE, ya que "atenuar" significa "inferior".

La secuencia de inicialización general para el VS1033D es como esto:
1. reset
2. establecer registro de "Modo" para que no estamos usando modo de compatibilidad VS1001 y no estamos compartiendo chip select entre SDI y SCI
3. Ajuste la velocidad de reloj correcta usando registro "CLOCKF"
4. Ajuste el volumen, esto es opcional, pero nos gustaría recordar la configuración del usuario anterior

El cableado para la demostración de este ejemplo es más complicado, y necesita también conectar la tarjeta SD. Compilación-subir-funcione el ejemplo que he proporcionado. Deben jugar todos los archivos en la tarjeta SD a máximo volumen. Por favor lea el código fuente para entender la API que he creado y lo que está sucediendo. El puerto serie de depuración mostrará mensajes simples así.

Yo he también proporcionó la lógica analizador archivos, que muestra cuándo enviar los datos donde. Tipo de importante. Usted puede emparejar encima de los comandos que envía a la VS1033D a los comandos en la hoja de datos y encontrar donde te los mando en mi código.

Yo no puedo adjuntar el archivo de sesión lógica cruda analizador onda esta vez porque es demasiado grande. Está contenida en el. ZIP en lugar de otro paquete

Esta demo juega simplemente todos los archivos en el directorio raíz de la SD a volumen máximo.

Artículos Relacionados

LED amanecer / amanecer despertador, luz nocturna y luz seguridad - compatible con Arduino

LED amanecer / amanecer despertador, luz nocturna y luz seguridad - compatible con Arduino

como las noches alargadas gradualmente en otoño 2011, descubrí los placeres del Arduino y pensó que sería una buena manera de implementar algo que he querido durante mucho tiempo - una manera suave para despertar en la mañana de un invierno.  Lamenta
LittleBits reproductor de música Wi-Fi

LittleBits reproductor de música Wi-Fi

Sin hilos controlar este reproductor de música con el teléfono o a través de una variedad de canales IFTTT.Utilizar Control de Cloud (en su teléfono u ordenador) para avanzar de a canción a la siguiente o probar la fecha y hora canal de IFTTT para ha
Despertador de RaspberryPi

Despertador de RaspberryPi

Se trata de un despertador basado en un RaspberryPi. Cualquier RaspberryPi funcionará. Utilicé una modelo B1 versión 2 porque tiene los orificios de montaje y la velocidad no importa. Tengo una tarea que debe realizarse cada dos días. Por eso hay un
Teléfono móvil de carga / estación de música (altavoces de escritorio antigua de reutilización)

Teléfono móvil de carga / estación de música (altavoces de escritorio antigua de reutilización)

decidí usar mis viejos altavoces estéreos e incorporarlos en mi estación de carga, por lo que puedo reproducir mi música con el más bajo. (Mucho mejor que el altavoz del teléfono móvil) + puede ser utilizado como un altavoz muy fuerte o un despertado
Despertador de amplificador de guitarra

Despertador de amplificador de guitarra

Esta idea estaba tomando de un anterior instructable.por lonesoulsurferEsto puede ser uno de lo más fácil, barato, pero aún brillante instructivo que he visto. Como un maestro nos desafió a nuestros estudiantes de la escuela en una vieja radio. Despu
Rompecabezas reloj despertador

Rompecabezas reloj despertador

En este instructable voy a mostrar cómo construir un reloj de alarma que le permite ajustar el tiempo arreglando los dígitos.Casi nunca consigo en una discusión con mi novio, pero cuando lo hacemos es casi siempre acerca de la configuración de la hor
Personalizada alarma reloj/música en Radio

Personalizada alarma reloj/música en Radio

Este proyecto un Pi de frambuesa bastante sencillo para los entusiastas de Raspberry Pi nivel principiante. En este Instructable le mostrará cómo hacer un reloj de alarma que se transmiten en la banda de FM. Esto le permitirá poder escuchar la radio
Infalible despertador inteligente

Infalible despertador inteligente

¿Siempre despierta en su reloj de alarma sólo para apagarla, pone hacia abajo, cierre los ojos durante unos pocos segundos... y terminan despertando mucho más tarde que había querido? Este proyecto pretende resolver el problema mediante la construcci
Reloj despertador ensordecedor

Reloj despertador ensordecedor

un reloj de alarma (modificado) confiable que despertará a los muertos. Pongo este juntos después de haber tenido varias alarmas cuerdas romper conmigo. Básicamente es un despertador electrónico modificado para disparar una alarma. Ya que estoy práct
Auto-en la música en el Hack de baño

Auto-en la música en el Hack de baño

Tienen el juego de radio cada vez que encienda las luces en el cuarto de baño. Asegúrese de apagar las luces y los interruptores para evitar electrocución! Parche solo en su viejo despertador que ya no utilizas y viola! Auto de música cada vez que la
Reloj despertador con infrarrojo y Bluetooth altavoces

Reloj despertador con infrarrojo y Bluetooth altavoces

INTRODUCCIÓNHola, mi nombre es Ben Hur Gonçalves, soy Ingeniero Mecatrónico graduado en Universidade de São Paulo, Brasil en 2010. Hoy en día trabajo con bienes raíces, pero hacer estos proyectos con arduino en fines de semana, sólo por diversión. Es
Reloj despertador Pac_Man MP3

Reloj despertador Pac_Man MP3

InglésEste es mi primer instructables :-) lo siento por mi inglés... ¡ Soy francés!Tiene estructura para mi hija un despertador MP3 con la cara divertida de Pac_Man (ahora ella despertar todo solo)FrancésC ' est mon 1er instructables :-)J ' ai constr
WeggUp - un dormir del ciclo y la luz despertador

WeggUp - un dormir del ciclo y la luz despertador

A menudo tengo el problema, que tengo problemas para levantarme en la mañana, mientras que al mismo tiempo, tengo problemas para dormir en la noche.He comprobado varias posibilidades para hacer tanto más fácil.Levantarse en la mañanaAlarma de salida
Reloj despertador con Evive

Reloj despertador con Evive

Queremos hacer un reloj de alarma analógico y digital combinado. Reloj de tiempo real es esencial para el reloj mantener el tiempo, incluso si está apagada. Pero comúnmente disponibles tableros de microcontrolador como Arduino o frambuesa Pi no tiene