<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Avasi</id>
		<title>Proyecto Butiá - Contribuciones del usuario [es]</title>
		<link rel="self" type="application/atom+xml" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Avasi"/>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php/Especial:Contribuciones/Avasi"/>
		<updated>2026-04-05T19:55:30Z</updated>
		<subtitle>Contribuciones del usuario</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8731</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8731"/>
				<updated>2016-12-14T04:01:31Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Trabajo a futuro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Protocolo I2C ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que ocurre en un bus I2C es que el dispositivo maestro envía una secuencia de inicio (StartI2C). Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. Éstos quedan atentos para ver si se trata de una solicitud para ellos. &lt;br /&gt;
&lt;br /&gt;
A continuación el dispositivo maestro envía la dirección de dispositivo (WriteI2C con la dirección y el bit de R/W). El dispositivo esclavo que posee esa dirección continuará con la transacción, y los otros ignorarán el resto de los intercambios, esperando la próxima secuencia de inicio.&lt;br /&gt;
&lt;br /&gt;
Una vez que el maestro ha enviado la dirección del dispositivo en el bus I2C, puede enviar (WriteI2C con el byte a enviar) ahora el byte de datos. El dispositivo maestro puede seguir enviando bytes al esclavo consecutivamente (WriteI2C consecutivos). &lt;br /&gt;
&lt;br /&gt;
De forma análoga podrá leer bytes enviados por el esclavo (ReadI2C).&lt;br /&gt;
&lt;br /&gt;
Cuando el maestro ha terminado de escribir datos en el esclavo, envía una secuencia de parada (StopI2C) que concluye la transacción.&lt;br /&gt;
&lt;br /&gt;
Al momento de indicar la dirección del esclavo para comenzar la comunicación, se debe indicar si se desea realizar una lectura o una escritura en el bit menos significativo (ver Sección Bloques-WriteI2C). Por lo que para realizar una lectura luego de haber realizado una escritura, se deberá iniciar la comunicación nuevamente con el bit apropiado.&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenI2C''' &lt;br /&gt;
&lt;br /&gt;
Inicializa el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''StartI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que inicia la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Start de I2C, y espera hasta que la secuencia de señal de Start termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''StopI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que finaliza la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Stop de I2C, y espera hasta que la secuencia de señal de Stop termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''CloseI2C'''&lt;br /&gt;
&lt;br /&gt;
Finaliza el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C'''&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C.&lt;br /&gt;
&lt;br /&gt;
También es utilizado para enviar la dirección del esclavo al que se desea comunicar.&lt;br /&gt;
&lt;br /&gt;
La dirección se debe escribir de la siguiente forma en el byte a enviar:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c-address.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''ReadI2C'''&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C.&lt;br /&gt;
&lt;br /&gt;
Para leer varios bytes, se envía un AckI2C luego de cada byte leído.&lt;br /&gt;
&lt;br /&gt;
Cuando se lee el último byte se debe enviar un NotAckI2C.&lt;br /&gt;
&lt;br /&gt;
Esto aplica para leer un solo byte, se envía un NotAckI2C luego de la lectura del byte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''AckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un acknowledgement de que el byte se leyó, y se procederá a leer otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''NotAckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un negative acknowledgement para indicar que se leyó el byte, y se finalizará la lectura.&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: [[Archivo:I2c plugins.zip]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: Debe estar instalado en la USB4Butiá el firmware con soporte para I2C.&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de comunicación con placa Arduino ===&lt;br /&gt;
&lt;br /&gt;
Nota: La placa Arduino se utilizará como esclavo en la dirección 0x04.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_schematics.png| thumb | Diagrama del circuito utilizado.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_usb4butia.jpg | thumb | USB4Butiá acondicionada para la prueba.]]&lt;br /&gt;
&lt;br /&gt;
=== Configuración del hardware ===&lt;br /&gt;
&lt;br /&gt;
Para poder realizar el siguiente ejemplo se necesitan los siguientes materiales:&lt;br /&gt;
&lt;br /&gt;
*1 x Arduino UNO&lt;br /&gt;
*1 x Protoboard&lt;br /&gt;
*2 x Resistencias de 1k ohms&lt;br /&gt;
*3 x Cables Dupont Macho-Macho&lt;br /&gt;
*4 x Cables Dupont Macho-Hembra&lt;br /&gt;
*1 x Cable de red&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se muestra en el diagrama del circuito, se debe conectar  el pin de GND de la arduino a GND en la protoboard (cable negro). &amp;lt;br/&amp;gt;&lt;br /&gt;
Luego se conecta el pin A5 o SCL a la protoboard (cable verde) y se le conecta a Vcc a través de una resistencia de 1k ohm. &amp;lt;br/&amp;gt;&lt;br /&gt;
Por último se realiza el mismo procedimiento con el pin A4 o SDA (cable amarillo). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como primer paso para que la USB4Butiá pueda comunicarse utilizando I2C por el puerto 5 (el único con soporte I2C), primero se debe eliminar la resistencia de 10k ohm conectada al pin 33 del pic18F4550.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para realizar la conexión con la USB4Butiá se debe cortar un extremo del cable de red y conectar la ficha rj45 al puerto 5 de dicha placa. &amp;lt;br/&amp;gt;&lt;br /&gt;
Con el extremo cortado del cable de red, se realizan las siguientes conexiones: &amp;lt;br/&amp;gt;&lt;br /&gt;
*GND en la USB4Butiá a GND en la protoboard&lt;br /&gt;
*Vcc en la USB4Butiá a Vcc en la protoboard&lt;br /&gt;
*Línea de datos (pin 34 del pic18F4550) al la línea SCL de la protoboard (cable verde )&lt;br /&gt;
*Línea de identificación (pin 33 del pic18F4550) al la línea SDA de la protoboard (cable amarillo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Se recomienda utilizar un tester en modo continuidad para encontrar cuales de los 8 cables son GND, Vcc, datos (pin 34), Identificación (pin 33)&lt;br /&gt;
&lt;br /&gt;
=== Enviar un mensaje a la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_write.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Lo primero que se necesita hacer es inicializar el módulo I2C con '''OpenI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar un mensaje indicando a los dispositivos esclavos conectados que se comenzará una comunicación I2C. Esto se hace enviando un '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que los dispositivos saben que se comenzó la comunicación, se debe enviar un mensaje con la dirección del dispositivo esclavo e indicar si se va a realizar una escritura o lectura.&lt;br /&gt;
&lt;br /&gt;
En este caso se envía la dirección y el bit menos significativo en 0, ya que se desea hacer una escritura:&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 0&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x08 (0000 1000 | 0 : 0000 1000 (0x08) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x08)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de enviar la dirección del dispositivo esclavo, se procede a enviar los mensajes con '''WriteI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, para terminar la comunicación con el dispositivo se envía un '''StopI2C''', y si no se realizará otra comunicación se cierra el modulo I2C con '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;1n0N8AQDT5M&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_sender.zip]]&lt;br /&gt;
&lt;br /&gt;
=== Leer un mensaje desde la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_read.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Para realizar una lectura se realizan los dos primeros pasos de igual forma: '''OpenI2C''', y '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar la dirección del esclavo, e indicar que se realizará una lectura (bit de R/W en 1):&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 1&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x09 (0000 1000 | 1 : 0000 1001(0x09) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x09)'''&lt;br /&gt;
&lt;br /&gt;
Una vez enviada la dirección con el bit de R/W correspondiente se procede a leer los bytes enviados por el esclavo con '''ReadI2C'''.&lt;br /&gt;
&lt;br /&gt;
Después de cada lectura se debe indicar con un '''AckI2C''' o '''NotAckI2C''' según corresponda, como se explicó en la sección Bloques.&lt;br /&gt;
&lt;br /&gt;
Para finalizar la comunicación se procede igual que con la escritura, es decir, '''StopI2C''', y '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;xr6-U5snzp0&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_reader.zip]]&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Hoy en día no es posible configurar desde la paleta la frecuencia de trabajo de I2C y por defecto dicha frecuencia se encuentra configurada en 100Kbps. &amp;lt;br/&amp;gt;&lt;br /&gt;
Como el protocolo soporta frecuencias mayores, se espera en un futuro contar con la opción de configurar la frecuencia deseada.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otro tema importante es que en la versión actual de la USB4Butiá el soporte I2C se encuentra en las líneas de datos (SCL) e identificación (SDA) del puerto 5. El problema entonces es que existe una resistencia pull-down de identificación en el pin 33 que impide utilizar I2C, siendo imposible utilizar el puerto 5 para conectar sensores y dar soporte I2C al mismo tiempo.&lt;br /&gt;
Se han presentado alternativas a este problema y se espera poderlas implementar a futuro.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8730</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8730"/>
				<updated>2016-12-14T04:00:14Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Trabajo a futuro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Protocolo I2C ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que ocurre en un bus I2C es que el dispositivo maestro envía una secuencia de inicio (StartI2C). Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. Éstos quedan atentos para ver si se trata de una solicitud para ellos. &lt;br /&gt;
&lt;br /&gt;
A continuación el dispositivo maestro envía la dirección de dispositivo (WriteI2C con la dirección y el bit de R/W). El dispositivo esclavo que posee esa dirección continuará con la transacción, y los otros ignorarán el resto de los intercambios, esperando la próxima secuencia de inicio.&lt;br /&gt;
&lt;br /&gt;
Una vez que el maestro ha enviado la dirección del dispositivo en el bus I2C, puede enviar (WriteI2C con el byte a enviar) ahora el byte de datos. El dispositivo maestro puede seguir enviando bytes al esclavo consecutivamente (WriteI2C consecutivos). &lt;br /&gt;
&lt;br /&gt;
De forma análoga podrá leer bytes enviados por el esclavo (ReadI2C).&lt;br /&gt;
&lt;br /&gt;
Cuando el maestro ha terminado de escribir datos en el esclavo, envía una secuencia de parada (StopI2C) que concluye la transacción.&lt;br /&gt;
&lt;br /&gt;
Al momento de indicar la dirección del esclavo para comenzar la comunicación, se debe indicar si se desea realizar una lectura o una escritura en el bit menos significativo (ver Sección Bloques-WriteI2C). Por lo que para realizar una lectura luego de haber realizado una escritura, se deberá iniciar la comunicación nuevamente con el bit apropiado.&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenI2C''' &lt;br /&gt;
&lt;br /&gt;
Inicializa el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''StartI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que inicia la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Start de I2C, y espera hasta que la secuencia de señal de Start termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''StopI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que finaliza la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Stop de I2C, y espera hasta que la secuencia de señal de Stop termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''CloseI2C'''&lt;br /&gt;
&lt;br /&gt;
Finaliza el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C'''&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C.&lt;br /&gt;
&lt;br /&gt;
También es utilizado para enviar la dirección del esclavo al que se desea comunicar.&lt;br /&gt;
&lt;br /&gt;
La dirección se debe escribir de la siguiente forma en el byte a enviar:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c-address.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''ReadI2C'''&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C.&lt;br /&gt;
&lt;br /&gt;
Para leer varios bytes, se envía un AckI2C luego de cada byte leído.&lt;br /&gt;
&lt;br /&gt;
Cuando se lee el último byte se debe enviar un NotAckI2C.&lt;br /&gt;
&lt;br /&gt;
Esto aplica para leer un solo byte, se envía un NotAckI2C luego de la lectura del byte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''AckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un acknowledgement de que el byte se leyó, y se procederá a leer otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''NotAckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un negative acknowledgement para indicar que se leyó el byte, y se finalizará la lectura.&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: [[Archivo:I2c plugins.zip]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: Debe estar instalado en la USB4Butiá el firmware con soporte para I2C.&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de comunicación con placa Arduino ===&lt;br /&gt;
&lt;br /&gt;
Nota: La placa Arduino se utilizará como esclavo en la dirección 0x04.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_schematics.png| thumb | Diagrama del circuito utilizado.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_usb4butia.jpg | thumb | USB4Butiá acondicionada para la prueba.]]&lt;br /&gt;
&lt;br /&gt;
=== Configuración del hardware ===&lt;br /&gt;
&lt;br /&gt;
Para poder realizar el siguiente ejemplo se necesitan los siguientes materiales:&lt;br /&gt;
&lt;br /&gt;
*1 x Arduino UNO&lt;br /&gt;
*1 x Protoboard&lt;br /&gt;
*2 x Resistencias de 1k ohms&lt;br /&gt;
*3 x Cables Dupont Macho-Macho&lt;br /&gt;
*4 x Cables Dupont Macho-Hembra&lt;br /&gt;
*1 x Cable de red&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se muestra en el diagrama del circuito, se debe conectar  el pin de GND de la arduino a GND en la protoboard (cable negro). &amp;lt;br/&amp;gt;&lt;br /&gt;
Luego se conecta el pin A5 o SCL a la protoboard (cable verde) y se le conecta a Vcc a través de una resistencia de 1k ohm. &amp;lt;br/&amp;gt;&lt;br /&gt;
Por último se realiza el mismo procedimiento con el pin A4 o SDA (cable amarillo). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como primer paso para que la USB4Butiá pueda comunicarse utilizando I2C por el puerto 5 (el único con soporte I2C), primero se debe eliminar la resistencia de 10k ohm conectada al pin 33 del pic18F4550.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para realizar la conexión con la USB4Butiá se debe cortar un extremo del cable de red y conectar la ficha rj45 al puerto 5 de dicha placa. &amp;lt;br/&amp;gt;&lt;br /&gt;
Con el extremo cortado del cable de red, se realizan las siguientes conexiones: &amp;lt;br/&amp;gt;&lt;br /&gt;
*GND en la USB4Butiá a GND en la protoboard&lt;br /&gt;
*Vcc en la USB4Butiá a Vcc en la protoboard&lt;br /&gt;
*Línea de datos (pin 34 del pic18F4550) al la línea SCL de la protoboard (cable verde )&lt;br /&gt;
*Línea de identificación (pin 33 del pic18F4550) al la línea SDA de la protoboard (cable amarillo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Se recomienda utilizar un tester en modo continuidad para encontrar cuales de los 8 cables son GND, Vcc, datos (pin 34), Identificación (pin 33)&lt;br /&gt;
&lt;br /&gt;
=== Enviar un mensaje a la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_write.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Lo primero que se necesita hacer es inicializar el módulo I2C con '''OpenI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar un mensaje indicando a los dispositivos esclavos conectados que se comenzará una comunicación I2C. Esto se hace enviando un '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que los dispositivos saben que se comenzó la comunicación, se debe enviar un mensaje con la dirección del dispositivo esclavo e indicar si se va a realizar una escritura o lectura.&lt;br /&gt;
&lt;br /&gt;
En este caso se envía la dirección y el bit menos significativo en 0, ya que se desea hacer una escritura:&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 0&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x08 (0000 1000 | 0 : 0000 1000 (0x08) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x08)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de enviar la dirección del dispositivo esclavo, se procede a enviar los mensajes con '''WriteI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, para terminar la comunicación con el dispositivo se envía un '''StopI2C''', y si no se realizará otra comunicación se cierra el modulo I2C con '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;1n0N8AQDT5M&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_sender.zip]]&lt;br /&gt;
&lt;br /&gt;
=== Leer un mensaje desde la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_read.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Para realizar una lectura se realizan los dos primeros pasos de igual forma: '''OpenI2C''', y '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar la dirección del esclavo, e indicar que se realizará una lectura (bit de R/W en 1):&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 1&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x09 (0000 1000 | 1 : 0000 1001(0x09) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x09)'''&lt;br /&gt;
&lt;br /&gt;
Una vez enviada la dirección con el bit de R/W correspondiente se procede a leer los bytes enviados por el esclavo con '''ReadI2C'''.&lt;br /&gt;
&lt;br /&gt;
Después de cada lectura se debe indicar con un '''AckI2C''' o '''NotAckI2C''' según corresponda, como se explicó en la sección Bloques.&lt;br /&gt;
&lt;br /&gt;
Para finalizar la comunicación se procede igual que con la escritura, es decir, '''StopI2C''', y '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;xr6-U5snzp0&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_reader.zip]]&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Hoy en día no es posible configurar desde la paleta la frecuencia de trabajo de I2C y por defecto dicha frecuencia se encuentra configurada en 100Kbps. &amp;lt;br/&amp;gt;&lt;br /&gt;
Como el protocolo soporta frecuencias mayores, se espera en un futuro contar con la opción de configurar la frecuencia deseada.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otro tema importante es que en la versión actual de la USB4Butiá el soporte I2C se encuentra en las líneas de datos (SCL) e identificación(SDA) del puerto 5. El problema entonces es que existe una resistencia pull-down de identificación en el pin 33 que impide utilizar I2C, siendo imposible utilizar el puerto 5 para conectar sensores y dar soporte I2C al mismo tiempo.&lt;br /&gt;
Se han presentado alternativas a este problema y se espera poderlas implementar a futuro.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8729</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8729"/>
				<updated>2016-12-14T03:49:46Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Configuración del hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Protocolo I2C ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que ocurre en un bus I2C es que el dispositivo maestro envía una secuencia de inicio (StartI2C). Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. Éstos quedan atentos para ver si se trata de una solicitud para ellos. &lt;br /&gt;
&lt;br /&gt;
A continuación el dispositivo maestro envía la dirección de dispositivo (WriteI2C con la dirección y el bit de R/W). El dispositivo esclavo que posee esa dirección continuará con la transacción, y los otros ignorarán el resto de los intercambios, esperando la próxima secuencia de inicio.&lt;br /&gt;
&lt;br /&gt;
Una vez que el maestro ha enviado la dirección del dispositivo en el bus I2C, puede enviar (WriteI2C con el byte a enviar) ahora el byte de datos. El dispositivo maestro puede seguir enviando bytes al esclavo consecutivamente (WriteI2C consecutivos). &lt;br /&gt;
&lt;br /&gt;
De forma análoga podrá leer bytes enviados por el esclavo (ReadI2C).&lt;br /&gt;
&lt;br /&gt;
Cuando el maestro ha terminado de escribir datos en el esclavo, envía una secuencia de parada (StopI2C) que concluye la transacción.&lt;br /&gt;
&lt;br /&gt;
Al momento de indicar la dirección del esclavo para comenzar la comunicación, se debe indicar si se desea realizar una lectura o una escritura en el bit menos significativo (ver Sección Bloques-WriteI2C). Por lo que para realizar una lectura luego de haber realizado una escritura, se deberá iniciar la comunicación nuevamente con el bit apropiado.&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenI2C''' &lt;br /&gt;
&lt;br /&gt;
Inicializa el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''StartI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que inicia la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Start de I2C, y espera hasta que la secuencia de señal de Start termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''StopI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que finaliza la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Stop de I2C, y espera hasta que la secuencia de señal de Stop termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''CloseI2C'''&lt;br /&gt;
&lt;br /&gt;
Finaliza el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C'''&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C.&lt;br /&gt;
&lt;br /&gt;
También es utilizado para enviar la dirección del esclavo al que se desea comunicar.&lt;br /&gt;
&lt;br /&gt;
La dirección se debe escribir de la siguiente forma en el byte a enviar:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c-address.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''ReadI2C'''&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C.&lt;br /&gt;
&lt;br /&gt;
Para leer varios bytes, se envía un AckI2C luego de cada byte leído.&lt;br /&gt;
&lt;br /&gt;
Cuando se lee el último byte se debe enviar un NotAckI2C.&lt;br /&gt;
&lt;br /&gt;
Esto aplica para leer un solo byte, se envía un NotAckI2C luego de la lectura del byte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''AckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un acknowledgement de que el byte se leyó, y se procederá a leer otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''NotAckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un negative acknowledgement para indicar que se leyó el byte, y se finalizará la lectura.&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: [[Archivo:I2c plugins.zip]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: Debe estar instalado en la USB4Butiá el firmware con soporte para I2C.&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de comunicación con placa Arduino ===&lt;br /&gt;
&lt;br /&gt;
Nota: La placa Arduino se utilizará como esclavo en la dirección 0x04.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_schematics.png| thumb | Diagrama del circuito utilizado.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_usb4butia.jpg | thumb | USB4Butiá acondicionada para la prueba.]]&lt;br /&gt;
&lt;br /&gt;
=== Configuración del hardware ===&lt;br /&gt;
&lt;br /&gt;
Para poder realizar el siguiente ejemplo se necesitan los siguientes materiales:&lt;br /&gt;
&lt;br /&gt;
*1 x Arduino UNO&lt;br /&gt;
*1 x Protoboard&lt;br /&gt;
*2 x Resistencias de 1k ohms&lt;br /&gt;
*3 x Cables Dupont Macho-Macho&lt;br /&gt;
*4 x Cables Dupont Macho-Hembra&lt;br /&gt;
*1 x Cable de red&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se muestra en el diagrama del circuito, se debe conectar  el pin de GND de la arduino a GND en la protoboard (cable negro). &amp;lt;br/&amp;gt;&lt;br /&gt;
Luego se conecta el pin A5 o SCL a la protoboard (cable verde) y se le conecta a Vcc a través de una resistencia de 1k ohm. &amp;lt;br/&amp;gt;&lt;br /&gt;
Por último se realiza el mismo procedimiento con el pin A4 o SDA (cable amarillo). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como primer paso para que la USB4Butiá pueda comunicarse utilizando I2C por el puerto 5 (el único con soporte I2C), primero se debe eliminar la resistencia de 10k ohm conectada al pin 33 del pic18F4550.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para realizar la conexión con la USB4Butiá se debe cortar un extremo del cable de red y conectar la ficha rj45 al puerto 5 de dicha placa. &amp;lt;br/&amp;gt;&lt;br /&gt;
Con el extremo cortado del cable de red, se realizan las siguientes conexiones: &amp;lt;br/&amp;gt;&lt;br /&gt;
*GND en la USB4Butiá a GND en la protoboard&lt;br /&gt;
*Vcc en la USB4Butiá a Vcc en la protoboard&lt;br /&gt;
*Línea de datos (pin 34 del pic18F4550) al la línea SCL de la protoboard (cable verde )&lt;br /&gt;
*Línea de identificación (pin 33 del pic18F4550) al la línea SDA de la protoboard (cable amarillo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Se recomienda utilizar un tester en modo continuidad para encontrar cuales de los 8 cables son GND, Vcc, datos (pin 34), Identificación (pin 33)&lt;br /&gt;
&lt;br /&gt;
=== Enviar un mensaje a la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_write.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Lo primero que se necesita hacer es inicializar el módulo I2C con '''OpenI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar un mensaje indicando a los dispositivos esclavos conectados que se comenzará una comunicación I2C. Esto se hace enviando un '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que los dispositivos saben que se comenzó la comunicación, se debe enviar un mensaje con la dirección del dispositivo esclavo e indicar si se va a realizar una escritura o lectura.&lt;br /&gt;
&lt;br /&gt;
En este caso se envía la dirección y el bit menos significativo en 0, ya que se desea hacer una escritura:&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 0&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x08 (0000 1000 | 0 : 0000 1000 (0x08) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x08)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de enviar la dirección del dispositivo esclavo, se procede a enviar los mensajes con '''WriteI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, para terminar la comunicación con el dispositivo se envía un '''StopI2C''', y si no se realizará otra comunicación se cierra el modulo I2C con '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;1n0N8AQDT5M&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_sender.zip]]&lt;br /&gt;
&lt;br /&gt;
=== Leer un mensaje desde la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_read.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Para realizar una lectura se realizan los dos primeros pasos de igual forma: '''OpenI2C''', y '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar la dirección del esclavo, e indicar que se realizará una lectura (bit de R/W en 1):&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 1&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x09 (0000 1000 | 1 : 0000 1001(0x09) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x09)'''&lt;br /&gt;
&lt;br /&gt;
Una vez enviada la dirección con el bit de R/W correspondiente se procede a leer los bytes enviados por el esclavo con '''ReadI2C'''.&lt;br /&gt;
&lt;br /&gt;
Después de cada lectura se debe indicar con un '''AckI2C''' o '''NotAckI2C''' según corresponda, como se explicó en la sección Bloques.&lt;br /&gt;
&lt;br /&gt;
Para finalizar la comunicación se procede igual que con la escritura, es decir, '''StopI2C''', y '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;xr6-U5snzp0&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_reader.zip]]&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Hoy en día no es posible configurar desde la paleta la frecuencia de trabajo de I2C y por defecto dicha frecuencia se encuentra configurada en 100Kbps. &amp;lt;br/&amp;gt;&lt;br /&gt;
Como el protocolo soporta frecuencias mayores, se espera en un futuro contar con la opción de configurar la frecuencia deseada.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8728</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8728"/>
				<updated>2016-12-14T03:32:58Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Configuración del hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Protocolo I2C ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que ocurre en un bus I2C es que el dispositivo maestro envía una secuencia de inicio (StartI2C). Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. Éstos quedan atentos para ver si se trata de una solicitud para ellos. &lt;br /&gt;
&lt;br /&gt;
A continuación el dispositivo maestro envía la dirección de dispositivo (WriteI2C con la dirección y el bit de R/W). El dispositivo esclavo que posee esa dirección continuará con la transacción, y los otros ignorarán el resto de los intercambios, esperando la próxima secuencia de inicio.&lt;br /&gt;
&lt;br /&gt;
Una vez que el maestro ha enviado la dirección del dispositivo en el bus I2C, puede enviar (WriteI2C con el byte a enviar) ahora el byte de datos. El dispositivo maestro puede seguir enviando bytes al esclavo consecutivamente (WriteI2C consecutivos). &lt;br /&gt;
&lt;br /&gt;
De forma análoga podrá leer bytes enviados por el esclavo (ReadI2C).&lt;br /&gt;
&lt;br /&gt;
Cuando el maestro ha terminado de escribir datos en el esclavo, envía una secuencia de parada (StopI2C) que concluye la transacción.&lt;br /&gt;
&lt;br /&gt;
Al momento de indicar la dirección del esclavo para comenzar la comunicación, se debe indicar si se desea realizar una lectura o una escritura en el bit menos significativo (ver Sección Bloques-WriteI2C). Por lo que para realizar una lectura luego de haber realizado una escritura, se deberá iniciar la comunicación nuevamente con el bit apropiado.&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenI2C''' &lt;br /&gt;
&lt;br /&gt;
Inicializa el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''StartI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que inicia la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Start de I2C, y espera hasta que la secuencia de señal de Start termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''StopI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que finaliza la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Stop de I2C, y espera hasta que la secuencia de señal de Stop termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''CloseI2C'''&lt;br /&gt;
&lt;br /&gt;
Finaliza el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C'''&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C.&lt;br /&gt;
&lt;br /&gt;
También es utilizado para enviar la dirección del esclavo al que se desea comunicar.&lt;br /&gt;
&lt;br /&gt;
La dirección se debe escribir de la siguiente forma en el byte a enviar:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c-address.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''ReadI2C'''&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C.&lt;br /&gt;
&lt;br /&gt;
Para leer varios bytes, se envía un AckI2C luego de cada byte leído.&lt;br /&gt;
&lt;br /&gt;
Cuando se lee el último byte se debe enviar un NotAckI2C.&lt;br /&gt;
&lt;br /&gt;
Esto aplica para leer un solo byte, se envía un NotAckI2C luego de la lectura del byte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''AckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un acknowledgement de que el byte se leyó, y se procederá a leer otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''NotAckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un negative acknowledgement para indicar que se leyó el byte, y se finalizará la lectura.&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: [[Archivo:I2c plugins.zip]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: Debe estar instalado en la USB4Butiá el firmware con soporte para I2C.&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de comunicación con placa Arduino ===&lt;br /&gt;
&lt;br /&gt;
Nota: La placa Arduino se utilizará como esclavo en la dirección 0x04.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_schematics.png| thumb | Diagrama del circuito utilizado.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_usb4butia.jpg | thumb | USB4Butiá acondicionada para la prueba.]]&lt;br /&gt;
&lt;br /&gt;
=== Configuración del hardware ===&lt;br /&gt;
&lt;br /&gt;
Para poder realizar el siguiente ejemplo se necesitan los siguientes materiales:&lt;br /&gt;
&lt;br /&gt;
*1 x Arduino UNO&lt;br /&gt;
*1 x Protoboard&lt;br /&gt;
*2 x Resistencias de 1k ohms&lt;br /&gt;
*3 x Cables Dupont Macho-Macho&lt;br /&gt;
*4 x Cables Dupont Macho-Hembra&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se muestra en el diagrama del circuito, se debe conectar  el pin de GND de la arduino a GND en la protoboard (cable negro). &amp;lt;br/&amp;gt;&lt;br /&gt;
Luego se conecta el pin A5 o SCL a la protoboard (cable verde) y se le conecta a +5v a través de una resistencia de 1k ohm. &amp;lt;br/&amp;gt;&lt;br /&gt;
Por último se realiza el mismo procedimiento con el pin A4 o SDA (cable amarillo). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enviar un mensaje a la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_write.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Lo primero que se necesita hacer es inicializar el módulo I2C con '''OpenI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar un mensaje indicando a los dispositivos esclavos conectados que se comenzará una comunicación I2C. Esto se hace enviando un '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que los dispositivos saben que se comenzó la comunicación, se debe enviar un mensaje con la dirección del dispositivo esclavo e indicar si se va a realizar una escritura o lectura.&lt;br /&gt;
&lt;br /&gt;
En este caso se envía la dirección y el bit menos significativo en 0, ya que se desea hacer una escritura:&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 0&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x08 (0000 1000 | 0 : 0000 1000 (0x08) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x08)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de enviar la dirección del dispositivo esclavo, se procede a enviar los mensajes con '''WriteI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, para terminar la comunicación con el dispositivo se envía un '''StopI2C''', y si no se realizará otra comunicación se cierra el modulo I2C con '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;1n0N8AQDT5M&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_sender.zip]]&lt;br /&gt;
&lt;br /&gt;
=== Leer un mensaje desde la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_read.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Para realizar una lectura se realizan los dos primeros pasos de igual forma: '''OpenI2C''', y '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar la dirección del esclavo, e indicar que se realizará una lectura (bit de R/W en 1):&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 1&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x09 (0000 1000 | 1 : 0000 1001(0x09) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x09)'''&lt;br /&gt;
&lt;br /&gt;
Una vez enviada la dirección con el bit de R/W correspondiente se procede a leer los bytes enviados por el esclavo con '''ReadI2C'''.&lt;br /&gt;
&lt;br /&gt;
Después de cada lectura se debe indicar con un '''AckI2C''' o '''NotAckI2C''' según corresponda, como se explicó en la sección Bloques.&lt;br /&gt;
&lt;br /&gt;
Para finalizar la comunicación se procede igual que con la escritura, es decir, '''StopI2C''', y '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;xr6-U5snzp0&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_reader.zip]]&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Hoy en día no es posible configurar desde la paleta la frecuencia de trabajo de I2C y por defecto dicha frecuencia se encuentra configurada en 100Kbps. &amp;lt;br/&amp;gt;&lt;br /&gt;
Como el protocolo soporta frecuencias mayores, se espera en un futuro contar con la opción de configurar la frecuencia deseada.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8727</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8727"/>
				<updated>2016-12-14T03:32:09Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Configuración del hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Protocolo I2C ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que ocurre en un bus I2C es que el dispositivo maestro envía una secuencia de inicio (StartI2C). Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. Éstos quedan atentos para ver si se trata de una solicitud para ellos. &lt;br /&gt;
&lt;br /&gt;
A continuación el dispositivo maestro envía la dirección de dispositivo (WriteI2C con la dirección y el bit de R/W). El dispositivo esclavo que posee esa dirección continuará con la transacción, y los otros ignorarán el resto de los intercambios, esperando la próxima secuencia de inicio.&lt;br /&gt;
&lt;br /&gt;
Una vez que el maestro ha enviado la dirección del dispositivo en el bus I2C, puede enviar (WriteI2C con el byte a enviar) ahora el byte de datos. El dispositivo maestro puede seguir enviando bytes al esclavo consecutivamente (WriteI2C consecutivos). &lt;br /&gt;
&lt;br /&gt;
De forma análoga podrá leer bytes enviados por el esclavo (ReadI2C).&lt;br /&gt;
&lt;br /&gt;
Cuando el maestro ha terminado de escribir datos en el esclavo, envía una secuencia de parada (StopI2C) que concluye la transacción.&lt;br /&gt;
&lt;br /&gt;
Al momento de indicar la dirección del esclavo para comenzar la comunicación, se debe indicar si se desea realizar una lectura o una escritura en el bit menos significativo (ver Sección Bloques-WriteI2C). Por lo que para realizar una lectura luego de haber realizado una escritura, se deberá iniciar la comunicación nuevamente con el bit apropiado.&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenI2C''' &lt;br /&gt;
&lt;br /&gt;
Inicializa el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''StartI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que inicia la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Start de I2C, y espera hasta que la secuencia de señal de Start termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''StopI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que finaliza la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Stop de I2C, y espera hasta que la secuencia de señal de Stop termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''CloseI2C'''&lt;br /&gt;
&lt;br /&gt;
Finaliza el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C'''&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C.&lt;br /&gt;
&lt;br /&gt;
También es utilizado para enviar la dirección del esclavo al que se desea comunicar.&lt;br /&gt;
&lt;br /&gt;
La dirección se debe escribir de la siguiente forma en el byte a enviar:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c-address.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''ReadI2C'''&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C.&lt;br /&gt;
&lt;br /&gt;
Para leer varios bytes, se envía un AckI2C luego de cada byte leído.&lt;br /&gt;
&lt;br /&gt;
Cuando se lee el último byte se debe enviar un NotAckI2C.&lt;br /&gt;
&lt;br /&gt;
Esto aplica para leer un solo byte, se envía un NotAckI2C luego de la lectura del byte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''AckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un acknowledgement de que el byte se leyó, y se procederá a leer otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''NotAckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un negative acknowledgement para indicar que se leyó el byte, y se finalizará la lectura.&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: [[Archivo:I2c plugins.zip]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: Debe estar instalado en la USB4Butiá el firmware con soporte para I2C.&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de comunicación con placa Arduino ===&lt;br /&gt;
&lt;br /&gt;
Nota: La placa Arduino se utilizará como esclavo en la dirección 0x04.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_schematics.png| thumb | Diagrama del circuito utilizado.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_usb4butia.jpg | thumb | USB4Butiá acondicionada para la prueba.]]&lt;br /&gt;
&lt;br /&gt;
=== Configuración del hardware ===&lt;br /&gt;
&lt;br /&gt;
Para poder realizar el siguiente ejemplo se necesitan los siguientes materiales:&lt;br /&gt;
&lt;br /&gt;
*1 x Arduino UNO&lt;br /&gt;
*1 x Protoboard&lt;br /&gt;
*2 x Resistencias de 1k ohms&lt;br /&gt;
*3 x Cables Dupont Macho-Macho&lt;br /&gt;
*4 x Cables Dupont Macho-Hembra&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se muestra en el diagrama del circuito, se debe conectar  el pin de GND de la arduino a GND en la protoboard (cable negro).&lt;br /&gt;
Luego se conecta el pin A5 o SCL a la protoboard (cable verde) y se le conecta a +5v a través de una resistencia de 1k ohm.&lt;br /&gt;
Por último se realiza el mismo procedimiento con el pin A4 o SDA (cable amarillo).&lt;br /&gt;
&lt;br /&gt;
=== Enviar un mensaje a la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_write.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Lo primero que se necesita hacer es inicializar el módulo I2C con '''OpenI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar un mensaje indicando a los dispositivos esclavos conectados que se comenzará una comunicación I2C. Esto se hace enviando un '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que los dispositivos saben que se comenzó la comunicación, se debe enviar un mensaje con la dirección del dispositivo esclavo e indicar si se va a realizar una escritura o lectura.&lt;br /&gt;
&lt;br /&gt;
En este caso se envía la dirección y el bit menos significativo en 0, ya que se desea hacer una escritura:&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 0&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x08 (0000 1000 | 0 : 0000 1000 (0x08) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x08)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de enviar la dirección del dispositivo esclavo, se procede a enviar los mensajes con '''WriteI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, para terminar la comunicación con el dispositivo se envía un '''StopI2C''', y si no se realizará otra comunicación se cierra el modulo I2C con '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;1n0N8AQDT5M&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_sender.zip]]&lt;br /&gt;
&lt;br /&gt;
=== Leer un mensaje desde la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_read.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Para realizar una lectura se realizan los dos primeros pasos de igual forma: '''OpenI2C''', y '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar la dirección del esclavo, e indicar que se realizará una lectura (bit de R/W en 1):&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 1&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x09 (0000 1000 | 1 : 0000 1001(0x09) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x09)'''&lt;br /&gt;
&lt;br /&gt;
Una vez enviada la dirección con el bit de R/W correspondiente se procede a leer los bytes enviados por el esclavo con '''ReadI2C'''.&lt;br /&gt;
&lt;br /&gt;
Después de cada lectura se debe indicar con un '''AckI2C''' o '''NotAckI2C''' según corresponda, como se explicó en la sección Bloques.&lt;br /&gt;
&lt;br /&gt;
Para finalizar la comunicación se procede igual que con la escritura, es decir, '''StopI2C''', y '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;xr6-U5snzp0&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_reader.zip]]&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Hoy en día no es posible configurar desde la paleta la frecuencia de trabajo de I2C y por defecto dicha frecuencia se encuentra configurada en 100Kbps. &amp;lt;br/&amp;gt;&lt;br /&gt;
Como el protocolo soporta frecuencias mayores, se espera en un futuro contar con la opción de configurar la frecuencia deseada.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8726</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8726"/>
				<updated>2016-12-14T03:25:29Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Configuración del hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Protocolo I2C ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que ocurre en un bus I2C es que el dispositivo maestro envía una secuencia de inicio (StartI2C). Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. Éstos quedan atentos para ver si se trata de una solicitud para ellos. &lt;br /&gt;
&lt;br /&gt;
A continuación el dispositivo maestro envía la dirección de dispositivo (WriteI2C con la dirección y el bit de R/W). El dispositivo esclavo que posee esa dirección continuará con la transacción, y los otros ignorarán el resto de los intercambios, esperando la próxima secuencia de inicio.&lt;br /&gt;
&lt;br /&gt;
Una vez que el maestro ha enviado la dirección del dispositivo en el bus I2C, puede enviar (WriteI2C con el byte a enviar) ahora el byte de datos. El dispositivo maestro puede seguir enviando bytes al esclavo consecutivamente (WriteI2C consecutivos). &lt;br /&gt;
&lt;br /&gt;
De forma análoga podrá leer bytes enviados por el esclavo (ReadI2C).&lt;br /&gt;
&lt;br /&gt;
Cuando el maestro ha terminado de escribir datos en el esclavo, envía una secuencia de parada (StopI2C) que concluye la transacción.&lt;br /&gt;
&lt;br /&gt;
Al momento de indicar la dirección del esclavo para comenzar la comunicación, se debe indicar si se desea realizar una lectura o una escritura en el bit menos significativo (ver Sección Bloques-WriteI2C). Por lo que para realizar una lectura luego de haber realizado una escritura, se deberá iniciar la comunicación nuevamente con el bit apropiado.&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenI2C''' &lt;br /&gt;
&lt;br /&gt;
Inicializa el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''StartI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que inicia la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Start de I2C, y espera hasta que la secuencia de señal de Start termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''StopI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que finaliza la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Stop de I2C, y espera hasta que la secuencia de señal de Stop termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''CloseI2C'''&lt;br /&gt;
&lt;br /&gt;
Finaliza el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C'''&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C.&lt;br /&gt;
&lt;br /&gt;
También es utilizado para enviar la dirección del esclavo al que se desea comunicar.&lt;br /&gt;
&lt;br /&gt;
La dirección se debe escribir de la siguiente forma en el byte a enviar:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c-address.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''ReadI2C'''&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C.&lt;br /&gt;
&lt;br /&gt;
Para leer varios bytes, se envía un AckI2C luego de cada byte leído.&lt;br /&gt;
&lt;br /&gt;
Cuando se lee el último byte se debe enviar un NotAckI2C.&lt;br /&gt;
&lt;br /&gt;
Esto aplica para leer un solo byte, se envía un NotAckI2C luego de la lectura del byte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''AckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un acknowledgement de que el byte se leyó, y se procederá a leer otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''NotAckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un negative acknowledgement para indicar que se leyó el byte, y se finalizará la lectura.&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: [[Archivo:I2c plugins.zip]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: Debe estar instalado en la USB4Butiá el firmware con soporte para I2C.&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de comunicación con placa Arduino ===&lt;br /&gt;
&lt;br /&gt;
Nota: La placa Arduino se utilizará como esclavo en la dirección 0x04.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_schematics.png| thumb | Diagrama del circuito utilizado.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_usb4butia.jpg | thumb | USB4Butiá acondicionada para la prueba.]]&lt;br /&gt;
&lt;br /&gt;
=== Configuración del hardware ===&lt;br /&gt;
&lt;br /&gt;
Para poder realizar el siguiente ejemplo se necesitan los siguientes materiales:&lt;br /&gt;
&lt;br /&gt;
*1 x Arduino UNO&lt;br /&gt;
*2 x Resistencias de 1k ohms&lt;br /&gt;
*3 x Cables Dupont Macho-Macho&lt;br /&gt;
*4 x Cables Dupont Macho-Hembra&lt;br /&gt;
&lt;br /&gt;
=== Enviar un mensaje a la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_write.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Lo primero que se necesita hacer es inicializar el módulo I2C con '''OpenI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar un mensaje indicando a los dispositivos esclavos conectados que se comenzará una comunicación I2C. Esto se hace enviando un '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que los dispositivos saben que se comenzó la comunicación, se debe enviar un mensaje con la dirección del dispositivo esclavo e indicar si se va a realizar una escritura o lectura.&lt;br /&gt;
&lt;br /&gt;
En este caso se envía la dirección y el bit menos significativo en 0, ya que se desea hacer una escritura:&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 0&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x08 (0000 1000 | 0 : 0000 1000 (0x08) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x08)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de enviar la dirección del dispositivo esclavo, se procede a enviar los mensajes con '''WriteI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, para terminar la comunicación con el dispositivo se envía un '''StopI2C''', y si no se realizará otra comunicación se cierra el modulo I2C con '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;1n0N8AQDT5M&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_sender.zip]]&lt;br /&gt;
&lt;br /&gt;
=== Leer un mensaje desde la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_read.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Para realizar una lectura se realizan los dos primeros pasos de igual forma: '''OpenI2C''', y '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar la dirección del esclavo, e indicar que se realizará una lectura (bit de R/W en 1):&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 1&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x09 (0000 1000 | 1 : 0000 1001(0x09) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x09)'''&lt;br /&gt;
&lt;br /&gt;
Una vez enviada la dirección con el bit de R/W correspondiente se procede a leer los bytes enviados por el esclavo con '''ReadI2C'''.&lt;br /&gt;
&lt;br /&gt;
Después de cada lectura se debe indicar con un '''AckI2C''' o '''NotAckI2C''' según corresponda, como se explicó en la sección Bloques.&lt;br /&gt;
&lt;br /&gt;
Para finalizar la comunicación se procede igual que con la escritura, es decir, '''StopI2C''', y '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;xr6-U5snzp0&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_reader.zip]]&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Hoy en día no es posible configurar desde la paleta la frecuencia de trabajo de I2C y por defecto dicha frecuencia se encuentra configurada en 100Kbps. &amp;lt;br/&amp;gt;&lt;br /&gt;
Como el protocolo soporta frecuencias mayores, se espera en un futuro contar con la opción de configurar la frecuencia deseada.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8725</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8725"/>
				<updated>2016-12-14T03:21:36Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Ejemplo de comunicación con placa Arduino */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Protocolo I2C ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que ocurre en un bus I2C es que el dispositivo maestro envía una secuencia de inicio (StartI2C). Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. Éstos quedan atentos para ver si se trata de una solicitud para ellos. &lt;br /&gt;
&lt;br /&gt;
A continuación el dispositivo maestro envía la dirección de dispositivo (WriteI2C con la dirección y el bit de R/W). El dispositivo esclavo que posee esa dirección continuará con la transacción, y los otros ignorarán el resto de los intercambios, esperando la próxima secuencia de inicio.&lt;br /&gt;
&lt;br /&gt;
Una vez que el maestro ha enviado la dirección del dispositivo en el bus I2C, puede enviar (WriteI2C con el byte a enviar) ahora el byte de datos. El dispositivo maestro puede seguir enviando bytes al esclavo consecutivamente (WriteI2C consecutivos). &lt;br /&gt;
&lt;br /&gt;
De forma análoga podrá leer bytes enviados por el esclavo (ReadI2C).&lt;br /&gt;
&lt;br /&gt;
Cuando el maestro ha terminado de escribir datos en el esclavo, envía una secuencia de parada (StopI2C) que concluye la transacción.&lt;br /&gt;
&lt;br /&gt;
Al momento de indicar la dirección del esclavo para comenzar la comunicación, se debe indicar si se desea realizar una lectura o una escritura en el bit menos significativo (ver Sección Bloques-WriteI2C). Por lo que para realizar una lectura luego de haber realizado una escritura, se deberá iniciar la comunicación nuevamente con el bit apropiado.&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenI2C''' &lt;br /&gt;
&lt;br /&gt;
Inicializa el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''StartI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que inicia la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Start de I2C, y espera hasta que la secuencia de señal de Start termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''StopI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que finaliza la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Stop de I2C, y espera hasta que la secuencia de señal de Stop termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''CloseI2C'''&lt;br /&gt;
&lt;br /&gt;
Finaliza el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C'''&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C.&lt;br /&gt;
&lt;br /&gt;
También es utilizado para enviar la dirección del esclavo al que se desea comunicar.&lt;br /&gt;
&lt;br /&gt;
La dirección se debe escribir de la siguiente forma en el byte a enviar:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c-address.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''ReadI2C'''&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C.&lt;br /&gt;
&lt;br /&gt;
Para leer varios bytes, se envía un AckI2C luego de cada byte leído.&lt;br /&gt;
&lt;br /&gt;
Cuando se lee el último byte se debe enviar un NotAckI2C.&lt;br /&gt;
&lt;br /&gt;
Esto aplica para leer un solo byte, se envía un NotAckI2C luego de la lectura del byte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''AckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un acknowledgement de que el byte se leyó, y se procederá a leer otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''NotAckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un negative acknowledgement para indicar que se leyó el byte, y se finalizará la lectura.&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: [[Archivo:I2c plugins.zip]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: Debe estar instalado en la USB4Butiá el firmware con soporte para I2C.&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de comunicación con placa Arduino ===&lt;br /&gt;
&lt;br /&gt;
Nota: La placa Arduino se utilizará como esclavo en la dirección 0x04.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_schematics.png| thumb | Diagrama del circuito utilizado.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_usb4butia.jpg | thumb | USB4Butiá acondicionada para la prueba.]]&lt;br /&gt;
&lt;br /&gt;
=== Configuración del hardware ===&lt;br /&gt;
&lt;br /&gt;
=== Enviar un mensaje a la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_write.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Lo primero que se necesita hacer es inicializar el módulo I2C con '''OpenI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar un mensaje indicando a los dispositivos esclavos conectados que se comenzará una comunicación I2C. Esto se hace enviando un '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que los dispositivos saben que se comenzó la comunicación, se debe enviar un mensaje con la dirección del dispositivo esclavo e indicar si se va a realizar una escritura o lectura.&lt;br /&gt;
&lt;br /&gt;
En este caso se envía la dirección y el bit menos significativo en 0, ya que se desea hacer una escritura:&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 0&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x08 (0000 1000 | 0 : 0000 1000 (0x08) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x08)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de enviar la dirección del dispositivo esclavo, se procede a enviar los mensajes con '''WriteI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, para terminar la comunicación con el dispositivo se envía un '''StopI2C''', y si no se realizará otra comunicación se cierra el modulo I2C con '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;1n0N8AQDT5M&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_sender.zip]]&lt;br /&gt;
&lt;br /&gt;
=== Leer un mensaje desde la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_read.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Para realizar una lectura se realizan los dos primeros pasos de igual forma: '''OpenI2C''', y '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar la dirección del esclavo, e indicar que se realizará una lectura (bit de R/W en 1):&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 1&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x09 (0000 1000 | 1 : 0000 1001(0x09) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x09)'''&lt;br /&gt;
&lt;br /&gt;
Una vez enviada la dirección con el bit de R/W correspondiente se procede a leer los bytes enviados por el esclavo con '''ReadI2C'''.&lt;br /&gt;
&lt;br /&gt;
Después de cada lectura se debe indicar con un '''AckI2C''' o '''NotAckI2C''' según corresponda, como se explicó en la sección Bloques.&lt;br /&gt;
&lt;br /&gt;
Para finalizar la comunicación se procede igual que con la escritura, es decir, '''StopI2C''', y '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;xr6-U5snzp0&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_reader.zip]]&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Hoy en día no es posible configurar desde la paleta la frecuencia de trabajo de I2C y por defecto dicha frecuencia se encuentra configurada en 100Kbps. &amp;lt;br/&amp;gt;&lt;br /&gt;
Como el protocolo soporta frecuencias mayores, se espera en un futuro contar con la opción de configurar la frecuencia deseada.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8724</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8724"/>
				<updated>2016-12-14T03:19:43Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Ejemplo de comunicación con placa Arduino */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Protocolo I2C ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que ocurre en un bus I2C es que el dispositivo maestro envía una secuencia de inicio (StartI2C). Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. Éstos quedan atentos para ver si se trata de una solicitud para ellos. &lt;br /&gt;
&lt;br /&gt;
A continuación el dispositivo maestro envía la dirección de dispositivo (WriteI2C con la dirección y el bit de R/W). El dispositivo esclavo que posee esa dirección continuará con la transacción, y los otros ignorarán el resto de los intercambios, esperando la próxima secuencia de inicio.&lt;br /&gt;
&lt;br /&gt;
Una vez que el maestro ha enviado la dirección del dispositivo en el bus I2C, puede enviar (WriteI2C con el byte a enviar) ahora el byte de datos. El dispositivo maestro puede seguir enviando bytes al esclavo consecutivamente (WriteI2C consecutivos). &lt;br /&gt;
&lt;br /&gt;
De forma análoga podrá leer bytes enviados por el esclavo (ReadI2C).&lt;br /&gt;
&lt;br /&gt;
Cuando el maestro ha terminado de escribir datos en el esclavo, envía una secuencia de parada (StopI2C) que concluye la transacción.&lt;br /&gt;
&lt;br /&gt;
Al momento de indicar la dirección del esclavo para comenzar la comunicación, se debe indicar si se desea realizar una lectura o una escritura en el bit menos significativo (ver Sección Bloques-WriteI2C). Por lo que para realizar una lectura luego de haber realizado una escritura, se deberá iniciar la comunicación nuevamente con el bit apropiado.&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenI2C''' &lt;br /&gt;
&lt;br /&gt;
Inicializa el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''StartI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que inicia la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Start de I2C, y espera hasta que la secuencia de señal de Start termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''StopI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que finaliza la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Stop de I2C, y espera hasta que la secuencia de señal de Stop termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''CloseI2C'''&lt;br /&gt;
&lt;br /&gt;
Finaliza el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C'''&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C.&lt;br /&gt;
&lt;br /&gt;
También es utilizado para enviar la dirección del esclavo al que se desea comunicar.&lt;br /&gt;
&lt;br /&gt;
La dirección se debe escribir de la siguiente forma en el byte a enviar:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c-address.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''ReadI2C'''&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C.&lt;br /&gt;
&lt;br /&gt;
Para leer varios bytes, se envía un AckI2C luego de cada byte leído.&lt;br /&gt;
&lt;br /&gt;
Cuando se lee el último byte se debe enviar un NotAckI2C.&lt;br /&gt;
&lt;br /&gt;
Esto aplica para leer un solo byte, se envía un NotAckI2C luego de la lectura del byte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''AckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un acknowledgement de que el byte se leyó, y se procederá a leer otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''NotAckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un negative acknowledgement para indicar que se leyó el byte, y se finalizará la lectura.&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: [[Archivo:I2c plugins.zip]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: Debe estar instalado en la USB4Butiá el firmware con soporte para I2C.&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de comunicación con placa Arduino ===&lt;br /&gt;
&lt;br /&gt;
Nota: La placa Arduino se utilizará como esclavo en la dirección 0x04.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_schematics.png| thumb | Diagrama del circuito utilizado.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_usb4butia.jpg | thumb | USB4Butiá acondicionada para la prueba.]]&lt;br /&gt;
&lt;br /&gt;
=== Configuración del hardware ===&lt;br /&gt;
&lt;br /&gt;
=== Enviar un mensaje a la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_write.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Lo primero que se necesita hacer es inicializar el módulo I2C con '''OpenI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar un mensaje indicando a los dispositivos esclavos conectados que se comenzará una comunicación I2C. Esto se hace enviando un '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que los dispositivos saben que se comenzó la comunicación, se debe enviar un mensaje con la dirección del dispositivo esclavo e indicar si se va a realizar una escritura o lectura.&lt;br /&gt;
&lt;br /&gt;
En este caso se envía la dirección y el bit menos significativo en 0, ya que se desea hacer una escritura:&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 0&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x08 (0000 1000 | 0 : 0000 1000 (0x08) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x08)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de enviar la dirección del dispositivo esclavo, se procede a enviar los mensajes con '''WriteI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, para terminar la comunicación con el dispositivo se envía un '''StopI2C''', y si no se realizará otra comunicación se cierra el modulo I2C con '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;1n0N8AQDT5M&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_sender.zip]]&lt;br /&gt;
&lt;br /&gt;
=== Leer un mensaje desde la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_read.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Para realizar una lectura se realizan los dos primeros pasos de igual forma: '''OpenI2C''', y '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar la dirección del esclavo, e indicar que se realizará una lectura (bit de R/W en 1):&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 1&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x09 (0000 1000 | 1 : 0000 1001(0x09) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x09)'''&lt;br /&gt;
&lt;br /&gt;
Una vez enviada la dirección con el bit de R/W correspondiente se procede a leer los bytes enviados por el esclavo con '''ReadI2C'''.&lt;br /&gt;
&lt;br /&gt;
Después de cada lectura se debe indicar con un '''AckI2C''' o '''NotAckI2C''' según corresponda, como se explicó en la sección Bloques.&lt;br /&gt;
&lt;br /&gt;
Para finalizar la comunicación se procede igual que con la escritura, es decir, '''StopI2C''', y '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;xr6-U5snzp0&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_reader.zip]]&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Hoy en día no es posible configurar desde la paleta la frecuencia de trabajo de I2C y por defecto dicha frecuencia se encuentra configurada en 100Kbps. &amp;lt;br/&amp;gt;&lt;br /&gt;
Como el protocolo soporta frecuencias mayores, se espera en un futuro contar con la opción de configurar la frecuencia deseada.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8723</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8723"/>
				<updated>2016-12-14T03:19:09Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Ejemplo de comunicación con placa Arduino */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Protocolo I2C ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que ocurre en un bus I2C es que el dispositivo maestro envía una secuencia de inicio (StartI2C). Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. Éstos quedan atentos para ver si se trata de una solicitud para ellos. &lt;br /&gt;
&lt;br /&gt;
A continuación el dispositivo maestro envía la dirección de dispositivo (WriteI2C con la dirección y el bit de R/W). El dispositivo esclavo que posee esa dirección continuará con la transacción, y los otros ignorarán el resto de los intercambios, esperando la próxima secuencia de inicio.&lt;br /&gt;
&lt;br /&gt;
Una vez que el maestro ha enviado la dirección del dispositivo en el bus I2C, puede enviar (WriteI2C con el byte a enviar) ahora el byte de datos. El dispositivo maestro puede seguir enviando bytes al esclavo consecutivamente (WriteI2C consecutivos). &lt;br /&gt;
&lt;br /&gt;
De forma análoga podrá leer bytes enviados por el esclavo (ReadI2C).&lt;br /&gt;
&lt;br /&gt;
Cuando el maestro ha terminado de escribir datos en el esclavo, envía una secuencia de parada (StopI2C) que concluye la transacción.&lt;br /&gt;
&lt;br /&gt;
Al momento de indicar la dirección del esclavo para comenzar la comunicación, se debe indicar si se desea realizar una lectura o una escritura en el bit menos significativo (ver Sección Bloques-WriteI2C). Por lo que para realizar una lectura luego de haber realizado una escritura, se deberá iniciar la comunicación nuevamente con el bit apropiado.&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenI2C''' &lt;br /&gt;
&lt;br /&gt;
Inicializa el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''StartI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que inicia la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Start de I2C, y espera hasta que la secuencia de señal de Start termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''StopI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que finaliza la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Stop de I2C, y espera hasta que la secuencia de señal de Stop termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''CloseI2C'''&lt;br /&gt;
&lt;br /&gt;
Finaliza el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C'''&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C.&lt;br /&gt;
&lt;br /&gt;
También es utilizado para enviar la dirección del esclavo al que se desea comunicar.&lt;br /&gt;
&lt;br /&gt;
La dirección se debe escribir de la siguiente forma en el byte a enviar:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c-address.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''ReadI2C'''&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C.&lt;br /&gt;
&lt;br /&gt;
Para leer varios bytes, se envía un AckI2C luego de cada byte leído.&lt;br /&gt;
&lt;br /&gt;
Cuando se lee el último byte se debe enviar un NotAckI2C.&lt;br /&gt;
&lt;br /&gt;
Esto aplica para leer un solo byte, se envía un NotAckI2C luego de la lectura del byte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''AckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un acknowledgement de que el byte se leyó, y se procederá a leer otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''NotAckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un negative acknowledgement para indicar que se leyó el byte, y se finalizará la lectura.&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: [[Archivo:I2c plugins.zip]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: Debe estar instalado en la USB4Butiá el firmware con soporte para I2C.&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de comunicación con placa Arduino ===&lt;br /&gt;
&lt;br /&gt;
Nota: La placa Arduino se utilizará como esclavo en la dirección 0x04.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_schematics.png| thumb | Diagrama del circuito utilizado.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_arduino.jpg | thumb | Arduino UNO utilizada en el ejemplo.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_proto.jpg | thumb | Circuito.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_usb4butia.jpg | thumb | USB4Butiá acondicionada para la prueba.]]&lt;br /&gt;
&lt;br /&gt;
=== Configuración del hardware ===&lt;br /&gt;
&lt;br /&gt;
=== Enviar un mensaje a la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_write.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Lo primero que se necesita hacer es inicializar el módulo I2C con '''OpenI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar un mensaje indicando a los dispositivos esclavos conectados que se comenzará una comunicación I2C. Esto se hace enviando un '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que los dispositivos saben que se comenzó la comunicación, se debe enviar un mensaje con la dirección del dispositivo esclavo e indicar si se va a realizar una escritura o lectura.&lt;br /&gt;
&lt;br /&gt;
En este caso se envía la dirección y el bit menos significativo en 0, ya que se desea hacer una escritura:&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 0&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x08 (0000 1000 | 0 : 0000 1000 (0x08) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x08)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de enviar la dirección del dispositivo esclavo, se procede a enviar los mensajes con '''WriteI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, para terminar la comunicación con el dispositivo se envía un '''StopI2C''', y si no se realizará otra comunicación se cierra el modulo I2C con '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;1n0N8AQDT5M&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_sender.zip]]&lt;br /&gt;
&lt;br /&gt;
=== Leer un mensaje desde la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_read.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Para realizar una lectura se realizan los dos primeros pasos de igual forma: '''OpenI2C''', y '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar la dirección del esclavo, e indicar que se realizará una lectura (bit de R/W en 1):&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 1&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x09 (0000 1000 | 1 : 0000 1001(0x09) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x09)'''&lt;br /&gt;
&lt;br /&gt;
Una vez enviada la dirección con el bit de R/W correspondiente se procede a leer los bytes enviados por el esclavo con '''ReadI2C'''.&lt;br /&gt;
&lt;br /&gt;
Después de cada lectura se debe indicar con un '''AckI2C''' o '''NotAckI2C''' según corresponda, como se explicó en la sección Bloques.&lt;br /&gt;
&lt;br /&gt;
Para finalizar la comunicación se procede igual que con la escritura, es decir, '''StopI2C''', y '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;xr6-U5snzp0&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_reader.zip]]&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Hoy en día no es posible configurar desde la paleta la frecuencia de trabajo de I2C y por defecto dicha frecuencia se encuentra configurada en 100Kbps. &amp;lt;br/&amp;gt;&lt;br /&gt;
Como el protocolo soporta frecuencias mayores, se espera en un futuro contar con la opción de configurar la frecuencia deseada.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8722</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8722"/>
				<updated>2016-12-14T03:18:56Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Configuración del hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Protocolo I2C ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que ocurre en un bus I2C es que el dispositivo maestro envía una secuencia de inicio (StartI2C). Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. Éstos quedan atentos para ver si se trata de una solicitud para ellos. &lt;br /&gt;
&lt;br /&gt;
A continuación el dispositivo maestro envía la dirección de dispositivo (WriteI2C con la dirección y el bit de R/W). El dispositivo esclavo que posee esa dirección continuará con la transacción, y los otros ignorarán el resto de los intercambios, esperando la próxima secuencia de inicio.&lt;br /&gt;
&lt;br /&gt;
Una vez que el maestro ha enviado la dirección del dispositivo en el bus I2C, puede enviar (WriteI2C con el byte a enviar) ahora el byte de datos. El dispositivo maestro puede seguir enviando bytes al esclavo consecutivamente (WriteI2C consecutivos). &lt;br /&gt;
&lt;br /&gt;
De forma análoga podrá leer bytes enviados por el esclavo (ReadI2C).&lt;br /&gt;
&lt;br /&gt;
Cuando el maestro ha terminado de escribir datos en el esclavo, envía una secuencia de parada (StopI2C) que concluye la transacción.&lt;br /&gt;
&lt;br /&gt;
Al momento de indicar la dirección del esclavo para comenzar la comunicación, se debe indicar si se desea realizar una lectura o una escritura en el bit menos significativo (ver Sección Bloques-WriteI2C). Por lo que para realizar una lectura luego de haber realizado una escritura, se deberá iniciar la comunicación nuevamente con el bit apropiado.&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenI2C''' &lt;br /&gt;
&lt;br /&gt;
Inicializa el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''StartI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que inicia la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Start de I2C, y espera hasta que la secuencia de señal de Start termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''StopI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que finaliza la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Stop de I2C, y espera hasta que la secuencia de señal de Stop termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''CloseI2C'''&lt;br /&gt;
&lt;br /&gt;
Finaliza el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C'''&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C.&lt;br /&gt;
&lt;br /&gt;
También es utilizado para enviar la dirección del esclavo al que se desea comunicar.&lt;br /&gt;
&lt;br /&gt;
La dirección se debe escribir de la siguiente forma en el byte a enviar:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c-address.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''ReadI2C'''&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C.&lt;br /&gt;
&lt;br /&gt;
Para leer varios bytes, se envía un AckI2C luego de cada byte leído.&lt;br /&gt;
&lt;br /&gt;
Cuando se lee el último byte se debe enviar un NotAckI2C.&lt;br /&gt;
&lt;br /&gt;
Esto aplica para leer un solo byte, se envía un NotAckI2C luego de la lectura del byte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''AckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un acknowledgement de que el byte se leyó, y se procederá a leer otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''NotAckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un negative acknowledgement para indicar que se leyó el byte, y se finalizará la lectura.&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: [[Archivo:I2c plugins.zip]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: Debe estar instalado en la USB4Butiá el firmware con soporte para I2C.&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de comunicación con placa Arduino ===&lt;br /&gt;
&lt;br /&gt;
Nota: La placa Arduino se utilizará como esclavo en la dirección 0x04.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_arduino.jpg | thumb | Arduino UNO utilizada en el ejemplo.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_proto.jpg | thumb | Circuito.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_usb4butia.jpg | thumb | USB4Butiá acondicionada para la prueba.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuración del hardware ===&lt;br /&gt;
&lt;br /&gt;
=== Enviar un mensaje a la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_write.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Lo primero que se necesita hacer es inicializar el módulo I2C con '''OpenI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar un mensaje indicando a los dispositivos esclavos conectados que se comenzará una comunicación I2C. Esto se hace enviando un '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que los dispositivos saben que se comenzó la comunicación, se debe enviar un mensaje con la dirección del dispositivo esclavo e indicar si se va a realizar una escritura o lectura.&lt;br /&gt;
&lt;br /&gt;
En este caso se envía la dirección y el bit menos significativo en 0, ya que se desea hacer una escritura:&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 0&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x08 (0000 1000 | 0 : 0000 1000 (0x08) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x08)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de enviar la dirección del dispositivo esclavo, se procede a enviar los mensajes con '''WriteI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, para terminar la comunicación con el dispositivo se envía un '''StopI2C''', y si no se realizará otra comunicación se cierra el modulo I2C con '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;1n0N8AQDT5M&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_sender.zip]]&lt;br /&gt;
&lt;br /&gt;
=== Leer un mensaje desde la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_read.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Para realizar una lectura se realizan los dos primeros pasos de igual forma: '''OpenI2C''', y '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar la dirección del esclavo, e indicar que se realizará una lectura (bit de R/W en 1):&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 1&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x09 (0000 1000 | 1 : 0000 1001(0x09) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x09)'''&lt;br /&gt;
&lt;br /&gt;
Una vez enviada la dirección con el bit de R/W correspondiente se procede a leer los bytes enviados por el esclavo con '''ReadI2C'''.&lt;br /&gt;
&lt;br /&gt;
Después de cada lectura se debe indicar con un '''AckI2C''' o '''NotAckI2C''' según corresponda, como se explicó en la sección Bloques.&lt;br /&gt;
&lt;br /&gt;
Para finalizar la comunicación se procede igual que con la escritura, es decir, '''StopI2C''', y '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;xr6-U5snzp0&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_reader.zip]]&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Hoy en día no es posible configurar desde la paleta la frecuencia de trabajo de I2C y por defecto dicha frecuencia se encuentra configurada en 100Kbps. &amp;lt;br/&amp;gt;&lt;br /&gt;
Como el protocolo soporta frecuencias mayores, se espera en un futuro contar con la opción de configurar la frecuencia deseada.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8721</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8721"/>
				<updated>2016-12-14T03:18:25Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Configuración del hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Protocolo I2C ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que ocurre en un bus I2C es que el dispositivo maestro envía una secuencia de inicio (StartI2C). Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. Éstos quedan atentos para ver si se trata de una solicitud para ellos. &lt;br /&gt;
&lt;br /&gt;
A continuación el dispositivo maestro envía la dirección de dispositivo (WriteI2C con la dirección y el bit de R/W). El dispositivo esclavo que posee esa dirección continuará con la transacción, y los otros ignorarán el resto de los intercambios, esperando la próxima secuencia de inicio.&lt;br /&gt;
&lt;br /&gt;
Una vez que el maestro ha enviado la dirección del dispositivo en el bus I2C, puede enviar (WriteI2C con el byte a enviar) ahora el byte de datos. El dispositivo maestro puede seguir enviando bytes al esclavo consecutivamente (WriteI2C consecutivos). &lt;br /&gt;
&lt;br /&gt;
De forma análoga podrá leer bytes enviados por el esclavo (ReadI2C).&lt;br /&gt;
&lt;br /&gt;
Cuando el maestro ha terminado de escribir datos en el esclavo, envía una secuencia de parada (StopI2C) que concluye la transacción.&lt;br /&gt;
&lt;br /&gt;
Al momento de indicar la dirección del esclavo para comenzar la comunicación, se debe indicar si se desea realizar una lectura o una escritura en el bit menos significativo (ver Sección Bloques-WriteI2C). Por lo que para realizar una lectura luego de haber realizado una escritura, se deberá iniciar la comunicación nuevamente con el bit apropiado.&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenI2C''' &lt;br /&gt;
&lt;br /&gt;
Inicializa el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''StartI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que inicia la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Start de I2C, y espera hasta que la secuencia de señal de Start termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''StopI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que finaliza la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Stop de I2C, y espera hasta que la secuencia de señal de Stop termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''CloseI2C'''&lt;br /&gt;
&lt;br /&gt;
Finaliza el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C'''&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C.&lt;br /&gt;
&lt;br /&gt;
También es utilizado para enviar la dirección del esclavo al que se desea comunicar.&lt;br /&gt;
&lt;br /&gt;
La dirección se debe escribir de la siguiente forma en el byte a enviar:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c-address.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''ReadI2C'''&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C.&lt;br /&gt;
&lt;br /&gt;
Para leer varios bytes, se envía un AckI2C luego de cada byte leído.&lt;br /&gt;
&lt;br /&gt;
Cuando se lee el último byte se debe enviar un NotAckI2C.&lt;br /&gt;
&lt;br /&gt;
Esto aplica para leer un solo byte, se envía un NotAckI2C luego de la lectura del byte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''AckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un acknowledgement de que el byte se leyó, y se procederá a leer otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''NotAckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un negative acknowledgement para indicar que se leyó el byte, y se finalizará la lectura.&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: [[Archivo:I2c plugins.zip]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: Debe estar instalado en la USB4Butiá el firmware con soporte para I2C.&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de comunicación con placa Arduino ===&lt;br /&gt;
&lt;br /&gt;
Nota: La placa Arduino se utilizará como esclavo en la dirección 0x04.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_arduino.jpg | thumb | Arduino UNO utilizada en el ejemplo.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_proto.jpg | thumb | Circuito.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_usb4butia.jpg | thumb | USB4Butiá acondicionada para la prueba.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuración del hardware ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_schematics.png| thumb | Diagrama del circuito utilizado.]]&lt;br /&gt;
&lt;br /&gt;
=== Enviar un mensaje a la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_write.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Lo primero que se necesita hacer es inicializar el módulo I2C con '''OpenI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar un mensaje indicando a los dispositivos esclavos conectados que se comenzará una comunicación I2C. Esto se hace enviando un '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que los dispositivos saben que se comenzó la comunicación, se debe enviar un mensaje con la dirección del dispositivo esclavo e indicar si se va a realizar una escritura o lectura.&lt;br /&gt;
&lt;br /&gt;
En este caso se envía la dirección y el bit menos significativo en 0, ya que se desea hacer una escritura:&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 0&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x08 (0000 1000 | 0 : 0000 1000 (0x08) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x08)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de enviar la dirección del dispositivo esclavo, se procede a enviar los mensajes con '''WriteI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, para terminar la comunicación con el dispositivo se envía un '''StopI2C''', y si no se realizará otra comunicación se cierra el modulo I2C con '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;1n0N8AQDT5M&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_sender.zip]]&lt;br /&gt;
&lt;br /&gt;
=== Leer un mensaje desde la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_read.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Para realizar una lectura se realizan los dos primeros pasos de igual forma: '''OpenI2C''', y '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar la dirección del esclavo, e indicar que se realizará una lectura (bit de R/W en 1):&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 1&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x09 (0000 1000 | 1 : 0000 1001(0x09) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x09)'''&lt;br /&gt;
&lt;br /&gt;
Una vez enviada la dirección con el bit de R/W correspondiente se procede a leer los bytes enviados por el esclavo con '''ReadI2C'''.&lt;br /&gt;
&lt;br /&gt;
Después de cada lectura se debe indicar con un '''AckI2C''' o '''NotAckI2C''' según corresponda, como se explicó en la sección Bloques.&lt;br /&gt;
&lt;br /&gt;
Para finalizar la comunicación se procede igual que con la escritura, es decir, '''StopI2C''', y '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;xr6-U5snzp0&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_reader.zip]]&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Hoy en día no es posible configurar desde la paleta la frecuencia de trabajo de I2C y por defecto dicha frecuencia se encuentra configurada en 100Kbps. &amp;lt;br/&amp;gt;&lt;br /&gt;
Como el protocolo soporta frecuencias mayores, se espera en un futuro contar con la opción de configurar la frecuencia deseada.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8720</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8720"/>
				<updated>2016-12-14T03:16:51Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Configuración del hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Protocolo I2C ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que ocurre en un bus I2C es que el dispositivo maestro envía una secuencia de inicio (StartI2C). Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. Éstos quedan atentos para ver si se trata de una solicitud para ellos. &lt;br /&gt;
&lt;br /&gt;
A continuación el dispositivo maestro envía la dirección de dispositivo (WriteI2C con la dirección y el bit de R/W). El dispositivo esclavo que posee esa dirección continuará con la transacción, y los otros ignorarán el resto de los intercambios, esperando la próxima secuencia de inicio.&lt;br /&gt;
&lt;br /&gt;
Una vez que el maestro ha enviado la dirección del dispositivo en el bus I2C, puede enviar (WriteI2C con el byte a enviar) ahora el byte de datos. El dispositivo maestro puede seguir enviando bytes al esclavo consecutivamente (WriteI2C consecutivos). &lt;br /&gt;
&lt;br /&gt;
De forma análoga podrá leer bytes enviados por el esclavo (ReadI2C).&lt;br /&gt;
&lt;br /&gt;
Cuando el maestro ha terminado de escribir datos en el esclavo, envía una secuencia de parada (StopI2C) que concluye la transacción.&lt;br /&gt;
&lt;br /&gt;
Al momento de indicar la dirección del esclavo para comenzar la comunicación, se debe indicar si se desea realizar una lectura o una escritura en el bit menos significativo (ver Sección Bloques-WriteI2C). Por lo que para realizar una lectura luego de haber realizado una escritura, se deberá iniciar la comunicación nuevamente con el bit apropiado.&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenI2C''' &lt;br /&gt;
&lt;br /&gt;
Inicializa el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''StartI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que inicia la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Start de I2C, y espera hasta que la secuencia de señal de Start termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''StopI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que finaliza la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Stop de I2C, y espera hasta que la secuencia de señal de Stop termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''CloseI2C'''&lt;br /&gt;
&lt;br /&gt;
Finaliza el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C'''&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C.&lt;br /&gt;
&lt;br /&gt;
También es utilizado para enviar la dirección del esclavo al que se desea comunicar.&lt;br /&gt;
&lt;br /&gt;
La dirección se debe escribir de la siguiente forma en el byte a enviar:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c-address.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''ReadI2C'''&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C.&lt;br /&gt;
&lt;br /&gt;
Para leer varios bytes, se envía un AckI2C luego de cada byte leído.&lt;br /&gt;
&lt;br /&gt;
Cuando se lee el último byte se debe enviar un NotAckI2C.&lt;br /&gt;
&lt;br /&gt;
Esto aplica para leer un solo byte, se envía un NotAckI2C luego de la lectura del byte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''AckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un acknowledgement de que el byte se leyó, y se procederá a leer otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''NotAckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un negative acknowledgement para indicar que se leyó el byte, y se finalizará la lectura.&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: [[Archivo:I2c plugins.zip]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: Debe estar instalado en la USB4Butiá el firmware con soporte para I2C.&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de comunicación con placa Arduino ===&lt;br /&gt;
&lt;br /&gt;
Nota: La placa Arduino se utilizará como esclavo en la dirección 0x04.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_arduino.jpg | thumb | Arduino UNO utilizada en el ejemplo.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_proto.jpg | thumb | Circuito.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_usb4butia.jpg | thumb | USB4Butiá acondicionada para la prueba.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuración del hardware ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_schematics.png| thumb |]]&lt;br /&gt;
&lt;br /&gt;
=== Enviar un mensaje a la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_write.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Lo primero que se necesita hacer es inicializar el módulo I2C con '''OpenI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar un mensaje indicando a los dispositivos esclavos conectados que se comenzará una comunicación I2C. Esto se hace enviando un '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que los dispositivos saben que se comenzó la comunicación, se debe enviar un mensaje con la dirección del dispositivo esclavo e indicar si se va a realizar una escritura o lectura.&lt;br /&gt;
&lt;br /&gt;
En este caso se envía la dirección y el bit menos significativo en 0, ya que se desea hacer una escritura:&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 0&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x08 (0000 1000 | 0 : 0000 1000 (0x08) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x08)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de enviar la dirección del dispositivo esclavo, se procede a enviar los mensajes con '''WriteI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, para terminar la comunicación con el dispositivo se envía un '''StopI2C''', y si no se realizará otra comunicación se cierra el modulo I2C con '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;1n0N8AQDT5M&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_sender.zip]]&lt;br /&gt;
&lt;br /&gt;
=== Leer un mensaje desde la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_read.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Para realizar una lectura se realizan los dos primeros pasos de igual forma: '''OpenI2C''', y '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar la dirección del esclavo, e indicar que se realizará una lectura (bit de R/W en 1):&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 1&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x09 (0000 1000 | 1 : 0000 1001(0x09) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x09)'''&lt;br /&gt;
&lt;br /&gt;
Una vez enviada la dirección con el bit de R/W correspondiente se procede a leer los bytes enviados por el esclavo con '''ReadI2C'''.&lt;br /&gt;
&lt;br /&gt;
Después de cada lectura se debe indicar con un '''AckI2C''' o '''NotAckI2C''' según corresponda, como se explicó en la sección Bloques.&lt;br /&gt;
&lt;br /&gt;
Para finalizar la comunicación se procede igual que con la escritura, es decir, '''StopI2C''', y '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;xr6-U5snzp0&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_reader.zip]]&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Hoy en día no es posible configurar desde la paleta la frecuencia de trabajo de I2C y por defecto dicha frecuencia se encuentra configurada en 100Kbps. &amp;lt;br/&amp;gt;&lt;br /&gt;
Como el protocolo soporta frecuencias mayores, se espera en un futuro contar con la opción de configurar la frecuencia deseada.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8719</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8719"/>
				<updated>2016-12-14T03:15:56Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Ejemplo de comunicación con placa Arduino */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Protocolo I2C ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que ocurre en un bus I2C es que el dispositivo maestro envía una secuencia de inicio (StartI2C). Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. Éstos quedan atentos para ver si se trata de una solicitud para ellos. &lt;br /&gt;
&lt;br /&gt;
A continuación el dispositivo maestro envía la dirección de dispositivo (WriteI2C con la dirección y el bit de R/W). El dispositivo esclavo que posee esa dirección continuará con la transacción, y los otros ignorarán el resto de los intercambios, esperando la próxima secuencia de inicio.&lt;br /&gt;
&lt;br /&gt;
Una vez que el maestro ha enviado la dirección del dispositivo en el bus I2C, puede enviar (WriteI2C con el byte a enviar) ahora el byte de datos. El dispositivo maestro puede seguir enviando bytes al esclavo consecutivamente (WriteI2C consecutivos). &lt;br /&gt;
&lt;br /&gt;
De forma análoga podrá leer bytes enviados por el esclavo (ReadI2C).&lt;br /&gt;
&lt;br /&gt;
Cuando el maestro ha terminado de escribir datos en el esclavo, envía una secuencia de parada (StopI2C) que concluye la transacción.&lt;br /&gt;
&lt;br /&gt;
Al momento de indicar la dirección del esclavo para comenzar la comunicación, se debe indicar si se desea realizar una lectura o una escritura en el bit menos significativo (ver Sección Bloques-WriteI2C). Por lo que para realizar una lectura luego de haber realizado una escritura, se deberá iniciar la comunicación nuevamente con el bit apropiado.&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenI2C''' &lt;br /&gt;
&lt;br /&gt;
Inicializa el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''StartI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que inicia la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Start de I2C, y espera hasta que la secuencia de señal de Start termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''StopI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que finaliza la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Stop de I2C, y espera hasta que la secuencia de señal de Stop termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''CloseI2C'''&lt;br /&gt;
&lt;br /&gt;
Finaliza el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C'''&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C.&lt;br /&gt;
&lt;br /&gt;
También es utilizado para enviar la dirección del esclavo al que se desea comunicar.&lt;br /&gt;
&lt;br /&gt;
La dirección se debe escribir de la siguiente forma en el byte a enviar:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c-address.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''ReadI2C'''&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C.&lt;br /&gt;
&lt;br /&gt;
Para leer varios bytes, se envía un AckI2C luego de cada byte leído.&lt;br /&gt;
&lt;br /&gt;
Cuando se lee el último byte se debe enviar un NotAckI2C.&lt;br /&gt;
&lt;br /&gt;
Esto aplica para leer un solo byte, se envía un NotAckI2C luego de la lectura del byte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''AckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un acknowledgement de que el byte se leyó, y se procederá a leer otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''NotAckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un negative acknowledgement para indicar que se leyó el byte, y se finalizará la lectura.&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: [[Archivo:I2c plugins.zip]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: Debe estar instalado en la USB4Butiá el firmware con soporte para I2C.&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de comunicación con placa Arduino ===&lt;br /&gt;
&lt;br /&gt;
Nota: La placa Arduino se utilizará como esclavo en la dirección 0x04.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_arduino.jpg | thumb | Arduino UNO utilizada en el ejemplo.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_proto.jpg | thumb | Circuito.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_usb4butia.jpg | thumb | USB4Butiá acondicionada para la prueba.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuración del hardware ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_schematics.png| 400px]]&lt;br /&gt;
&lt;br /&gt;
=== Enviar un mensaje a la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_write.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Lo primero que se necesita hacer es inicializar el módulo I2C con '''OpenI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar un mensaje indicando a los dispositivos esclavos conectados que se comenzará una comunicación I2C. Esto se hace enviando un '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que los dispositivos saben que se comenzó la comunicación, se debe enviar un mensaje con la dirección del dispositivo esclavo e indicar si se va a realizar una escritura o lectura.&lt;br /&gt;
&lt;br /&gt;
En este caso se envía la dirección y el bit menos significativo en 0, ya que se desea hacer una escritura:&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 0&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x08 (0000 1000 | 0 : 0000 1000 (0x08) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x08)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de enviar la dirección del dispositivo esclavo, se procede a enviar los mensajes con '''WriteI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, para terminar la comunicación con el dispositivo se envía un '''StopI2C''', y si no se realizará otra comunicación se cierra el modulo I2C con '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;1n0N8AQDT5M&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_sender.zip]]&lt;br /&gt;
&lt;br /&gt;
=== Leer un mensaje desde la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_read.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Para realizar una lectura se realizan los dos primeros pasos de igual forma: '''OpenI2C''', y '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar la dirección del esclavo, e indicar que se realizará una lectura (bit de R/W en 1):&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 1&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x09 (0000 1000 | 1 : 0000 1001(0x09) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x09)'''&lt;br /&gt;
&lt;br /&gt;
Una vez enviada la dirección con el bit de R/W correspondiente se procede a leer los bytes enviados por el esclavo con '''ReadI2C'''.&lt;br /&gt;
&lt;br /&gt;
Después de cada lectura se debe indicar con un '''AckI2C''' o '''NotAckI2C''' según corresponda, como se explicó en la sección Bloques.&lt;br /&gt;
&lt;br /&gt;
Para finalizar la comunicación se procede igual que con la escritura, es decir, '''StopI2C''', y '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;xr6-U5snzp0&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_reader.zip]]&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Hoy en día no es posible configurar desde la paleta la frecuencia de trabajo de I2C y por defecto dicha frecuencia se encuentra configurada en 100Kbps. &amp;lt;br/&amp;gt;&lt;br /&gt;
Como el protocolo soporta frecuencias mayores, se espera en un futuro contar con la opción de configurar la frecuencia deseada.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_schematics.png&amp;diff=8718</id>
		<title>Archivo:I2c schematics.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_schematics.png&amp;diff=8718"/>
				<updated>2016-12-14T03:09:15Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8715</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8715"/>
				<updated>2016-12-14T01:27:35Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Ejemplo de comunicación con placa Arduino */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Protocolo I2C ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que ocurre en un bus I2C es que el dispositivo maestro envía una secuencia de inicio (StartI2C). Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. Éstos quedan atentos para ver si se trata de una solicitud para ellos. &lt;br /&gt;
&lt;br /&gt;
A continuación el dispositivo maestro envía la dirección de dispositivo (WriteI2C con la dirección y el bit de R/W). El dispositivo esclavo que posee esa dirección continuará con la transacción, y los otros ignorarán el resto de los intercambios, esperando la próxima secuencia de inicio.&lt;br /&gt;
&lt;br /&gt;
Una vez que el maestro ha enviado la dirección del dispositivo en el bus I2C, puede enviar (WriteI2C con el byte a enviar) ahora el byte de datos. El dispositivo maestro puede seguir enviando bytes al esclavo consecutivamente (WriteI2C consecutivos). &lt;br /&gt;
&lt;br /&gt;
De forma análoga podrá leer bytes enviados por el esclavo (ReadI2C).&lt;br /&gt;
&lt;br /&gt;
Cuando el maestro ha terminado de escribir datos en el esclavo, envía una secuencia de parada (StopI2C) que concluye la transacción.&lt;br /&gt;
&lt;br /&gt;
Al momento de indicar la dirección del esclavo para comenzar la comunicación, se debe indicar si se desea realizar una lectura o una escritura en el bit menos significativo (ver Sección Bloques-WriteI2C). Por lo que para realizar una lectura luego de haber realizado una escritura, se deberá iniciar la comunicación nuevamente con el bit apropiado.&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenI2C''' &lt;br /&gt;
&lt;br /&gt;
Inicializa el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''StartI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que inicia la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Start de I2C, y espera hasta que la secuencia de señal de Start termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''StopI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que finaliza la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Stop de I2C, y espera hasta que la secuencia de señal de Stop termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''CloseI2C'''&lt;br /&gt;
&lt;br /&gt;
Finaliza el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C'''&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C.&lt;br /&gt;
&lt;br /&gt;
También es utilizado para enviar la dirección del esclavo al que se desea comunicar.&lt;br /&gt;
&lt;br /&gt;
La dirección se debe escribir de la siguiente forma en el byte a enviar:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c-address.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''ReadI2C'''&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C.&lt;br /&gt;
&lt;br /&gt;
Para leer varios bytes, se envía un AckI2C luego de cada byte leído.&lt;br /&gt;
&lt;br /&gt;
Cuando se lee el último byte se debe enviar un NotAckI2C.&lt;br /&gt;
&lt;br /&gt;
Esto aplica para leer un solo byte, se envía un NotAckI2C luego de la lectura del byte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''AckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un acknowledgement de que el byte se leyó, y se procederá a leer otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''NotAckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un negative acknowledgement para indicar que se leyó el byte, y se finalizará la lectura.&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: i2c_plugin.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: Debe estar instalado en la USB4Butiá el firmware con soporte para I2C.&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de comunicación con placa Arduino ===&lt;br /&gt;
&lt;br /&gt;
Nota: La placa Arduino se utilizará como esclavo en la dirección 0x04.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_arduino.jpg | thumb | Arduino UNO utilizada en el ejemplo.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_proto.jpg | thumb | Circuito.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_usb4butia.jpg | thumb | USB4Butiá acondicionada para la prueba.]]&lt;br /&gt;
&lt;br /&gt;
=== Enviar un mensaje a la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_write.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Lo primero que se necesita hacer es inicializar el módulo I2C con '''OpenI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar un mensaje indicando a los dispositivos esclavos conectados que se comenzará una comunicación I2C. Esto se hace enviando un '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que los dispositivos saben que se comenzó la comunicación, se debe enviar un mensaje con la dirección del dispositivo esclavo e indicar si se va a realizar una escritura o lectura.&lt;br /&gt;
&lt;br /&gt;
En este caso se envía la dirección y el bit menos significativo en 0, ya que se desea hacer una escritura:&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 0&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x08 (0000 1000 | 0 : 0000 1000 (0x08) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x08)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de enviar la dirección del dispositivo esclavo, se procede a enviar los mensajes con '''WriteI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, para terminar la comunicación con el dispositivo se envía un '''StopI2C''', y si no se realizará otra comunicación se cierra el modulo I2C con '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;1n0N8AQDT5M&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_sender.zip]]&lt;br /&gt;
&lt;br /&gt;
=== Leer un mensaje desde la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_read.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Para realizar una lectura se realizan los dos primeros pasos de igual forma: '''OpenI2C''', y '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar la dirección del esclavo, e indicar que se realizará una lectura (bit de R/W en 1):&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 1&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x09 (0000 1000 | 1 : 0000 1001(0x09) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x09)'''&lt;br /&gt;
&lt;br /&gt;
Una vez enviada la dirección con el bit de R/W correspondiente se procede a leer los bytes enviados por el esclavo con '''ReadI2C'''.&lt;br /&gt;
&lt;br /&gt;
Después de cada lectura se debe indicar con un '''AckI2C''' o '''NotAckI2C''' según corresponda, como se explicó en la sección Bloques.&lt;br /&gt;
&lt;br /&gt;
Para finalizar la comunicación se procede igual que con la escritura, es decir, '''StopI2C''', y '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;xr6-U5snzp0&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_reader.zip]]&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Hoy en día no es posible configurar desde la paleta la frecuencia de trabajo de I2C y por defecto dicha frecuencia se encuentra configurada en 100Kbps. &amp;lt;br/&amp;gt;&lt;br /&gt;
Como el protocolo soporta frecuencias mayores, se espera en un futuro contar con la opción de configurar la frecuencia deseada.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_usb4butia.jpg&amp;diff=8714</id>
		<title>Archivo:I2c usb4butia.jpg</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_usb4butia.jpg&amp;diff=8714"/>
				<updated>2016-12-14T01:26:21Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: Avasi subió una nueva versión de Archivo:I2c usb4butia.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_usb4butia.jpg&amp;diff=8713</id>
		<title>Archivo:I2c usb4butia.jpg</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_usb4butia.jpg&amp;diff=8713"/>
				<updated>2016-12-14T01:25:15Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_proto.jpg&amp;diff=8712</id>
		<title>Archivo:I2c proto.jpg</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_proto.jpg&amp;diff=8712"/>
				<updated>2016-12-14T01:23:46Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8711</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8711"/>
				<updated>2016-12-14T01:22:24Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Ejemplo de comunicación con placa Arduino */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Protocolo I2C ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que ocurre en un bus I2C es que el dispositivo maestro envía una secuencia de inicio (StartI2C). Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. Éstos quedan atentos para ver si se trata de una solicitud para ellos. &lt;br /&gt;
&lt;br /&gt;
A continuación el dispositivo maestro envía la dirección de dispositivo (WriteI2C con la dirección y el bit de R/W). El dispositivo esclavo que posee esa dirección continuará con la transacción, y los otros ignorarán el resto de los intercambios, esperando la próxima secuencia de inicio.&lt;br /&gt;
&lt;br /&gt;
Una vez que el maestro ha enviado la dirección del dispositivo en el bus I2C, puede enviar (WriteI2C con el byte a enviar) ahora el byte de datos. El dispositivo maestro puede seguir enviando bytes al esclavo consecutivamente (WriteI2C consecutivos). &lt;br /&gt;
&lt;br /&gt;
De forma análoga podrá leer bytes enviados por el esclavo (ReadI2C).&lt;br /&gt;
&lt;br /&gt;
Cuando el maestro ha terminado de escribir datos en el esclavo, envía una secuencia de parada (StopI2C) que concluye la transacción.&lt;br /&gt;
&lt;br /&gt;
Al momento de indicar la dirección del esclavo para comenzar la comunicación, se debe indicar si se desea realizar una lectura o una escritura en el bit menos significativo (ver Sección Bloques-WriteI2C). Por lo que para realizar una lectura luego de haber realizado una escritura, se deberá iniciar la comunicación nuevamente con el bit apropiado.&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenI2C''' &lt;br /&gt;
&lt;br /&gt;
Inicializa el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''StartI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que inicia la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Start de I2C, y espera hasta que la secuencia de señal de Start termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''StopI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que finaliza la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Stop de I2C, y espera hasta que la secuencia de señal de Stop termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''CloseI2C'''&lt;br /&gt;
&lt;br /&gt;
Finaliza el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C'''&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C.&lt;br /&gt;
&lt;br /&gt;
También es utilizado para enviar la dirección del esclavo al que se desea comunicar.&lt;br /&gt;
&lt;br /&gt;
La dirección se debe escribir de la siguiente forma en el byte a enviar:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c-address.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''ReadI2C'''&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C.&lt;br /&gt;
&lt;br /&gt;
Para leer varios bytes, se envía un AckI2C luego de cada byte leído.&lt;br /&gt;
&lt;br /&gt;
Cuando se lee el último byte se debe enviar un NotAckI2C.&lt;br /&gt;
&lt;br /&gt;
Esto aplica para leer un solo byte, se envía un NotAckI2C luego de la lectura del byte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''AckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un acknowledgement de que el byte se leyó, y se procederá a leer otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''NotAckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un negative acknowledgement para indicar que se leyó el byte, y se finalizará la lectura.&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: i2c_plugin.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: Debe estar instalado en la USB4Butiá el firmware con soporte para I2C.&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de comunicación con placa Arduino ===&lt;br /&gt;
&lt;br /&gt;
Nota: La placa Arduino se utilizará como esclavo en la dirección 0x04.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_arduino.jpg | thumb | Arduino UNO utilizada en el ejemplo.]]&lt;br /&gt;
&lt;br /&gt;
=== Enviar un mensaje a la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_write.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Lo primero que se necesita hacer es inicializar el módulo I2C con '''OpenI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar un mensaje indicando a los dispositivos esclavos conectados que se comenzará una comunicación I2C. Esto se hace enviando un '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que los dispositivos saben que se comenzó la comunicación, se debe enviar un mensaje con la dirección del dispositivo esclavo e indicar si se va a realizar una escritura o lectura.&lt;br /&gt;
&lt;br /&gt;
En este caso se envía la dirección y el bit menos significativo en 0, ya que se desea hacer una escritura:&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 0&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x08 (0000 1000 | 0 : 0000 1000 (0x08) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x08)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de enviar la dirección del dispositivo esclavo, se procede a enviar los mensajes con '''WriteI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, para terminar la comunicación con el dispositivo se envía un '''StopI2C''', y si no se realizará otra comunicación se cierra el modulo I2C con '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;1n0N8AQDT5M&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_sender.zip]]&lt;br /&gt;
&lt;br /&gt;
=== Leer un mensaje desde la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_read.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Para realizar una lectura se realizan los dos primeros pasos de igual forma: '''OpenI2C''', y '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar la dirección del esclavo, e indicar que se realizará una lectura (bit de R/W en 1):&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 1&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x09 (0000 1000 | 1 : 0000 1001(0x09) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x09)'''&lt;br /&gt;
&lt;br /&gt;
Una vez enviada la dirección con el bit de R/W correspondiente se procede a leer los bytes enviados por el esclavo con '''ReadI2C'''.&lt;br /&gt;
&lt;br /&gt;
Después de cada lectura se debe indicar con un '''AckI2C''' o '''NotAckI2C''' según corresponda, como se explicó en la sección Bloques.&lt;br /&gt;
&lt;br /&gt;
Para finalizar la comunicación se procede igual que con la escritura, es decir, '''StopI2C''', y '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;xr6-U5snzp0&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_reader.zip]]&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Hoy en día no es posible configurar desde la paleta la frecuencia de trabajo de I2C y por defecto dicha frecuencia se encuentra configurada en 100Kbps. &amp;lt;br/&amp;gt;&lt;br /&gt;
Como el protocolo soporta frecuencias mayores, se espera en un futuro contar con la opción de configurar la frecuencia deseada.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_arduino.jpg&amp;diff=8710</id>
		<title>Archivo:I2c arduino.jpg</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_arduino.jpg&amp;diff=8710"/>
				<updated>2016-12-14T01:21:30Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: Avasi subió una nueva versión de Archivo:I2c arduino.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_arduino.jpg&amp;diff=8709</id>
		<title>Archivo:I2c arduino.jpg</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_arduino.jpg&amp;diff=8709"/>
				<updated>2016-12-14T01:21:27Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: Avasi subió una nueva versión de Archivo:I2c arduino.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_arduino.jpg&amp;diff=8708</id>
		<title>Archivo:I2c arduino.jpg</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_arduino.jpg&amp;diff=8708"/>
				<updated>2016-12-14T01:14:30Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8707</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8707"/>
				<updated>2016-12-14T00:57:27Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Ejemplo de uso */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Protocolo I2C ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que ocurre en un bus I2C es que el dispositivo maestro envía una secuencia de inicio (StartI2C). Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. Éstos quedan atentos para ver si se trata de una solicitud para ellos. &lt;br /&gt;
&lt;br /&gt;
A continuación el dispositivo maestro envía la dirección de dispositivo (WriteI2C con la dirección y el bit de R/W). El dispositivo esclavo que posee esa dirección continuará con la transacción, y los otros ignorarán el resto de los intercambios, esperando la próxima secuencia de inicio.&lt;br /&gt;
&lt;br /&gt;
Una vez que el maestro ha enviado la dirección del dispositivo en el bus I2C, puede enviar (WriteI2C con el byte a enviar) ahora el byte de datos. El dispositivo maestro puede seguir enviando bytes al esclavo consecutivamente (WriteI2C consecutivos). &lt;br /&gt;
&lt;br /&gt;
De forma análoga podrá leer bytes enviados por el esclavo (ReadI2C).&lt;br /&gt;
&lt;br /&gt;
Cuando el maestro ha terminado de escribir datos en el esclavo, envía una secuencia de parada (StopI2C) que concluye la transacción.&lt;br /&gt;
&lt;br /&gt;
Al momento de indicar la dirección del esclavo para comenzar la comunicación, se debe indicar si se desea realizar una lectura o una escritura en el bit menos significativo (ver Sección Bloques-WriteI2C). Por lo que para realizar una lectura luego de haber realizado una escritura, se deberá iniciar la comunicación nuevamente con el bit apropiado.&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenI2C''' &lt;br /&gt;
&lt;br /&gt;
Inicializa el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''StartI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que inicia la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Start de I2C, y espera hasta que la secuencia de señal de Start termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''StopI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que finaliza la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Stop de I2C, y espera hasta que la secuencia de señal de Stop termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''CloseI2C'''&lt;br /&gt;
&lt;br /&gt;
Finaliza el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C'''&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C.&lt;br /&gt;
&lt;br /&gt;
También es utilizado para enviar la dirección del esclavo al que se desea comunicar.&lt;br /&gt;
&lt;br /&gt;
La dirección se debe escribir de la siguiente forma en el byte a enviar:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c-address.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''ReadI2C'''&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C.&lt;br /&gt;
&lt;br /&gt;
Para leer varios bytes, se envía un AckI2C luego de cada byte leído.&lt;br /&gt;
&lt;br /&gt;
Cuando se lee el último byte se debe enviar un NotAckI2C.&lt;br /&gt;
&lt;br /&gt;
Esto aplica para leer un solo byte, se envía un NotAckI2C luego de la lectura del byte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''AckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un acknowledgement de que el byte se leyó, y se procederá a leer otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''NotAckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un negative acknowledgement para indicar que se leyó el byte, y se finalizará la lectura.&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: i2c_plugin.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: Debe estar instalado en la USB4Butiá el firmware con soporte para I2C.&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de comunicación con placa Arduino ===&lt;br /&gt;
&lt;br /&gt;
Nota: La placa Arduino se utilizará como esclavo en la dirección 0x04.&lt;br /&gt;
&lt;br /&gt;
=== Enviar un mensaje a la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_write.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Lo primero que se necesita hacer es inicializar el módulo I2C con '''OpenI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar un mensaje indicando a los dispositivos esclavos conectados que se comenzará una comunicación I2C. Esto se hace enviando un '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que los dispositivos saben que se comenzó la comunicación, se debe enviar un mensaje con la dirección del dispositivo esclavo e indicar si se va a realizar una escritura o lectura.&lt;br /&gt;
&lt;br /&gt;
En este caso se envía la dirección y el bit menos significativo en 0, ya que se desea hacer una escritura:&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 0&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x08 (0000 1000 | 0 : 0000 1000 (0x08) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x08)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de enviar la dirección del dispositivo esclavo, se procede a enviar los mensajes con '''WriteI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, para terminar la comunicación con el dispositivo se envía un '''StopI2C''', y si no se realizará otra comunicación se cierra el modulo I2C con '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;1n0N8AQDT5M&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_sender.zip]]&lt;br /&gt;
&lt;br /&gt;
=== Leer un mensaje desde la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_read.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Para realizar una lectura se realizan los dos primeros pasos de igual forma: '''OpenI2C''', y '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar la dirección del esclavo, e indicar que se realizará una lectura (bit de R/W en 1):&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 1&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x09 (0000 1000 | 1 : 0000 1001(0x09) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x09)'''&lt;br /&gt;
&lt;br /&gt;
Una vez enviada la dirección con el bit de R/W correspondiente se procede a leer los bytes enviados por el esclavo con '''ReadI2C'''.&lt;br /&gt;
&lt;br /&gt;
Después de cada lectura se debe indicar con un '''AckI2C''' o '''NotAckI2C''' según corresponda, como se explicó en la sección Bloques.&lt;br /&gt;
&lt;br /&gt;
Para finalizar la comunicación se procede igual que con la escritura, es decir, '''StopI2C''', y '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;xr6-U5snzp0&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Código arduino utilizado: [[Archivo:I2c_slave_reader.zip]]&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Hoy en día no es posible configurar desde la paleta la frecuencia de trabajo de I2C y por defecto dicha frecuencia se encuentra configurada en 100Kbps. &amp;lt;br/&amp;gt;&lt;br /&gt;
Como el protocolo soporta frecuencias mayores, se espera en un futuro contar con la opción de configurar la frecuencia deseada.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_slave_reader.zip&amp;diff=8706</id>
		<title>Archivo:I2c slave reader.zip</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_slave_reader.zip&amp;diff=8706"/>
				<updated>2016-12-14T00:56:37Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_slave_sender.zip&amp;diff=8705</id>
		<title>Archivo:I2c slave sender.zip</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_slave_sender.zip&amp;diff=8705"/>
				<updated>2016-12-14T00:56:18Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8704</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8704"/>
				<updated>2016-12-14T00:49:19Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Descarga e instalación */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Protocolo I2C ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que ocurre en un bus I2C es que el dispositivo maestro envía una secuencia de inicio (StartI2C). Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. Éstos quedan atentos para ver si se trata de una solicitud para ellos. &lt;br /&gt;
&lt;br /&gt;
A continuación el dispositivo maestro envía la dirección de dispositivo (WriteI2C con la dirección y el bit de R/W). El dispositivo esclavo que posee esa dirección continuará con la transacción, y los otros ignorarán el resto de los intercambios, esperando la próxima secuencia de inicio.&lt;br /&gt;
&lt;br /&gt;
Una vez que el maestro ha enviado la dirección del dispositivo en el bus I2C, puede enviar (WriteI2C con el byte a enviar) ahora el byte de datos. El dispositivo maestro puede seguir enviando bytes al esclavo consecutivamente (WriteI2C consecutivos). &lt;br /&gt;
&lt;br /&gt;
De forma análoga podrá leer bytes enviados por el esclavo (ReadI2C).&lt;br /&gt;
&lt;br /&gt;
Cuando el maestro ha terminado de escribir datos en el esclavo, envía una secuencia de parada (StopI2C) que concluye la transacción.&lt;br /&gt;
&lt;br /&gt;
Al momento de indicar la dirección del esclavo para comenzar la comunicación, se debe indicar si se desea realizar una lectura o una escritura en el bit menos significativo (ver Sección Bloques-WriteI2C). Por lo que para realizar una lectura luego de haber realizado una escritura, se deberá iniciar la comunicación nuevamente con el bit apropiado.&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenI2C''' &lt;br /&gt;
&lt;br /&gt;
Inicializa el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''StartI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que inicia la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Start de I2C, y espera hasta que la secuencia de señal de Start termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''StopI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que finaliza la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Stop de I2C, y espera hasta que la secuencia de señal de Stop termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''CloseI2C'''&lt;br /&gt;
&lt;br /&gt;
Finaliza el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C'''&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C.&lt;br /&gt;
&lt;br /&gt;
También es utilizado para enviar la dirección del esclavo al que se desea comunicar.&lt;br /&gt;
&lt;br /&gt;
La dirección se debe escribir de la siguiente forma en el byte a enviar:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c-address.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''ReadI2C'''&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C.&lt;br /&gt;
&lt;br /&gt;
Para leer varios bytes, se envía un AckI2C luego de cada byte leído.&lt;br /&gt;
&lt;br /&gt;
Cuando se lee el último byte se debe enviar un NotAckI2C.&lt;br /&gt;
&lt;br /&gt;
Esto aplica para leer un solo byte, se envía un NotAckI2C luego de la lectura del byte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''AckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un acknowledgement de que el byte se leyó, y se procederá a leer otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''NotAckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un negative acknowledgement para indicar que se leyó el byte, y se finalizará la lectura.&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: i2c_plugin.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: Debe estar instalado en la USB4Butiá el firmware con soporte para I2C.&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de comunicación con placa Arduino ===&lt;br /&gt;
&lt;br /&gt;
Nota: La placa Arduino se utilizará como esclavo en la dirección 0x04.&lt;br /&gt;
&lt;br /&gt;
=== Enviar un mensaje a la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_write.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Lo primero que se necesita hacer es inicializar el módulo I2C con '''OpenI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar un mensaje indicando a los dispositivos esclavos conectados que se comenzará una comunicación I2C. Esto se hace enviando un '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que los dispositivos saben que se comenzó la comunicación, se debe enviar un mensaje con la dirección del dispositivo esclavo e indicar si se va a realizar una escritura o lectura.&lt;br /&gt;
&lt;br /&gt;
En este caso se envía la dirección y el bit menos significativo en 0, ya que se desea hacer una escritura:&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 0&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x08 (0000 1000 | 0 : 0000 1000 (0x08) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x08)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de enviar la dirección del dispositivo esclavo, se procede a enviar los mensajes con '''WriteI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, para terminar la comunicación con el dispositivo se envía un '''StopI2C''', y si no se realizará otra comunicación se cierra el modulo I2C con '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;1n0N8AQDT5M&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Leer un mensaje desde la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_read.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Para realizar una lectura se realizan los dos primeros pasos de igual forma: '''OpenI2C''', y '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar la dirección del esclavo, e indicar que se realizará una lectura (bit de R/W en 1):&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 1&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x09 (0000 1000 | 1 : 0000 1001(0x09) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x09)'''&lt;br /&gt;
&lt;br /&gt;
Una vez enviada la dirección con el bit de R/W correspondiente se procede a leer los bytes enviados por el esclavo con '''ReadI2C'''.&lt;br /&gt;
&lt;br /&gt;
Después de cada lectura se debe indicar con un '''AckI2C''' o '''NotAckI2C''' según corresponda, como se explicó en la sección Bloques.&lt;br /&gt;
&lt;br /&gt;
Para finalizar la comunicación se procede igual que con la escritura, es decir, '''StopI2C''', y '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;xr6-U5snzp0&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Hoy en día no es posible configurar desde la paleta la frecuencia de trabajo de I2C y por defecto dicha frecuencia se encuentra configurada en 100Kbps. &amp;lt;br/&amp;gt;&lt;br /&gt;
Como el protocolo soporta frecuencias mayores, se espera en un futuro contar con la opción de configurar la frecuencia deseada.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8703</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8703"/>
				<updated>2016-12-14T00:47:18Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Protocolo I2C ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que ocurre en un bus I2C es que el dispositivo maestro envía una secuencia de inicio (StartI2C). Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. Éstos quedan atentos para ver si se trata de una solicitud para ellos. &lt;br /&gt;
&lt;br /&gt;
A continuación el dispositivo maestro envía la dirección de dispositivo (WriteI2C con la dirección y el bit de R/W). El dispositivo esclavo que posee esa dirección continuará con la transacción, y los otros ignorarán el resto de los intercambios, esperando la próxima secuencia de inicio.&lt;br /&gt;
&lt;br /&gt;
Una vez que el maestro ha enviado la dirección del dispositivo en el bus I2C, puede enviar (WriteI2C con el byte a enviar) ahora el byte de datos. El dispositivo maestro puede seguir enviando bytes al esclavo consecutivamente (WriteI2C consecutivos). &lt;br /&gt;
&lt;br /&gt;
De forma análoga podrá leer bytes enviados por el esclavo (ReadI2C).&lt;br /&gt;
&lt;br /&gt;
Cuando el maestro ha terminado de escribir datos en el esclavo, envía una secuencia de parada (StopI2C) que concluye la transacción.&lt;br /&gt;
&lt;br /&gt;
Al momento de indicar la dirección del esclavo para comenzar la comunicación, se debe indicar si se desea realizar una lectura o una escritura en el bit menos significativo (ver Sección Bloques-WriteI2C). Por lo que para realizar una lectura luego de haber realizado una escritura, se deberá iniciar la comunicación nuevamente con el bit apropiado.&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenI2C''' &lt;br /&gt;
&lt;br /&gt;
Inicializa el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''StartI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que inicia la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Start de I2C, y espera hasta que la secuencia de señal de Start termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''StopI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que finaliza la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Stop de I2C, y espera hasta que la secuencia de señal de Stop termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''CloseI2C'''&lt;br /&gt;
&lt;br /&gt;
Finaliza el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C'''&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C.&lt;br /&gt;
&lt;br /&gt;
También es utilizado para enviar la dirección del esclavo al que se desea comunicar.&lt;br /&gt;
&lt;br /&gt;
La dirección se debe escribir de la siguiente forma en el byte a enviar:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c-address.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''ReadI2C'''&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C.&lt;br /&gt;
&lt;br /&gt;
Para leer varios bytes, se envía un AckI2C luego de cada byte leído.&lt;br /&gt;
&lt;br /&gt;
Cuando se lee el último byte se debe enviar un NotAckI2C.&lt;br /&gt;
&lt;br /&gt;
Esto aplica para leer un solo byte, se envía un NotAckI2C luego de la lectura del byte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''AckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un acknowledgement de que el byte se leyó, y se procederá a leer otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''NotAckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un negative acknowledgement para indicar que se leyó el byte, y se finalizará la lectura.&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: i2c_plugin.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de comunicación con placa Arduino ===&lt;br /&gt;
&lt;br /&gt;
Nota: La placa Arduino se utilizará como esclavo en la dirección 0x04.&lt;br /&gt;
&lt;br /&gt;
=== Enviar un mensaje a la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_write.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Lo primero que se necesita hacer es inicializar el módulo I2C con '''OpenI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar un mensaje indicando a los dispositivos esclavos conectados que se comenzará una comunicación I2C. Esto se hace enviando un '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que los dispositivos saben que se comenzó la comunicación, se debe enviar un mensaje con la dirección del dispositivo esclavo e indicar si se va a realizar una escritura o lectura.&lt;br /&gt;
&lt;br /&gt;
En este caso se envía la dirección y el bit menos significativo en 0, ya que se desea hacer una escritura:&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 0&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x08 (0000 1000 | 0 : 0000 1000 (0x08) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x08)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de enviar la dirección del dispositivo esclavo, se procede a enviar los mensajes con '''WriteI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, para terminar la comunicación con el dispositivo se envía un '''StopI2C''', y si no se realizará otra comunicación se cierra el modulo I2C con '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;1n0N8AQDT5M&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Leer un mensaje desde la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_read.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Para realizar una lectura se realizan los dos primeros pasos de igual forma: '''OpenI2C''', y '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar la dirección del esclavo, e indicar que se realizará una lectura (bit de R/W en 1):&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 1&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x09 (0000 1000 | 1 : 0000 1001(0x09) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x09)'''&lt;br /&gt;
&lt;br /&gt;
Una vez enviada la dirección con el bit de R/W correspondiente se procede a leer los bytes enviados por el esclavo con '''ReadI2C'''.&lt;br /&gt;
&lt;br /&gt;
Después de cada lectura se debe indicar con un '''AckI2C''' o '''NotAckI2C''' según corresponda, como se explicó en la sección Bloques.&lt;br /&gt;
&lt;br /&gt;
Para finalizar la comunicación se procede igual que con la escritura, es decir, '''StopI2C''', y '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;xr6-U5snzp0&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Hoy en día no es posible configurar desde la paleta la frecuencia de trabajo de I2C y por defecto dicha frecuencia se encuentra configurada en 100Kbps. &amp;lt;br/&amp;gt;&lt;br /&gt;
Como el protocolo soporta frecuencias mayores, se espera en un futuro contar con la opción de configurar la frecuencia deseada.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8702</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8702"/>
				<updated>2016-12-14T00:45:37Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Ejemplo de uso */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Protocolo I2C ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que ocurre en un bus I2C es que el dispositivo maestro envía una secuencia de inicio (StartI2C). Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. Éstos quedan atentos para ver si se trata de una solicitud para ellos. &lt;br /&gt;
&lt;br /&gt;
A continuación el dispositivo maestro envía la dirección de dispositivo (WriteI2C con la dirección y el bit de R/W). El dispositivo esclavo que posee esa dirección continuará con la transacción, y los otros ignorarán el resto de los intercambios, esperando la próxima secuencia de inicio.&lt;br /&gt;
&lt;br /&gt;
Una vez que el maestro ha enviado la dirección del dispositivo en el bus I2C, puede enviar (WriteI2C con el byte a enviar) ahora el byte de datos. El dispositivo maestro puede seguir enviando bytes al esclavo consecutivamente (WriteI2C consecutivos). &lt;br /&gt;
&lt;br /&gt;
De forma análoga podrá leer bytes enviados por el esclavo (ReadI2C).&lt;br /&gt;
&lt;br /&gt;
Cuando el maestro ha terminado de escribir datos en el esclavo, envía una secuencia de parada (StopI2C) que concluye la transacción.&lt;br /&gt;
&lt;br /&gt;
Al momento de indicar la dirección del esclavo para comenzar la comunicación, se debe indicar si se desea realizar una lectura o una escritura en el bit menos significativo (ver Sección Bloques-WriteI2C). Por lo que para realizar una lectura luego de haber realizado una escritura, se deberá iniciar la comunicación nuevamente con el bit apropiado.&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenI2C''' &lt;br /&gt;
&lt;br /&gt;
Inicializa el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''StartI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que inicia la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Start de I2C, y espera hasta que la secuencia de señal de Start termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''StopI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que finaliza la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Stop de I2C, y espera hasta que la secuencia de señal de Stop termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''CloseI2C'''&lt;br /&gt;
&lt;br /&gt;
Finaliza el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C'''&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C.&lt;br /&gt;
&lt;br /&gt;
También es utilizado para enviar la dirección del esclavo al que se desea comunicar.&lt;br /&gt;
&lt;br /&gt;
La dirección se debe escribir de la siguiente forma en el byte a enviar:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c-address.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''ReadI2C'''&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C.&lt;br /&gt;
&lt;br /&gt;
Para leer varios bytes, se envía un AckI2C luego de cada byte leído.&lt;br /&gt;
&lt;br /&gt;
Cuando se lee el último byte se debe enviar un NotAckI2C.&lt;br /&gt;
&lt;br /&gt;
Esto aplica para leer un solo byte, se envía un NotAckI2C luego de la lectura del byte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''AckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un acknowledgement de que el byte se leyó, y se procederá a leer otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''NotAckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un negative acknowledgement para indicar que se leyó el byte, y se finalizará la lectura.&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: i2c_plugin.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de comunicación con placa Arduino ===&lt;br /&gt;
&lt;br /&gt;
Nota: La placa Arduino se utilizará como esclavo en la dirección 0x04.&lt;br /&gt;
&lt;br /&gt;
=== Enviar un mensaje a la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_write.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Lo primero que se necesita hacer es inicializar el módulo I2C con '''OpenI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar un mensaje indicando a los dispositivos esclavos conectados que se comenzará una comunicación I2C. Esto se hace enviando un '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que los dispositivos saben que se comenzó la comunicación, se debe enviar un mensaje con la dirección del dispositivo esclavo e indicar si se va a realizar una escritura o lectura.&lt;br /&gt;
&lt;br /&gt;
En este caso se envía la dirección y el bit menos significativo en 0, ya que se desea hacer una escritura:&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 0&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x08 (0000 1000 | 0 : 0000 1000 (0x08) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x08)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de enviar la dirección del dispositivo esclavo, se procede a enviar los mensajes con '''WriteI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, para terminar la comunicación con el dispositivo se envía un '''StopI2C''', y si no se realizará otra comunicación se cierra el modulo I2C con '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;1n0N8AQDT5M&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Leer un mensaje desde la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_read.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Para realizar una lectura se realizan los dos primeros pasos de igual forma: '''OpenI2C''', y '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar la dirección del esclavo, e indicar que se realizará una lectura (bit de R/W en 1):&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 1&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x09 (0000 1000 | 1 : 0000 1001(0x09) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x09)'''&lt;br /&gt;
&lt;br /&gt;
Una vez enviada la dirección con el bit de R/W correspondiente se procede a leer los bytes enviados por el esclavo con '''ReadI2C'''.&lt;br /&gt;
&lt;br /&gt;
Después de cada lectura se debe indicar con un '''AckI2C''' o '''NotAckI2C''' según corresponda, como se explicó en la sección Bloques.&lt;br /&gt;
&lt;br /&gt;
Para finalizar la comunicación se procede igual que con la escritura, es decir, '''StopI2C''', y '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''En funcionamiento''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;xr6-U5snzp0&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notas ==&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Hoy en día no es posible configurar desde la paleta la frecuencia de trabajo de I2C y por defecto dicha frecuencia se encuentra configurada en 100Kbps. &amp;lt;br/&amp;gt;&lt;br /&gt;
Como el protocolo soporta frecuencias mayores, se espera en un futuro contar con la opción de configurar la frecuencia deseada.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8701</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8701"/>
				<updated>2016-12-14T00:25:32Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Trabajo a futuro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Protocolo I2C ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que ocurre en un bus I2C es que el dispositivo maestro envía una secuencia de inicio (StartI2C). Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. Éstos quedan atentos para ver si se trata de una solicitud para ellos. &lt;br /&gt;
&lt;br /&gt;
A continuación el dispositivo maestro envía la dirección de dispositivo (WriteI2C con la dirección y el bit de R/W). El dispositivo esclavo que posee esa dirección continuará con la transacción, y los otros ignorarán el resto de los intercambios, esperando la próxima secuencia de inicio.&lt;br /&gt;
&lt;br /&gt;
Una vez que el maestro ha enviado la dirección del dispositivo en el bus I2C, puede enviar (WriteI2C con el byte a enviar) ahora el byte de datos. El dispositivo maestro puede seguir enviando bytes al esclavo consecutivamente (WriteI2C consecutivos). &lt;br /&gt;
&lt;br /&gt;
De forma análoga podrá leer bytes enviados por el esclavo (ReadI2C).&lt;br /&gt;
&lt;br /&gt;
Cuando el maestro ha terminado de escribir datos en el esclavo, envía una secuencia de parada (StopI2C) que concluye la transacción.&lt;br /&gt;
&lt;br /&gt;
Al momento de indicar la dirección del esclavo para comenzar la comunicación, se debe indicar si se desea realizar una lectura o una escritura en el bit menos significativo (ver Sección Bloques-WriteI2C). Por lo que para realizar una lectura luego de haber realizado una escritura, se deberá iniciar la comunicación nuevamente con el bit apropiado.&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenI2C''' &lt;br /&gt;
&lt;br /&gt;
Inicializa el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''StartI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que inicia la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Start de I2C, y espera hasta que la secuencia de señal de Start termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''StopI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que finaliza la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Stop de I2C, y espera hasta que la secuencia de señal de Stop termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''CloseI2C'''&lt;br /&gt;
&lt;br /&gt;
Finaliza el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C'''&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C.&lt;br /&gt;
&lt;br /&gt;
También es utilizado para enviar la dirección del esclavo al que se desea comunicar.&lt;br /&gt;
&lt;br /&gt;
La dirección se debe escribir de la siguiente forma en el byte a enviar:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c-address.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''ReadI2C'''&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C.&lt;br /&gt;
&lt;br /&gt;
Para leer varios bytes, se envía un AckI2C luego de cada byte leído.&lt;br /&gt;
&lt;br /&gt;
Cuando se lee el último byte se debe enviar un NotAckI2C.&lt;br /&gt;
&lt;br /&gt;
Esto aplica para leer un solo byte, se envía un NotAckI2C luego de la lectura del byte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''AckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un acknowledgement de que el byte se leyó, y se procederá a leer otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''NotAckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un negative acknowledgement para indicar que se leyó el byte, y se finalizará la lectura.&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: i2c_plugin.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de comunicación con placa Arduino ===&lt;br /&gt;
&lt;br /&gt;
Nota: La placa Arduino se utilizará como esclavo en la dirección 0x04.&lt;br /&gt;
&lt;br /&gt;
=== Enviar un mensaje a la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_write.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Lo primero que se necesita hacer es inicializar el módulo I2C con '''OpenI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar un mensaje indicando a los dispositivos esclavos conectados que se comenzará una comunicación I2C. Esto se hace enviando un '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que los dispositivos saben que se comenzó la comunicación, se debe enviar un mensaje con la dirección del dispositivo esclavo e indicar si se va a realizar una escritura o lectura.&lt;br /&gt;
&lt;br /&gt;
En este caso se envía la dirección y el bit menos significativo en 0, ya que se desea hacer una escritura:&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 0&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x08 (0000 1000 | 0 : 0000 1000 (0x08) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x08)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de enviar la dirección del dispositivo esclavo, se procede a enviar los mensajes con '''WriteI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, para terminar la comunicación con el dispositivo se envía un '''StopI2C''', y si no se realizará otra comunicación se cierra el modulo I2C con '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
=== Leer un mensaje desde la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_read.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Para realizar una lectura se realizan los dos primeros pasos de igual forma: '''OpenI2C''', y '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar la dirección del esclavo, e indicar que se realizará una lectura (bit de R/W en 1):&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 1&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x09 (0000 1000 | 1 : 0000 1001(0x09) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x09)'''&lt;br /&gt;
&lt;br /&gt;
Una vez enviada la dirección con el bit de R/W correspondiente se procede a leer los bytes enviados por el esclavo con '''ReadI2C'''.&lt;br /&gt;
&lt;br /&gt;
Después de cada lectura se debe indicar con un '''AckI2C''' o '''NotAckI2C''' según corresponda, como se explicó en la sección Bloques.&lt;br /&gt;
&lt;br /&gt;
Para finalizar la comunicación se procede igual que con la escritura, es decir, '''StopI2C''', y '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
== Notas ==&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Hoy en día no es posible configurar desde la paleta la frecuencia de trabajo de I2C y por defecto dicha frecuencia se encuentra configurada en 100Kbps. &amp;lt;br/&amp;gt;&lt;br /&gt;
Como el protocolo soporta frecuencias mayores, se espera en un futuro contar con la opción de configurar la frecuencia deseada.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8700</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8700"/>
				<updated>2016-12-14T00:25:04Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Trabajo a futuro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Protocolo I2C ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que ocurre en un bus I2C es que el dispositivo maestro envía una secuencia de inicio (StartI2C). Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. Éstos quedan atentos para ver si se trata de una solicitud para ellos. &lt;br /&gt;
&lt;br /&gt;
A continuación el dispositivo maestro envía la dirección de dispositivo (WriteI2C con la dirección y el bit de R/W). El dispositivo esclavo que posee esa dirección continuará con la transacción, y los otros ignorarán el resto de los intercambios, esperando la próxima secuencia de inicio.&lt;br /&gt;
&lt;br /&gt;
Una vez que el maestro ha enviado la dirección del dispositivo en el bus I2C, puede enviar (WriteI2C con el byte a enviar) ahora el byte de datos. El dispositivo maestro puede seguir enviando bytes al esclavo consecutivamente (WriteI2C consecutivos). &lt;br /&gt;
&lt;br /&gt;
De forma análoga podrá leer bytes enviados por el esclavo (ReadI2C).&lt;br /&gt;
&lt;br /&gt;
Cuando el maestro ha terminado de escribir datos en el esclavo, envía una secuencia de parada (StopI2C) que concluye la transacción.&lt;br /&gt;
&lt;br /&gt;
Al momento de indicar la dirección del esclavo para comenzar la comunicación, se debe indicar si se desea realizar una lectura o una escritura en el bit menos significativo (ver Sección Bloques-WriteI2C). Por lo que para realizar una lectura luego de haber realizado una escritura, se deberá iniciar la comunicación nuevamente con el bit apropiado.&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenI2C''' &lt;br /&gt;
&lt;br /&gt;
Inicializa el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''StartI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que inicia la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Start de I2C, y espera hasta que la secuencia de señal de Start termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''StopI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que finaliza la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Stop de I2C, y espera hasta que la secuencia de señal de Stop termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''CloseI2C'''&lt;br /&gt;
&lt;br /&gt;
Finaliza el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C'''&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C.&lt;br /&gt;
&lt;br /&gt;
También es utilizado para enviar la dirección del esclavo al que se desea comunicar.&lt;br /&gt;
&lt;br /&gt;
La dirección se debe escribir de la siguiente forma en el byte a enviar:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c-address.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''ReadI2C'''&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C.&lt;br /&gt;
&lt;br /&gt;
Para leer varios bytes, se envía un AckI2C luego de cada byte leído.&lt;br /&gt;
&lt;br /&gt;
Cuando se lee el último byte se debe enviar un NotAckI2C.&lt;br /&gt;
&lt;br /&gt;
Esto aplica para leer un solo byte, se envía un NotAckI2C luego de la lectura del byte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''AckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un acknowledgement de que el byte se leyó, y se procederá a leer otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''NotAckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un negative acknowledgement para indicar que se leyó el byte, y se finalizará la lectura.&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: i2c_plugin.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de comunicación con placa Arduino ===&lt;br /&gt;
&lt;br /&gt;
Nota: La placa Arduino se utilizará como esclavo en la dirección 0x04.&lt;br /&gt;
&lt;br /&gt;
=== Enviar un mensaje a la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_write.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Lo primero que se necesita hacer es inicializar el módulo I2C con '''OpenI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar un mensaje indicando a los dispositivos esclavos conectados que se comenzará una comunicación I2C. Esto se hace enviando un '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que los dispositivos saben que se comenzó la comunicación, se debe enviar un mensaje con la dirección del dispositivo esclavo e indicar si se va a realizar una escritura o lectura.&lt;br /&gt;
&lt;br /&gt;
En este caso se envía la dirección y el bit menos significativo en 0, ya que se desea hacer una escritura:&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 0&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x08 (0000 1000 | 0 : 0000 1000 (0x08) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x08)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de enviar la dirección del dispositivo esclavo, se procede a enviar los mensajes con '''WriteI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, para terminar la comunicación con el dispositivo se envía un '''StopI2C''', y si no se realizará otra comunicación se cierra el modulo I2C con '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
=== Leer un mensaje desde la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_read.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Para realizar una lectura se realizan los dos primeros pasos de igual forma: '''OpenI2C''', y '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar la dirección del esclavo, e indicar que se realizará una lectura (bit de R/W en 1):&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 1&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x09 (0000 1000 | 1 : 0000 1001(0x09) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x09)'''&lt;br /&gt;
&lt;br /&gt;
Una vez enviada la dirección con el bit de R/W correspondiente se procede a leer los bytes enviados por el esclavo con '''ReadI2C'''.&lt;br /&gt;
&lt;br /&gt;
Después de cada lectura se debe indicar con un '''AckI2C''' o '''NotAckI2C''' según corresponda, como se explicó en la sección Bloques.&lt;br /&gt;
&lt;br /&gt;
Para finalizar la comunicación se procede igual que con la escritura, es decir, '''StopI2C''', y '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
== Notas ==&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Hoy en día no es posible configurar desde la paleta la frecuencia de trabajo de I2C y por defecto dicha frecuencia se encuentra configurada en 100Kbps. &lt;br /&gt;
Como el protocolo soporta frecuencias mayores, se espera en un futuro contar con la opción de configurar la frecuencia deseada.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_read.png&amp;diff=8699</id>
		<title>Archivo:I2c read.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_read.png&amp;diff=8699"/>
				<updated>2016-12-13T22:38:14Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: Avasi subió una nueva versión de Archivo:I2c read.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_write.png&amp;diff=8698</id>
		<title>Archivo:I2c write.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_write.png&amp;diff=8698"/>
				<updated>2016-12-13T22:37:29Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: Avasi subió una nueva versión de Archivo:I2c write.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8697</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8697"/>
				<updated>2016-12-13T22:05:56Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Trabajo a futuro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Protocolo I2C ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que ocurre en un bus I2C es que el dispositivo maestro envía una secuencia de inicio (StartI2C). Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. Éstos quedan atentos para ver si se trata de una solicitud para ellos. &lt;br /&gt;
&lt;br /&gt;
A continuación el dispositivo maestro envía la dirección de dispositivo (WriteI2C con la dirección y el bit de R/W). El dispositivo esclavo que posee esa dirección continuará con la transacción, y los otros ignorarán el resto de los intercambios, esperando la próxima secuencia de inicio.&lt;br /&gt;
&lt;br /&gt;
Una vez que el maestro ha enviado la dirección del dispositivo en el bus I2C, puede enviar (WriteI2C con el byte a enviar) ahora el byte de datos. El dispositivo maestro puede seguir enviando bytes al esclavo consecutivamente (WriteI2C consecutivos). &lt;br /&gt;
&lt;br /&gt;
De forma análoga podrá leer bytes enviados por el esclavo (ReadI2C).&lt;br /&gt;
&lt;br /&gt;
Cuando el maestro ha terminado de escribir datos en el esclavo, envía una secuencia de parada (StopI2C) que concluye la transacción.&lt;br /&gt;
&lt;br /&gt;
Al momento de indicar la dirección del esclavo para comenzar la comunicación, se debe indicar si se desea realizar una lectura o una escritura en el bit menos significativo (ver Sección Bloques-WriteI2C). Por lo que para realizar una lectura luego de haber realizado una escritura, se deberá iniciar la comunicación nuevamente con el bit apropiado.&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenI2C''' &lt;br /&gt;
&lt;br /&gt;
Inicializa el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''StartI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que inicia la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Start de I2C, y espera hasta que la secuencia de señal de Start termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''StopI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que finaliza la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Stop de I2C, y espera hasta que la secuencia de señal de Stop termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''CloseI2C'''&lt;br /&gt;
&lt;br /&gt;
Finaliza el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C'''&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C.&lt;br /&gt;
&lt;br /&gt;
También es utilizado para enviar la dirección del esclavo al que se desea comunicar.&lt;br /&gt;
&lt;br /&gt;
La dirección se debe escribir de la siguiente forma en el byte a enviar:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c-address.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''ReadI2C'''&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C.&lt;br /&gt;
&lt;br /&gt;
Para leer varios bytes, se envía un AckI2C luego de cada byte leído.&lt;br /&gt;
&lt;br /&gt;
Cuando se lee el último byte se debe enviar un NotAckI2C.&lt;br /&gt;
&lt;br /&gt;
Esto aplica para leer un solo byte, se envía un NotAckI2C luego de la lectura del byte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''AckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un acknowledgement de que el byte se leyó, y se procederá a leer otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''NotAckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un negative acknowledgement para indicar que se leyó el byte, y se finalizará la lectura.&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: i2c_plugin.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de comunicación con placa Arduino ===&lt;br /&gt;
&lt;br /&gt;
Nota: La placa Arduino se utilizará como esclavo en la dirección 0x04.&lt;br /&gt;
&lt;br /&gt;
=== Enviar un mensaje a la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_write.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Lo primero que se necesita hacer es inicializar el módulo I2C con '''OpenI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar un mensaje indicando a los dispositivos esclavos conectados que se comenzará una comunicación I2C. Esto se hace enviando un '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que los dispositivos saben que se comenzó la comunicación, se debe enviar un mensaje con la dirección del dispositivo esclavo e indicar si se va a realizar una escritura o lectura.&lt;br /&gt;
&lt;br /&gt;
En este caso se envía la dirección y el bit menos significativo en 0, ya que se desea hacer una escritura:&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 0&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x08 (0000 1000 | 0 : 0000 1000 (0x08) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x08)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de enviar la dirección del dispositivo esclavo, se procede a enviar los mensajes con '''WriteI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, para terminar la comunicación con el dispositivo se envía un '''StopI2C''', y si no se realizará otra comunicación se cierra el modulo I2C con '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
=== Leer un mensaje desde la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_read.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Para realizar una lectura se realizan los dos primeros pasos de igual forma: '''OpenI2C''', y '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar la dirección del esclavo, e indicar que se realizará una lectura (bit de R/W en 1):&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x04 (0000 0100)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 1&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x09 (0000 1000 | 1 : 0000 1001(0x09) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x09)'''&lt;br /&gt;
&lt;br /&gt;
Una vez enviada la dirección con el bit de R/W correspondiente se procede a leer los bytes enviados por el esclavo con '''ReadI2C'''.&lt;br /&gt;
&lt;br /&gt;
Después de cada lectura se debe indicar con un '''AckI2C''' o '''NotAckI2C''' según corresponda, como se explicó en la sección Bloques.&lt;br /&gt;
&lt;br /&gt;
Para finalizar la comunicación se procede igual que con la escritura, es decir, '''StopI2C''', y '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
== Notas ==&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Hoy en día no es posible configurar desde la paleta la frecuencia de trabajo de I2C. Por defecto la frecuencia es de 100Kbps y el protocolo soporta frecuencias mayores por lo que&lt;br /&gt;
en un futuro se puede habilitar dicha opción.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8692</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8692"/>
				<updated>2016-12-13T01:19:58Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Leer un mensaje desde la placa */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Protocolo I2C ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que ocurre en un bus I2C es que el dispositivo maestro envía una secuencia de inicio (StartI2C). Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. Éstos quedan atentos para ver si se trata de una solicitud para ellos. &lt;br /&gt;
&lt;br /&gt;
A continuación el dispositivo maestro envía la dirección de dispositivo (WriteI2C con la dirección y el bit de R/W). El dispositivo esclavo que posee esa dirección continuará con la transacción, y los otros ignorarán el resto de los intercambios, esperando la próxima secuencia de inicio.&lt;br /&gt;
&lt;br /&gt;
Una vez que el maestro ha enviado la dirección del dispositivo en el bus I2C, puede enviar (WriteI2C con el byte a enviar) ahora el byte de datos. El dispositivo maestro puede seguir enviando bytes al esclavo consecutivamente (WriteI2C consecutivos). &lt;br /&gt;
&lt;br /&gt;
De forma análoga podrá leer bytes enviados por el esclavo (ReadI2C).&lt;br /&gt;
&lt;br /&gt;
Cuando el maestro ha terminado de escribir datos en el esclavo, envía una secuencia de parada (StopI2C) que concluye la transacción.&lt;br /&gt;
&lt;br /&gt;
Al momento de indicar la dirección del esclavo para comenzar la comunicación, se debe indicar si se desea realizar una lectura o una escritura en el bit menos significativo (ver Sección Bloques-WriteI2C). Por lo que para realizar una lectura luego de haber realizado una escritura, se deberá iniciar la comunicación nuevamente con el bit apropiado.&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenI2C''' &lt;br /&gt;
&lt;br /&gt;
Inicializa el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''StartI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que inicia la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Start de I2C, y espera hasta que la secuencia de señal de Start termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''StopI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que finaliza la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Stop de I2C, y espera hasta que la secuencia de señal de Stop termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''CloseI2C'''&lt;br /&gt;
&lt;br /&gt;
Finaliza el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C'''&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C.&lt;br /&gt;
&lt;br /&gt;
También es utilizado para enviar la dirección del esclavo al que se desea comunicar.&lt;br /&gt;
&lt;br /&gt;
La dirección se debe escribir de la siguiente forma en el byte a enviar:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c-address.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''ReadI2C'''&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C.&lt;br /&gt;
&lt;br /&gt;
Para leer varios bytes, se envía un AckI2C luego de cada byte leído.&lt;br /&gt;
&lt;br /&gt;
Cuando se lee el último byte se debe enviar un NotAckI2C.&lt;br /&gt;
&lt;br /&gt;
Esto aplica para leer un solo byte, se envía un NotAckI2C luego de la lectura del byte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''AckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un acknowledgement de que el byte se leyó, y se procederá a leer otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''NotAckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un negative acknowledgement para indicar que se leyó el byte, y se finalizará la lectura.&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: i2c_plugin.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de comunicación con placa Arduino ===&lt;br /&gt;
&lt;br /&gt;
Nota: La placa Arduino se utilizará como esclavo en la dirección 0x01.&lt;br /&gt;
&lt;br /&gt;
=== Enviar un mensaje a la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_write.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Lo primero que se necesita hacer es inicializar el módulo I2C con '''OpenI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar un mensaje indicando a los dispositivos esclavos conectados que se comenzará una comunicación I2C. Esto se hace enviando un '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que los dispositivos saben que se comenzó la comunicación, se debe enviar un mensaje con la dirección del dispositivo esclavo e indicar si se va a realizar una escritura o lectura.&lt;br /&gt;
&lt;br /&gt;
En este caso se envía la dirección y el bit menos significativo en 0, ya que se desea hacer una escritura:&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x01 (0000 0001)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 0&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x02 (0000 0010 | 0 : 0000 0010(0x02) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x02)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de enviar la dirección del dispositivo esclavo, se procede a enviar los mensajes con '''WriteI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, para terminar la comunicación con el dispositivo se envía un '''StopI2C''', y si no se realizará otra comunicación se cierra el modulo I2C con '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
=== Leer un mensaje desde la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_read.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Para realizar una lectura se realizan los dos primeros pasos de igual forma: '''OpenI2C''', y '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar la dirección del esclavo, e indicar que se realizará una lectura (bit de R/W en 1):&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x01 (0000 0001)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 1&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x03 (0000 0010 | 1 : 0000 0011(0x03) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x03)'''&lt;br /&gt;
&lt;br /&gt;
Una vez enviada la dirección con el bit de R/W correspondiente se procede a leer los bytes enviados por el esclavo con '''ReadI2C'''.&lt;br /&gt;
&lt;br /&gt;
Después de cada lectura se debe indicar con un '''AckI2C''' o '''NotAckI2C''' según corresponda, como se explicó en la sección Bloques.&lt;br /&gt;
&lt;br /&gt;
Para finalizar la comunicación se procede igual que con la escritura, es decir, '''StopI2C''', y '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
== Notas ==&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Configuración de la frecuencia de trabajo.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8691</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8691"/>
				<updated>2016-12-13T01:19:35Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Enviar un mensaje a la placa */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Protocolo I2C ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que ocurre en un bus I2C es que el dispositivo maestro envía una secuencia de inicio (StartI2C). Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. Éstos quedan atentos para ver si se trata de una solicitud para ellos. &lt;br /&gt;
&lt;br /&gt;
A continuación el dispositivo maestro envía la dirección de dispositivo (WriteI2C con la dirección y el bit de R/W). El dispositivo esclavo que posee esa dirección continuará con la transacción, y los otros ignorarán el resto de los intercambios, esperando la próxima secuencia de inicio.&lt;br /&gt;
&lt;br /&gt;
Una vez que el maestro ha enviado la dirección del dispositivo en el bus I2C, puede enviar (WriteI2C con el byte a enviar) ahora el byte de datos. El dispositivo maestro puede seguir enviando bytes al esclavo consecutivamente (WriteI2C consecutivos). &lt;br /&gt;
&lt;br /&gt;
De forma análoga podrá leer bytes enviados por el esclavo (ReadI2C).&lt;br /&gt;
&lt;br /&gt;
Cuando el maestro ha terminado de escribir datos en el esclavo, envía una secuencia de parada (StopI2C) que concluye la transacción.&lt;br /&gt;
&lt;br /&gt;
Al momento de indicar la dirección del esclavo para comenzar la comunicación, se debe indicar si se desea realizar una lectura o una escritura en el bit menos significativo (ver Sección Bloques-WriteI2C). Por lo que para realizar una lectura luego de haber realizado una escritura, se deberá iniciar la comunicación nuevamente con el bit apropiado.&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''OpenI2C''' &lt;br /&gt;
&lt;br /&gt;
Inicializa el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''StartI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que inicia la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Start de I2C, y espera hasta que la secuencia de señal de Start termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''StopI2C'''&lt;br /&gt;
&lt;br /&gt;
Es el mensaje que finaliza la comunicación I2C.&lt;br /&gt;
&lt;br /&gt;
Envía la condición de Stop de I2C, y espera hasta que la secuencia de señal de Stop termine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''CloseI2C'''&lt;br /&gt;
&lt;br /&gt;
Finaliza el módulo I2C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C'''&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C.&lt;br /&gt;
&lt;br /&gt;
También es utilizado para enviar la dirección del esclavo al que se desea comunicar.&lt;br /&gt;
&lt;br /&gt;
La dirección se debe escribir de la siguiente forma en el byte a enviar:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c-address.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''ReadI2C'''&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C.&lt;br /&gt;
&lt;br /&gt;
Para leer varios bytes, se envía un AckI2C luego de cada byte leído.&lt;br /&gt;
&lt;br /&gt;
Cuando se lee el último byte se debe enviar un NotAckI2C.&lt;br /&gt;
&lt;br /&gt;
Esto aplica para leer un solo byte, se envía un NotAckI2C luego de la lectura del byte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''AckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un acknowledgement de que el byte se leyó, y se procederá a leer otro.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
'''NotAckI2C'''&lt;br /&gt;
&lt;br /&gt;
Envía un negative acknowledgement para indicar que se leyó el byte, y se finalizará la lectura.&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: i2c_plugin.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo de comunicación con placa Arduino ===&lt;br /&gt;
&lt;br /&gt;
Nota: La placa Arduino se utilizará como esclavo en la dirección 0x01.&lt;br /&gt;
&lt;br /&gt;
=== Enviar un mensaje a la placa ===&lt;br /&gt;
&lt;br /&gt;
[[Archivo:I2c_write.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Lo primero que se necesita hacer es inicializar el módulo I2C con '''OpenI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar un mensaje indicando a los dispositivos esclavos conectados que se comenzará una comunicación I2C. Esto se hace enviando un '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que los dispositivos saben que se comenzó la comunicación, se debe enviar un mensaje con la dirección del dispositivo esclavo e indicar si se va a realizar una escritura o lectura.&lt;br /&gt;
&lt;br /&gt;
En este caso se envía la dirección y el bit menos significativo en 0, ya que se desea hacer una escritura:&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x01 (0000 0001)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 0&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x02 (0000 0010 | 0 : 0000 0010(0x02) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x02)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Luego de enviar la dirección del dispositivo esclavo, se procede a enviar los mensajes con '''WriteI2C'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, para terminar la comunicación con el dispositivo se envía un '''StopI2C''', y si no se realizará otra comunicación se cierra el modulo I2C con '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
=== Leer un mensaje desde la placa ===&lt;br /&gt;
&lt;br /&gt;
Para realizar una lectura se realizan los dos primeros pasos de igual forma: '''OpenI2C''', y '''StartI2C'''.&lt;br /&gt;
&lt;br /&gt;
Luego se debe enviar la dirección del esclavo, e indicar que se realizará una lectura (bit de R/W en 1):&lt;br /&gt;
&lt;br /&gt;
ADDR : 0x01 (0000 0001)&lt;br /&gt;
&lt;br /&gt;
Bit R/W : 1&lt;br /&gt;
&lt;br /&gt;
Byte a enviar : 0x03 (0000 0010 | 1 : 0000 0011(0x03) )&lt;br /&gt;
&lt;br /&gt;
'''WriteI2C(0x03)'''&lt;br /&gt;
&lt;br /&gt;
Una vez enviada la dirección con el bit de R/W correspondiente se procede a leer los bytes enviados por el esclavo con '''ReadI2C'''.&lt;br /&gt;
&lt;br /&gt;
Después de cada lectura se debe indicar con un '''AckI2C''' o '''NotAckI2C''' según corresponda, como se explicó en la sección Bloques.&lt;br /&gt;
&lt;br /&gt;
Para finalizar la comunicación se procede igual que con la escritura, es decir, '''StopI2C''', y '''CloseI2C'''.&lt;br /&gt;
&lt;br /&gt;
== Notas ==&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Configuración de la frecuencia de trabajo.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_write.png&amp;diff=8690</id>
		<title>Archivo:I2c write.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_write.png&amp;diff=8690"/>
				<updated>2016-12-13T01:17:15Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_read.png&amp;diff=8689</id>
		<title>Archivo:I2c read.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:I2c_read.png&amp;diff=8689"/>
				<updated>2016-12-13T01:16:55Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8657</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8657"/>
				<updated>2016-11-27T02:09:30Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Descarga e instalación */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores: ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
El bloque openI2C &lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
1- Descargar el archivo: i2c_plugin.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
2- Descomprimir el archivo.&amp;lt;br/&amp;gt;&lt;br /&gt;
3- Copiar todo el contenido a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
== Notas ==&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Configuración de la frecuencia de trabajo.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8656</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8656"/>
				<updated>2016-11-27T02:07:47Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Descarga e instalación */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores: ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
El bloque openI2C &lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
Como instalarlo:&lt;br /&gt;
&lt;br /&gt;
1- Descargarlo: i2c_plugin.zip&lt;br /&gt;
2- Descomprimirlo&lt;br /&gt;
3- Copiarlo a la carpeta &amp;quot;plugins&amp;quot; que se encuentra dentro de la actividad TurtleBots.&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
== Notas ==&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Configuración de la frecuencia de trabajo.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8655</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8655"/>
				<updated>2016-11-27T01:55:33Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores: ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
El bloque openI2C &lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
== Descarga e instalación ==&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
== Notas ==&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Configuración de la frecuencia de trabajo.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8654</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8654"/>
				<updated>2016-11-27T01:54:03Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Autores: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores: ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
El bloque openI2C &lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Configuración de la frecuencia de trabajo.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8653</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8653"/>
				<updated>2016-11-27T01:53:55Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autores: ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Esta paleta le agrega el soporte del bus I²C a la placa USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
El bloque openI2C &lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Configuración de la frecuencia de trabajo.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8652</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8652"/>
				<updated>2016-11-27T01:51:47Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Bloques */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción: ==&lt;br /&gt;
Este plugin le agrega el soporte del bus I²C a la USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Autores: ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
El bloque openI2C &lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
Escribe un solo byte en el bus I2C&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
Lee un solo byte del bus I2C&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Configuración de la frecuencia de trabajo.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8651</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8651"/>
				<updated>2016-11-26T23:24:44Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Trabajo a futuro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción: ==&lt;br /&gt;
Este plugin le agrega el soporte del bus I²C a la USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Autores: ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
El bloque openI2C &lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;br /&gt;
&lt;br /&gt;
Configuración de la frecuencia de trabajo.&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8650</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8650"/>
				<updated>2016-11-26T19:40:44Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Descripción: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción: ==&lt;br /&gt;
Este plugin le agrega el soporte del bus I²C a la USB4Butiá.&lt;br /&gt;
&lt;br /&gt;
== Autores: ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
El bloque openI2C &lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8649</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8649"/>
				<updated>2016-11-26T18:57:11Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: /* Ejemplo de uso: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción: ==&lt;br /&gt;
Este plugin le agrega el soporte del bus I²C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Autores: ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
El bloque openI2C &lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8648</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=I2C&amp;diff=8648"/>
				<updated>2016-11-25T22:55:03Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: Página creada con «== Descripción: == Este plugin le agrega el soporte del bus I²C.   == Autores: == *Federico Kauffman *Maximiliano Kotvinsky *Andrés Vasilev    == Paleta ==  Archivo:pa...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descripción: ==&lt;br /&gt;
Este plugin le agrega el soporte del bus I²C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Autores: ==&lt;br /&gt;
*Federico Kauffman&lt;br /&gt;
*Maximiliano Kotvinsky&lt;br /&gt;
*Andrés Vasilev&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Paleta ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:paleta_i2c.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== Bloques ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:openi2c.png]]&lt;br /&gt;
&lt;br /&gt;
El bloque openI2C &lt;br /&gt;
&lt;br /&gt;
*[[Archivo:starti2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:stopi2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:closei2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:writei2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:readi2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:acki2c.png]]&lt;br /&gt;
&lt;br /&gt;
*[[Archivo:notacki2c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Trabajo a futuro ==&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Readi2c.png&amp;diff=8647</id>
		<title>Archivo:Readi2c.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Readi2c.png&amp;diff=8647"/>
				<updated>2016-11-25T22:54:51Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Acki2c.png&amp;diff=8646</id>
		<title>Archivo:Acki2c.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Acki2c.png&amp;diff=8646"/>
				<updated>2016-11-25T22:53:14Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Closei2c.png&amp;diff=8645</id>
		<title>Archivo:Closei2c.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Closei2c.png&amp;diff=8645"/>
				<updated>2016-11-25T22:49:40Z</updated>
		
		<summary type="html">&lt;p&gt;Avasi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Avasi</name></author>	</entry>

	</feed>