Música despertador (22 / 24 paso)

Paso 22: Apéndice D: I2C / TWI Bus básico

I2C está parado para el circuito de Inter-Integrated. Buses I2C son también conocido como TWI para interfaz de dos hilos, ya que utiliza sólo dos hilos.

http://en.wikipedia.org/wiki/I%C2%B2C

En un autobús de TWI, los dos cables de señal son SDA y SCL, básicamente datos y reloj. Estas señales están abiertas de drenaje (es decir, su nivel de lógica es cualquier impedancia alta o baja, no puede nunca ser alta), pero debe haber una resistencia de pull-up en cada una de estas señales (estamos usando resistencias de pull-up interna de AVR). Esto es importante porque cualquier dispositivo en un bus de TWI puede conducir las señales de baja en cualquier momento, por lo que la señal sólo puede ser alta cuando todos los dispositivos permiten que sea alta. Esto permite que los dispositivos detectar cuando el bus está ocupado ("arbitraje utilizando SDA") y también permitir que un dispositivo lento dictar la velocidad del reloj o incluso pausar una transmisión si el dispositivo más lento está demasiado ocupado (esto se llama «estiramiento del reloj». Estos hechos hace que el autobús de TWI buena para la comunicación entre un montón de virutas con sólo dos cables.

Cada transacción está entre un maestro (que conduce la señal de reloj) y un dispositivo esclavo. Cada transacción se inicia con una "condición de inicio" y termina con un "estado final". Una condición de inicio es cuando las unidades maestro del bus SDA baja primero, después conducir SCL baja en segundo lugar. Una condición de final es cuando el maestro lanza el autobús TWI por liberación de SCL y SDA soltando.

Después de la condición de inicio, el maestro tiene que elegir que dispositivo para hablar mediante el envío de un byte de la dirección de 7 bits. 8 (último enviado) bit indica si el maestro desea leer (1) o escribir (0) al esclavo que se aborda. Si el maestro está escribiendo, enviará más información. Si el maestro está leyendo, liberará la línea SDA, por lo que el esclavo envía los datos (pero el maestro aún está impulsando el reloj). Cuando se dirigió a

Los bytes se envían MSB primero (más significativo bit primero). Cada byte se termina opcionalmente por un reconocimiento/nacknowledgement. Revise la hoja de datos del dispositivo para ver lo que espera o devolverá el dispositivo. Generalmente, por citar a Wikipedia: "si el maestro desea escribir al esclavo entonces repetidamente envía un byte con el esclavo envía un bit de ACK. (En esta situación, el maestro es en principal modo de transmisión y el esclavo es esclavo recepción.) Si el maestro desea leer desde el esclavo entonces repetidamente recibe un byte desde el esclavo, el maestro envía un ACK poco después de cada byte, pero la última de ellas. (En esta situación, el maestro es en master mode y el esclavo en esclavo transmite modo.) "

Más detalles son generalmente específicos para un dispositivo determinado, y dicha información provendrá de su hoja de datos.

Cuando utilizar I2C/TWI con Microcontroladores AVR, uso la capa de bajo nivel de la biblioteca de "Alambre" para Arduino. La biblioteca de alambre es la envoltura de C++ para el nivel "twi.c" y "twi.h" módulo inferior, que modificar ligeramente y compilar en mi código (ya que normalmente no utilizo C++). Se encarga de casi todo.

Para algunas formas de onda de analizador de la lógica, vea por favor el paso sobre el RTC DS1307

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