Módulo De Puerto Serie Sincrónico.docx

  • Uploaded by: Guillermo Bautista
  • 0
  • 0
  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Módulo De Puerto Serie Sincrónico.docx as PDF for free.

More details

  • Words: 2,232
  • Pages: 9
MÓDULO DE PUERTO SERIE SINCRÓNICO (MSSP) El módulo de puerto serie síncrono maestro (MSSP) es una interfaz en serie, útil para comunicarse con otros dispositivos periféricos o microcontroladores. Estos dispositivos periféricos pueden ser EEPROMs en serie, registros de cambios, controladores de pantalla, convertidores A / D, etc. El módulo MSSP puede operar en uno de dos modos:  

Interfaz Periférica Serial (SPI) Circuito inter-integrado (I2C) - Modo maestro completo - Modo esclavo (con llamada de dirección general) La interfaz I2C admite los siguientes modos en hardware:

  

Modo maestro Modo multi-master Modo esclavo

INTERFAZ: Dispositivo capaz de transformar las señales generadas por un aparato en señales comprensibles por otro.

Registros de control El módulo MSSP tiene tres registros de control asociados. Estos incluyen un registro de estado (SSPSTAT) y dos registros de control (SSPCON1 y SSPCON2). El uso de estos registros y sus bits de configuración individuales difieren significativamente dependiendo de si el módulo MSSP se opera en modo SPI o I2C.

Modo SPI El modo SPI permite que 8 bits de datos se transmitan y reciban de forma sincrónica. Los cuatro modos de la SPI son compatibles. Para lograr la comunicación, típicamente se usan tres pines: • Salida de datos en serie (SDO) - RC7 / RX / DT / SDO • Entrada de datos en serie (SDI) - RB0 / AN12 / INT0 / FLT0 / SDI / SDA • Reloj serie (SCK) - RB1 / AN10 / INT1 / SCK / SCL Además, se puede usar un cuarto pin cuando se encuentra en modo de funcionamiento esclavo: • Selección de esclavo (SS): RA5 / AN4 / SS / HLVDIN / C2OUT La figura 19-1 muestra el diagrama de bloques del módulo MSSP cuando se opera en modo SPI.

REGISTROS El módulo MSSP tiene cuatro registros para la operación en modo SPI. Estos son: • Registro de control MSSP 1 (SSPCON1) • Registro de estado de MSSP (SSPSTAT) • Registro de búfer de recepción / transmisión en serie (SSPBUF) • MSSP Shift Register (SSPSR): no accesible directamente SSPCON1 y SSPSTAT son los registros de control y estado en la operación en modo SPI. El registro SSPCON1 es legible y escribible. Los seis bits inferiores del SSPSTAT son de solo lectura. Los dos bits superiores de la SSPSTAT son de lectura / escritura. SSPSR es el registro de desplazamiento que se utiliza para desplazar datos hacia adentro o hacia afuera. SSPBUF es el registro de búfer en el que se escriben o leen los bytes de datos. En las operaciones de recepción, SSPSR y SSPBUF juntos crean un receptor con doble búfer. Cuando SSPSR recibe un byte completo, se transfiere a SSPBUF y se establece la interrupción de SSPIF. Durante la transmisión, el SSPBUF no se duplica. Una escritura a SSPBUF escribirá tanto a SSPBUF como a SSPSR.

SSPSTAT: MSSP STATUS REGISTER (SPI MODE)

SMP

CKE

D/A

P

S

R/W

UA

BF

bit 7

SMP: Sample bit SPI Master mode: 1 = Input data sampled at end of data output time 0 = Input data sampled at middle of data output time SPI Slave mode: SMP must be cleared when SPI is used in Slave mode. bit 6 CKE: SPI Clock Select bit(1) 1 = Transmit occurs on transition from active to Idle clock state 0 = Transmit occurs on transition from Idle to active clock state bit 5 D/A: Data/Address bit Used in I2C mode only. bit 4 P: Stop bit Used in I2C mode only. This bit is cleared when the MSSP module is disabled, SSPEN is cleared. bit 3 S: Start bit Used in I2C mode only. bit 2 R/W: Read/Write Information bit Used in I2C mode only. bit 1 UA: Update Address bit Used in I2C mode only. bit 0 BF: Buffer Full Status bit (Receive mode only) 1 = Receive complete, SSPBUF is full 0 = Receive not complete, SSPBUF is empty Note 1: Polarity of clock state is set by the CKP bit (SSPCON1<4>).

SSPCON1: MSSP CONTROL REGISTER 1 (SPI MODE) WCOL bit 7

SSPOV SSPEN

CKP

SSPM3

SSPM2

SSPM1

SSPM0

WCOL: Write Collision Detect bit (Transmit mode only) 1 = The SSPBUF register is written while it is still transmitting the previous word (must be cleared in software) 0 = No collision bit 6 SSPOV: Receive Overflow Indicator bit(1) SPI Slave mode: 1 = A new byte is received while the SSPBUF register is still holding the previous data. In case of overflow, the data in SSPSR is lost. Overflow can only occur in Slave mode. The user must read the SSPBUF, even if only transmitting data, to avoid setting overflow (must be cleared in software). 0 = No overflow bit 5 SSPEN: Master Synchronous Serial Port Enable bit 1 = Enables serial port and configures SCK, SDO, SDI and SS as serial port pins(2) 0 = Disables serial port and configures these pins as I/O port pins (2) bit 4 CKP: Clock Polarity Select bit 1 = Idle state for clock is a high level 0 = Idle state for clock is a low level bit 3-0 SSPM3:SSPM0: Master Synchronous Serial Port Mode Select bits 0101 = SPI Slave mode, clock = SCK pin, SS pin control disabled, SS can be used as I/O pin (3) 0100 = SPI Slave mode, clock = SCK pin, SS pin control enabled (3) 0011 = SPI Master mode, clock = TMR2 output/2(3) 0010 = SPI Master mode, clock = FOSC/64(3) 0001 = SPI Master mode, clock = FOSC/16(3) 0000 = SPI Master mode, clock = FOSC/4(3) Note 1: In Master mode, the overflow bit is not set since each new reception (and transmission) is initiated by writing to the SSPBUF register. 2: When enabled, these pins must be properly configured as input or output. 3: Bit combinations not specifically listed here are either reserved or implemented in I 2C™ mode only.

OPERACIÓN Al inicializar el SPI, se deben especificar varias opciones. Esto se hace programando los bits de control apropiados (SSPCON1 <5: 0> y SSPSTAT <7: 6>). Estos bits de control permiten que se especifique lo siguiente: • Modo maestro (SCK es la salida del reloj) • Modo esclavo (SCK es la entrada del reloj) • Polaridad del reloj (estado inactivo de SCK) • Fase de muestra de entrada de datos (medio o final del tiempo de salida de datos) • Clock Edge (datos de salida en el flanco ascendente / descendente de SCK) • Velocidad de reloj (solo modo maestro) • Modo de selección de esclavos (solo modo esclavo) El módulo MSSP consta de un registro de cambio de transmisión / recepción (SSPSR) y un registro de almacenamiento intermedio (SSPBUF). El SSPSR cambia los datos dentro y fuera del dispositivo, primero MSb. El SSPBUF guarda los datos que se escribieron en el SSPSR hasta que los datos recibidos estén listos. Una vez que se han recibido los ocho bits de datos, ese byte se mueve al registro SSPBUF. Luego, se establecen el bit de detección de búfer completo, BF (SSPSTAT <0>) y el bit de indicador de interrupción, SSPIF. Este búfer doble de los datos recibidos (SSPBUF) permite que el siguiente byte inicie la recepción antes de leer los datos que se acaban de recibir. Cualquier escritura en el registro SSPBUF durante la transmisión / recepción de datos se ignorará y se establecerá el bit de detección de Colisión de Escritura, WCOL (SSPCON1 <7>). El software del usuario debe borrar el bit WCOL para que se pueda determinar si las siguientes escrituras en el registro SSPBUF se completaron correctamente. Cuando el software de la aplicación espera recibir datos válidos, se debe leer el SSPBUF antes de que el siguiente byte de datos a transferir se escriba en el SSPBUF. El bit de búfer lleno, BF (SSPSTAT <0>), indica cuándo se ha cargado SSPBUF con los datos recibidos (la transmisión está completa). Cuando se lee el SSPBUF, se borra el bit BF. Estos datos pueden ser irrelevantes si el SPI es solo un transmisor. En general, la interrupción MSSP se utiliza para determinar cuándo se ha completado la transmisión / recepción. Si no se va a utilizar el método de interrupción, se puede realizar una encuesta de software para garantizar que no se produzca una colisión de escritura. El Ejemplo 19-1 muestra la carga del SSPBUF (SSPSR) para la transmisión de datos. El SSPSR no se puede leer ni escribir directamente y solo se puede acceder a él dirigiéndose al registro SSPBUF. Además, el registro de estado de MSSP (SSPSTAT) indica las diversas condiciones de estado.

HABILITANDO SPI I / O Para habilitar el puerto serie, se debe configurar el bit de habilitación MSSP, SSPEN (SSPCON1 <5>). Para restablecer o reconfigurar el modo SPI, borre el bit SSPEN, reinicialice los registros SSPCON y luego configure el bit SSPEN. Esto configura los pines SDI, SDO, SCK y SS como pines del puerto serie. Para que los pines se comporten como la función del puerto en serie, algunos deben tener sus bits de dirección de datos (en el registro TRIS) programados adecuadamente de la siguiente manera: SDI es controlado automáticamente por el módulo SPI • SDO debe tener TRISC <7> bit borrado • SCK (Modo maestro) debe tener TRISB <1> bit borrado • SCK (Modo esclavo) debe tener establecido el bit TRISB <1> • SS debe tener TRISA <5> bit set Cualquier función de puerto serie que no se desee puede se anulado programando los datos correspondientes La dirección (TRIS) se registra en el valor opuesto. CONEXION TIPICA La figura muestra una conexión típica entre dos microcontroladores. El controlador maestro (Procesador 1) inicia la transferencia de datos enviando la señal SCK. Los datos se desplazan fuera de ambos registros de desplazamiento en su borde de reloj programado y se enganchan en el borde opuesto del reloj. Ambos procesadores deben programarse para la misma polaridad de reloj (CKP), luego ambos controladores enviarán y recibirán datos al mismo tiempo. Si los datos son significativos (o datos ficticios) dependen del software de la aplicación. Esto conduce a tres escenarios para la transmisión de datos: • Maestro envía datos - El esclavo envía datos ficticios • Maestro envía datos - esclavo envía datos • El maestro envía datos ficticios: el esclavo envía datos

Modo maestro El maestro puede iniciar la transferencia de datos en cualquier momento porque controla el SCK. El maestro determina cuándo el esclavo (Procesador 2, Figura 19-2) emitirá los datos mediante el protocolo del software. n el modo Maestro, los datos se transmiten / reciben tan pronto como se escribe el registro SSPBUF. Si el SPI solo va a recibir, la salida SDO podría estar deshabilitada (programada como una entrada). El registro SSPSR continuará cambiando en la señal presente en el pin SDI a la velocidad de reloj programada. A medida que se recibe cada byte, se cargará en el registro SSPBUF como si se tratara de un byte normal recibido (las interrupciones y los bits de estado se configuran adecuadamente). Esto podría ser útil en las aplicaciones del receptor como un modo de "Monitor de actividad de línea". La polaridad del reloj se selecciona programando adecuadamente el bit CKP (SSPCON1 <4>). Esto, entonces, daría formas de onda para la comunicación SPI como se muestra en la Figura 19-3, la Figura 19-5 y la Figura 19-6, donde la MSB se transmite primero. En el modo Maestro, la velocidad de reloj SPI (tasa de bits) es programable por el usuario para ser uno de los siguientes:    

FOSC/4 (or TCY) FOSC/16 (or 4 • TCY) FOSC/64 (or 16 • TCY) Timer2 output/2

Esto permite una velocidad de datos máxima (a 48 MHz) de 2.00 Mbps.

MODO ESCLAVO En el modo Esclavo, los datos se transmiten y reciben a medida que aparecen los pulsos de reloj externos en SCK. Cuando se enclava el último bit, se establece el bit de indicador de interrupción SSPIF. Mientras se encuentra en modo Esclavo, el reloj externo es suministrado por la fuente de reloj externa en el pin SCK. Este reloj externo debe cumplir con los tiempos máximos máximos y mínimos especificados en las especificaciones eléctricas. Mientras está en modo de suspensión, el esclavo puede transmitir / recibir datos. Cuando se recibe un byte, el dispositivo puede configurarse para activarse desde el modo de espera.

SLAVE SELECT SINCRONIZACIÓN El pin SS permite un modo esclavo síncrono. El SPI debe estar en modo esclavo con el control de pin SS habilitado (SSPCON1 <3: 0> = 04h). Cuando el pin SS es bajo, la transmisión y la recepción están habilitadas y el pin SDO está activado. Cuando el pin SS pasa a nivel alto, el pin SDO ya no se activa, incluso si está en medio de un byte transmitido y se convierte en una salida flotante. Las resistencias de pull-up / pull-down externas pueden ser deseables dependiendo de

la aplicación. Cuando el módulo SPI se restablece, el contador de bits se fuerza a "0". Esto se puede hacer forzando el pin SS a un nivel alto o borrando el bit SSPEN. Para emular la comunicación de dos hilos, el pin SDO se puede conectar al pin SDI. Cuando el SPI necesita funcionar como un receptor, el pin SDO se puede configurar como una entrada. Esto deshabilita las transmisiones desde el SDO. El SDI siempre puede dejarse como una entrada (función SDI) ya que no puede crear un conflicto de bus.

Related Documents

Mdulo De Acto Admin.docx
November 2019 43
Serie
June 2020 19
Serie
October 2019 40
Serie
April 2020 26
Serie
November 2019 31
Serie
October 2019 35

More Documents from ""

June 2020 6
Registros.txt
April 2020 1
Registros.txt
June 2020 1
Registros.txt
June 2020 2
Microcontrolador.txt
June 2020 2
Protocolo I2c.docx
June 2020 2