Professional Documents
Culture Documents
El módulo MSSP en modo I2C implementa completamente todas las funciones maestra
y esclava (incluida la asistencia general de llamadas) y proporciona interrupciones en los
bits de Inicio y Parada en el hardware para determinar un bus libre (función
multiprofesional). El módulo MSSP implementa las especificaciones de modo estándar,
así como el direccionamiento de 7 bits y 10 bits.
Dos pines se utilizan para la transferencia de datos:
• Reloj serie (SCL) - RC3 / SCK / SCL
• Datos en serie (SDA) - RC4 / SDI / SDA
El usuario debe configurar estos pines como entradas o salidas a través de los bits TRISC
<4: 3>.
Registros de control:
El modulo MSSP tiene seis registros para el trabajo en el modo de I2C:
SSPCON (MSSP Control Register): Todos sus bits son de lectura y escritura
SSPCON2 (MSSP Control Register 2): Todos sus bits son de lectura y escritura
SSPSTAT (MSSP Status Register): 6 LSB de lectura, 2 MSB de lectura/escritura.
SSPBUF (Serial Receive/Transmit Buffer Register): Es el registro al cual son
escritos los datos o desde el cual se leen los datos.
SSPSR (MSSP Shift Register): No es accesible directamente. Registro de
desplazamiento, desplaza los datos de entrada y de salida.
SSPADD (MSSP Address Register): En modo I2C esclavo almacena la dirección
del dispositivo esclavo. En modo I2C maestro, los 7 bits menos significativos del
SSPADD actúan como el generador de velocidad para la carga de valores.
Figura 1.Diagrama de bloques de MSSP en modo I2C.
Funcionamiento
El reloj necesario para sincronizar el funcionamiento de ambos dispositivos, siempre es
generado por un dispositivo maestro (microcontrolador) y su frecuencia afecta la
velocidad de transmisión de datos, una vez sincronizados el maestro y el esclavo, el
maestro primero envía el bit de arranque por el pin SDA, luego la dirección de 7 bits del
dispositivo esclavo seleccionado y por último, el bit que requiera el dispositivo 0 para
escribir 1 para leer el dato enviado.
Los 8 bits se desplazan al registro SSPSR después de ocurrir una condición de arranque,
de esta forma todos los dispositivos esclavos que comparten la misma línea de
transmisión recibirán simultáneamente el primer byte, pero sólo el que contiene la
dirección coincidente recibirá el dato entero.
Después el maestro se pone en modo recepción y espera el reconocimiento del
dispositivo receptor, si el dispositivo esclavo envía un bit de reconocimiento 1, la
transmisión de datos continuará hasta que el dispositivo maestro envíe el bit de parada.
La velocidad de comunicación puede ser de hasta 100Kbps en el modo estándar o
normal, aunque puede llegar en el modo rápido hasta los 400Kbps y en el alta hasta más
de 3Mbps, esto dependerá de los dispositivos utilizados, para ello es recomendable
revisar sus hojas de datos.
REGISTRO SSPCON
REGISTRO SSPSTAT
S y P= Indican la detección de las condiciones de inicio y parada,
respectivamente.
R/𝑊̅ = Bit que acompaña a ala dirección e indica si el cliente es receptor o
transmisor.
UA= Se utiliza solo con direcciones de 10 bits, indica que se debe actualizar la
direccion del cliente en SSPADD.
BF= Infica si SSPBUFF esta lleno o vacío.
D/𝐴̅=Indica si el ultimo byte transmitido o recibido fue un dato o una direccion.
SMP= Establece el control de la velocidad de transmisión de las señales en el
bus en el modo de alta velocidad (400KHz).