Escolar Documentos
Profissional Documentos
Cultura Documentos
Tabla de contenido
Tabla de figuras..... 3
1. Introduccin comunicacin I2C................................................................. 4
2. Estados de la comunicacin I2C.... 4
3. Transmisin de datos por el bus I2C........................................................ 5
3.1.
4. Descripcin de registros........................................................................... 7
5. Velocidad de transmisin por el bus I2C.................................................. 8
6. Descripcin de las resistencias del PULL_UP......................................... 9
7. Configuracin de I2C en Software........................................................... 9
7.1.
7.2.
9
10
10
8.1.
11
8.2.
12
8.3.
8.4.
8.5.
9. Bibliografa
19
23
Tabla de Figuras.
Figura 1. Comunicacin por I2C. .. 4
Figura 2. Trasmisin de trama de datos por la lnea SDA. 5
Figura 3. Bit de reconocimiento ACK. 5
Figura 4. Orden de transmisin por parte del Maestro (master)... 6
Figura 5. Condicin de reinicio o restar. 7
Figura 6. Diagrama de funcionamiento de los registros.
13
1
2
Los datos solo pueden cambiar cuando la lnea SCL estn en un estado
bajo (0).
S: estado de inicio.
ACK: bit de reconocimiento (0) que enva el esclavo al maestro para indicar
que el dispositivo ha sido reconocido y puede empezar la transferencia en
serie entre los dispositivos
dispositivos, si el esclavo receptor no genera el bit de
reconocimiento (0) el maestro debe abortar la transferencia y colocar el
estado de stop. Cuando el bit de reconocimiento se genera la lnea SDA
est en un estado lgico bajo (0) y SCL en estado alto (1) del ciclo de
trabajo.
4. Descripcin de registros.
El modulo MSSP en modo I2C cuenta con seis registros
registros para la comunicacin por
I2C en este caso se describen los registros para el pic 18f4550. [2]
Registros
(SSPCON1), (SSPCON2) y
(SSPSTAT):
(SSPBUF):
(SSPADD):
Descripcin
Control y registro de estado en el modo
de operacin I2C.
Bfer de registro para que los bytes se
escriban y lean e inicien la transmisin
de datos / direcciones.
direcciones
Cuando est configurado MSSP
de
modo
do esclavo contiene las direcciones
del mismo.
Tabla 1. Descripcin de registros
Figura 6.
6. Diagrama de funcionamiento de los registros. [2]
I2C_POLL (): se utiliza si solo el pic tiene modulo SSP. Devuelve un true
(1) si ha recibido un dato en el buffer y un false (0) si no se ha recibido.
10
11
Figura 8.
8 Diseo Esquemtico de conexin I2C.
12
Sptimo paso:
paso como se aprecia en la figura 11 Toolsuite Contents contiene
una X indicando que no se encuentra el ejecutable de CCS C Complier lo
que se hace es dar clic en Browse para encontrarlo.
13
Figura 12.
Noveno paso
paso: se da clic en abrir y a partir de este momento se puede
trabajar en el compilador figura 13.
14
Figura 13.
Decimo paso: Se crea la carpeta del proyecto con su respectivo nombre
nombre.
Figura 14.
15
16
Figura 17.
#include <18f4550.h>
#fuses XT,NOWDT,NOPROTECT,PUT,NOBROWNOUT,NOLVP
#use delay(clock=4000000)
4000000)
#byte
PORTB=0x07
// RELOJ DE 4MHZ
// DIRECCIN DEL PORTB
void CONVERSOR ()
{
set_adc_channel(0);
// PUERTO RA0
delay_ms(20);
17
sensor=read_adc();
delay_ms(0.1);
void main(void)
{
setup_adc_ports(AN0_TO_AN3|VSS_VDD); // CONFIGURACIN DEL PUERTO RA0 TO
RA3 COMO ADC
setup_adc(ADC_CLOCK_INTERNAL);
DE ADC CON EL CLOCK INTERNAL
delay_ms(10);
// CONFIGURACIN DE FUNCIONAMIENTO
// RETARDO PARA LA COMUNICACIN
while(TRUE)
{
CONVERSOR();
// LLAMADO AL CONVERSOR
if(input(PIN_B4)) {ban=2;}
if(input(PIN_B5)) {ban=3;}
if(ban==1)
{
i2c_start();
// CONDICIN DE INICIO
i2c_stop();
// CONDICIN DE STOP
18
if(ban==2)
{
i2c_start();
// CONDICIN DE INICIO
i2c_stop();
// CONDICIN DE STOP
if(ban==3)
{
i2c_start();
// CONDICIN DE INICIO
i2c_stop();
// CONDICIN DE STOP
19
#byte
PORTA=0x05
#byte
PORTB=0x06
// Recepcin de la comunicacin:
void COMUNICACION ()
{
if(i2c_poll())
{
dato=i2c_read();
com=dato;
// SE AADE LA INSTRUCCIN if(com !=208) PARA EVITAR QUE LA DIRECCIN DE
RECEPCIN DEL ESCLAVO 0xd0=208 POR RETARDO DE COMUNICACIN A VECES SE
INTERCAMBIA CON EL DATO DE ENVI (i) SE HACE INTENSIVO PARA EL ESCLAVO DOS
Y TRES QUE YA SERIAN 210 Y 212.
if(com !=208)
{
output_bit(PIN_C7,1); // BIT QUE INDICA QUE ESTA HABILITADO LA TRANSMISIN
dato2=com;
}
}
}
20
}
// Ejecucin del programa:
void main(void)
{
set_tris_b(0b0000000);
output_b(0x00);
output_bit(PIN_C7,0);
while(TRUE)
{
COMUNICACION();
RECONOCIMIENTO_DATOS();
};
}
21
9. BIBLIOGRAFA
22