SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
MÓDULO DE
COMUNICACIONES
SERIE SÍNCRONA: MSSP
El módulo de comunicaciones se-
rie síncrona (MSSP) es un interface
serie, útil para comunicar con otro pe-
riférico o dispositivos. Estos perifé-
ricos pueden ser memorias EEPROMs
serie, registros de desplazamiento,
controladores de displays, converti-
dores A/D, convertidores D/A, etc.
El módulo de MSSP pueda ope-
rar en uno de estos dos modos:
q Serial Peripheral Interface (SPI)
q Inter-Integrated el Circuito (I2C)
Para el control de este módulo hay
dos registros de configuración se tra-
ta del registro SSPCON : Registro de
control del Puerto Serie Síncrono
(Sync Serial Port Control Register)
en la dirección 14h y el SSPCON2:
Registro de Control 2 del Puerto Serie
Síncrono (Sync Serial Port Control
Register2) en la dirección 91h .Ade-
más se dispone del registro SSPSTAT:
Registro de estado del puerto Serie
(Sync Serial Port Status Register) en
la dirección 94h, que seguidamente
se describen.
Modo SPI
Este modo permite la transferencia
de datos de 8 bits en serie, que pueden
ser transmitidos y recibidos de forma
síncrona y simultanea. Para el esta-
blecimiento de la comunicación se
utilizan tres hilos de conexión :
q Serial Data Out (SDO): Salida de
datos Serie
q Serial Data In (SDI); Entrada de da-
tos Serie
q Serial Clock (SCK), Reloj de
Sincronización
CURSO DE
MICROCONTROLADORES
PIC16F87X (...y IX)
CURSO DE
MICROCONTROLADORES
PIC16F87X (...y IX)
Fernando Remiro Domínguez
Profesor de Sistemas Electrónicos
IES. Juan de la Cierva
www.terra.es/personal/fremiro
MICROCONTROLADORES
64RESISTOR
Registro SSPSTAT: Registro de estado
del puerto Serie (Dirección 94h)
R/W-0 R/W-0 R-0 R-0 R-0 R-0 R-0 R-0
SMP CKE D/#A P S R/#W UA BF
Bit 7 Bit 0
bit 7: SMP: Fase de datos de entrada SPI
Modo Master SPI
1 = Muestra datos de entrada al final del tiempo de salida
0 = Muestra datos de entrada a la mitad del tiempo de salida
Modo esclavo SPI
SMP debe ser borrado cuando SPI se emplea en modo esclavo
Modo I2
C Master o Esclavo
1= Deshabilita control de variaciones para velocidad estándar
(100 KHz y 1MHz)
0= Habilita control (400KHz)
bit 6: CKE: Selección del flanco de reloj SPI
SI CKP = 0
1= Dato transmitido en flanco ascendente de SCK
0= Dato transmitido en flanco descendente de SCK
SI CKP = 1
1= Dato transmitido en flanco descendente de SCK
0= Dato transmitido en flanco ascendente de SCK
Modo I2
C Master o Esclavo
1= Niveles de entrada de acuerdo a SMBUS
0= Niveles de entrada conforme a I2
C
bit 5: D/#A: Bit Datos/Direcciones (solo en modo I2
C)
1= Indica el último byte recibido o transmitido es un dato
0= Indica que el último byte recibido o transmitido es una
dirección
bit 4: P: Bit de Stop (Solo en modo I2
C. Ese bit es borrado cuando se
deshabilita el módulo SSP, o cuando el último bit Start es
detectado, SSPEN es borrado)
1= Indica que se ha detectado un bit de Stop (este bit es "0" en
RESET)
0= Bit de Stop no detectado.
bit 3: S: Bit de Start (Solo en modo I2
C. Este bit es borrado cuando se
deshabilita el módulo SSP, o cuando el bit último bit Start es
detectado, SSPEN es borrado)
1= Indica que se ha detectado un bit de Start (este bit es "0" en
RESET)
0= Bit de Start no detectado
Bit 2: R/#W: Bit de información Lectura/Escritura (solo en modo I2
C)
1= Lectura
0= Escritura
Modo I2
C Modo Esclavo
1= Lectura
0= Escritura
Modo I2
C Modo Master
1= Transmisión en progreso
0= Transmisión no en progreso
64-73 MICROCONTROLADORES 30/12/03 12:32 Página 64
MICROCONTROLADORES
65RESISTOR
Adicionalmente puede utilizarse
un cuarto pin trabajando en modo de
funcionamiento esclavo.
q Slave Select (#SS): Selección de Es-
clavo
MODO DE TRABAJO
Al inicializarse el módulo SPI,
se necesita configurar varias especi-
ficaciones de la configuración. Esto es
en los registros SSPSTAT y SSPCON
(SSPCON<5:0> y SSPSTAT<7:6>).
Pudiéndose seleccionar las distintas
modalidades de trabajo:
q Modo Master (donde la señal de re-
loj SCK será de salida)
q Modo Esclavo (donde la señal de
reloj SCK será de entrada)
q Polaridad del Reloj: (Cambio de es-
tado por flanco ascendente o des-
cendente de SCK, y su estado de
inactivad)
q Fase de datos de entrada (es decir,
debemos de precisar el momento en
el que se toma la muestra del dato
de entrada, que puede ser en la mi-
tad o al final del impulso).
q Selección del flanco del reloj
(Transmisión por flanco de bajada o
subida de SCK)
q Velocidad de SCK (Solo en modo
Master)
q Selección del modo Es-
clavo, si trabajamos de
esta forma.
En la Figura 1 se mues-
tra el diagrama de bloques
del módulo SSP, donde
pueden apreciarse los cua-
tro pines que intervienen
en las comunicaciones.
Para habilitar el puerto
serie, deben configurarse
adecuadamente los bits del
registro SSPCON <5:0> y
los bit SMP y CKE del re-
gistro SSPSTAT <7:6>.
Cuando se inicializa el mo-
do SPI es necesario espe-
cificar en el registro SSP-
CON la diferentes opcio-
nes de trabajo:
q Modo Mater, donde la
señal SCK será salida
q Modo Slave, donde la lí-
nea SCK será entrada
q Polaridad de la señal de
reloj, flanco ascendente
o descendente.
q Velocidad del SCK, evi-
dentemente solo en el
modo master.
q Definir el momento en el
que se va a tomar la
muestra del dato de en-
trada, que puede ser en
la mitad o al final del
impulso.
En el modo de recepción los da-
tos recibidos se introducen en serie en
el registro de desplazamiento SSPSR
que, una vez haya recibido el octavo
bit, pasarán al registro SSBUF en pa-
ralelo, poniéndose en ese momento
los bits BF (SSPSTAT <0>) y SSPIF
(PIR1 <3>) a uno, indicando el pri-
mero de ellos que el buffer está lleno
y el segundo para indicar que la re-
cepción/transmisión ha finalizado. Si
bit 1 UA: Activación de dirección (sólo en modo I2
C 10-bits)
1= Indica que es necesario actualizar la dirección en el registro
SSPADD
0= No es necesario actualizar la dirección
bit 0 BF: Bit estado de Buffer lleno
Receptor (Modo SPI e I2
C)
1= Recepción completa, SSPBUF está lleno
0= Recepción no completa, SSPBUF está vacío
Transmisor (Modo I2
C)
1= Transmisión en progreso, SSPBUF está lleno (no incluye ACK
y bit de Stop)
0= Transmisión completa, SSPBUF está vacío (no incluye ACK y
bit de Stop)
Figura 1.- Diagrama de bloques del módulo SSP.
64-73 MICROCONTROLADORES 30/12/03 12:32 Página 65
durante la recepción/transmisión se
intenta escribir en el registro SSPBUF,
la escritura será ignorada y el bit
WCOL (SSPCON<7>) se pone a uno
para indicar que ha habido "colisión".
El bit BF se pone a cero, cuando se
procede a leer el registro SSPBUF, lo
cual debe realizarse antes de que ten-
ga lugar una nueva recepción.
El registro SSPSR no se puede
leer o escribir directamente, y solo se
puede acceder a él a través del registro
SSPBUF. Por lo tanto, por el registro
SSPBUF deben pasar forzosamente
todos los datos tanto en transmisión
como en recepción. En el ejemplo de
la tabla 1, se muestra el proceso de
carga en modo transmisión
CONEXIÓN TÍPICA
En la Figura 2 se muestra la
conexión entre dos procesadores,
donde sólo uno puede actuar como
master cada vez . El circuito que
trabaja como master (Procesador 1)
indica la transferencia de datos con la
señal de reloj. Cada bit es desplazado
en el registro por cada flanco
programado de reloj; en el flanco
opuesto es enclavado en el latch.
Los dos procesadores deberán
programarse con idéntica polaridad de
reloj. Los circuitos a conectar por
medio de este protocolo pueden
ser dos o más periféricos o
microcontroladores pero, como se ha
comentado, solo uno puede trabajar
cada vez como master.
MODO MASTER
Cuando el microcontrolador se
configura como Master, los datos son
transmitidos/recibidos cada vez que
se escribe en el registro SSPBU. Si el
módulo actúa como esclavo, la patilla
CLK deberá configurarse como en-
trada para que la señal, presente en la
patilla SDI, se vaya desplazando en el
registro SSPSR por cada pulso de re-
loj recibido. El rango programable pa-
ra el reloj con los bits SSPM3:SSPM0
es de FOSC/4, FOSC/16, FOSC/64 y
Timer2 (Salida/2).
Figura 2.- Conexión SPI Master/Slave sólo uno de los
procesadores puede actuar cada vez como master.
Registro SSPCON: Registro de control del
puerto Serie (Dirección 14h)
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0
bit 7 bit 0
Bit 7: WCOL: Bit detector de colisión
1= El registro SSPBUF se ha escrito cuando hay una transmisión en
proceso (Se debe borrar por software)
0= No hay colisión
bit 6: SSPOV: Bit detector de desbordamiento en recepción
En modo SPI
1= Se recibe un nuevo byte cuando el registro SSPBUF aún mantie-
ne los datos anteriores. En caso de rebose, los datos del registro
SSPSR serán falsos, sólo puede ocurrir en modo esclavo. Se deberá
leer el SSPBUF, aún si sólo se envían datos, para anular el rebose. En
modo master el bit no se pone a uno ya que en cada nueva recep-
ción/transmisión es inicializado por la escritura del registro SSPBUF.
0= No hay desbordamiento.
En modo I2
C
1= Se recibe un nuevo byte cuando el registro SSPBUF aún mantie-
ne los datos anteriores. En modo de transmisión no tiene importan-
cia, en cualquier caso debe borrarse por software.
0= No hay desbordamiento
bit 5: SSPEN: Bit de habilitación del módulo SSP (Synchronous Serial
Port)
En modo SPI
1= Habilita puerto serie y configura SCK, SDO y SDI como patillas
del puerto serie.
0= Deshabilita el puerto serie y configura estas patillas como puerto
de Entrada/Salida..
En modo I2
C
1= Habilita el puerto serie y configura SDA y SCL como patillas del
puerto serie
0= Deshabilita el puerto serie y configura estas patillas como puerto
de Entrada/Salida.
En ambos casos, se deberán configurar como entradas o salidas
adecuadamente.
bit 4: CKP: Bit de selección de polaridad del reloj
En modo SPI
1= Reloj en nivel alto. Transmisión en flancos de bajada, en
recepción de subida
0= Reloj en nivel bajo. Transmisión en flancos de subida, en
recepción por flancos de bajada.
En modo I2
C Esclavo (En este modo no se usa como master)
Control de desbloqueo de SCK
1= Habilita reloj
0= Mantiene reloj en estado bajo.
64-73 MICROCONTROLADORES 30/12/03 12:32 Página 66
Esto permite a una frecuencia de
reloj máxima (a 20 MHz) de bits de
5MHz. La Figura 3 muestra el crono-
grama en modo Master. Cuando CKE
=1, el dato de SDO es valido si es an-
terior a un flanco de reloj en SDO. El
cambio en la entrada en el ejemplo es
en el flanco de reloj de SCK. El cam-
bio en el ejemplo de entrada se de-
pende del estado del bit SMP. El tiem-
po de la señal corresponde al de carga
de los bit recibidos en el registros
SSPBUF.
En una operación de SLEEP,
cuando está configurado como mas-
ter, todos los módulos de reloj son de-
tenidos por lo que la transición re-
cepción permanecerá congelada has-
ta que el microcontrolador despierte.
Momento en el que el módulo reanu-
dará la transmisión o la recepción. En
el modo esclavo, los desplazamientos
sobre el registro son asíncronos, lo
que permite seguir transmitiendo o
recibiendo datos estando el procesador
en estado Sleep. El microcontrolador
despertará del SLEEP cuando los
ocho bits se hayan recibido y, como
es obvio, si la interrupción corres-
pondiente está habilitada.
Un Reset, deshabilita el módulo
MSSP, por lo que si se produce du-
rante una transferencia ésta se dará
por finalizada.
MODO SLAVE
Como ya se ha comentado, en es-
te modo de trabajo los datos son trans-
mitidos o recibidos con el control de la
señal externa de reloj. Cuando el últi-
mo bit ha sido enclavado, el flag de
interrupción SSPIF (PIR<3>) se pon-
drá a uno. En este caso, como la fuen-
te de reloj es externa, la patilla SCK
deberá programarse como entrada.
El pin #SS permite sincronizar el
modo esclavo. Cuando este modo es
habilitado (SSPCON<3:0> = 0110)
MICROCONTROLADORES
67RESISTOR
Bit 3-0:SSPM3:SSPM0: Bit de selección del modo del SSP (Syncrhonous Serial Port)
0000 Modo Master del SPI, reloj = FOSC/4 0110 Modo Esclavo I2
C, dirección de 7 bits
0001 Modo Master del SPI, reloj =FOSC/16 0111 Modo Esclavo I2
C, dirección de 10 bits
0010 Modo Master del SPI, reloj =FOSC/32 1000 Modo Master I2
C, reloj =
F=OSC/(4x(SSPADD+1))
0011 Modo Master del SPI, reloj =TMR2 salida/2 1011 Modelo Esclavo I2
C con soporte
0100 Modo Master del SPI, reloj = patilla SCK. 1110 Modo Esclavo I2C, dirección de 7 bits
Habilita patilla de control #SS de interrupción Start y Stop habilitados
0101 Modo Esclavo del SPI, reloj = patilla SCK. 1111 Modo Esclavo I2
C, dirección de 10 bits con bits
Deshabilitada patilla #SS, se puede emplear de interrupción Start y Stop habilitados
como I/O
1001, 1010, 1100 y 1101 Están reservados
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
GCEN ASKSTART ACKDT ACKEN RCEN PEN RSEN SEN
Bit 7 Bit 0
bit 7: GCEN: Bit de habilitación general (sólo en modo esclavo I2
C)
1= Habilita Interrupción cuando una llamada general es recibida en
el SSPST (0000h)
0= Deshabilita dirección de llamada general
bit 6: ACKSTART: Bit de estado de reconocimiento (solo en modo master I2
C)
Modo de Transmisión
1= Reconocimiento del esclavo no recibido
0= Reconocimiento del esclavo recibido
bit 5: ACKDT: Bit de reconocimiento (solo en modo master I2
C)
Modo de Recepción
Valor transmitido cuando el usuario indica una secuencia de recono-
cimiento y final de una recepción.
1= No reconocimiento
0= Reconocimiento
bit 4: ACKEN: Bit de habilitación de secuencia de reconocimiento (sólo
en modo master I2
C)
Modo de Recepción
1= Indica una secuencia de reconocimiento en patillas SDA y SCL y
transmite bit ACKDT. Automáticamente borrado por hardware.
0= Secuencia de reconocimiento en reposo
bit 3: RCEN: Bit de habilitación de recepción (sólo en modo master I2
C)
1= Habilita recepción en modo I2
C
0= Recepción en reposo
bit 2: PEN: Bit de habilitación de condición de Stop( sólo en modo
master I2
C)
Control SCK desbloqueado
1= Indica una condición de Stop en SDA y SCL. Automáticamente
borrado por hardware.
0= Condición de Stop en reposo
bit 1: RSEN: Bit de habilitación repetir condición Start (sólo en modo
master I2
C)
1= Indica repetición de condición de Start en SDA y SCL. Automá-
ticamente borrado por hardware.
0= Condición de repetición de Start en reposo.
bit 0: SEN: Bit de habilitación de condición Start (sólo en modo master I2
C)
1= Indica condición de Start en SDA y SCL. Automáticamente
borrado por hardware
0= Condición de Start en reposo.
SSPCON2: Registro de control 2 del puerto
Serie (dirección 91)
64-73 MICROCONTROLADORES 30/12/03 12:32 Página 67
el pin #SSP se comporta como
una entrada, por lo que habrá que
programarla como tal (TRI-
SA<5> =1). Forzando esta pati-
lla a nivel alto, el módulo SPI se
Resetea y el bit SSPEN se borra.
Es posible realizar transmi-
siones y recepciones con sólo
dos hilos de conexión; en este
caso las patillas SDI y SDO pueden
unirse eliminando así la tercera cone-
xión. Cuando la pastilla SDI necesita
operar como receptora, la patilla SDO
deberá ser configurada como una nue-
va entrada, de este modo, se deshabi-
lita la transmisión por esta última y
no crea conflictos con los datos de la
SDI.
bsf STATUS, RP0 ;Selecciona el banco 1
LOOP btfss SSPSTAT, BF ;¿Buffer lleno? (¿BF=1?)
goto LOOP ;No, entonces esperar
bcf STATUS, RP0 ;Selecciona el banco 0
movf SSPBUF, W ; SSPBUF W
movwf RXDATA ;Guardar el dato en una memoria temporal RAM
movf TXDATA, W ; TXDATA W
movwf SSPBUF ;Nuevo dato a transmitir
Figura 3.- Cronograma del modo SPI (Modo Master). La señal de reloj
actúa como motor del proceso.
Figura 5.- Cronograma del SPI en modo Esclavo (CKE=0)
Figura 6.- Cronograma del SPI en Modo Esclavo (CKE=1)El bit CKE
del registro SSPSTAX determina el flanco del reloj que transmite el bit;
hay que tener en cuenta que actuará de forma inversa con el bit CKP del
registro SSPCON.
Figura 4.- Cronograma de sincronización del slave
Tabla 1, ejemplo de proceso de carga en modo transmisión.
64-73 MICROCONTROLADORES 30/12/03 12:32 Página 68
EJEMPLO DE MANEJO DE UN
PERIFÉRICO SPI
El montaje de la Figura 8, está
basado en una nota de aplicación que
nos ha mandado Marcos Fernández.
Se trata de un convertidor A/D con
protocolo SPI de 16 bits con dos
canales de entrada de la marca Analog
Device con un circuito de referencia
de tensión de referencia de 2,50V de
la misma marca, conectados al puerto
de comunicaciones serie síncronas de
un PIC16F876.El programa propuesto
para comprobar el funcionamiento de
puerto SPI del PIC16F876 es el
siguiente. Los pines del AD7705 son
los que se muestran en la Figura 7 y la
Dirección Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Valor en POR,BOR Valor en
el resto de Reset
0Bh,8Bh
10Bh,18Bh INTCON GIE PEIE(1) TOIE INTE RBIE TOIF INTF RBIF 0000 000x 0000 000u
0Ch PIR1 PSPIF1 ADIF(1) RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000
8Ch PIE1 PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000
87h TRISC PORTC (Direcciónamiento de los Datos) 1111 1111 1111 1111
13h SSPBUF Registro Buffer Transmisión/Recepción del módulo SSP xxxx xxxx uuuu uuuu
14h SSPCON WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPPM0 0000 0000 0000 0000
85h TRISA --- --- Registro de direccionamiento de datos de PORTA --11 1111 --11 1111
94h SSPSTAT SMP SKE D/#A P S R/W UA BF --00 0000 --00 0000
Leyenda
x = desconocido, u = inalterado; - = no implementado se lee como ‘0’. Las celdas sombreadas no son usadas para la conversión A/D
Nota 1: Estos registros/bits no están disponibles para los dispositivos de 28 pines
Registros Asociados con una operación SPI
Figura 7.- Patillas de los convertidores AD7006 y AD7706
Pin Nemónico Función
1 SCLK Serial Clock. Entrada Trigger Schmit. Un reloj externo se aplica a esta entrada para acceder los datos serie
del AD7705/AD7706. Este reloj serie puede ser un reloj continuo con todos los datos transmitidos en un tren
continuo de pulsos. Alternativamente, puede ser un reloj no continuo con la información transmitiéndose al
AD7705/AD7706 en lotes de datos más pequeño.
2 MCLK IN Señal de reloj Master del dispositivo. Se puede conseguir utilizando un crystal/resonator o un reloj externo.
El crystal/resonator puede conectarse a los pines MCLK IN y MCLK OUT.
Alternativamente, en el pin MCLK puede controlarse con un reloj CMOS-compatible y MCLK OUT no
conectado. Se puede trabajar con frecuencias de reloj con un rango entre 500 kHz a 5 MHz.
3 MCLK OUT Cuando el reloj del dispositivo en modo master es un crystal/resonator, el crystal/resonator se conecta entre
MCLK IN y MCLK OUT. Si un reloj externo se aplica a MCLK IN, MCLK OUT proporciona una señal de
reloj invertido. Este reloj puede usarse para proporcionar una fuente del reloj para que la circuitería externa
y es capaz de atacar a dispositivos CMOS. Si el usuario no lo requiere, este MCLK OUT puede eliminarse.
Esto asegura que no se absorba potencia innecesaria en lar cargas capacitivas que controlan la MCLK OUT.
4 CS Chip Select. Entrada activa a nivel bajo selecciona el AD7705/AD7706. Con esta entrada hard-wired a nivel
bajo, el AD7705/AD7706 puede trabajar en tres hilos SCLK, DIN y DOUT unidos al bus del dispositivo. CS
puede activar el dispositivo en sistemas con mas dispositivos conectado al bus serie o como una señal de sin-
cronismo en la comunicación con el AD7705/AD7706.
64-73 MICROCONTROLADORES 30/12/03 12:32 Página 69
6 AIN2(+)[AIN1] AD7705: entrada positiva o entrada analógica diferencial del Canal 2.AD7706: La Entrada analógica Canal 1.
7 AIN1(+)[AIN2] AD7705: entrada positiva o entrada analógica diferencial del Canal 1.AD7706: La Entrada analógica Canal 2
8 AIN1(–)[COMMON] AD7705: Entrada negativa o Entrada de Analógica diferencial del Canal . AD7706:
La entrada COMÚN. Entradas analógicas de referencia para los canales 1, 2 y 3.
9 REF IN(+) Entrada de Referencia. Entrada positiva de Referencia diferencia del AD7705/AD7706.
La entrada de la referencia es diferencial y puede tomar cualquier valor teniendo la prevención de que REF
IN(+) debe ser mayor que REF IN (–). REF IN(+) puede ser cualquier valor entre VDD y GND.
10 REF IN(–) Entrada de referencia. Entrada negativa de referencia diferencial del AD7705/AD7706.
La entrada de la referencia es diferencial y puede tomar cualquier valor teniendo la prevención de que REF
IN(+) debe ser mayor que REF IN (–). REF IN(+) puede ser cualquier valor entre VDD y GND.
11 AIN2(–)[AIN3] AD7705: Entrada diferencial negativa de la entrada analógica del Canal 2. AD7706: Entrada analógica del
Canal 3.
12 DRDY Salida lógica. Un nivel lógico bajo en esta salida indica que una nueva palabra de salida está disponible en
el registro de datos del AD7705/AD7706 . El pin DRDY volverá a tomar el nivel alto cuando se realice una
función de lectura de la palabra de salida completa. Si los datos no se leen la línea DRDY volverá a tomar un
nivel alto cuando pasen 500 x tCLK IN
ciclos, para actualizar la salida.
Mientras DRDY está a nivel alto, deberá intentarse realizar una función de lectura. La línea DRDY volverá
indicar de nuevo cuando la actualización ha tenido lugar. DRDY también es acostumbrado a indicar cuando
el AD7705/AD7706 ha completado secuencia de calibración del chip.
13 DOUT Salida de datos serie con los datos en serie se lee la sañoda del registro de desplazamiento que contiene la
información del registro de indicio, registro de comunicaciones, registro de reloj o registro de datos, depen-
de en cada momento del registro de selección de comunicaciones
14 DIN Entrada de datos serie que se escriben en serie por la entrada de desplazamiento de entrada. Los datos de este
registro de desplazamiento de entrada se transfiere al registro de configuración, al registro del reloj o al regis-
tro de comunicaciones, dependiendo, en el momento del registro de de selección o del Registro de
Comunicaciones.
15 VDD Tensión de alimentación comprendida entre +2.7 V a +5.25 V.
16 GND Masa , punto de tendión de referencia para el AD7705/AD7706 en el interior del circuito.
Figura 8.- Montaje Experimental del
PIC16F876 con un convertidor A/D SPI
64-73 MICROCONTROLADORES 30/12/03 12:32 Página 70
;***********************************************************************************
;Para trabajar con el A/D utilizo básicamente dos rutinas:
;1-CONFAD, donde se realiza la configuración del A/D
;2-MEDIR, donde se realiza una nueva medida
;El tratamiento que realizo es por poling de la pata DRDY(RC6).Se Utiliza una referencia
;de tensión que se obtiene del ANALOG DEVICES (REF192 de 2.5V). El cristal del A/D es de 2.4576
;El pin de RESET del A/D se conecta a nivel alto porque no utiliza (se activa a nivel bajo).
;Nada mas comenzar el inicio se realiza una temporización de 6msg y a continuación se activa el
;SPI, se realiza toda la configuración; a continuación se configura el A/D y se pone la pata SCK
;a nivel alto. A partir de este momento se puede hacer cualquier cosa y en el momento que se
;desee realizar una medición se llama a la función ACTSPI que activa al SPI y a MEDIR, guardando
;el resultado en DATOL y DATOH. Al final de esta rutina se vuelve a poner SCK a alto.
;La visualización de la conversión se realiza sobre los diodos LED, primero la parte alta y pasado
;un tiempo la parte baja.
;***********************************************************************************
LIST P=16F876 ;Se indica el modo de procesador
INCLUDE <P16f876.inc> ;se incluye la definicion de los
AUX EQU 0x20
CONT equ 0x21
DATOH equ 0x22
DATOL equ 0x23
AUX1 equ 0x24
AUX2 equ 0x25
INICIO
bsf STATUS,RP0
movlw b'11000111'
movwf OPTION_REG
clrf TRISB
bcf STATUS,RP0
call TEMP_6MS ;Temporización de 6msg
movlw b'00110000' ;modo master spi, reloj = fosc/4
movwf SSPCON ;sspen (bit 5) para la activacion del modulo spi
bsf STATUS,RP0 ;banco 1
;realizo el resto de la configuración que se necesite para el micro
movlw b'01010000' ;i/o de sck, sdi y sdo
movwf TRISC
clrf SSPSTAT
bcf STATUS,RP0 ;banco 0
;Inicialización de variables que se deseen
bcf SSPCON,SSPEN
bsf PORTC,3 ;PONGO A ALTO SCK
;-----------------------------EJEMPLO DE PRUEBA
A_OTRA call ACTSPIAD
call MEDIR
call VISUALIZA ;Se podría mandar visualizar sobre un LCD
movlw .50
movwf CONT
YA2 bcf INTCON,T0IF
movlw .0
movwf TMR0
MICROCONTROLADORES
71RESISTOR
El programa propuesto para comprobar el funcionamiento de puerto SPI del PIC16F976 es el siguiente.
64-73 MICROCONTROLADORES 30/12/03 12:32 Página 71
MICROCONTROLADORES
72RESISTOR
YA3 btfss INTCON,T0IF
goto YA3
decfsz CONT,F
goto YA2
goto A_OTRA
;------------------------
CONFAD
movlw 0x20 ;dato a enviar- al C. R. dando el canal y el registro a
movwf SSPBUF ;escribir (sera el clock register)
call WAITBF
btfsc SSPCON,SSPOV
goto PREINI
movlw 0x0C ;dato a enviar- al clock r. dando datos para que funcione con
movwf SSPBUF ;cristal. la lectura tiene que ser cada 2 ms.
call WAITBF
btfsc SSPCON,SSPOV
goto PREINI
movlw 0x10 ;dato a enviar C.R. dando el canal y el registro a
movwf SSPBUF ;escribir (será el setup register)
call WAITBF
btfsc SSPCON,SSPOV
goto PREINI
movlw 0x40 ;dato a enviar al Setup R. autocalibración y ganancia 1
movwf SSPBUF
call WAITBF
btfsc SSPCON,SSPOV
goto PREINI
return
;--------------------------
MEDIR movf PORTC,W ;Se realizó así en vez de directamente al puerto porque a
movwf AUX ;veces daba error
btfsc AUX,6 ;drdy# esta conectado al pin 6 del puerto C
goto MEDIR
movlw 0x38 ;dato a enviar al C. R. diciéndole que ahora voy a leer
movwf SSPBUF ;del data reg
call WAITBF
btfsc SSPCON,SSPOV
goto PREINI
;leo el bufer 2 veces para almacenar en las variables DATOH
movlw 0x00 ;y DATOL el resultado de la conversión
movwf SSPBUF
call WAITBF
btfsc SSPCON,SSPOV
goto PREINI
movwf DATOH
movlw 0x00
movwf SSPBUF
call WAITBF
btfsc SSPCON,SSPOV
goto PREINI
movwf DATOL
bcf SSPCON,SSPEN
bsf PORTC,3 ;PONGO A ALTO SCK
return
64-73 MICROCONTROLADORES 30/12/03 12:32 Página 72
73RESISTOR
PICTRONIC
Herramientas para el aprendizaje y desarrollo de los µC PIC
q "Curso Básico de microcontroladores PIC"
q "PICTRON-0/EXT", aprendizaje y pequeños proyectos sin soldadura
q Circuitos programadores, puerto serie y paralelo
q Módulo ICD "in circuit debugger" 16F8XX compatible con MPLAB-ICD
q PROTOBOARDS para proyectos medios con PIC de todos los formatos
q Placas de desarrollo IN/OUT
q Módulos auxiliares para proyectos profesionales
Visítanos en: http://www.pictronic.com
e-mail: info@pictronic.com
;----------------------------
ACTSPIAD
movlw b'00110000' ;modo master
spi, reloj = fosc/4
movwf SSPCON
return
;---------------------------
WAITBFbsf STATUS,RP0
WAITB btfss SSPSTAT,BF
goto WAITB
bcf STATUS,RP0
movf SSPBUF,W
return
;------------------------------
VISUALIZA
movf DATOH,W
movwf PORTB
call TEMPO
movf DATOL,W
movwf PORTB
call TEMPO
return
;------------------------------
TEMPO clrf AUX1
clrf AUX2
BUCLE decfsz AUX1,f
goto BUCLE
decfsz AUX2,f
goto BUCLE
return
;------------------------------
TEMP_6MS
movlw D'2'
movwf AUX1
movlw D'53'
movwf AUX2
BUCLE1 decfsz AUX2,1
goto BUCLE1
decfsz AUX1,1
goto BUCLE1
return
;------------------------------
PREINI bcf SSPCON,SSPOV
goto INICIO
;------------------------------
END
64-73 MICROCONTROLADORES 30/12/03 12:32 Página 73

Más contenido relacionado

La actualidad más candente

Curso de microcontroladores capitulo 10
Curso de microcontroladores capitulo 10Curso de microcontroladores capitulo 10
Curso de microcontroladores capitulo 10Hamiltonn Casallas
 
Curso de microcontroladores capitulo 08
Curso de microcontroladores capitulo 08Curso de microcontroladores capitulo 08
Curso de microcontroladores capitulo 08Hamiltonn Casallas
 
Curso de microcontroladores capitulo 11
Curso de microcontroladores capitulo 11Curso de microcontroladores capitulo 11
Curso de microcontroladores capitulo 11Hamiltonn Casallas
 
Curso Micro Tema 3
Curso Micro Tema 3Curso Micro Tema 3
Curso Micro Tema 3Luis Zurita
 
Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2Luis Zurita
 
MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5Luis Zurita
 
Manejo de teclado 4x4 con pic 16 f84a
Manejo de teclado 4x4 con pic 16 f84aManejo de teclado 4x4 con pic 16 f84a
Manejo de teclado 4x4 con pic 16 f84axeleta
 
Curso Micro Tema 2
Curso Micro Tema 2Curso Micro Tema 2
Curso Micro Tema 2Luis Zurita
 
Comunicación serial PIC16F877A
Comunicación serial PIC16F877AComunicación serial PIC16F877A
Comunicación serial PIC16F877ALiliana Rodríguez
 
Curso Micro Tema 3 2
Curso Micro Tema 3 2Curso Micro Tema 3 2
Curso Micro Tema 3 2Luis Zurita
 
programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84guestf09168b
 
MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3Luis Zurita
 

La actualidad más candente (18)

Curso de microcontroladores capitulo 10
Curso de microcontroladores capitulo 10Curso de microcontroladores capitulo 10
Curso de microcontroladores capitulo 10
 
Curso de microcontroladores capitulo 08
Curso de microcontroladores capitulo 08Curso de microcontroladores capitulo 08
Curso de microcontroladores capitulo 08
 
Curso de microcontroladores capitulo 11
Curso de microcontroladores capitulo 11Curso de microcontroladores capitulo 11
Curso de microcontroladores capitulo 11
 
PROYECTOS CON PIC 16F84
PROYECTOS CON PIC 16F84PROYECTOS CON PIC 16F84
PROYECTOS CON PIC 16F84
 
Adc y usart pic16 f887
Adc y usart pic16 f887Adc y usart pic16 f887
Adc y usart pic16 f887
 
Curso Micro Tema 3
Curso Micro Tema 3Curso Micro Tema 3
Curso Micro Tema 3
 
Programación PIC16F84A
Programación PIC16F84AProgramación PIC16F84A
Programación PIC16F84A
 
Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2
 
MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5
 
Usart
UsartUsart
Usart
 
Manejo de teclado 4x4 con pic 16 f84a
Manejo de teclado 4x4 con pic 16 f84aManejo de teclado 4x4 con pic 16 f84a
Manejo de teclado 4x4 con pic 16 f84a
 
Curso Micro Tema 2
Curso Micro Tema 2Curso Micro Tema 2
Curso Micro Tema 2
 
Comunicación serial PIC16F877A
Comunicación serial PIC16F877AComunicación serial PIC16F877A
Comunicación serial PIC16F877A
 
Curso Micro Tema 3 2
Curso Micro Tema 3 2Curso Micro Tema 3 2
Curso Micro Tema 3 2
 
programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84
 
Ccp2009170309
Ccp2009170309Ccp2009170309
Ccp2009170309
 
MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3
 
Niple diapopsitiva
Niple   diapopsitivaNiple   diapopsitiva
Niple diapopsitiva
 

Destacado

Destacado (13)

Laboratorio vitual Live wire
Laboratorio vitual Live wireLaboratorio vitual Live wire
Laboratorio vitual Live wire
 
Radios de AM
Radios de AMRadios de AM
Radios de AM
 
Circuito de entrada y antena.
Circuito de entrada y antena.Circuito de entrada y antena.
Circuito de entrada y antena.
 
Reparación de amplificadores de audio
Reparación de amplificadores de audioReparación de amplificadores de audio
Reparación de amplificadores de audio
 
Fundamentos del inductor.
Fundamentos del inductor.Fundamentos del inductor.
Fundamentos del inductor.
 
Armando un generador de RF
Armando un generador de RFArmando un generador de RF
Armando un generador de RF
 
Disipadores de calor
Disipadores de calorDisipadores de calor
Disipadores de calor
 
Circuitos impresos
Circuitos impresosCircuitos impresos
Circuitos impresos
 
La reactancia en la electricidad.
La reactancia en la electricidad.La reactancia en la electricidad.
La reactancia en la electricidad.
 
Construcción de bobinas ajustables.
Construcción de bobinas ajustables.Construcción de bobinas ajustables.
Construcción de bobinas ajustables.
 
Amplificador Push - Pull
Amplificador Push - PullAmplificador Push - Pull
Amplificador Push - Pull
 
To Study Well Design Aspects in HPHT Environment
To  Study Well Design Aspects in HPHT EnvironmentTo  Study Well Design Aspects in HPHT Environment
To Study Well Design Aspects in HPHT Environment
 
Programación de un PIC con Niple
Programación de un PIC con NipleProgramación de un PIC con Niple
Programación de un PIC con Niple
 

Similar a Curso de microcontroladores capitulo 09

Protoolo I2C microcontroladores programacion
Protoolo  I2C microcontroladores programacionProtoolo  I2C microcontroladores programacion
Protoolo I2C microcontroladores programacionaaplgemelo
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosjbersosa
 
Puertos de entrada/salida
Puertos de entrada/salidaPuertos de entrada/salida
Puertos de entrada/salidatecautind
 
Puertos de entrada diapositivas
Puertos de entrada diapositivasPuertos de entrada diapositivas
Puertos de entrada diapositivastecautind
 
Módulos ccp pic 16f887
Módulos ccp pic 16f887Módulos ccp pic 16f887
Módulos ccp pic 16f887whendygarcia
 
Modulos ccp v2(ring telefono)
Modulos ccp v2(ring telefono)Modulos ccp v2(ring telefono)
Modulos ccp v2(ring telefono)panchito24mayo
 
Contador asíncrono binario
Contador asíncrono binarioContador asíncrono binario
Contador asíncrono binarioIsrael Chandy
 
G UÍ A R E G I S T R O S P I C16 F873
G UÍ A  R E G I S T R O S  P I C16 F873G UÍ A  R E G I S T R O S  P I C16 F873
G UÍ A R E G I S T R O S P I C16 F873Luis Zurita
 
Microcontroladores: Los microcontroladores AVR de ATMEL parte 2
Microcontroladores: Los microcontroladores AVR de ATMEL parte 2Microcontroladores: Los microcontroladores AVR de ATMEL parte 2
Microcontroladores: Los microcontroladores AVR de ATMEL parte 2SANTIAGO PABLO ALBERTO
 
comunicacion pic
comunicacion piccomunicacion pic
comunicacion picedu7611
 
PWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros InvolucradosPWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros InvolucradosEduardo Henriquez
 

Similar a Curso de microcontroladores capitulo 09 (20)

Protoolo I2C microcontroladores programacion
Protoolo  I2C microcontroladores programacionProtoolo  I2C microcontroladores programacion
Protoolo I2C microcontroladores programacion
 
I2C PIC18F4550
I2C PIC18F4550I2C PIC18F4550
I2C PIC18F4550
 
Módulo EUSART del PIC16F887
Módulo EUSART del PIC16F887Módulo EUSART del PIC16F887
Módulo EUSART del PIC16F887
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Puertos de entrada/salida
Puertos de entrada/salidaPuertos de entrada/salida
Puertos de entrada/salida
 
Puertos de entrada diapositivas
Puertos de entrada diapositivasPuertos de entrada diapositivas
Puertos de entrada diapositivas
 
Txusart
TxusartTxusart
Txusart
 
Comunicación SPI
Comunicación SPIComunicación SPI
Comunicación SPI
 
Módulos ccp pic 16f887
Módulos ccp pic 16f887Módulos ccp pic 16f887
Módulos ccp pic 16f887
 
Modulos ccp v2(ring telefono)
Modulos ccp v2(ring telefono)Modulos ccp v2(ring telefono)
Modulos ccp v2(ring telefono)
 
Contador asíncrono binario
Contador asíncrono binarioContador asíncrono binario
Contador asíncrono binario
 
ciruitos digitales
ciruitos digitalesciruitos digitales
ciruitos digitales
 
Usart 3
Usart 3Usart 3
Usart 3
 
G UÍ A R E G I S T R O S P I C16 F873
G UÍ A  R E G I S T R O S  P I C16 F873G UÍ A  R E G I S T R O S  P I C16 F873
G UÍ A R E G I S T R O S P I C16 F873
 
Pic16 f877
Pic16 f877Pic16 f877
Pic16 f877
 
Microcontroladores: Los microcontroladores AVR de ATMEL parte 2
Microcontroladores: Los microcontroladores AVR de ATMEL parte 2Microcontroladores: Los microcontroladores AVR de ATMEL parte 2
Microcontroladores: Los microcontroladores AVR de ATMEL parte 2
 
comunicacion pic
comunicacion piccomunicacion pic
comunicacion pic
 
PWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros InvolucradosPWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros Involucrados
 
Micro2 tema 5
Micro2 tema 5Micro2 tema 5
Micro2 tema 5
 
Informe practico
Informe practicoInforme practico
Informe practico
 

Más de Hamiltonn Casallas

Compilador CCS y simulador proteus para microcontroladores PIC
Compilador CCS y simulador proteus para microcontroladores PICCompilador CCS y simulador proteus para microcontroladores PIC
Compilador CCS y simulador proteus para microcontroladores PICHamiltonn Casallas
 
Electricidad básica y aplicaciones
Electricidad básica y aplicacionesElectricidad básica y aplicaciones
Electricidad básica y aplicacionesHamiltonn Casallas
 
Armado de un amplificador para automovil.
Armado de un amplificador para automovil.Armado de un amplificador para automovil.
Armado de un amplificador para automovil.Hamiltonn Casallas
 
Amplificador de potencia de audio
Amplificador de potencia de audioAmplificador de potencia de audio
Amplificador de potencia de audioHamiltonn Casallas
 
Diseño de un amplificador de RF.
Diseño de un amplificador de RF.Diseño de un amplificador de RF.
Diseño de un amplificador de RF.Hamiltonn Casallas
 

Más de Hamiltonn Casallas (10)

Sistema Ubuntu
Sistema UbuntuSistema Ubuntu
Sistema Ubuntu
 
Compilador CCS y simulador proteus para microcontroladores PIC
Compilador CCS y simulador proteus para microcontroladores PICCompilador CCS y simulador proteus para microcontroladores PIC
Compilador CCS y simulador proteus para microcontroladores PIC
 
Electricidad básica y aplicaciones
Electricidad básica y aplicacionesElectricidad básica y aplicaciones
Electricidad básica y aplicaciones
 
Reparacion de radios AM/FM
Reparacion de radios AM/FMReparacion de radios AM/FM
Reparacion de radios AM/FM
 
Armado de un amplificador para automovil.
Armado de un amplificador para automovil.Armado de un amplificador para automovil.
Armado de un amplificador para automovil.
 
Amplificadores en puente.
Amplificadores en puente.Amplificadores en puente.
Amplificadores en puente.
 
Amplificador de potencia de audio
Amplificador de potencia de audioAmplificador de potencia de audio
Amplificador de potencia de audio
 
Diseño de un amplificador de RF.
Diseño de un amplificador de RF.Diseño de un amplificador de RF.
Diseño de un amplificador de RF.
 
El transformador eléctrico.
El transformador eléctrico.El transformador eléctrico.
El transformador eléctrico.
 
Fundamentos del diodo.
Fundamentos del diodo.Fundamentos del diodo.
Fundamentos del diodo.
 

Último

Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdfevin1703e
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones025ca20
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IILauraFernandaValdovi
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVSebastianPaez47
 
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfPresentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfMIGUELANGELCONDORIMA4
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUMarcosAlvarezSalinas
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdfEdwinAlexanderSnchez2
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7luisanthonycarrascos
 
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfPresentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfMirthaFernandez12
 
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENSMANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENSLuisLobatoingaruca
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfAntonioGonzalezIzqui
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 

Último (20)

Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdf
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo II
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
 
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfPresentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7
 
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfPresentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
 
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENSMANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENS
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 

Curso de microcontroladores capitulo 09

  • 1. MÓDULO DE COMUNICACIONES SERIE SÍNCRONA: MSSP El módulo de comunicaciones se- rie síncrona (MSSP) es un interface serie, útil para comunicar con otro pe- riférico o dispositivos. Estos perifé- ricos pueden ser memorias EEPROMs serie, registros de desplazamiento, controladores de displays, converti- dores A/D, convertidores D/A, etc. El módulo de MSSP pueda ope- rar en uno de estos dos modos: q Serial Peripheral Interface (SPI) q Inter-Integrated el Circuito (I2C) Para el control de este módulo hay dos registros de configuración se tra- ta del registro SSPCON : Registro de control del Puerto Serie Síncrono (Sync Serial Port Control Register) en la dirección 14h y el SSPCON2: Registro de Control 2 del Puerto Serie Síncrono (Sync Serial Port Control Register2) en la dirección 91h .Ade- más se dispone del registro SSPSTAT: Registro de estado del puerto Serie (Sync Serial Port Status Register) en la dirección 94h, que seguidamente se describen. Modo SPI Este modo permite la transferencia de datos de 8 bits en serie, que pueden ser transmitidos y recibidos de forma síncrona y simultanea. Para el esta- blecimiento de la comunicación se utilizan tres hilos de conexión : q Serial Data Out (SDO): Salida de datos Serie q Serial Data In (SDI); Entrada de da- tos Serie q Serial Clock (SCK), Reloj de Sincronización CURSO DE MICROCONTROLADORES PIC16F87X (...y IX) CURSO DE MICROCONTROLADORES PIC16F87X (...y IX) Fernando Remiro Domínguez Profesor de Sistemas Electrónicos IES. Juan de la Cierva www.terra.es/personal/fremiro MICROCONTROLADORES 64RESISTOR Registro SSPSTAT: Registro de estado del puerto Serie (Dirección 94h) R/W-0 R/W-0 R-0 R-0 R-0 R-0 R-0 R-0 SMP CKE D/#A P S R/#W UA BF Bit 7 Bit 0 bit 7: SMP: Fase de datos de entrada SPI Modo Master SPI 1 = Muestra datos de entrada al final del tiempo de salida 0 = Muestra datos de entrada a la mitad del tiempo de salida Modo esclavo SPI SMP debe ser borrado cuando SPI se emplea en modo esclavo Modo I2 C Master o Esclavo 1= Deshabilita control de variaciones para velocidad estándar (100 KHz y 1MHz) 0= Habilita control (400KHz) bit 6: CKE: Selección del flanco de reloj SPI SI CKP = 0 1= Dato transmitido en flanco ascendente de SCK 0= Dato transmitido en flanco descendente de SCK SI CKP = 1 1= Dato transmitido en flanco descendente de SCK 0= Dato transmitido en flanco ascendente de SCK Modo I2 C Master o Esclavo 1= Niveles de entrada de acuerdo a SMBUS 0= Niveles de entrada conforme a I2 C bit 5: D/#A: Bit Datos/Direcciones (solo en modo I2 C) 1= Indica el último byte recibido o transmitido es un dato 0= Indica que el último byte recibido o transmitido es una dirección bit 4: P: Bit de Stop (Solo en modo I2 C. Ese bit es borrado cuando se deshabilita el módulo SSP, o cuando el último bit Start es detectado, SSPEN es borrado) 1= Indica que se ha detectado un bit de Stop (este bit es "0" en RESET) 0= Bit de Stop no detectado. bit 3: S: Bit de Start (Solo en modo I2 C. Este bit es borrado cuando se deshabilita el módulo SSP, o cuando el bit último bit Start es detectado, SSPEN es borrado) 1= Indica que se ha detectado un bit de Start (este bit es "0" en RESET) 0= Bit de Start no detectado Bit 2: R/#W: Bit de información Lectura/Escritura (solo en modo I2 C) 1= Lectura 0= Escritura Modo I2 C Modo Esclavo 1= Lectura 0= Escritura Modo I2 C Modo Master 1= Transmisión en progreso 0= Transmisión no en progreso 64-73 MICROCONTROLADORES 30/12/03 12:32 Página 64
  • 2. MICROCONTROLADORES 65RESISTOR Adicionalmente puede utilizarse un cuarto pin trabajando en modo de funcionamiento esclavo. q Slave Select (#SS): Selección de Es- clavo MODO DE TRABAJO Al inicializarse el módulo SPI, se necesita configurar varias especi- ficaciones de la configuración. Esto es en los registros SSPSTAT y SSPCON (SSPCON<5:0> y SSPSTAT<7:6>). Pudiéndose seleccionar las distintas modalidades de trabajo: q Modo Master (donde la señal de re- loj SCK será de salida) q Modo Esclavo (donde la señal de reloj SCK será de entrada) q Polaridad del Reloj: (Cambio de es- tado por flanco ascendente o des- cendente de SCK, y su estado de inactivad) q Fase de datos de entrada (es decir, debemos de precisar el momento en el que se toma la muestra del dato de entrada, que puede ser en la mi- tad o al final del impulso). q Selección del flanco del reloj (Transmisión por flanco de bajada o subida de SCK) q Velocidad de SCK (Solo en modo Master) q Selección del modo Es- clavo, si trabajamos de esta forma. En la Figura 1 se mues- tra el diagrama de bloques del módulo SSP, donde pueden apreciarse los cua- tro pines que intervienen en las comunicaciones. Para habilitar el puerto serie, deben configurarse adecuadamente los bits del registro SSPCON <5:0> y los bit SMP y CKE del re- gistro SSPSTAT <7:6>. Cuando se inicializa el mo- do SPI es necesario espe- cificar en el registro SSP- CON la diferentes opcio- nes de trabajo: q Modo Mater, donde la señal SCK será salida q Modo Slave, donde la lí- nea SCK será entrada q Polaridad de la señal de reloj, flanco ascendente o descendente. q Velocidad del SCK, evi- dentemente solo en el modo master. q Definir el momento en el que se va a tomar la muestra del dato de en- trada, que puede ser en la mitad o al final del impulso. En el modo de recepción los da- tos recibidos se introducen en serie en el registro de desplazamiento SSPSR que, una vez haya recibido el octavo bit, pasarán al registro SSBUF en pa- ralelo, poniéndose en ese momento los bits BF (SSPSTAT <0>) y SSPIF (PIR1 <3>) a uno, indicando el pri- mero de ellos que el buffer está lleno y el segundo para indicar que la re- cepción/transmisión ha finalizado. Si bit 1 UA: Activación de dirección (sólo en modo I2 C 10-bits) 1= Indica que es necesario actualizar la dirección en el registro SSPADD 0= No es necesario actualizar la dirección bit 0 BF: Bit estado de Buffer lleno Receptor (Modo SPI e I2 C) 1= Recepción completa, SSPBUF está lleno 0= Recepción no completa, SSPBUF está vacío Transmisor (Modo I2 C) 1= Transmisión en progreso, SSPBUF está lleno (no incluye ACK y bit de Stop) 0= Transmisión completa, SSPBUF está vacío (no incluye ACK y bit de Stop) Figura 1.- Diagrama de bloques del módulo SSP. 64-73 MICROCONTROLADORES 30/12/03 12:32 Página 65
  • 3. durante la recepción/transmisión se intenta escribir en el registro SSPBUF, la escritura será ignorada y el bit WCOL (SSPCON<7>) se pone a uno para indicar que ha habido "colisión". El bit BF se pone a cero, cuando se procede a leer el registro SSPBUF, lo cual debe realizarse antes de que ten- ga lugar una nueva recepción. El registro SSPSR no se puede leer o escribir directamente, y solo se puede acceder a él a través del registro SSPBUF. Por lo tanto, por el registro SSPBUF deben pasar forzosamente todos los datos tanto en transmisión como en recepción. En el ejemplo de la tabla 1, se muestra el proceso de carga en modo transmisión CONEXIÓN TÍPICA En la Figura 2 se muestra la conexión entre dos procesadores, donde sólo uno puede actuar como master cada vez . El circuito que trabaja como master (Procesador 1) indica la transferencia de datos con la señal de reloj. Cada bit es desplazado en el registro por cada flanco programado de reloj; en el flanco opuesto es enclavado en el latch. Los dos procesadores deberán programarse con idéntica polaridad de reloj. Los circuitos a conectar por medio de este protocolo pueden ser dos o más periféricos o microcontroladores pero, como se ha comentado, solo uno puede trabajar cada vez como master. MODO MASTER Cuando el microcontrolador se configura como Master, los datos son transmitidos/recibidos cada vez que se escribe en el registro SSPBU. Si el módulo actúa como esclavo, la patilla CLK deberá configurarse como en- trada para que la señal, presente en la patilla SDI, se vaya desplazando en el registro SSPSR por cada pulso de re- loj recibido. El rango programable pa- ra el reloj con los bits SSPM3:SSPM0 es de FOSC/4, FOSC/16, FOSC/64 y Timer2 (Salida/2). Figura 2.- Conexión SPI Master/Slave sólo uno de los procesadores puede actuar cada vez como master. Registro SSPCON: Registro de control del puerto Serie (Dirección 14h) R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 bit 7 bit 0 Bit 7: WCOL: Bit detector de colisión 1= El registro SSPBUF se ha escrito cuando hay una transmisión en proceso (Se debe borrar por software) 0= No hay colisión bit 6: SSPOV: Bit detector de desbordamiento en recepción En modo SPI 1= Se recibe un nuevo byte cuando el registro SSPBUF aún mantie- ne los datos anteriores. En caso de rebose, los datos del registro SSPSR serán falsos, sólo puede ocurrir en modo esclavo. Se deberá leer el SSPBUF, aún si sólo se envían datos, para anular el rebose. En modo master el bit no se pone a uno ya que en cada nueva recep- ción/transmisión es inicializado por la escritura del registro SSPBUF. 0= No hay desbordamiento. En modo I2 C 1= Se recibe un nuevo byte cuando el registro SSPBUF aún mantie- ne los datos anteriores. En modo de transmisión no tiene importan- cia, en cualquier caso debe borrarse por software. 0= No hay desbordamiento bit 5: SSPEN: Bit de habilitación del módulo SSP (Synchronous Serial Port) En modo SPI 1= Habilita puerto serie y configura SCK, SDO y SDI como patillas del puerto serie. 0= Deshabilita el puerto serie y configura estas patillas como puerto de Entrada/Salida.. En modo I2 C 1= Habilita el puerto serie y configura SDA y SCL como patillas del puerto serie 0= Deshabilita el puerto serie y configura estas patillas como puerto de Entrada/Salida. En ambos casos, se deberán configurar como entradas o salidas adecuadamente. bit 4: CKP: Bit de selección de polaridad del reloj En modo SPI 1= Reloj en nivel alto. Transmisión en flancos de bajada, en recepción de subida 0= Reloj en nivel bajo. Transmisión en flancos de subida, en recepción por flancos de bajada. En modo I2 C Esclavo (En este modo no se usa como master) Control de desbloqueo de SCK 1= Habilita reloj 0= Mantiene reloj en estado bajo. 64-73 MICROCONTROLADORES 30/12/03 12:32 Página 66
  • 4. Esto permite a una frecuencia de reloj máxima (a 20 MHz) de bits de 5MHz. La Figura 3 muestra el crono- grama en modo Master. Cuando CKE =1, el dato de SDO es valido si es an- terior a un flanco de reloj en SDO. El cambio en la entrada en el ejemplo es en el flanco de reloj de SCK. El cam- bio en el ejemplo de entrada se de- pende del estado del bit SMP. El tiem- po de la señal corresponde al de carga de los bit recibidos en el registros SSPBUF. En una operación de SLEEP, cuando está configurado como mas- ter, todos los módulos de reloj son de- tenidos por lo que la transición re- cepción permanecerá congelada has- ta que el microcontrolador despierte. Momento en el que el módulo reanu- dará la transmisión o la recepción. En el modo esclavo, los desplazamientos sobre el registro son asíncronos, lo que permite seguir transmitiendo o recibiendo datos estando el procesador en estado Sleep. El microcontrolador despertará del SLEEP cuando los ocho bits se hayan recibido y, como es obvio, si la interrupción corres- pondiente está habilitada. Un Reset, deshabilita el módulo MSSP, por lo que si se produce du- rante una transferencia ésta se dará por finalizada. MODO SLAVE Como ya se ha comentado, en es- te modo de trabajo los datos son trans- mitidos o recibidos con el control de la señal externa de reloj. Cuando el últi- mo bit ha sido enclavado, el flag de interrupción SSPIF (PIR<3>) se pon- drá a uno. En este caso, como la fuen- te de reloj es externa, la patilla SCK deberá programarse como entrada. El pin #SS permite sincronizar el modo esclavo. Cuando este modo es habilitado (SSPCON<3:0> = 0110) MICROCONTROLADORES 67RESISTOR Bit 3-0:SSPM3:SSPM0: Bit de selección del modo del SSP (Syncrhonous Serial Port) 0000 Modo Master del SPI, reloj = FOSC/4 0110 Modo Esclavo I2 C, dirección de 7 bits 0001 Modo Master del SPI, reloj =FOSC/16 0111 Modo Esclavo I2 C, dirección de 10 bits 0010 Modo Master del SPI, reloj =FOSC/32 1000 Modo Master I2 C, reloj = F=OSC/(4x(SSPADD+1)) 0011 Modo Master del SPI, reloj =TMR2 salida/2 1011 Modelo Esclavo I2 C con soporte 0100 Modo Master del SPI, reloj = patilla SCK. 1110 Modo Esclavo I2C, dirección de 7 bits Habilita patilla de control #SS de interrupción Start y Stop habilitados 0101 Modo Esclavo del SPI, reloj = patilla SCK. 1111 Modo Esclavo I2 C, dirección de 10 bits con bits Deshabilitada patilla #SS, se puede emplear de interrupción Start y Stop habilitados como I/O 1001, 1010, 1100 y 1101 Están reservados R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 GCEN ASKSTART ACKDT ACKEN RCEN PEN RSEN SEN Bit 7 Bit 0 bit 7: GCEN: Bit de habilitación general (sólo en modo esclavo I2 C) 1= Habilita Interrupción cuando una llamada general es recibida en el SSPST (0000h) 0= Deshabilita dirección de llamada general bit 6: ACKSTART: Bit de estado de reconocimiento (solo en modo master I2 C) Modo de Transmisión 1= Reconocimiento del esclavo no recibido 0= Reconocimiento del esclavo recibido bit 5: ACKDT: Bit de reconocimiento (solo en modo master I2 C) Modo de Recepción Valor transmitido cuando el usuario indica una secuencia de recono- cimiento y final de una recepción. 1= No reconocimiento 0= Reconocimiento bit 4: ACKEN: Bit de habilitación de secuencia de reconocimiento (sólo en modo master I2 C) Modo de Recepción 1= Indica una secuencia de reconocimiento en patillas SDA y SCL y transmite bit ACKDT. Automáticamente borrado por hardware. 0= Secuencia de reconocimiento en reposo bit 3: RCEN: Bit de habilitación de recepción (sólo en modo master I2 C) 1= Habilita recepción en modo I2 C 0= Recepción en reposo bit 2: PEN: Bit de habilitación de condición de Stop( sólo en modo master I2 C) Control SCK desbloqueado 1= Indica una condición de Stop en SDA y SCL. Automáticamente borrado por hardware. 0= Condición de Stop en reposo bit 1: RSEN: Bit de habilitación repetir condición Start (sólo en modo master I2 C) 1= Indica repetición de condición de Start en SDA y SCL. Automá- ticamente borrado por hardware. 0= Condición de repetición de Start en reposo. bit 0: SEN: Bit de habilitación de condición Start (sólo en modo master I2 C) 1= Indica condición de Start en SDA y SCL. Automáticamente borrado por hardware 0= Condición de Start en reposo. SSPCON2: Registro de control 2 del puerto Serie (dirección 91) 64-73 MICROCONTROLADORES 30/12/03 12:32 Página 67
  • 5. el pin #SSP se comporta como una entrada, por lo que habrá que programarla como tal (TRI- SA<5> =1). Forzando esta pati- lla a nivel alto, el módulo SPI se Resetea y el bit SSPEN se borra. Es posible realizar transmi- siones y recepciones con sólo dos hilos de conexión; en este caso las patillas SDI y SDO pueden unirse eliminando así la tercera cone- xión. Cuando la pastilla SDI necesita operar como receptora, la patilla SDO deberá ser configurada como una nue- va entrada, de este modo, se deshabi- lita la transmisión por esta última y no crea conflictos con los datos de la SDI. bsf STATUS, RP0 ;Selecciona el banco 1 LOOP btfss SSPSTAT, BF ;¿Buffer lleno? (¿BF=1?) goto LOOP ;No, entonces esperar bcf STATUS, RP0 ;Selecciona el banco 0 movf SSPBUF, W ; SSPBUF W movwf RXDATA ;Guardar el dato en una memoria temporal RAM movf TXDATA, W ; TXDATA W movwf SSPBUF ;Nuevo dato a transmitir Figura 3.- Cronograma del modo SPI (Modo Master). La señal de reloj actúa como motor del proceso. Figura 5.- Cronograma del SPI en modo Esclavo (CKE=0) Figura 6.- Cronograma del SPI en Modo Esclavo (CKE=1)El bit CKE del registro SSPSTAX determina el flanco del reloj que transmite el bit; hay que tener en cuenta que actuará de forma inversa con el bit CKP del registro SSPCON. Figura 4.- Cronograma de sincronización del slave Tabla 1, ejemplo de proceso de carga en modo transmisión. 64-73 MICROCONTROLADORES 30/12/03 12:32 Página 68
  • 6. EJEMPLO DE MANEJO DE UN PERIFÉRICO SPI El montaje de la Figura 8, está basado en una nota de aplicación que nos ha mandado Marcos Fernández. Se trata de un convertidor A/D con protocolo SPI de 16 bits con dos canales de entrada de la marca Analog Device con un circuito de referencia de tensión de referencia de 2,50V de la misma marca, conectados al puerto de comunicaciones serie síncronas de un PIC16F876.El programa propuesto para comprobar el funcionamiento de puerto SPI del PIC16F876 es el siguiente. Los pines del AD7705 son los que se muestran en la Figura 7 y la Dirección Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Valor en POR,BOR Valor en el resto de Reset 0Bh,8Bh 10Bh,18Bh INTCON GIE PEIE(1) TOIE INTE RBIE TOIF INTF RBIF 0000 000x 0000 000u 0Ch PIR1 PSPIF1 ADIF(1) RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 8Ch PIE1 PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 87h TRISC PORTC (Direcciónamiento de los Datos) 1111 1111 1111 1111 13h SSPBUF Registro Buffer Transmisión/Recepción del módulo SSP xxxx xxxx uuuu uuuu 14h SSPCON WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPPM0 0000 0000 0000 0000 85h TRISA --- --- Registro de direccionamiento de datos de PORTA --11 1111 --11 1111 94h SSPSTAT SMP SKE D/#A P S R/W UA BF --00 0000 --00 0000 Leyenda x = desconocido, u = inalterado; - = no implementado se lee como ‘0’. Las celdas sombreadas no son usadas para la conversión A/D Nota 1: Estos registros/bits no están disponibles para los dispositivos de 28 pines Registros Asociados con una operación SPI Figura 7.- Patillas de los convertidores AD7006 y AD7706 Pin Nemónico Función 1 SCLK Serial Clock. Entrada Trigger Schmit. Un reloj externo se aplica a esta entrada para acceder los datos serie del AD7705/AD7706. Este reloj serie puede ser un reloj continuo con todos los datos transmitidos en un tren continuo de pulsos. Alternativamente, puede ser un reloj no continuo con la información transmitiéndose al AD7705/AD7706 en lotes de datos más pequeño. 2 MCLK IN Señal de reloj Master del dispositivo. Se puede conseguir utilizando un crystal/resonator o un reloj externo. El crystal/resonator puede conectarse a los pines MCLK IN y MCLK OUT. Alternativamente, en el pin MCLK puede controlarse con un reloj CMOS-compatible y MCLK OUT no conectado. Se puede trabajar con frecuencias de reloj con un rango entre 500 kHz a 5 MHz. 3 MCLK OUT Cuando el reloj del dispositivo en modo master es un crystal/resonator, el crystal/resonator se conecta entre MCLK IN y MCLK OUT. Si un reloj externo se aplica a MCLK IN, MCLK OUT proporciona una señal de reloj invertido. Este reloj puede usarse para proporcionar una fuente del reloj para que la circuitería externa y es capaz de atacar a dispositivos CMOS. Si el usuario no lo requiere, este MCLK OUT puede eliminarse. Esto asegura que no se absorba potencia innecesaria en lar cargas capacitivas que controlan la MCLK OUT. 4 CS Chip Select. Entrada activa a nivel bajo selecciona el AD7705/AD7706. Con esta entrada hard-wired a nivel bajo, el AD7705/AD7706 puede trabajar en tres hilos SCLK, DIN y DOUT unidos al bus del dispositivo. CS puede activar el dispositivo en sistemas con mas dispositivos conectado al bus serie o como una señal de sin- cronismo en la comunicación con el AD7705/AD7706. 64-73 MICROCONTROLADORES 30/12/03 12:32 Página 69
  • 7. 6 AIN2(+)[AIN1] AD7705: entrada positiva o entrada analógica diferencial del Canal 2.AD7706: La Entrada analógica Canal 1. 7 AIN1(+)[AIN2] AD7705: entrada positiva o entrada analógica diferencial del Canal 1.AD7706: La Entrada analógica Canal 2 8 AIN1(–)[COMMON] AD7705: Entrada negativa o Entrada de Analógica diferencial del Canal . AD7706: La entrada COMÚN. Entradas analógicas de referencia para los canales 1, 2 y 3. 9 REF IN(+) Entrada de Referencia. Entrada positiva de Referencia diferencia del AD7705/AD7706. La entrada de la referencia es diferencial y puede tomar cualquier valor teniendo la prevención de que REF IN(+) debe ser mayor que REF IN (–). REF IN(+) puede ser cualquier valor entre VDD y GND. 10 REF IN(–) Entrada de referencia. Entrada negativa de referencia diferencial del AD7705/AD7706. La entrada de la referencia es diferencial y puede tomar cualquier valor teniendo la prevención de que REF IN(+) debe ser mayor que REF IN (–). REF IN(+) puede ser cualquier valor entre VDD y GND. 11 AIN2(–)[AIN3] AD7705: Entrada diferencial negativa de la entrada analógica del Canal 2. AD7706: Entrada analógica del Canal 3. 12 DRDY Salida lógica. Un nivel lógico bajo en esta salida indica que una nueva palabra de salida está disponible en el registro de datos del AD7705/AD7706 . El pin DRDY volverá a tomar el nivel alto cuando se realice una función de lectura de la palabra de salida completa. Si los datos no se leen la línea DRDY volverá a tomar un nivel alto cuando pasen 500 x tCLK IN ciclos, para actualizar la salida. Mientras DRDY está a nivel alto, deberá intentarse realizar una función de lectura. La línea DRDY volverá indicar de nuevo cuando la actualización ha tenido lugar. DRDY también es acostumbrado a indicar cuando el AD7705/AD7706 ha completado secuencia de calibración del chip. 13 DOUT Salida de datos serie con los datos en serie se lee la sañoda del registro de desplazamiento que contiene la información del registro de indicio, registro de comunicaciones, registro de reloj o registro de datos, depen- de en cada momento del registro de selección de comunicaciones 14 DIN Entrada de datos serie que se escriben en serie por la entrada de desplazamiento de entrada. Los datos de este registro de desplazamiento de entrada se transfiere al registro de configuración, al registro del reloj o al regis- tro de comunicaciones, dependiendo, en el momento del registro de de selección o del Registro de Comunicaciones. 15 VDD Tensión de alimentación comprendida entre +2.7 V a +5.25 V. 16 GND Masa , punto de tendión de referencia para el AD7705/AD7706 en el interior del circuito. Figura 8.- Montaje Experimental del PIC16F876 con un convertidor A/D SPI 64-73 MICROCONTROLADORES 30/12/03 12:32 Página 70
  • 8. ;*********************************************************************************** ;Para trabajar con el A/D utilizo básicamente dos rutinas: ;1-CONFAD, donde se realiza la configuración del A/D ;2-MEDIR, donde se realiza una nueva medida ;El tratamiento que realizo es por poling de la pata DRDY(RC6).Se Utiliza una referencia ;de tensión que se obtiene del ANALOG DEVICES (REF192 de 2.5V). El cristal del A/D es de 2.4576 ;El pin de RESET del A/D se conecta a nivel alto porque no utiliza (se activa a nivel bajo). ;Nada mas comenzar el inicio se realiza una temporización de 6msg y a continuación se activa el ;SPI, se realiza toda la configuración; a continuación se configura el A/D y se pone la pata SCK ;a nivel alto. A partir de este momento se puede hacer cualquier cosa y en el momento que se ;desee realizar una medición se llama a la función ACTSPI que activa al SPI y a MEDIR, guardando ;el resultado en DATOL y DATOH. Al final de esta rutina se vuelve a poner SCK a alto. ;La visualización de la conversión se realiza sobre los diodos LED, primero la parte alta y pasado ;un tiempo la parte baja. ;*********************************************************************************** LIST P=16F876 ;Se indica el modo de procesador INCLUDE <P16f876.inc> ;se incluye la definicion de los AUX EQU 0x20 CONT equ 0x21 DATOH equ 0x22 DATOL equ 0x23 AUX1 equ 0x24 AUX2 equ 0x25 INICIO bsf STATUS,RP0 movlw b'11000111' movwf OPTION_REG clrf TRISB bcf STATUS,RP0 call TEMP_6MS ;Temporización de 6msg movlw b'00110000' ;modo master spi, reloj = fosc/4 movwf SSPCON ;sspen (bit 5) para la activacion del modulo spi bsf STATUS,RP0 ;banco 1 ;realizo el resto de la configuración que se necesite para el micro movlw b'01010000' ;i/o de sck, sdi y sdo movwf TRISC clrf SSPSTAT bcf STATUS,RP0 ;banco 0 ;Inicialización de variables que se deseen bcf SSPCON,SSPEN bsf PORTC,3 ;PONGO A ALTO SCK ;-----------------------------EJEMPLO DE PRUEBA A_OTRA call ACTSPIAD call MEDIR call VISUALIZA ;Se podría mandar visualizar sobre un LCD movlw .50 movwf CONT YA2 bcf INTCON,T0IF movlw .0 movwf TMR0 MICROCONTROLADORES 71RESISTOR El programa propuesto para comprobar el funcionamiento de puerto SPI del PIC16F976 es el siguiente. 64-73 MICROCONTROLADORES 30/12/03 12:32 Página 71
  • 9. MICROCONTROLADORES 72RESISTOR YA3 btfss INTCON,T0IF goto YA3 decfsz CONT,F goto YA2 goto A_OTRA ;------------------------ CONFAD movlw 0x20 ;dato a enviar- al C. R. dando el canal y el registro a movwf SSPBUF ;escribir (sera el clock register) call WAITBF btfsc SSPCON,SSPOV goto PREINI movlw 0x0C ;dato a enviar- al clock r. dando datos para que funcione con movwf SSPBUF ;cristal. la lectura tiene que ser cada 2 ms. call WAITBF btfsc SSPCON,SSPOV goto PREINI movlw 0x10 ;dato a enviar C.R. dando el canal y el registro a movwf SSPBUF ;escribir (será el setup register) call WAITBF btfsc SSPCON,SSPOV goto PREINI movlw 0x40 ;dato a enviar al Setup R. autocalibración y ganancia 1 movwf SSPBUF call WAITBF btfsc SSPCON,SSPOV goto PREINI return ;-------------------------- MEDIR movf PORTC,W ;Se realizó así en vez de directamente al puerto porque a movwf AUX ;veces daba error btfsc AUX,6 ;drdy# esta conectado al pin 6 del puerto C goto MEDIR movlw 0x38 ;dato a enviar al C. R. diciéndole que ahora voy a leer movwf SSPBUF ;del data reg call WAITBF btfsc SSPCON,SSPOV goto PREINI ;leo el bufer 2 veces para almacenar en las variables DATOH movlw 0x00 ;y DATOL el resultado de la conversión movwf SSPBUF call WAITBF btfsc SSPCON,SSPOV goto PREINI movwf DATOH movlw 0x00 movwf SSPBUF call WAITBF btfsc SSPCON,SSPOV goto PREINI movwf DATOL bcf SSPCON,SSPEN bsf PORTC,3 ;PONGO A ALTO SCK return 64-73 MICROCONTROLADORES 30/12/03 12:32 Página 72
  • 10. 73RESISTOR PICTRONIC Herramientas para el aprendizaje y desarrollo de los µC PIC q "Curso Básico de microcontroladores PIC" q "PICTRON-0/EXT", aprendizaje y pequeños proyectos sin soldadura q Circuitos programadores, puerto serie y paralelo q Módulo ICD "in circuit debugger" 16F8XX compatible con MPLAB-ICD q PROTOBOARDS para proyectos medios con PIC de todos los formatos q Placas de desarrollo IN/OUT q Módulos auxiliares para proyectos profesionales Visítanos en: http://www.pictronic.com e-mail: info@pictronic.com ;---------------------------- ACTSPIAD movlw b'00110000' ;modo master spi, reloj = fosc/4 movwf SSPCON return ;--------------------------- WAITBFbsf STATUS,RP0 WAITB btfss SSPSTAT,BF goto WAITB bcf STATUS,RP0 movf SSPBUF,W return ;------------------------------ VISUALIZA movf DATOH,W movwf PORTB call TEMPO movf DATOL,W movwf PORTB call TEMPO return ;------------------------------ TEMPO clrf AUX1 clrf AUX2 BUCLE decfsz AUX1,f goto BUCLE decfsz AUX2,f goto BUCLE return ;------------------------------ TEMP_6MS movlw D'2' movwf AUX1 movlw D'53' movwf AUX2 BUCLE1 decfsz AUX2,1 goto BUCLE1 decfsz AUX1,1 goto BUCLE1 return ;------------------------------ PREINI bcf SSPCON,SSPOV goto INICIO ;------------------------------ END 64-73 MICROCONTROLADORES 30/12/03 12:32 Página 73