You are on page 1of 10
ste sto we ase Coos de eceres propos, scontuasnavegan bs ces Control |Automatico| Educacién| Comunicaci6n 12C Inicio » Micracontraladores (1G) » Comunleacién [26 f vy © 8 & En esta entrada vas a aprencler todo sobre el protecole de comunicacién I2¢, que es, como funciona y adicionalmente veremos come implementarlo en cualquier mierecantralader PIC usando el compilador CCS C. Al final veremos un TUTORIAL 12C can un ejemplo paso a paso de su implementacién. CContenides (ents) 1. Comunzacion 2C Micrcontoadores PIC 1. (Que es 2c? 2 Como waa la comunicacion 2c? 2 Fanionamiento des Comunicacibn BCPIC 22, Balanaa Eecwonca con X71 Aino 23, Dispy OLED Raspory Pico / 578265 3. Protocolo Re PC = Semplo 11, Git leetonico Comunieacibn 2C Microcontasdores PI 24, Telco Maria con ac 352 RELO! 353. TERMOMETRO 4. Siblografa Antes de comenzar, te inv ft i PA 1 que veas todas las entradas de nuestro CURSO GRATUITO DE YY que te suscribas al canal para seguir aprendiendo mas sobre estos temas, Comunicacion I2C Microcontroladores PIC Vamos a comenzar a entender iniciaimente a ver la explicacién del protocolo 12C el cual puede ser implementado en cualquier mierocontrolador, tanto en el PIC come también se puede implementar una comunicacién I2C con Arduino, iQue es el 12C? on tntchumseseicasorcomncrconiohioersemaessinte Compaen PC Bea alge, 2023) Buscar ‘SERGIO ANDRES CASTANIO GIRALDO Mi nombre es Sergio Andes Casa Gino, yen Ingenera de Cont y Automataaén. El sto web estarh en consace crecimiento, voy ie Susrbete al tio web, dle me gusts & i pigins ten Facbook y inte canal de yours Fp te doy his gracs y bs biewenea » contol Cursos con DESCUENTO CUPON ce DESCUENTO que es Exusive del wes 22 Compaen PC Bea alge, 2023) ste sto we ase Coos de eceres propos, scontuasnavegan bs ces diferentes dispasitivos donde algunos de ellos serin MAESTROS en cuanta muchos atras dispositivos serén ESCLAVOS. Como trabaja la comunicaci6n 12C? Para poder econocer cada uno dels dispositvesconectados alos 205 hilos del bus 2G 9 cada dispostve se Ie signa ana deecin. ‘Asi en este tipo de comunicaciones el MAESTRO es el que tiene [a inielativa en la transferencia y este es quien decide con quien se quiere conectar para enviar y recibir datos y también decide cuando finalizar la comunicacin. Los DOS hilos del BUS interfaz de comunicacién I2C PIC son lineas de colector abierto donde una de las Iineas leva la sefial de relojy es conocida como (SEL), y la ota linea leva los datos y es conocida como (SDA), Los Pines SDA y SDL I2C se encuentran especificados en todos los componentes que usan este tipo de protocolo de comunicacién, Para que la comunicacién funcione se deben utilizar unas resistencias PULL UP (resistencias conectadas a postive) para asegurar un nivel alte cuando NO hay dispositivos conectados al Bus 12c. La conexién I2C entre un maestro y virios esclavos se muestra a continuacién: va Types El niimero de dispositivas que pueden conectarse de esta forma y ademis la longitud del BUS es limitada por la capacidlad de direccionamiento (de 7 a 10 bits) y por la méxima carga del BUS (400pP La velocidad maxima estindar es de 00Kbps. Videos ‘Comunicacién I2¢ (Parte 1) - Programacién de PIC en CCS C (PIC C) # 0. on tntchumseseicasorcomncrconiohioersemaessinte ( Accede a so de FUNDAMENTOS EN INSTRUMENTACION INDUSTRIAL nso lise nla imagen cde agi abajo @& sigueme EN CANALEN TELEGRAM VIDEO DE LA SEMANA | Somos 100.000 Co... ‘CANALES DE YOUTUBE. No te peas mis videos cunndo ls sub 2 re Unstealcanat de Youtube en Epa ‘oes pode-sinscver no Canale YouTube my Funcionamiento de la Comunicaci6n I2C PIC La transmisién de dates se inicia con un bit de inicio (START) y termina con un bit de finalizacion (STOP). bit de START se reconoce porave la linea SDA pasa de un estado lagico alte para un estado légico de bajo cuando la linea SCL esta en nivel alte, £1 STOP se establece cuando hay una transicién de bajo a alte en la linea SDA, cuando SCL esté en un nivel alt. SDA i sc. _] Cuando comienza la transmisién de datos, el MAESTRO envia la direccién del ESCLAVO con el cual se quiere comunicar, esta direccién puede ser de 7 0 10 bits con formato de byte (uno © dos bits respectivamente) Después de Ia drecci6n se adiciona 1 bit, que indica si se desea ESCRIBIR.o LEER (R/W), Cuando el Maestro envia estos DATOS para el esclavo. El ESCLAVO debe responderte al maestro con un bit de confirmacién para informatle que escucho la solcitud dal maestro y que esta a dsposicin de lo que él necesite ste bit de confirmacién se conoce como (ACK) Si el maestro NO recibe este bit, la comunicacién se interrumpe, Por otro lado, se puede dar caso que un ESCLAVO ests mandando alguna informacién al maestro, entonces el maestro también generard este bit de confirmacién hacia el esclavo. a sa ¢ Puede darse el caso también de que una vez el MAESTRO se comunica con el ESCLAVO, el MAESTRO no abandone el BUS y continde comunicindose con el ESCLAVO, para eso el MAESTRO debe generar una nueva condicién de START que se conoce en la literatura como [START REPETIDA (SF), icéntica al START anterior solo que con un pulso de reconacimiento, Para trabajar con el madulo de comunicacién I2C PIC, se deben configurar los siguientes registios: SSPCON, SSPCON2, SSPADD, SSPBUF, SSPSTAT y SSPSR. on tntchumseseicasorcomncrconiohioersemaessinte SIGUE LA PAGINA DE FACEBOOK cursos Analisis de Sistemas Arduino, Control de Procesos Control Predictive Control Realimentado Instrumentacign MATLAB. Microcontroladores (PIC) ‘MicraPython Python desde Cero, Sistemas Dinémicos Lineales ‘acceso © & invitame a un café Acerca de mi Contacto (i Politica de Privacidad @ Politica de Cookies wes 22 Compaen PC Bea alge, 2023) ste sto we ase Coos de eceres propos, scontuasnavegan bs ces A: ~ = Sy jén _Balanza Electronica con Display OLED Raspberry 12C con Arduino HX711 y Arduino Pi Pico / ESP8266, Protocolo de Comunicacién I2C con CCS C En CCS C PIC C, existen funciones que nos faciitan la implementacién de este tipo de comunicacién. Comencemos primera viendo el tipo de configuraciones que podemos llevar 2 cabo: Para las configuraciones genéricas del i2c declaramos lo siguiente en el encabezado de nuestro programa: 1. | fase 122 (epetones) Estas opciones pueden ir separadas por comas y pueden ser cualquiera de las siguientes opciones MULTL_MASTER, Establece modo Mulimeest. MASTER Establoce mado maestro, SLAVE stable modo eslavo SCL-pin specifica ol pin SCL. SDA-pin Especifia el pin SDA. ‘ADDRESS-nn Especial direecin en modo eelav. FAST Uiliea velocidad alta ‘stow Usiliza velocidad baja, RESTART. WDT Borra el WDT tients eapera une leturs, FORCE HW Usiliza ls Fanciones FC hardware NOFLOAT.HIGH [No permite seiles otanes iia el bus en formato SMBUS. ‘Asocia un Menta siren, La directiva (Huse i2)tiene efecto en las funciones: I2C_ START, I2¢. STOP, 2C_READ, 2C_WRITE y 2¢_POLL Se utilizan funciones de Software a menos que se especfique FORCE_HW, ‘Como por ejemplo: Las funciones asociadas a 2¢ son: ad Para el modo maestro, esta funcién inicia la trasmisi6n. Después de la condicién de arranque © START, el reloj es colocado en nivel l6gico bajo hasta el momento en que se escriba con la funcién [2c WRITE; Si se lama otra funci6n I2C_START antes que un I2C_ STOP quiere decie que se est utlizando un START Repetido (Sr. Esta funcién depende de la respuesta del esdlavo, Finaliza la transmisién, on tntchumseseicasorcomncrconiohioersemaessinte wes 22 Compaen PC Bea alge, 2023) ste sto we ase Coos de eceres propos, scontuasnavegan bs ces de trancmisién del dato; Cuando un ESCLAVO aplica esta instruccin o8) /razte alta de Ia dizecetén a escribir an ta a] ze weisetaadcess) Parte baja de 1a dizeceiés a escribir on a] iaasrisetdsealy — //oato 2 excrsm: ° J/einatizacisn de Ia ceenentatén H.] waite (acatuen=1)—//2i en "1" ae espera pare responder al eaciave 1, statuanize weite (0x0): af oy a FH proceso de escritura puede hacerse de 4 formas como mostrada en Ia pagina 19 del datasheet, nosotros utlizaremos la segunda forma “leer una direccién cualquiera (Random ‘Address Read)" que es la mis comin y dicho proceso de lectura es muy similar con el de ‘escritura solo que en este caso al final el MAESTRO debe enviar un NO ACK. ‘A continuacién se muestra la segunda funcién de nuestra liberia I2C para PIC que ‘colocaremos en nuestra libreria de EEPROM_24512. [tokesatsas La Teensmiasén {/soriba 1a palabra do control latree: 2 weiseladdcess); //Parte baja de In dizeceiér a egcribiz on . HReinicso 4 170 + 2 para eseziturah 1 2c rend(0); —//Lactura det Date 2.| ize ssape //inatizactin de Le czensniston RELOJ DE TIEMPO REAL DS1307 ‘Datasheet click aca, Este dispositivo es capaz de suminisrar los segundlos, minutos, horas, dia, mes y aio en tiempo real (por medio de un cristal de cuarzo de 32.768Khz) Este dispositive posee una serie de registros donde aparecen los datos necesarios (tabla 2 de la pagina 8 del datasheet) Estos datos son suministrados en BCD. ciclo de escritura de este dispositive se inicia con la palabra OxDO y Ia lectura con OxD1 (pagina 12) En la escritura el segundo byte es un puntero que indica la direccién del dato que queremos escribir (ver la tabla 2) En el ciclo de lectura es igual que el de escritura solo que el ultimo byte debe indicar un NACK 1 Maestro, Con esto tan solo queda convertir los bytes leldos de bed a binario, oxtriadenuesonconinencrictere termes esr Mis wz 1022 Compaen PC Bea alge, 2023) ste sto we ase Cools de eceresy pops scantnussnavegonco bs cepts Ap 3. | wold ste got tine (BYTES hr, BYTEK min, BYTE o2c} | 0. | s2e_starcie //scesture a veive(0x00)7 //Cadige de aazriture 2o_write (0x01) //Gedigo de Lectura 5. | see» ecoasin(ize reat) 0x76) //Lectura de toe 7 Rit de Les cegund 6. | min = ecoasiu(ize readt)s0x74)7 //iectuze de toe 7 hit de Los aunutos eoplir (78S. ‘TERMOMETRO £ELtermometro digital i2c DS1621 (Clic aca Datasheet) permite medir una temperatura entre *SS°Cy 125°C como mostrado en la tabla 2 de la pagina 4 del datasheet Este valor de temperatura es suministrado en dos Bytes. El byte alto es el valor entero con una resolucién de 1°Cyy el segundo byte es el valor decimal con una resolucién de 05°C. El termémetto tiene tres pines los cuales srven para darle la direeeién al dispositivo (A2, At Ad), En nuestro ejemplo tenemos la direccién (0x03), Al igual que la memoria EEPROM el termémetro tiene un byte de control donde se almacena la direccidn y si se desea escribir 0 leer. Este byte de control posee en su parte alta un numero jo (1001) y la parte baja viene dado por los pines de direccién (A2, A1, AQ) y el ultimo bit (R/W) es de escrtura o lectura En [a pagina 10 del datasheet se muestran todos los comandos que se pueden usar con este dispositive y la pagina 9 muestra ejemplos cle como debe realzarse el envio de tramas por el ize Los comandos pueden ser O¥AA para lectura de la temperatura, OXEE para el inicio de ‘A continuacién se muestran las funciones que vamos a colocar en nuestra librera lamada TEMP_pst62i.c 7] stot coud cu2t_tenp fine addcess) . 2e_wrive (0x91 | addeeescel)}; //Genera priner Byte (LODLKZAIAD-R) | dataneize_reaacy Wugctara parte alza a] aataieize easi0); — //uectura parte alta y HACK extra denser coninencrichtere geomet wes 22 Compaen PC Bea alge, 2023) ste sto we ase Cools de eceresy pops scantnussnavegonco bs cepts Ap PRINCIPAL Dado que la temperatura es un dato tipo FLOAT, no se puede guardar este dato directamente en la EEPROM, por lo tanto vamos a utilizar una libreria suministrada por CCS C llamada FLOATEE.€ que nos permitirs guardary leer datos tipo FLOAT en una EEPROM, ‘A continuacién se muestra el programa principal el cual despliega un mend, donde si se digita “1” el pic lee la temperatura y la hora y las almacena en la memoria EEPROM indo estos datos en el LCD. Si el usuario presiona °2" el PIC lee la memoria y muestra los itimos 7 datos en el terminal serie. Descargar Cédigos + Esquema en Proteus v8.7 enciae ava AS forvrer abce10 stosr pena (cz0cK=4000000) (teoses xr, noPRoTEcr, NouDE NoBROMOUT, POE ,NOLVE 6. | emene rormae 5 doer rorm= 6 doers rorme= 7 ‘define EEPROM SOA PIN CA (fefine EEPROM SCL PINES 1232 (baude9600, aait-P_6, reveonte7, bite sa.| fuse 4200S7ER,Fast=100000, ada-EEPROM_SDA, 4c1=EEPROM SCz,force_s4) | Minetude 5. | #ncisde ExPROM_24512.0> Wgetude <051307-<> vr. | #nctade crme_ps1621.o> 2] #inciude parityen) au| muecy = staat int) 1/8 ete Y geabedo orion ste sto we ase Coos de eceres propos, scontuasnavegan bs ces oor Mis Bibliografia 1, Compiladar € CCS y Simulador Proteus para Microcontroladores PIC, Eduardo Garcia Breio, s0 es todo por la entrada del dia de hoy, espero les haya gustado y hayan aprendido algo nuevo. Site ha servido el contenido de esta entrada, de los videos y los cédigos de implementacién y deseas apoyar mi trabajo invitandome a un café super barato, puedes hacerlo en el siguiente link de lnvitar a Sergi aun Café Que esten muy bien, nos vemos en la siguiente entrada, Volver al Curso de Microcontroladores PIC Entradas relacionadas [BALANZA ELECTRONICA Balanza Digital con PIC- _Relé con PIC Comunicacién USB CDC BxTIT con PIC + CCS.C Sensor de Presién MPX LCD l2C PIC Predictor de Smith con con PIC Pic Deja una respuesta

You might also like