ATTiny USI I2C introducción - una interfaz de comunicación de gran alcance, rápido y conveniente para sus proyectos ATTiny! (5 / 8 paso)

Paso 5: Implementación de código abierto I2C ATTiny USI - USI Hardware

, Antes nos fijamos en el código, veamos la hoja de datos.  Concretamente estoy mirando el datasheet del ATTiny2313 como que es el chip que estoy usando, pero el mismo hardware USI se puede encontrar en muchos diversos modelos del ATTiny.  Tenga en cuenta que los pines de salida pueden ser diferentes entre chips, pero de lo contrario el hardware funciona de la misma manera y tiene los mismos registros.

El hardware USI tiene tres pines:

HACER - salida de datos, utilizada para tres hilos (SPI) modo de comunicación sólo

DI/SDA - datos de entrada serie, utilizada como SDA en configuración I2C

USCK/SCL - reloj, utilizado como SCK en configuración I2C

Además, el hardware USI tiene tres registros:

Datos de cambios USIDR - USI cambio de registro de datos - dentro y fuera del hardware USI

USISR - USI Status Register - tiene indicadores de estado y contador de 4 bits (más sobre esto abajo)

USICR - registro de Control de USI - se permite interrupción, modos de reloj y las funciones del software reloj Flash

Contador de 4 bits

El contador de 4 bits ocupa los 4 bits más bajos de USISR y se utiliza el tiempo de las interrupciones de desbordamiento cuando funciona en modo esclavo así como para generar pulsos de reloj SCK en modo maestro.  Ser un contador de 4 bits, cuenta hacia arriba de 0 a 15 antes de desbordamiento.  A rebosar, que puede desencadenar una interrupción (USI_OVERFLOW_vect, habilitado por un poco de USICR).  Esto se utiliza para la tabla de estado esclavista USI de transmisión como alterna entre Estados de transmisión (más sobre esto en la sección de código auxiliar).

Cuando actúa como un maestro, el contador de 4 bits se utiliza junto con el pedacito de luz estroboscópica de reloj en USICR para generar el reloj SCK.  Se establece el contador de desbordamiento en el número de impulsos de reloj que desee generar (generalmente 8 o 1, con 8 ser una transmisión de datos y 1 siendo una transmisión ACK/NACK).  Entonces, usted lazo hasta el desbordamiento del contador, ajuste continuamente el bit de reloj Flash y realizar una espera de retraso.  Más sobre esto pueden verse en la sección de código.

Unidad de Control de reloj de dos hilos (Detector de condición de inicio)

La unidad de Control del reloj de TWI es un módulo en la USI que monitorea la línea SCK para iniciar y detener las condiciones.  Su propósito primario es el detector de condición de inicio, que, cuando está activado, genera una interrupción de USI_START_vect cuando detecta una condición de inicio válido.  Este manejador de interrupción es el punto de partida para el manejo de transmisión de USI I2C modo esclavo y debe configurar el contador de 4 bits a desbordamiento después de que se ha producido la transmisión de la dirección.  A partir de ahí, la interrupción de desbordamiento gestiona el resto de ese mensaje de I2C y restablece el detector de condición de inicio para el siguiente mensaje.

Lea la hoja de datos

No entraré en detalle en cada uno de los pedacitos en cada uno de estos registros, pero si quieres escribir algo de código de USI es esencial que usted Lea estas secciones de la hoja de datos.  Recomiendo leer el todo Universal interfaz Serial - sección USI (páginas 142-150 de la hoja de datos completa del ATTiny2313).  Esto le dará toda la información que usted necesita además de lo he señalado aquí.

Artículos Relacionados

Cómo hacer una ballesta de madera extremadamente de gran alcance!

Cómo hacer una ballesta de madera extremadamente de gran alcance!

Helloen este video le estoy mostrando cómo hacer una ballesta muy potente compuestoDisfruta!: )
Shield Arduino Solar - una fuente solar DIY para sus proyectos, sin esperar a PCB

Shield Arduino Solar - una fuente solar DIY para sus proyectos, sin esperar a PCB

este instructable es una versión básica de Bley Joel ("es 9:00 en sábado, la muchedumbre regular baraja en") Protector Solary deberían funcionar para la mayoría arduinos.  Lo he probado con Arduino Pro de SparkFun y el nuevo Leonardo.Yo y los ot
PC controlado por Bluetooth Robot (con una interfaz gráfica de usuario!)

PC controlado por Bluetooth Robot (con una interfaz gráfica de usuario!)

En este Instructable le mostrará cómo construir un robot que se controla vía Bluetooth con un teclado, tiene una interfaz gráfica de usuario construida con el proceso que muestra la entrada del teclado y realmente convierte la opción todo en una gran
Cubecube: Una interfaz Tangible de CAD.

Cubecube: Una interfaz Tangible de CAD.

Cubecube - un proyecto de hardware open source - es una interfaz táctil y tangible para CAD (diseño asistido por ordenador). Diseño de código abierto plataformas siguen apareciendo, hay una oportunidad para explorar nuevas posibilidades en lo que cre
TapTunes - una interfaz Tap a iTunes

TapTunes - una interfaz Tap a iTunes

como parte de mi proyecto de término de interacción persona-ordenador, yo montada encima de un pequeño programa que permitiría a los usuarios controlar iTunes pulsando varios patrones en un sensor piezoeléctrico.  La Fundación de este proyecto fue el
Casa calefacción VSCP y una interfaz web

Casa calefacción VSCP y una interfaz web

Mis padres están jubilados y viven en el sur de Francia. Cálido en verano pero también puede ser frío durante el invierno.Que utilizan para viajar por varias semanas durante el invierno para visitar amigos y familiares, y como calientan la casa con m
DIDI: Una interfaz usable MIDI para aplicaciones de DJ

DIDI: Una interfaz usable MIDI para aplicaciones de DJ

FondoDIDI fue mi proyecto final de carrera para mi Licenciatura en música tecnología y electrónica aplicada en la Universidad de York. Mi reto era crear una pieza de tecnología portátil de música. Haber tenido experiencia con DJ ' s en el pasado, pen
Introducción: Una noche de intercambios de aprendizaje

Introducción: Una noche de intercambios de aprendizaje

Este es un taller de aprendizaje creativo inspirado y adaptado de clase semana 4 "compañeros" actividad de MIT MediaLab aprendizaje creativo de aprendizaje (LCL) masivo abierto en línea curso (MOOC).Más información aquí: http://discuss-learn.med
Interfaz de comunicación 1-wire

Interfaz de comunicación 1-wire

¿Qué es la tecnología 1-Wire?La base de la tecnología 1-Wire es un protocolo serial usando una referencia de línea y tierra única de datos para la comunicación. Master 1-Wire inicia y controla la comunicación con uno o más dispositivos 1-Wire esclavo
Utilizando powertool baterías como una fuente de alimentación genérica para otros proyectos

Utilizando powertool baterías como una fuente de alimentación genérica para otros proyectos

En este proyecto, voy a mostrar cómo aprovechar Ryobi baterías de powerpack para otros usos.¿Por qué hacer esto? Powertool batteires vienen con protección integrada de calidad, buena calidad cargadores, piezas son fácilmente disponible (es decir, más
Soporte de pintura conveniente para una escalera

Soporte de pintura conveniente para una escalera

Aquí es una manera muy barata, muy conveniente, para pintar en la parte superior de una escalera sin tener que sostener un cepillo y un bote de pintura. Puede instalarse en una escalera en 2 minutos y utiliza una taza de cerveza desechables extraíble
Pegar una rayita falsa para sus pelucas

Pegar una rayita falsa para sus pelucas

Hola chicos y Bienvenidos a mi tutorial paso a paso sobre cómo pegar una rayita de pelucas :D* Esta alteración de la peluca es para Sakura de Gate 7 (por abrazadera).¡ Disfrute!Paso 1: referencias! Como de costumbre: conseguir algunas buenas referenc
Cómo hacer una batería de gran alcance del agua

Cómo hacer una batería de gran alcance del agua

en este Instructable voy a explicar cómo hacer una batería de gran alcance que funciona con agua de la lluvia!Esta batería es ambientalmente amigable porque puede funcionar en el agua de lluvia. Todavía necesita los metales. Agua destilada no va a fu
Cómo hacer una pistola de nerf baratas y de gran alcance

Cómo hacer una pistola de nerf baratas y de gran alcance

este es mi primer instructivo, por lo que traté de hacerlo simple.El propósito de este instructivo es hacer una pistola de dardos Nerf barata que lleva 25 cartuchos y dispara más rápido que una pistola de Nerf promedio.La idea principal es hacer un s