Música despertador (21 / 24 paso)

Paso 21: Apéndice C: la explicación más corta de USB siempre

USB utiliza dos hilos, usualmente llamados D + y D-, para transmitir datos. Estos dos cables son un par diferencial, lo que significa D-de señal será siempre D + de invierte el estado. Esto le permite transferir los datos muy rápido sobre un cable largo (5 metros de cable a 480 Mbit/s si se usa USB 2.0 de alta velocidad).

Buses USB tienen un dispositivo y el host, el equipo suele ser el anfitrión, nuestro reproductor de música es un dispositivo, más concretamente, un dispositivo de almacenamiento masivo. Es importante tener en cuenta que el host siempre iniciar la comunicación, o el anfitrión comprueba el dispositivo con frecuencia para ver si tiene algo que decir.

Hay resistencias de pull-up en D + o D - dependiendo de si es o no el dispositivo de USB 1.0, USB 1.1 o USB 2.0. La presencia de estas resistencias de pull-up es también cómo un ordenador sabe cuando algo se ha conectado. En el AT90USB1286 (aka el microcontrolador en el Teensy ++), las resistencias de pull-up son integradas y configurables vía software.

Cuando un dispositivo se conecta a un host, el host intenta "enumerar" el dispositivo. Si no hace así (dispositivo no responde, o responde con basura), que es cuando Windows dice "dispositivo no reconocido".

El host y el dispositivo habla sobre los canales llamados "extremos", criterios de valoración se identifican por un número. Hay algunos extremos que un apartado para uso especial, mientras que otros pueden configurarse para funcionar en modos diferentes (interrupción, a granel, etc.).

El anfitrión siempre utilizará el "extremo de control" (endpoint 0) primero para solicitar una descripción del dispositivo, este "descriptor" contendrá los identificadores de dispositivo (vendedor ID y ID del producto, etc.), junto con su clase, subclase, etc. (HID como un ratón o un teclado? o tal vez almacenamiento masivo?). Luego se solicita el descriptor de configuración, que contiene también el número de terminales disponibles en el dispositivo. Cada extremo tiene su propio descriptor así. Todos estos datos se envían como paquetes de bytes de datos que representa una estructura de datos especifica conocida.

LUFA (ligero USB Framework para AVRs) y otros marcos USB/pilas tienen "estructuras" y otros métodos para permitir que el programador modificar el contenido de los descriptores. Necesita primero entender cada descriptor y después Compruebe la documentación de LUFA para ver cómo cambiarlos.

El anfitrión hace las solicitudes mediante el envío de "paquetes de configuración" a "extremo de control". Paquetes de configuración tienen una estructura definida, lo que es fácil para el dispositivo entender lo que quiere el host. LUFA (y similares) generalmente se encarga de los paquetes de configuración por defecto. Un programador puede escribir controladores que envía paquetes de configuración personalizada, en cuyo caso el firmware debe manejar los paquetes de configuración manualmente, LUFA (y otros) proporciona algunos métodos a ayudar con eso.

En algunos de mis ejemplos, he incluido un volcado de los descriptores de capturados por el analizador de tráfico de mi USB. Puede echar un vistazo y coincidir con las especificaciones USB para ver lo que representa cada porción.

Una vez que han recuperado todos los descriptores del dispositivo, el host puede entonces entender el dispositivo y comunicarse con ella. En algunas de mis manifestaciones, el dispositivo USB actúa como un puerto serie virtual. Al llamar a la función "usb_serial_putchar", el personaje a se coloca en un búfer y enviado cuando el ordenador (host) hace un chequeo periódico (recuerde lo que dije sobre el anfitrión siempre iniciar comunicación). Cuando AT90USB1286 en Teensy ++ se convierte en un dispositivo de almacenamiento masivo USB, cuando la computadora envía comandos SCSI para leer bloques de datos, el dispositivo responde con los datos sobre un extremo del bulto.

Tengo otro Instructable que le muestra cómo construir un teclado USB tipos el código almacenado en etiquetas RFID:

Tarea: Leer USB en una cáscara de nuez http://www.beyondlogic.org/usbnutshell/usb1.shtml que es casi una Biblia USB

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