¿Cómo definir las direcciones de los dispositivos en el bus IIC (I2C)?
Bus IIC
Generalmente, la comunicación de datos en serie se divide en reloj y datos, asíncrona y síncrona.
Hay espera de un solo cable, de dos cables y de tres cables. .
I2C debe ser de 2 cables (sin contar el cable de tierra).
El protocolo I2C es realmente muy científico y es mejor que el SPI de 3/4 cables. , la velocidad de comunicación es relativamente alta con múltiples cables y será rápida.
El principio de I2C es:
Cuando SCL = 1 (nivel alto), no se debe engañar al SDA. !!!
De lo contrario, cuando SDA salta hacia abajo, la "penalización" es la "señal de inicio S", cuando SDA salta hacia arriba, la "penalización" es la "señal de parada P".
Cuando SCL=0 (nivel bajo), SDA es gratis ¡¡¡Tonto!!! (¡¡No engañes demasiado hasta el punto en que SCL salte alto)
Después de cada byte, la otra parte debe enviar un mensaje de vuelta. señal de respuesta ACK como señal de que la otra parte está en línea.
Señal de no respuesta Generalmente después del último byte de todos los bytes. Generalmente, debe estar firmada por un acuerdo entre ambas partes.
El host debe enviar SCL; de lo contrario, el mundo se convertirá en un caos.
El primer byte es "pieza" "Señal de selección", es decir, dirección esclava de 7 bits más 1 bit. control de dirección (lectura y escritura).
El esclavo solo puede enviar una señal de respuesta (¡¡¡debe responder!!!) después de recibir (escuchar) su propia dirección. Estás en línea.
¡¡¡Los esclavos con otras direcciones no pueden engañar !!! (Por supuesto, las llamadas grupales se pueden engañar, pero solo puedes escuchar y no hablar)
La lectura y la escritura están definidas desde la perspectiva del anfitrión.
"Leer" significa que el maestro recibe datos del esclavo y "escribir" significa que el maestro envía datos al esclavo.
El bit repetido se utiliza principalmente para que el maestro cambie del modo de envío al modo de recepción la "señal" de conversión, ya que solo hay 2 líneas,
Por lo tanto, la conversión del transceptor debe ser más complicada que SPI, porque SPI puede usar diferentes bordes para enviar y recibir datos. pero I2C no.
En el hardware, los módulos I2C, especialmente MCU/ARM/DSP, etc. obtendrán un código de estado preciso en cada etapa.
Basado en este código de estado, es Es fácil saber en qué estado se encuentra y qué mensaje de error es.
El bus I2C de 7 bits se puede conectar a 127 dispositivos I2C con diferentes direcciones, y el "dispositivo" número 0 se utiliza como dirección de llamada grupal.
El bus I2C de 10 bits se puede conectar a más dispositivos I2C de 10 bits.
En resumen, siempre que domines los trucos de I2C, lo es. generalmente fácil de controlar... El primer byte (dirección esclava) consta de una dirección de 7 bits y un bit de lectura y escritura R/W. Este byte es una dirección de dispositivo.
En primer lugar, debe saber: la dirección del dispositivo de los dispositivos de uso general con interfaz IIC de uso común se compone de tipo, modelo y código de direccionamiento, con un máximo de 7 dígitos.
Por ejemplo, el formato es el siguiente:
D7 D6 D5 D4 D3 D2 D1 D0
1-El tipo de dispositivo está determinado por: D7-D4 ***4 bits. Este tipo se arregló cuando fue producido por la empresa de semiconductores, lo que significa que estos 4 bits ya están fijos.
2-Código de dirección definido por el usuario: D3-D1***3 dígitos. Esto lo establece el usuario. Los dispositivos de uso común, como EEPROM, están determinados por el nivel combinado de tres pines del IC externo (usando nombres de uso común como A0, A1, A2). Este es también el código de direccionamiento.
Es por eso que el mismo tipo de IC en el mismo bus IIC sólo puede tener un máximo de 8 chips del mismo tipo.
3-El bit más bajo es el bit R/W. No necesito decir más sobre esto.
En los sistemas electrónicos modernos, hay una gran cantidad de circuitos integrados que necesitan comunicarse entre sí y con el mundo exterior. Para proporcionar eficiencia de hardware y simplificar el diseño de circuitos, PHILIPS desarrolló un bus serie I2C bidireccional simple de dos cables para control interno de IC. El bus I2C admite cualquier proceso de fabricación de circuitos integrados, y PHILIPS y otros fabricantes ofrecen una variedad muy rica de chips compatibles con I2C. Como bus de control patentado, I2C se ha convertido en un estándar industrial mundial.
Cada dispositivo tiene una dirección única y puede ser un dispositivo receptor único (por ejemplo: controlador LCD) o un dispositivo que puede recibir y transmitir (por ejemplo: memoria). El transmisor o receptor puede funcionar en modo maestro o esclavo, dependiendo de si el chip debe iniciar la transmisión de datos o simplemente está siendo direccionado. I2C es un bus multimaestro, es decir, puede ser controlado por múltiples dispositivos conectados.
La especificación básica del bus I2C se lanzó hace 20 años. Su velocidad de transferencia de datos es de hasta 100 Kbits/s y utiliza direccionamiento de 7 bits. Sin embargo, debido al rápido aumento en la velocidad de transferencia de datos y las funciones de la aplicación, el bus I2C también se ha mejorado al modo rápido (400 Kbits/s) y direccionamiento de 10 bits para satisfacer las necesidades de mayor velocidad y mayor espacio de direccionamiento.
El bus I2C siempre sigue el ritmo de la tecnología avanzada, pero aún mantiene su compatibilidad con versiones anteriores. Y recientemente se ha añadido un modo de alta velocidad, con velocidades de hasta 3,4 Mbits/s.
Permite que el bus I2C admita aplicaciones de transmisión en serie de alta velocidad existentes y futuras, como EEPROM y memoria Flash. En los sistemas electrónicos modernos, existen numerosos circuitos integrados que necesitan comunicarse entre sí y con el mundo exterior. Para proporcionar eficiencia de hardware y simplificar el diseño de circuitos, PHILIPS desarrolló un bus serie I2C bidireccional simple de dos cables para control interno de IC. El bus I2C admite cualquier proceso de fabricación de circuitos integrados, y PHILIPS y otros fabricantes ofrecen una variedad muy rica de chips compatibles con I2C. Como bus de control patentado, I2C se ha convertido en un estándar industrial mundial.
Cada dispositivo tiene una dirección única y puede ser un dispositivo receptor único (por ejemplo: controlador LCD) o un dispositivo que puede recibir y transmitir (por ejemplo: memoria). El transmisor o receptor puede funcionar en modo maestro o esclavo, dependiendo de si el chip debe iniciar la transmisión de datos o simplemente está siendo direccionado. I2C es un bus multimaestro, es decir, puede ser controlado por múltiples dispositivos conectados.
La especificación básica del bus I2C se lanzó hace 20 años. Su velocidad de transferencia de datos es de hasta 100 Kbits/s y utiliza direccionamiento de 7 bits. Sin embargo, debido al rápido aumento en la velocidad de transferencia de datos y las funciones de la aplicación, el bus I2C también se ha mejorado al modo rápido (400 Kbits/s) y direccionamiento de 10 bits para satisfacer las necesidades de mayor velocidad y mayor espacio de direccionamiento.
El bus I2C siempre sigue el ritmo de la tecnología avanzada, pero aún mantiene su compatibilidad con versiones anteriores. Y recientemente se ha añadido un modo de alta velocidad, con velocidades de hasta 3,4 Mbits/s. Permite que el bus I2C admita aplicaciones de transmisión en serie de alta velocidad existentes y futuras, como EEPROM y memoria Flash.