Title: EL BUS INTER-INTEGRATED CIRCUITS I2C
1EL BUS INTER-INTEGRATED CIRCUITS I2C
El bus I2C
Microcontroladores
M.C. Carlos E. Canto Quintal
2EL BUS I2C
El bus I2C
Microcontroladores
- Para simplificar la interconexión de dispositivos
al microprocesador, Philips desarrolló un
sencillo bus bidireccional basado en dos hilos
por el que se trasmiten los datos vía serie y lo
llamó El Bus I2C. - EL Bus I2C (Inter- Integrated Circuits) fue
desarrollado al principio de los 80s. Su
propósito original fue el de proporcionar una
manera fácil de conectar un CPU a los chips
periféricos en un equipo de TV. - EL PROBLEMA A RESOLVER
- Los dispositivos periféricos en sistemas
embebidos se conectan al mControlador como
dispositivos de E/S mapeados en memoria usando
las líneas paralelas del bus de dirección y de
datos. Esto produce una gran cantidad de pistas
en el PCB para enrutar las líneas de direcciones
y de datos, sin mencionar un número de
decodificadores de direcciones y lógica adicional
para conectar todo. - Muchas líneas de control implican que el sistema
sea más susceptible a perturbaciones por
Interferencia Electromagnética (EMI) y Descarga
Electrostática (ESD).
M.C. Carlos E. Canto Quintal
3Las características más importantes del bus I2C
son
El Bus I2C
Microcontroladores
- Comunicación serial, utilizando un conductor para
manejar el timming (SCL) (pulsos de reloj) y otro
para intercambiar datos (SDA), que transportan
información entre los dispositivos conectados al
bus. - Las líneas SDA (Serial Data) y SCL (Serial Clock)
etán conectadas a la fuente de alimentación a
través de las resistencias de pull-up. Cuando el
bus está libre, ambas líneas están en nivel alto. - Los dispositivo puede ser considerado como
Mastero (Master) o esclavo (Slave). - El Maestro es el dispositivo que inicia la
transferencia en el bus y genera la señal de
Clock. - El Slave (esclavo) es el dispositivo
direccionado. -
M.C. Carlos E. Canto Quintal
4Transmisión de bits
El bus I2C
Microcontroladores
- Los bits de datos van por SDA
- Por cada bit de información es necesario un
pulso de SCL - Los datos sólo pueden cambiar cuando SCL está a
nivel bajo
M.C. Carlos E. Canto Quintal
5El bus I2C
Microcontroladores
- Los datos transitan en la bajada del reloj
- El dato es recibido en el borde de bajada del
reloj - El bit más significativo se envía primero
- El nodo que recibe debe manejar un acknowledge
(bajo en SDA) después de completado el byte - El nodo maestro siempre genera el reloj
M.C. Carlos E. Canto Quintal
6El bus I2C
Microcontroladores
Las características más importantes del bus I2C
son
Cada dispositivo es reconocido por una única
dirección (si es un microcontrolador, LCD,
memoria o teclado) y cualquiera puede operar como
transmisor o receptor de datos, dependiendo de la
función del dispositivo. Un display es solo un
receptor de datos mientras que una memoria recibe
y transmite datos.
M.C. Carlos E. Canto Quintal
7El bus I2C
Microcontroladores
Las características más importantes del bus I2C
son
- Trasferencia de datos
- Los datos y direcciones que se transmiten por SDA
son de 8 bits. - Tras cada bloque debe recibirse una señal de
reconocimiento.
.
M.C. Carlos E. Canto Quintal
8El bus I2C
Microcontroladores
Las características más importantes del bus I2C
son
- La cantidad de dispositivos que se pueden
conectar al bus está limitada, solamente, por la
máxima capacidad permitida de 400 pF. - El bus permite la conexión de varios Masters, ya
que incluye un detector de colisiones. - El protocolo de transferencia de datos y
direcciones posibilita diseñar sistemas
completamente definidos por software.
M.C. Carlos E. Canto Quintal
9El bus I2C
Microcontroladores
Las características más importantes del bus I2C
son
- La especificación original, o modo de estandar,
fue para transferencia de datos hasta 100 Kbps. - El bus serial I2C ha sido extendido para soportar
velocidades de hasta 3.4 Mbits/s. Combinado con
una función de desplazamiento del nivel de
voltaje, en modo High-speed (Hs-mode) ofrece una
solución ideal para los sistemas de tecnología
mezclada, donde las altas velocidades y la
variedad de voltajes (5 V, 3 V o menor) son
comúnmente usados. -
- El reloj determina la velocidad de transmisión
de los datos.
M.C. Carlos E. Canto Quintal
10Los modos de transferencia de datos del bus I2C
El bus I2C
Microcontroladores
Las características más importantes del bus I2C
son
- Modo Estándar (S-mode) aproximadamente a 100
kBits/Seg. - Modo Rápido (F-mode) aproximadamente a
400kbits/Seg. - Modo Alta velocidad (Hs-mode) mas de 3,4
Mbits/Seg.
M.C. Carlos E. Canto Quintal
11 Definiciones o términos utilizados en relación
con las funciones del bus I2C
El bus I2C
Microcontroladores
- Maestro (Master) Dispositivo que determina la
temporización y la dirección del tráfico de datos
en el bus. Es el único que aplica los pulsos de
reloj en la línea SCL. Cuando se conectan varios
dispositivos maestros a un mismo bus la
configuración obtenida se denomina
"multi-maestro". - Esclavo (Slave) Cualquier dispositivo conectado
al bus incapaz de generar pulsos de reloj.
Reciben señales de comando y de reloj proveniente
del dispositivo maestro. - Bus Desocupado (Bus Free) Estado en el cual
ambas líneas (SDA y SCL) están inactivas,
presentando un estado lógico alto. Unicamente en
este momento es cuando un dispositivo maestro
puede comenzar a hacer uso del bus. - Comienzo (Start) Sucede cuando un dispositivo
maestro hace ocupación del bus, generando esta
condición. La línea de datos (SDA) toma un estado
bajo mientras que la línea de reloj (SCL)
permanece alta. - Parada (Stop) Un dispositivo maestro puede
generar esta condición dejando libre el bus. La
línea de datos toma un estado lógico alto
mientras que la de reloj permanece también en ese
estado.
M.C. Carlos E. Canto Quintal
12 Definiciones o términos utilizados en relación
con las funciones del bus I2C
El bus I2C
Microcontroladores
- Dato Válido (Valid Data) Sucede cuando un dato
presente en la línea SDA es estable mientras la
línea SCL está a nivel lógico alto. - Formato de Datos (Data Format) La transmisión de
datos a través de este bus consta de 8 bits de
datos (ó 1 byte). A cada byte le sigue un noveno
pulso de reloj durante el cual el dispositivo
receptor del byte debe generar un pulso de
reconocimiento, conocido como ACK (del inglés
Acknowledge). Esto se logra situando la línea de
datos a un nivel lógico bajo mientras transcurre
el noveno pulso de reloj. - Dirección (Address) Cada dispositivo diseñado
para funcionar en este bus dispone de su propia y
única dirección de acceso, que viene
pre-establecida por el fabricante. Hay
dispositivos que permiten establecer externamente
parte de la dirección de acceso. Esto permite que
una serie del mismo tipo de dispositivos se
puedan conectar en un mismo bus sin problemas de
identificación. La dirección 00 es la denominada
"de acceso general", por la cual responden todos
los dispositivos conectados al bus. - Lectura/Escritura (Bit R/W) Cada dispositivo
dispone de una dirección de 7 bits. El octavo bit
(el menos significativo ó LSB) enviado durante la
operación de direccionamiento corresponde al bit
que indica el tipo de operación a realizar. Si
este bit es alto el dispositivo maestro lee
información proveniente de un dispositivo
esclavo. En cambio, si este bit fuese bajo el
dispositivo maestro escribe información en un
dispositivo esclavo.
M.C. Carlos E. Canto Quintal
13Terminología básica del Bus I2C
El bus I2C
Microcontroladores
Términos Descripción
Transmisor El dispositivo que envía datos al Bus
Receptor El dispositivo que recibe datos desde el Bus
Master (Maestro) El dispositivo que inicia una transferencia, genera las señales del reloj y termina un envío de datos
Slave (Esclavo) El dispositivo direccionado por un master
Multi-Master Mas de un master puede controlar el bus al mismo tiempo sin corrupción de los mensajes
Arbitraje Procedimiento que asegura que si uno o mas master simultáneamente deciden controlar el Bus solo uno es permitido a controlarlo y el mensaje saliente no es deteriorado
Sincronización Procedimiento para sincronizar las señales del reloj de dos o mas dispositivos
M.C. Carlos E. Canto Quintal
14Respaldo Tecnológico
El bus I2C
Microcontroladores
- Tanto Philips como como otros fabricantes de
dispositivos compatibles con I2C disponen de una
amplia gama de circuitos integrados, incluyendo
memorias RAM y EEPROM, microcontroladores,
puertos de E/S, codificadores DTMF, tranceptores
IR, conversores A/D y D/A, relojes de tiempo
real, calendarios, etc - Dado que no siempre se requiere alta velocidad de
transferencia de datos este bus es ideal para
sistemas donde es necesario manejar información
entre muchos dispositivos y, al mismo tiempo, se
requiere poco espacio y líneas de circuito
impreso. Por ello es común ver dispositivos I2C
en video grabadoras, sistemas de seguridad,
electrónica automotriz, televisores, equipos de
sonido y muchas otras aplicaciones más.
M.C. Carlos E. Canto Quintal
15El bus I2C
Microcontroladores
Respaldo Tecnológico
- Incluso, y gracias a que el protocolo es lo
suficientemente simple, usualmente se ven
dispositivos I2C insertados en sistemas
microcontrolados que no fueron diseñados con
puertos I2C, siendo el protocolo generado por el
firmware. - También hay dispositivos de adaptación que
permiten conectar buses originalmente paralelos a
sistemas I2C. Tal es el caso del chip PCD 8584 de
Philips el cual incorpora en el chip todo lo
necesario para efectuar dicha tarea. - Hay, además, circuitos integrados cuya única
misión es adaptar los niveles presentes en el bus
I2C y TTL, permitiendo resolver fácil y
rápidamente la interconexión de dispositivos de
dicha familia con el I2C.
M.C. Carlos E. Canto Quintal
16El protocolo del Bus I2C
El bus I2C
Microcontroladores
M.C. Carlos E. Canto Quintal
17Formato del Mensaje
El bus I2C
Microcontroladores
- Un protocolo orientado a BIT
- Handshaking
- Bidireccional
M.C. Carlos E. Canto Quintal
18Maestro envía datos a un esclavo
El bus I2C
Microcontroladores
M.C. Carlos E. Canto Quintal
19Transferencia de datos
El bus I2C
Microcontroladores
- El Maestro genera la condición de Start.
- Cada palabra puesta en el bus SDA debe tener 8
bits, la primera palabra transferida contiene la
dirección del Esclavo seleccionado. -
- Tras el envío del start o inicio, en los
siguientes 7 bits se codifica la dirección del
dispositivo. Y el octavo bit indica si se hace
lectura(1) o escritura(0). - Después de cada 8 bits, el master debe esperar
una señal de reconocimiento como respuesta por
parte del esclavo, lee el estado de la línea SDA,
si vale 0 (impuesto por el esclavo), el proceso
de transferencia continúa. Si vale 1, indica que
el circuito direccionado no valida la
comunicación, entonces, el Maestro genera un bit
de stop para liberar el bus I2C. - Este acuse de recibo se denomina ACK
(acknowledge) y es una parte importante del
protocolo I2C. - Al final de la transmisión, el Maestro genera la
condición de Stop y libera el bus I2C, las líneas
SDA y SCL pasan a estado alto.
M.C. Carlos E. Canto Quintal
20El bus I2C
Microcontroladores
Inicio de transmisión La transmisión la inicia
el maestro Flanco de bajada en SDA con SCL a
nivel alto Cuando nadie accede al bus hay un
nivel alto en SCL y SDA
M.C. Carlos E. Canto Quintal
21Condiciones de START y STOP
El bus I2C
Microcontroladores
START la línea SDA cae a cero mientras SCL
permanece en nivel alto. A partir de este momento
comienza la transferencia de datos.
Una vez finalizada la comunicación se debe
informar de esta situación (condición de Stop).
La línea SDA pasa a nivel alto mientras SCL
permanece en estado alto.
M.C. Carlos E. Canto Quintal
22Start y Stop
El bus I2C
Microcontroladores
- Start SDA baja cuando el reloj (SCL) es alto
- Stop SDA sube cuando SCL es alto
- (Normalmente no hay transición cuando el reloj es
alto)
M.C. Carlos E. Canto Quintal
23Enviando a un Esclavo
El bus I2C
Microcontroladores
M.C. Carlos E. Canto Quintal
24Eventos del bus I2C leyendo un Acknowledge de
un Esclavo
El bus I2C
Microcontroladores
- Cuando se ha transmitido al bus un byte de
dirección o de dato éste debe ser RECONOCIDO
por el o los esclavos. - En el caso de una dirección Si la dirección
concuerda con la propia entonces ese esclavo y
solamente ese esclavo enviará un acuse de
recibido de la dirección con un ACK. También se
responde con un ACK en el caso de un byte
transmitido a un esclavo ya direccionado . El
esclavo que va a dar un ACK pone a bajo la línea
SDA inmediatamente después de la recepción del
octavo bit, o, en caso de un byte de dirección ,
inmediatamente después de la evaluación de su
dirección. - Esto significa que tan pronto como el maestro
baja SCL para completar la transmisión del bit
(1), SDA será puesto a bajo por el esclavo (2). - El maestro ahora emite un pulso de reloj en la
línea SCL (3) El esclavo liberará la línea SDA
hasta la terminación de este pulso (4) de reloj. -
El Bus queda disponible de nuevo para que el
maestro continúe enviando datos o generar una
condición de STOP. En caso de que un dato vaya a
ser escrito al esclavo, este ciclo debe
completarse antes de que se genere una condición
STOP. El esclavo estará bloqueando el bus (la
línea SDA es mantenida en bajo por el esclavo)
hasta que el maestro haya generado un pulso de
reloj en la línea SCL.
M.C. Carlos E. Canto Quintal
25Reconocimiento (Acknowledge)
El bus I2C
Microcontroladores
M.C. Carlos E. Canto Quintal
26- Reconocimiento
- El bit de reconocimiento es obligatorio en la
transferencia de datos. El pulso de reloj
correspondiente al bit de reconocimiento (ACK) es
generado por el Master. El Transmisor desbloquea
la línea SDA ("1") durante el pulso de
reconocimiento. El receptor debe poner a "0" la
línea SDA durante el pulso ACK de modo que siga
siendo "0" durante el tiempo que el master genera
el pulso "1" de ACK. - Normalmente un receptor cuando ha sido
direccionado esta obligado a generar un ACK
después de que cada byte a sido recibido. - Cuando un dispositivo esclavo no genera el bit
ACK (porque esta haciendo otra cosa y no puede
atender el Bus) debe mantener el esclavo la línea
SDA a nivel "1" durante el bit ACK. El Master
entonces puede generar una condición de STOP
abortando la transferencia de datos o repetir la
condición de Inicio enviando una nueva
transferencia de datos. - Si un Esclavo-receptor que esta direccionado no
desea recibir mas bytes, el master debe detectar
la situación y no enviar mas bytes. Esto se
indica porque el esclavo no genera el bit ACK en
el primer byte que sigue. El esclavo pone la
línea SDA a "1" lo que es detectado por el Master
el cual genera la condición de Stop o repite la
condición de Inicio. - Si un Master-receptor esta recibiendo datos de un
Esclavo-transmisor debe generar un bit ACK tras
cada byte recibido de transmisor, para finalizar
la transferencia de datos no debe generar el ACK
tras el ultimo byte enviado por el esclavo. El
esclavo-transmisor debe permitir desbloquear la
línea SDA generando el master la condición de
Stop o de Inicio.
27Transferencia completa
El bus I2C
Microcontroladores
M.C. Carlos E. Canto Quintal
28RELACIÓN ENTRE LOS NIVELES DE SDA Y SCL
El bus I2C
Microcontroladores
- Todos los maestros deben generar una subida en
la línea SCL (2), leer el nivel en SDA (3) y
generar una caida en la línea SCL (4). - El Esclavo no debe cambiar el dato durante el
tiempo que SCL es alto ( de lo contrario podría
generarse una condición START o STOP imprevista)
. - Durante (1) y (5), el esclavo puede cambiar el
estado de la línea SDA. - En total está secuencia debe ser realizada 8
veces para completar el byte dato.
- Los bytes siempre son transmitidos con el Bit Más
Significativo primero.
M.C. Carlos E. Canto Quintal
29Maestro lee datos de un esclavo
30Eventos del Bus I2C Recibiendo un byte de un
Esclavo
El bus I2C
Microcontroladores
Una vez que el esclavo ha sido direccionado y el
esclavo ha reconocido ésto, el maestro puede
recibir un byte del esclavo si el bit R/W en la
dirección se puso en modo READ ( puesto a 1)
La sintaxis del protocolo es la misma que cuando
se transmite un byte a un esclavo, excepto que
ahora no se le permite al maestro tocar la línea
SDA. Previo al envió por la línea SCL,de los 8
pulsos de reloj necesarios para el envió del byte
, el maestro libera la línea SDA. Ahora el
esclavo tomará el control de esta línea. La
línea se irá a alto si se desea transmitir un
1 o si el esclavo desea mandar un 0, se
mantiene en bajo.
M.C. Carlos E. Canto Quintal
31El bus I2C
Microcontroladores
- Para operar un esclavo sobre el Bus I2C solo son
necesarios seis simples códigos, suficientes para
enviar o recibir información. - Un bit de Inicio
- 7-bit o 10-bit de direccionamiento
- Un bit R/W que define si el esclavo es transmisor
o receptor - Un bit de reconocimiento
- Mensaje dividido en bytes
- Un bit de Stop
M.C. Carlos E. Canto Quintal
32El bus I2C
Microcontroladores
Esquema básico de conexiones
- Las líneas SDA y SCL son del tipo drenador
abierto, similares a las de colector abierto pero
asociadas a un transistor de efecto de campo (ó
FET)..
Se deben poner en estado alto (conectar a la
alimentación por medio de resistores Pull-Up)
para construir una estructura de bus tal que se
permita conectar en paralelo múltiples entradas y
salidas
M.C. Carlos E. Canto Quintal
33El bus I2C
Microcontroladores
Esquema básico de conexiones
Características de una conexión en colector
abierto Permite conectar varias fuentes de
datos a un mismo hilo Nivel alto en el bus Si
ningún dispositivo accede al bus Si ningún
dispositivo transmite un cero Nivel bajo en el
bus Si un dispositivo pone un nivel bajo Si
dos dispositivos escriben a la vez siempre
prevalecen los ceros AND cableada Si un
dispositivo escribe un nivel alto pero lee un
cero indica que otro dispositivo está también
accediendo al b
M.C. Carlos E. Canto Quintal
34El bus I2C
Microcontroladores
Esquema básico de conexiones
Inconvenientes de la conexión en colector
abierto Las capacidades de la línea se cargan
a través del pull-up Se puede solucionar
utilizando una carga activa en lugar de un
resistor
M.C. Carlos E. Canto Quintal
35Esquema básico de conexiones
El bus I2C
Microcontroladores
Las dos líneas de comunicación disponen de
niveles lógicos altos cuando están inactivas. De
entrada el número de dispositivos que se puede
conectar al bus es ilimitado, pero las líneas
tienen una especificación de capacidad de carga
máxima de 400pF.
M.C. Carlos E. Canto Quintal
36Terminación de Bus
El bus I2C
Microcontroladores
M.C. Carlos E. Canto Quintal
37El bus I2C
El Bus I2C
Microcontroladores
Ejemplo de una configuración del bus I2C usando
dos microcontroladores
M.C. Carlos E. Canto Quintal
38Configuración Multi-Maestro
El bus I2C
Microcontroladores
Cuando el MCU1 emite una condición start e enviá
una dirección, todos los esclavos escucharán (
incluyendo a MCU2 el cual en ese momento es
considerado un esclavo también) . Si la dirección
no concuerda con la dirección del CPU2, este
dispositivo debe mantenerse de regreso a
cualquier actividad hasta que el bus se desocupe
de nuevo después de una condición stop. As long
as the two MCU's monitor what is going on on the
bus (start and stop) and as long as they are
aware that a transaction is going on because the
last issued command was not a STOP, there is no
problem. Let's assume one of the MCU's missed the
START condition and still thinks the bus is idle,
or it just came out of reset and wants to start
talking on the bus which could very well happen
in a real-life scenario. This could lead to
problems.
M.C. Carlos E. Canto Quintal
39Configuración Multi-Maestro
- Protocolo multimaestro
- Con dos maestros en el bus existe posibilidad
de conflicto - Arbitración procedimiento para asegurar que sólo
un maestro tiene el - control del bus en un instante
- Si un maestro está utilizando el bus no puede
ser interrumpido por otro. - Desde START hasta STOP
- Si dos maestros intentan comenzar a utilizar el
bus a la vez - Conexión del bus en colector abierto ??
prevalecen los ceros - A la vez que ponen datos en el bus, escuchan la
línea. - Si un maestro está intentando enviar un nivel
alto y lee un nivel bajo - Existe otro maestro utilizando el bus
- Deja de transmitir esperando que la línea quede
libre (condición de STOP)
40Ejemplo de aplicaciones del Bus I2C
El bus I2C
Microcontroladores
M.C. Carlos E. Canto Quintal
41El bus I2C
Microcontroladores
Ejemplo de aplicaciones del Bus I2C
Conexión de una EEPROM serial y un Reloj de
tiempo real, con bus I2C, para su uso en un
lector de smartcards
LECTOR DE SMARTCARDS
M.C. Carlos E. Canto Quintal
42El bus I2C
El bus I2C
Microcontroladores
Ejemplo de aplicaciones del Bus I2C
Conexión de medidores ultrasónico de distancias
a un mC Basic Stamp 2 usando el bus I2C.
El módulo SRF10 es un medidor ultrasónico de
distancias miniatura para robots que representa
la ultima generación en sistemas de medidas de
distancias por sonar. El sensor es capaz de
detectar objetos a una distancia de 6 m con la
facilidad de conectarse al microcontrolador
mediante un bus I2C, por lo que se pueden
conectar cuantos sensores sean necesarios en el
mismo bus. Con una alimentación unica de 5V,
solo requiere 15 mA, para funcionar y 3mA
mientras esta en reposo.
M.C. Carlos E. Canto Quintal
43El bus I2C
El bus I2C
Microcontroladores
Ejemplo de aplicaciones del Bus I2C
Para el programador, el sensor SRF10 se comporta
de la misma manera que las EEPROM de las series
24xx, con la excepción de que la dirección I2C es
diferente. La dirección por defecto de fábrica
del sensor es 0xE0. El usuario puede cambiar esta
dirección con 16 direcciones diferentes E0, E2,
E4, E6, E8, EA, EC, EE, F0, F2, F4, F6, F8, FA,
FC o FE, por lo que es posible utilizar hasta 16
sensores sobre un mismo bus I2C. Además de las
direcciones anteriores, todos los sonares
conectados al bus I2C responderán a la dirección
0 -al ser la dirección de atención general. Esto
significa que escribir un comando de medición de
la distancia para la dirección 0 de I2C (0x00)
iniciará las mediciones en todos los sensores al
mismo tiempo.
M.C. Carlos E. Canto Quintal
44El bus I2C
Microcontroladores
Ejemplo de aplicaciones del Bus I2C
Esquema del circuito para la conexión de dos
sensores ultrasónicos SRF08 al controlador Basic
Stamp 2
M.C. Carlos E. Canto Quintal
45 Dispositivos I2C con el PICAXE
El bus I2C
Microcontroladores
Instrucciones en Basic del PICAXE par usar el bus
I2C
- I2CSLAVE
- Sintáxis I2CSLAVE slave, speed, address
- - Slave es la dirección i2c del esclavo
- - Speed es la palabra i2cfast (400kHz) o
i2cslow (100kHz) a 4Mhz - Address es la palabra i2cbyte o i2cword
- Función
- El comando i2cslave es usado para configurar las
terminales PICAXE para usar el I2C y para
definir el tipo de dispositivo I2C a ser
direccionado
WRITEI2C Sintáxis WRITEI2Clocation,(variable,..
.) - Location es una variable /constante que
especifica la dirección de un byte o palabra -
Variable(s) contiene el byte(s) de dato que se va
a escribir Función Escribe a la localidad I2C el
contenido de la variable(s).
READI2C Sintáxis READI2C location,(variable,...)
- Location es una variable /constante que
especifica la dirección de un byte o palabra -
Variable(s) recibe el byte(s) leido(s). Funcción
Lee la localidad I2C contenida en la(s)
variable(s).
M.C. Carlos E. Canto Quintal
46El bus I2C
Microcontroladores
M.C. Carlos E. Canto Quintal
47El bus I2C
Microcontroladores
M.C. Carlos E. Canto Quintal
48El bus I2C
Microcontroladores
M.C. Carlos E. Canto Quintal
49El bus I2C
Microcontroladores
M.C. Carlos E. Canto Quintal