Sei sulla pagina 1di 62

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 1

CeTAD Facultad de Ingeniera - UNLP




Descripcin General de un
Microcontrolador
(Mdulos de Comunicacin)

(Basado en Freescale HC08 y HCS08)


Ctedra de Circuitos digitales y Microprocesadores







Autores:
Ing. Jorge R. Osio
Ing. Luis Antonini
Ing. Walter Arztegui
Ing. Jos A. Rapallini


Septiembre de 2011 Versin 1.0

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 2

INDICE.
1. Introduccin
1.1. Mdulos de Comunicacin disponibles en Microcontroladores
1.2. Mdulos Especficos de la Familia HCS08
1.2.1. SCI Serial Communications Interface
1.2.2. SPI Serial Periferal Interfaz
1.2.3. IIC Inter-Integrated Circuits
1.2.4. USB Universal Serial Bus

2. Interfaz de Comunicacin Serie (SCI)

2.1. Descripcin del Protocolo
2.1.1. Formato de Transmisin
2.1.2. Deteccin de error de Trama

2.2. Caractersticas del Mdulo SCI
2.3. Descripcin de la comunicacin serie mediante el Mdulo SCI
2.4. Diagrama en Bloques del Transmisor y Receptor
2.5. Registros de Configuracin del SCI
2.5.1. Registros SCI de Baud Rate
2.5.2. Registro de Control 1 (SCIxC1)
2.5.3. Registro de Control 2 (SCIxC2)
2.5.4. Registro de estados 1 (SCIxS1)
2.5.5. Registro de estados 2 (SCIxS2)
2.5.6. Registro de Control 3 (SCIxC3)
2.5.7. Registro de Datos (SCIxD)

3. Interfaz de Comunicacin Serie (SPI)

3.1. Descripcin del Protocolo SPI
3.1.1. Breve repaso de las comunicaciones seriales sincrnicas

3.2. Caractersticas Principales del Mdulo SPI
3.3. Descripcin funcional del mdulo SPI
3.3.1. Modo Master
3.3.2. Modo Slave

3.4. Diagrama en bloques
3.5. Registros de configuracin

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 3

3.5.1. Registro de control 1 (SPIxC1)
3.5.2. Registro de control 2 (SPIxC2)
3.5.3. Registro de Baud rate (SPIxBR)
3.5.4. Registro de Estados (SPIxS)
3.5.5. SPI Data Registers (SPIxDH:SPIxDL)
3.5.6. SPI Match Registers (SPIxMH:SPIxML)

4. Interfaz I
2
C (Inter Integrated circuit)

4.1 Descripcin del protocolo I
2
C
4.2. Descripcin del mdulo I
2
C en el HC9S08
4.3. Diagrama de Bloques del Mdulo I
2
C
4.4. Registros asociados al mdulo I
2
C
4.4.1. Registro de direccin (IICA)
4.4.2. Registro divisor de frecuencia del reloj (IICF)
4.4.3. Registro de control 1 (IICC1).
4.4.4. Registro de estado (IICS).
4.4.5. Registro de datos (IICD)
4.4.6. Registro de control 2 (IICC2)

4.5. Otras funciones importantes del mdulo IIC

5. Universal Serial Bus (USB)

5.1. Prestaciones del protocolo
5.2. Principales caractersticas
5.2.1. Implementacin Fsica
5.2.1.1. Aspecto elctrico
5.2.2. Velocidad de Transferencia
5.2.3. USB On-The-Go
5.2.4. Componentes del Bus

5.3. Elementos de una transferencia USB.
5.3.1. Endpoints
5.3.2. Pipes.
5.3.3. Tipos de transferencias
5.3.4. Trasferencias y transacciones.
5.3.5. Caractersticas de un Bloque en una transferencia
5.3.6. Fases de una transaccin.
5.3.7. Chequeo de error.

5.4. Enumeracin de dispositivos.
5.4.1. Proceso de enumeracin.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 4

5.4.2. Descriptores

5.5. Registros asociados al mdulo USB

5.5.1. Registro del ID del perifrico (PER_ID)
5.5.2. Registro de ID complementario (ID_COMP)
5.5.3. Registro de la revisin del perifrico(REV)
5.5.4. Registro de informacin adicional del perifrico (ADD_INFO)
5.5.5. Registro del estado de la interrupcin en modo OTG
(OTG_INT_STAT)
5.5.6. Registro del control de la interrupcin en modo OTG
(OTG_INT_EN)
5.5.7. Registro de estado de interrupcin (OTG_STAT)
5.5.8. Registro de control OTG (OTG_CTRL)
5.5.9. Registro de estado de interrupcin (INT_STAT)
5.5.10. Registro de habilitacin de interrupciones (INT_ENB)
5.5.11. Registro de estado de interrupcin por error (ERR_STAT)
5.5.12. Registro de habilitacin de interrupcin por error (ERR_ENB)


Apndice

1. Mdulo Serial en la Familia HC908

1.1. Caractersticas
1.2. Descripcin de la comunicacin serie [2]
1.3. Registros I/O del SCI
1.3.1. Registo SCI de Baud Rate
1.3.2. Registro de Interrupciones y de configuracin del Tx
1.3.3. SCI Status Register 1 (SCS1)
1.3.4. SCI Data Register (SCDR)
1.3.5. SCI Status Register 2 (SCS2)












Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 5

1. Introduccin

Entre los mdulos disponibles en las distintas familias de Microcontroladores se encuentra los
mdulos que permiten implementar mediante la configuracin de registros los protocolos de
comunicacin ms comunes en el diseo Digital.

1.1. Mdulos de Comunicacin disponibles en Microcontroladores

En la Actualidad la mayora de los Microcontroladores contienen mdulos para la
implementacin de interfaces de comunicacin tales como, SPI, SCI, I2C y USB. Adicionalmente,
algunas familias ms potentes proveen interfaces Ethernet y CAN para el diseo de sistemas Ms
avanzados. Todos estos dispositivos vienen provistos de Libreras especficas de Diseo que
felicitan la implementacin del mdulo.

1.2. Mdulos Especficos de la Familia HCS08

Ente los mdulos de comunicacin ms comunes en la Familia de Microcontroladores HCS08
enumeran, el SCI serial asincrnico, el SPI sera sincrnico, el I
2
C o IIC Inter-
Integrated Circuit y el USB (Universal Serial Bus). En este captulo se tratarn estos mdulos que
proveen una variedad de funcionalidades al microcontrolador, permitiendo su interaccin con una
gran variedad de dispositivos.

1.2.1. SCI Serial Communications Interface

La interfaz de comunicacin serie es una interfaz asincrnica que permite envas datos entre
dispositivos en forma serie sobre una nica lnea de transmisin y una nica lnea de recepcin. Su
caracterstica principal es que la lnea se encuentra normalmente en alto y cuando se desea enviar
informacin se debe enviar un bit de inicio un cero lgico y seguido de este los bits de datos.

1.2.2. SPI Serial Periferal Interface

Esta interfaz permite enviar datos en forma serie, pero a diferencia de la anterior, requiere de
sincronismo para el envo de datos. Por lo que se utiliza una lnea de clock para indicar cundo se
enviar un dato, obviamente sincronizado con el clock.
Este protocolo permite comunicar un dispositivo Master con varios Slaves. Lo que quiere decir
es que el Master puede decidir con que dispositivo intercambiar datos, poniendo en cero la lnea de
seleccin (CS chip select) correspondiente al esclavo seleccionado.

1.2.3. IIC Inter-Integrated Circuits

Esta interfaz es mucho ms simple en cuanto a las lneas necesarias para su implementacin,
pero mucho ms compleja en cuanto a la configuracin necesaria para el envo de datos. Se utilizan
solo 2 lneas para la implementacin, una lnea de clock para el sincronismo y una lnea de datos.
Este protocolo permite mltiples Masters y mltiples Slaves. Cada Slave tiene asignada una
direccin especfica, mediante la cual el Master dirigir la informacin. Los paquetes a transmitir
siempre estarn formados por un byte de control en donde se indica la direccin del dispositivo
hacia el cual se le enviar el dato, seguido del byte de datos.


Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 6

1.2.4. USB Universal Serial Bus

Esta interfaz es mucho ms compleja que las anteriores. Es la interfaz por excelencia de las
computadoras actuales y de todos los dispositivos de ltima generacin. Este protocolo es muy
eficiente para el envo de datos y requiere de un dispositivo Host que maneja la comunicacin y de
uno o varios dispositivos Slaves que se conectan al host para iniciar una transferencia de datos. Este
protocolo permite la conexin de varios Slaves hacia el host mediante la utilizacin de un Hub
USB.
Una de las grandes ventajas de este protocolo es que cada dispositivo conectado se enumera
automticamente indicando al Host sus caractersticas principales y permitiendo que este instale los
drives para permitir el correcto funcionamiento del dispositivo USB conectado.
Este protocolo tiene varios modos de transferencia, dependiendo del tipo de dispositivo que se
est conectando y de su funcionamiento.
Tambin se debe destacar que el protocolo soporta varias velocidades de comunicacin y que las
velocidades ms altas requieren un diseo de HW especfico.
Para la comunicacin requiere solo dos lneas de datos diferenciales, pero los paquetes de
comunicacin son mucho ms complejos que cualquiera de los protocolos anteriores.


































Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 7

2. Interfaz de Comunicacin Serie (SCI)

Este mdulo no se encuentra en el HC908QY4, pero se encuentra en la mayora de los MCUs de
la Familia HC908 ([3], [4]), cuya descripcin se realiza en el Apndice 1. En este Captulo se
describe el protocolo serie asincrnico y la descripcin de Mdulo SCI que lo implementa en toda
la familia HCS08.

2.1. Descripcin del Protocolo.

El protocolo serial asincrnico SCI utiliza 2 lneas, una para transmisin Tx y una para recepcin
RX. Las velocidades de transmisin ms comunes son: 1200, 2400, 4800, 9600, 19200, 38400,
57600 y 115200 baudios.


Figura 1. Modos de transmisin

2.1.1. Formato de Transmisin

El protocolo SCI usa el formato estndar de transmisin non-return-to-zero (NRZ), que consiste
en un bit de inicio seguido de 8 bits de datos y un bit de parada. Esto es comnmente referenciado
como Formato 8-N-1 (8 bits de datos, sin bit de paridad, un bit de parada). El dato es transmitido y
recibido comenzando por el bit menos significativo (LSB). Cada bit tiene una duracin Tp que
define el Baud Rate (tasa de baudio).


Figura 2. Formato de transmisin

t
p
= periodo de un bit = 1/ tasa de baudio

La comunicacin serie trabaja con la lnea en alto (idle line) cuando no hay transferencia de
datos, y el bit de inicio es un cero lgico. Cada bit de dato puede ser ya sea un uno o un cero lgico.
El bit de parada es un uno lgico. El bit de inicio, el bit de parada y cada bit de dato constituyen una
trama de datos, como se muestra en la Figura 2.
En la Figura 1 se muestran los distintos modos de transmisin. En la operacin Half-duplex, solo
un nodo transmite a la vez. El dispositivo no puede recibir mientras est transmitiendo, y no puede

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 8

transmitir mientras est recibiendo. La implementacin del protocolo por software debe realizarse
en modo Half-duplex, por causa de la secuencialidad del software. Esta incapacidad es una
desventaja en comparacin con el Hardware SCI, que puede transmitir y recibir al mismo tiempo
por ser concurrente. Esto se conoce como sistema full duplex.

2.1.2. Deteccin de error de Trama

El bit de parada est definido como un uno lgico, si el bit de parada recibido es un cero, quiere
decir que ocurri un error de Trama.

2.2. Caractersticas del Mdulo SCI

Full duplex, Alta Velocidad, asincrnico, programable de 8 o 9 bit de largo de caracter.
Dos mtodos de receiver wakeup.
Pedidos de Interrupcin separados para Rx y Tx.
Habilitacin separada del Transmisor y el Receptor.
Polaridad programable de la salida del Transmisor.
Operacin dirigida por interrupciones con ocho Flags de interrupcin.
Transmitter Empty
Transmission Complete
Receiver Full
Idle Receiver Input
Receiver Overrun
Noise Error
Framing Error
Parity Error
Modo de operacin Low power
Deteccin de Error de frame en el receptor
Baud rate programable
Chequeo de Paridad por Hardware


2.3. Descripcin de la comunicacin serie mediante el Mdulo SCI

Utiliza el sistema doble buffer, como muestra la figura 3. El flag SCTE se setea cada vez que un
nuevo dato es transferido desde el buffer TDR al shift register de transmisin serie. El flag SCRF
se setea cada vez que un nuevo dato es transferido desde el shift register al buffer RDR. El
registro SCDR es un solo registro que al escribirlo, se escribe el buffer TDRx y al leerlo, se lee el
buffer RDRx.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 9


Figura 3. Sistema de comunicacin SCI doble buffer.

Se pueden seleccionar 2 formatos de datos diferentes a transmitir, uno de ellos es de 8 bits
(Figura 4), donde hay un bit de inicio, un bit de stop y 8 bit de datos. El otro Formato es de 9 bits
(Figura 5), con 1 bit de inicio, un bit de stop, un bit de paridad extra u otro stop y 8 bit de datos.


Figura 4. Formato de datos de 8 bits.


Figura 5. Formato de datos de 9 bits.

Caracteres de Datos Especiales:

Break - No tiene bits de Start o Stop, existe como un cero lgico por un tiempo de 10 11 bit
(Formato de Datos de 8 o 9 bits respectivamente)
Idle - No tiene bits de Start o Stop, existe como un uno lgico por un tiempo de 10 11 bit
(Formato de Datos de 8 o 9 bits respectivamente)
Prembulo - Un caracter idle de sincronismo





Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 10

2.4. Diagrama en bloques del Transmisor y Receptor

El diagrama de transmisin de la figura 6 muestra como el dato almacenado en el buffer SCID se
enva a un registro de desplazamiento para ser transmitido por el puerto de transmisin TXD.
Tambin se observa un bloque de Control, desde donde se envan los requerimientos de las
interrupciones seleccionadas y se selecciona la velocidad de transmisin Baud rate.


Figura 6. Diagrama en bloques del transmisor

La Figura 7 muestra el diagrama en bloques receptor, en donde los datos recibidos por el registro
de desplazamiento son almacenados en el buffer SCID. El bloque receptor tambin tiene una lgica
de Hardware para el chequeo de error de paridad, en donde si se detecta error en la paridad, se enva
un aviso al transmisor pidiendo la retransmisin de datos. Adicionalmente se cuenta con la lgica
para enviar el requerimiento de interrupcin al microprocesador, por la llegada de un dato al puerto
RX.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 11


Figura 7. Diagrama en bloques del receptor.

2.5. Registros de Configuracin del SCI

Ocho registros I/O controlan y monitorean la operacin del SCI:

SCI Control Register 1 (SCIxC1)

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 12

SCI Control Register 2 (SCIxC2)
SCI Control Register 3 (SCIxC3)
SCI Status Register 1 (SCIxS1)
SCI Status Register 2 (SCIxS2)
SCI Data Register (SCIxD)
SCI Baud Rate Register (SCIxBDH y SCIxBDL)

2.5.1. Registros SCI de Baud Rate

Este par de registros permite seleccionar el baud rate mediante el control del divisor de
preescaler. Para actualizar los 13 bits del seteo de baud rate [SBR12:SBR0], primero se escribe el
SCIxBDH para almacenar la parte alta del nuevo valor y luego escribe el SCIxBDL.


Figura 8. Registro de seleccin de tasa de baudios (SCIxBDH).

LBKDIE (Habilita interrupcin por deteccin de break LIN): Si este bit est en 1 lgico, Se
produce un requerimiento de interrupcin por HW cuando el flag LBKIF est en 1.
RXEDGIE (Habilita interrupcin por deteccin por flanco activado por entrada RxD): Si
este bit est en 1, se produce un requerimiento de interrupcin por HW cuando el flag RXEDGIF
est en 1.


Figura 9. Registro de seleccin de tasa de baudios, parte baja (SCIxBDL).

SBR[ bits (12:0)](Divisor de mdulo de Baud rate): estos 13 bits representan el valor de BR, que
representa el divisor del mdulo generador de baud rate. Cuando BR=0, el generador de baud rate
es deshabilitado a bajo consumo. Cuando BR toma un valor entre 1 y 8191, el baud rate ser SCI =
BUSCLK/(16xBR).

2.5.2. Registro de Control 1

Este registro es usado para configurar varias caractersticas de control del sistema SCI.


Figura 10. Registro de Control 1 - SCIxC1

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 13

LOOPS: Seleccin del modo loop. Este bit en 1 conecta el bus RX con el TX
SCISWAI: detiene el SCI en modo wait. Este bit en 1 detiene el clock SCI en modo wait
RSRC: seleccin de fuente de recepcin. Este bit en 1 conecta el pin TxD a la salida del transmisor
y a la entrada del receptor.
M: Seleccin de modo 8 bit o 9 bit de datos. Si este bit est en 1 se selecciona el modo de 9 bits de
datos.
WAKE: selecciona el mtodo de recepcin wakeup.
ILT: Seleccin de tipo de lnea Idle.
PE: Habilita paridad. El bit en 1 habilita paridad
PT: Seleccin del tipo de paridad. El bit en 1 selecciona la paridad impar.

2.5.3. Registro de Control 2

Este registro puede ser ledo o escrito en cualquier momento.


Figura 11. Registro de Control - SCIxC2

TIE: Habilita la interrupcin de transmisin
TCIE: Habilita interrupcin por transmisin completa
RIE: Habilita la interrupcin del recepto
ILIE: habilita la interrupcin de lnea IDLE
TE: Habilita el Transmisor
RE: Habilita Recepcin
RWU: Control wakeup del receptor
SBK: enva un break

2.5.4. Registro de Estados 1

Este registro tiene 8 flags de solo lectura.


Figura 12. Registro de Estados - SCIxS1.

TDRE: Flag de registro de datos del transmisor vacio
TC: Flag de transmisin completa
RDRF: Flag de registro de datos del receptor vacio
IDLE: Flag de lnea IDLE.
OR: Flag de sobre ejecucin del receptor.
NF: Flag de ruido

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 14

FE: Flag de error de Frame
PF: Flag de error de paridad

2.5.5. Registro de Estados 2

Este registro tiene un flag de estados de solo lectura.


Figura 13. Registro de Estados - SCIxS2.

LBKDIF: Flag de interrupcin de deteccin de break LIN
RXEDGIF: Flag de interrupcin activo por flanco en el pin RxD
RXINV: Inversin de datos del receptor
RWUID: Detecta activacin de IDLE en el receptor
BRK13: Generacin de break de carcter extensa
LBKDE: Habilita deteccin de break LIN
RAF: Flag de receptor activo

2.5.6. Registro de Control 3 (SCIxC3)


Figura 14. Registro de Control - SCIxC3.

L8: Recepcin de 9 bits de datos
T8: Transmisin de 9 bits de datos
TXDIR: Configuracin de direccin del pin TxD en el modo simple lnea
TXINV: Inversin de datos de Transmisin.
ORIE: Habilitacin de interrupcin por sobre escritura
NEIE: Habilitacin de interrupcin por error de ruido
FEIE: Habilitacin de interrupcin por error de Frame
PEIE: Habilitacin de interrupcin por error de paridad

2.5.7. Registro de Datos (SCIxD)

Este registro cumple dos funciones diferentes. Cuando se lee devuelve el valor del buffer de
recepcin RX. Cuando se escribe guarda el valor en el Buffer de transmisin TX.


Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 15


Figura 15. Registro de Datos (SCIxD).
































Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 16

3. Interfaz de Comunicacin Serie (SPI)

3.1. Descripcin del Protocolo SPI

La interfaz perifrica serie es una interfaz sincrnica master-slave que se basa en un registro de
desplazamiento de 8 bits. El master SPI genera una seal de clock usada por todos los dispositivos
SPI para coordinar la transferencia de datos. Como muestra la Figura 16, el dispositivo perifrico
conectado al SPI tambin incluye un registro de desplazamiento. Juntos, los 2 registros de
desplazamiento de 8 bits son conectados desde un registro de rotacin a izquierda de 16 bits. Una
transferencia de datos consiste de un desplazamiento de 8 bits, el cual resulta en una transferencia
de datos entre el dispositivo master y el slave. Muchos dispositivos, tales como los conversores AD,
conversores DA y Chips de memoria Flash, SRAM, FRAM, SD, etc, poseen interfaz SPI.



Figura 16. Diagrama de conexin Master Slave.

3.1.1. Breve repaso de las comunicaciones seriales sincrnicas

Una comunicacin sincrnica es aquella en donde los datos se envan sincronizados con una
seal de clock, ya sea como una lnea independiente o embebida dentro de la misma.
Generalmente existe un dispositivo maestro, que es el generador de la sincrona de la
comunicacin. De tal manera que el reloj es generado en una lnea independiente del sistema y es el
maestro quien lo presenta en el canal de comunicacin.
Los dems dispositivos del sistema actan como esclavos de la comunicacin y la seal de reloj
entra por un pin a cada uno de ellos, estableciendo el sincronismo de los bits de informacin que
llegan o salen.
Otros sistemas utilizan la misma seal de datos, para generar el sincronismo de los bits. La
Figura 17 ilustra el protocolo Manchester, del cual se puede extraer el reloj del sistema.
Basta con tomar cualquier flanco de la seal de clock para lograr una relacin entre, (utilizando
el flanco) el reloj y los datos.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 17


Figura 17. Sincronismo entre seal de clock y datos.

En los sistemas seriales sincrnicos para la interconexin de perifricos, se manejan distancias
cortas y modos de un solo maestro y mltiples esclavos.
Un maestro podra perder su funcin y convertirse en un esclavo, mediante un mecanismo de
arbitraje de bus. De esta manera cualquier dispositivo podra ser maestro en un momento
determinado.
Las tramas de comunicacin son de variada presentacin y algunas slo involucran la carga til,
sin adicionar bits que permitan el handshaking (coordinacin) entre esclavos y maestro. Para estos
protocolos deber existir una lnea tanto para el dato saliente (TxD) como para el dato entrante
(RxD), as como la posibilidad de hacer comunicacin simultnea y bidireccional (Full Duplex)
(Ejemplo: SPI).


Figura 18. Diferentes Configuraciones en el envo de datos durante el primer flanco de clock

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 18


Figura 19. Diferentes Configuraciones en el envo de datos durante el segundo flanco de clock.

En la figura 18 se muestra la configuracin del mdulo en donde el dato a enviar se mantiene
estable durante el primer flanco de clock y el siguiente bit se enva en el segundo flanco de clock,
tenga este cualquiera de las 2 polaridades posibles (lnea normalmente en alto o en bajo).
En la figura 19 se muestra la configuracin del mdulo en donde cada dato se establece en el
primer flanco del pulso de clock y el dato se mantiene estable durante el segundo flanco del clock.

3.2. Caractersticas del Mdulo SPI

El modulo SPi incluye las siguientes caractersticas:

Operacin en modo master o slave
Modo bidireccional en Full-duplex o simple lnea
Tasa de bit de transmisin programable
Registro de datos de transmisin y recepcin de Doble buffer
Opciones de polaridad y fase del clock
Salida de seleccin de slave
Flag de modo de error por falla con posibilidad de interrupcin de CPU
Control de operacin de SPI durante el modo wait
Desplazamiento de datos primero MSB o primero LSB seleccionable
Longitud de datos de transmisin programable a 8 o 16 bits

3.3. Descripcin Funcional del mdulo SPI

El mdulo se habilita seteando el bit SPI enable (SPE) en el Registro SPI Control Register
1. Mientras el bit SPE est seteado, los cuatro pines asociados al mdulo SPI cumpliendo las
funciones de:

Selector de esclavo (SS)
clock serial (SPSCK)
Master out/slave in (MOSI)

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 19

Master in/slave out (MISO)

Una transferencia SPI se inicia en el dispositivo master leyendo el registro de estados SPI
(SPIxS) cuando SPTEF = 1 y escribiendo el dato en el buffer de transmisin de datos (escribiendo
SPIxDH:SPIxDL). Cuando se completa una transferencia, el dato recibido se almacena en el buffer
de datos recibidos. Los Registros SPIxDH:SPIxDL actan como el buffer de datos de recepcin SPI
cuando es leido y como el buffer de datos de transmisin SPI cuando se escribe.
El bit de control de fase de clock (CPHA) y el bit de control de polaridad de clock (CPOL)
ubicados en el registro de control 1 SPI (SPIxC1) permiten seleccionar uno de los cuatro posibles
formatos de clock a ser usados por el sistema SPI. El bit CPOL selecciona una inversin o no de
polaridad en el clock. El bit CPHA se usa para coordinar dos protocolos para el muestreo de datos
sobre los flancos impares llamados SPSCK o sobre los flancos pares llamados SPSCK.
El SPI puede configurarse como master o como slave. Cuando se setea el bit MSTR del registro
de control 1, se habilita como master, cuando se borra el bit MSTR, se selecciona el modo slave.

3.3.1. Modo Master

El Mdulo SPI opera en modo master cuando el l bit MSTR se encuentra seteado. Solo en modo
master se pueden iniciar transmisiones. Una transmisin se inicia leyendo el registro SPIxS
mientras el SPTEF = 1 y escribiendo el registro de datos SPI. Si el registro de desplazamientos est
vaco, el byte se transfiere inmediatamente al a este registro para ser enviado.
El dato comienza a desplazarse hacia el pin de salida MOSI bajo la referencia del clock de
control serial.
SPSCK: Los bits de seleccin de baud rate SPR2, SPR1, y SPR0 conjuntamente con los bits de
preseleccin de baud rate SPPR2, SPPR1, y SPPR0 en el registro de control generan un baud rate y
determinan la velocidad de transmisin. El pin SPSCK es la salida de clock SPI. A travs de este
pin el generador de baud rate del master controla el registro de desplazamiento del perifrico slave.
Los pines MOSI, MISO en modo master, tienen la funcin de pin de datos de salida (MOSI) y
pin de datos de entrada (MISO), esto est definido por los bits de control SPC0 y BIDIROE.
El pin SS cuando los bits MODFEN y SSOE estn seteados, se configura como selector de
slave de salida. El pin SS de salida se pone en bajo para una transmisin y en alto cuando la lnea
est en estado desocupado idle.
Si el bit MODFEN est seteado y el SSOE borrado, el pin SS se configura como entrada para
detectar el modo de error por falla en la transmisin.
Si la entrada SS est en bajo, indica un error por falla error cuando otro master trata de manejar
las lneas de MOSI y SPSCK. En este caso, el SPI cambia a modo slave, borrando el bit MSTR y
deshabilitando el buffer de salida slave MISO.

3.3.2. Modo Slave

El SPI funciona en modo slave cuando el bits MSTR en el registro de control 1 est borrado.
SPSCK: En modo slave, SPSCK es el clock entrada que llega desde el master.
Pines MISO, MOSI: En modo slave, el pin (MISO) tiene la funcin de salida de datos y el pin
(MOSI) tiene la funcin de entrada de datos, esto se determina por los bits SPC0 y BIDIROE en el
registro de control 2.
Pin SS: El pin SS es la entrada de seleccin del slave. Antes de una transmisin de datos, el pin
SS del slave debe estar en bajo y debe mantenerse en este estado hasta que finalice dicha
transmisin. Si el pin SS est en alto, el SPI se fuerza a estado idle.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 20

La entrada SS tambin controla el pin de salida de datos seriales, Si el SS est en alto (no
detectado), el pin de salida de datos estar en alta impedancia, y, si SS est en bajo el primer bit en
el registro de datos SPI se enviar a al pin de salida de datos seriales. Tambin si el SS del slave
est en alto, se ignora la seal de clock enviada por el master.
Con el sistema de varios slaves, es posible implementar una comunicacin serial enviando a
varios slaves la misma transmisin desde el master, aunque el master no recibir informacin de
todos los slaves a la vez.
Si el bit CPHA en el registro de control 1 est borrado, un nmero impar de flancos sobre la
entrada SPSCK causar que el dato se mantenga en el pin de entrada de datos. Un nmero par de
flancos causar que el valor previamente almacenado desde el pin de entrada de datos seriales se
displace en el LSB o MSB del registro de desplazamientos del SPI, dependiendo del bit LSBFE.
Si se setea el bit CPHA, un numero par de flancos en la entrada del SPSCK causar que el dato
se mantenga en el pin de entrada de datos serie. Un nmero impar de flancos casar que el valor
previamente almacenndose displace desde el pin de entrada serie al LSB o MSB del registro de
desplazamientos, dependiendo del bit LSBFE.
Cuando el CPHA es seteado, el primer flanco se usa para enviar el primer bit de datos al pin de
salida serie. Cuando el CPHA es borrado y la entrada SS est en bajo (slave seleccionado), e primer
bit de datos del SPI se enva por el pin de salida de datos. Despus del octavo (SPIMODE = 0) o el
dieciseisavo (SPIMODE = 1) deslazamiento, la transferencia se considera finalizada y el dato
recibido es transferido a registro de dat6s del SPI. Para indicar que la transferencia se complet, se
setea el flag SPRF en el Registro de estados del SPI.
























Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 21

3.4. Diagrama en bloques

Figura 20. Diagrama en bloques del mdulo SPI

3.5. Registros de configuracin

3.5.1. Registro de control 1 (SPIxC1)


Figura 21. Registro de control 1 - SPIxC1

SPIE: Habilitacin de interrupcin (para SPRF y MODF)
SPE: Habilitacin de sistema

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 22

SPTIE; Habilitacin de interrupcin por transmisin
MSTR: Seleccin de modo Master/Slave
CPOL: polaridad de Clock
CPHA: Fase de clock
SSOE: habilitacin de salida de seleccin de slave
LSBFE: primer bit LSB (direccin de desplazamiento)

Tabla 1. Bits de seleccin de modo Master o Slave
MODFEN SSOE Modo Master Modo Slave
0 0 I/O de propsito general Entrada de seleccin de slave
0 1 I/O de propsito general Entrada de seleccin de slave
1 0 Entrada SS para modo falla Entrada de seleccin de slave
1 1 Salida SS automtica Entrada de seleccin de slave

3.5.2. Registro de control 2 (SPIxC2)


Figura 22. Registro de control 2 (SPIxC2)

SPMIE: Habilitacin de interrupcin por coincidencia
SPIMODE: Modo 8 o 16 bits
MODFEN: Habilita funcin en modo falla como master
BIDIROE: habilita salida en modo bidireccional
SPISWAI: Stop en modo wait
SPC0: Control de pin 0

Tabla 2. Modos de Operacin
Modo de Pin SPC0 BIDIROE MISO MOSI
Operacin de Modo Master
NORMAL 0 X Entrada Master Salida Master
BIDIRECCIONAL 1 0 MISO no usado
por SPI
Entrada Master
1 Master E/S
Operacin de Modo slave
NORMAL 0 X Salida Slave Slave
BIDIRECCIONAL 1 0 Entrada Slave MOSI no usado
por SPI 1 Slave E/S








Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 23

3.5.3. Registro de Baud rate (SPIxBR)

Tabla 3. Seleccin de baud rate de Transferencia










Figura 23. Registro de Baud rate (SPIxBR)

6:4 SPPR[2:0]: Preescalador Divisor de Baud Rate
2:0 SPR[2:0]: Divisor de Baud

Tabla 4. Divisor de Baud Rate
SPR2:SPR1:SPR0 Divisor de tasa
0:0:0 2
0:0:1 4
0:1:0 8
0:1:1 16
1:0:0 32
1:0:1 64
1:1:0 128
1:1:1 256

Baud rate= CGMOUT/(2xBD)

3.5.4. Registro de Estados (SPIxS)


Figura 24. Registro de estados (SPIxS)

SPRF: Flag de buffer de lectura lleno
SPPR2:SPPR1:SPPR0 Preescalador Divisor
0:0:0 1
0:0:1 2
0:1:0 3
0:1:1 4
1:0:0 5
1:0:1 6
1:1:0 7
1:1:1 8

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 24

SPMF: Flag de Match. Cuando el valor en el buffer de recepcin coincide con el
valor en SPIMH:SPIML
SPTEF: Flag de buffer de transmisin vacio
MODF: Flag modo master por falla

3.5.5. SPI Data Registers (SPIxDH:SPIxDL)


Figura 25. Registro de Datos parte alta (SPIxDH)

Figura 26. Registro de Datos parte baja (SPIxDL)

En modo 8-bit, solo est disponible SPIxDL. La lectura de SPIxDH retornar todos ceros. La
escritura en SPIxDH ser ignorada.
En modo 16-bit, leyendo cualquier byte (SPIxDH o SPIxDL) se guarda el contenido de ambos
bytes en el buffer en donde se mantiene hasta que se leo otro byte. Escribiendo cualquier byte
(SPIxDH o SPIxDL) se mantiene el valor en el buffer. Cuando ambos bytes han sido escritos, se
transferir como un valor de 16 bits en el buffer de datos de transmisin.

3.5.6. Registros de Coincidencia (SPIxMH:SPIxML)



Figura 27. Registro de Coincidencia parte alta (SPIxMH)

Figura 28. Registro de Coincidencia parte baja (SPIxML)

En modo 8-bit, solo est disponible SPIxML. La lectura de SPIxMH retornar ceros. La
escritura a SPIxMH ser ignorada.
En modo 16-bit, leyendo cualquier byte (SPIxMH o SPIxML) se mantiene el contenido
de ambos bytes en un bufferen donde se conservar hasta la lectura de otro byte.
Escribiendo cualquier byte (SPIxMH o SPIxML) se transfiere el valor a un buffer. Cuando

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 25

ambos buffer hayan sido escritos, se transferir el contenido como un valor a los registros
de coincidencia del SPI.


































Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 26

4. Interfaz I
2
C (Inter Integrated circuit)

4.1 Descripcin del protocolo I
2
C

Este sistema de comunicaciones fue desarrollado por Philips como un sistema multi-master, para la
conexin de perifricos a distancias relativamente cortas y velocidades de unos cientos de Kbps.
El protocolo se implementa sobre dos lneas, una lnea de clock de sincronismo (SCL: Serial Clock)
y otra para los datos (SDA: Serial Data). Como los datos se transmiten por una sola lnea, el
sistema es bidireccional del tipo maestro/esclavo.
Las Lneas de Clock SCL y de Datos SDA son manejadas por el master durante una comunicacin
tpica.
La Figura 29 muestra una trama, para la transmisin de datos en 8 bits (tambin existe en 10 bits).
En la trama se puede apreciar que el protocolo requiere una condicin de inicio, seguido por los bits
de datos, despus se presenta un bit para la seal de reconocimiento (ACK) y finalmente la
condicin de stop.
En un Bus I
2
C tpico cada esclavo tiene asignada una direccin de entre 7 y 10 bits que se usa para
seleccionar el esclavo con el que se desea entablar una comunicacin.


Figura 29. Trama de una transmisin I
2
C

Condicin de start: La condicin de inicio se produce mediante un flanco descendente en la Seal
SDA cuando la seal de clock SCL se encuentra en estado alto.
Bits de datos: Luego de haberse dado la condicin de start, los bits de datos se transmiten
comenzando por el ms significativo (MSb), manteniendo el valor del bit durante todo el periodo
alto de la seal de clock SCL. El cambio de bit se debe realizar durante el estado bajo de la lnea de
clock o durante el flanco ascendente del mismo.
Bit de comando (R/W): Cuando se est direccionando el dispositivo con el cual se va a establecer
una comunicacin I
2
C, este bit no pertenece al dato como tal, sino a la accin de escritura o lectura
sobre el dispositivo en cuestin (Lectura (R) = nivel alto y Escritura (W) = nivel bajo).
Bit de reconocimiento (ACK = Acknowledge): Este bit es verdadero en estado bajo y lo enva
quien recibe el dato.
Condicin de stop: Se produce cuando estando la seal de SCL en estado alto, se presenta un
flanco de subida de la seal de SDA.

Dependiendo del tipo de transferencia que se desee realizar, las tramas I
2
C se pueden configurar de
la siguiente manera:

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 27

Transmisin de un byte de datos: La Figura 30 detalla las tramas para el envo de un byte hacia
un esclavo. En la primera trama la carga til conforma la direccin de destino de la informacin.
Tambin se especifica la accin sobre el esclavo, que en este caso detalla una escritura sobre el
destino (nivel bajo en el bit R/W).
La direccin del dispositivo puede estar representada en 8 o 10 bits, de tal manera que podra
existir un byte adicional para completar la direccin (este byte carecera de bit de start y de stop).
La segunda trama, carece de bit de start y representa el byte de Dato a transferir.


Figura 30. Envo de un Byte de Datos a una direccin de esclavo de 8 y 10 bits de
largo.

Envo de n bytes a un destino: La Figura 31 detalla las tramas para el envo de n bytes hacia un
destino. Es idntico al caso anterior, slo que los datos se presentan uno a continuacin del otro.


Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 28


Figura 31. Envo de varios byte de datos a una direccin de esclavo de 8 y 10 bits de largo.

Lectura de un byte desde un dispositivo: La Figura 32 detalla las tramas para la lectura de un byte
desde un dispositivo. En este caso el bit de lectura/escritura (R/W) va al estado 1. Las primeras
tramas envan la direccin del dispositivo a leer y las siguientes la accin de lectura sobre el mismo.


Figura 32. Lectura de un byte de datos enviado desde un dispositivo esclavo.

Lectura de n bytes desde un dispositivo: La Figura 33 detalla las tramas para la lectura de n bytes
desde un dispositivo.


Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 29


Figura 33. Lectura de n bytes de datos enviados desde u dispositivo esclavo.

La conexin de varios dispositivos en un bus I
2
C, obedece al modelo maestro/esclavo y puede
existir la posibilidad de que varios maestros manipulen el bus. Esto ltimo se logra mediante un
mecanismo de arbitraje de bus definido para resolver conflictos de acceso cuando dos masters tratan
de acceder al bus simultneamente. Para facilitar la conexin de mltiples masters, SCL y SDA son
lneas open-drain, lo que facilita el arbitraje y el control de flujo, que requieren pull-ups externos
para generar un estado lgico alto en la lnea.
Todos los masters monitorean el bus y solo uno puede accede cuando la lnea est desocupada
(idle) (cuando ambas lneas estn en alto entre un bit de stop y uno de start). Si un master no est
manejando la lnea SDA en bajo pero sensa que est en bajo, entonces interpreta que otro master
est usando el bus y se detiene la transmisin; en este caso el master perdi el arbitraje. De manera
similar, si un master sense que SCL est en bajo cuando debera estar en alto, esto indica que un
esclavo est extendiendo el clock para indicar que todava no est listo para proceder con la
transferencia del siguiente byte, proveyendo un mecanismo de control de flujo bsico.
La Figura 34 muestra una conexin maestro/esclavo I
2
C tpica.


Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 30


Figura 34. Configuracin maestro-esclavo Tpica


4.2. Descripcin del mdulo I
2
C en el HC9S08

Las caractersticas ms importantes del mdulo I
2
C son:

o Trabaja hasta 100Kbps con mxima carga.
o El nmero mximo de dispositivos que se pueden conectar al bus I
2
C est limitado por la
capacitancia de carga mxima de 400pF.
o Compatible con el bus I
2
C estndar.
o Operacin en modo multi-maestro.
o Hasta 64 frecuencias distintas de clock del maestro.
o Generacin y deteccin de bit de aknnowledge, seleccionable por software.
o Posibilidad de generar una interrupcin por:
_ La transferencia de cada byte.
_ Prdida del arbitraje del bus por parte del maestro.
_ Identificacin de un llamado a una direccin.
o Generacin y deteccin de seal de start y stop.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 31

o Repeticin de la seal de start.
o Deteccin de bus ocupado.
o Reconocimiento de llamado general.
o Extensin de la direccin a 10 bits.

4.3. Diagrama de Bloques del Mdulo I
2
C

La Figura 35 detalla el diagrama en bloques del mdulo I
2
C. El dato en el mdulo I
2
C se recibe y
se enva sobre el mismo registro (configuracin double buffered), el bloque shift register controla
esta funcin.


Figura 35. Diagrama en bloques funcional

4.4. Registros asociados al mdulo I
2
C

4.4.1. Registro de direccin (IICA)

La Figura 36 muestra el registro de direccin del mdulo IIC.


Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 32


Figura 36. Registro de direcciones

AD1:AD7: Bits que conforman la direccin baja del esclavo en un bus IIC.

4.4.2. Registro divisor de frecuencia del reloj (IICF)

La Figura 37 ilustra sobre el registro para dividir la frecuencia del reloj de bus, que controla la tasa
de baudios del mdulo I
2
C.


Figura 37. Registro divisor de Frecuencias

MULT: Bits para definir un factor multiplicador de la rata de baudios IIC.
00: Multiplica por 1
01: Multiplica por 2
10: Multiplica por 4
11: Reservado
ICR: Bits para definir la rata de baudios IIC. La siguiente ecuacin define la tasa de baudios de una
comunicacin IIC y los tiempos de las seales de start y stop.

Tasa de Baudios = Frecuencia del reloj de BUS / ( MULT x Divisor_SCL)

Tabla 5. Tabla de valores del divisor de frecuencias de bus
ICR (Hex) Divisor SCL ICR (Hex) Divisor SCL
00 20 20 160
01 22 21 192
02 24 22 224
03 26 23 256
04 28 24 288
05 30 25 320
06 34 26 384
07 40 27 480
08 28 28 320
09 32 29 384
0A 36 2A 448
0B 40 2B 512
0C 44 2C 576
0D 48 2D 640
0E 56 2E 768
0F 68 2F 960

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 33

10 48 30 640
11 56 31 768
12 64 32 896
13 72 33 1024
14 80 34 1152
15 88 35 1280
16 104 36 1536
17 128 37 1920
18 80 38 1280
19 96 39 1536
1A 112 3A 1792
1B 128 3B 2048
1C 144 3C 2304
1D 160 3D 2560
1E 192 3E 3072
1F 240 3F 3840

4.4.3. Registro de control 1 (IICC1).

La Figura 38 ilustra sobre el registro de control 1 del mdulo I
2
C.

Figura 38. Registro de control 1.

IICEN: Bit para habilitar la operacin del mdulo IIC.
0: Inhibe la operacin del mdulo IIC
1: Habilita la operacin del mdulo IIC
IICIE: Bit para habilitar un posible evento de interrupcin del mdulo IIC.
0: Inhibe la interrupcin del mdulo IIC
1: Habilita la interrupcin del mdulo IIC
MST: Bit para asignar la operacin del mdulo como maestro.
0: Modo esclavo
1: Modo Maestro
TX: Bit para seleccionar la direccin de la transferencia en modo maestro y esclavo. En modo
maestro este bit deber estar de acuerdo con el tipo de transferencia requerida. Para ciclos de envo
de direcciones, este bit siempre estar en 1. En caso de un direccionamiento sobre un esclavo,
este bit se llevar a 1, va software y depende del estado del bit SRW.
0: Receptor
1: Transmisor
TXACK: Bit para determinar el valor del espacio de bit dedicado al
acknowledge (ACK), en la recepcin de el esclavo o el maestro.
0: Una seal de ACK es enviada fuera del BUS, despus de recibirse un byte de dato
1: No se enva ACK como respuesta
RSTA: Bit para insertar un evento de start en el BUS, dada por el maestro. El maestro podra
perder el arbitramiento del BUS si inyecta esta seal en un momento no indicado.


Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 34

4.4.4. Registro de estado (IICS).

La Figura 39 ilustra sobre el registro de estado del mdulo IIC.


Figura 39. Registro de Estados

TCF: Bandera para indicar cundo se ha completado la transferencia de un byte. Esta bandera se
aclara cuando se lee el registro de datos IICD, en modo receptor o cuando se escribe un nuevo dato
en el IICD, en modo transmisor.
0: Transferencia en progreso
1: Se ha completado una transferencia

IAAS: Esta bandera indica cuando un esclavo, solicitado por coincidencia en direccin, ha
respondido al llamado o cuando el bit GCAEN es 1 y un evento de llamada general ha sido
recibido. Escribir en el registro IICC1, aclara esta bandera.
0: No se ha dado un direccionamiento
1: Ha coincidido un direccionamiento

BUSY: Esta bandera indica el estado del BUS sin importar si se es maestro o esclavo. Esta bandera
es 1 cuando se ha detectado un evento de start y es 0 cuando se detecta un evento de stop.
0: El BUS est desocupado (IDLE)
1: El BUS est ocupado

ARBL: Esta bandera indica cuando un maestro ha perdido el arbitramiento del BUS. Esta bandera
se aclara escribiendo un 1 en ella.
0: Sistema en operacin normal
1: Se ha perdido el arbitramiento

SRW: Cuando se est direccionando un esclavo, este bit indica el valor del bit R/W de la direccin
a la que se llama y que fue enviada por el maestro.
0: Esclavo recibiendo, el maestro escribe sobre el esclavo
1: Maestro recibiendo, el esclavo escribe sobre el maestro

IICIF: Este bit indica cuando hay una interrupcin pendiente. Esta bandera se aclara escribiendo un
1 en ella, durante la rutina a la atencin de interrupcin. Los eventos que ponen a 1 esta
bandera son:
_ Se ha completado la transferencia de un byte
_ Se ha dado una coincidencia en la solicitud de direccin sobre un esclavo
_ Se ha perdido el arbitramiento
0: No hay interrupcin pendiente
1: Hay interrupcin pendiente

RXAK: Bandera que indica que se ha dado una seal de acknowledge (ACK), desde el dispositivo
que ha recibido el dato enviado.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 35

0: Se recibi seal de ACK
1: No se recibi seal de ACK

4.4.5. Registro de datos (IICD)

La Figura 40 ilustra sobre el registro de datos del mdulo I
2
C. La lectura sobre este registro
devuelve el byte que acaba de llegar y la escritura deposita el byte siguiente a enviarse.

Figura 40. Registro de Datos

4.4.6. Registro de control 2 (IICC2)

La Figura 41 ilustra sobre el registro de control 2 del mdulo IIC.


Figura 41. Registro de control 2

GCAEN: Bit para habilitar generacin de una llamada general en el BUS IIC.
0: Inhibe una llamada general
1: Habilita una llamada general

ADEXT: Bit para determinar el formato de la direccin de los dispositivos.
0: Direcciones en 7 bits
1: Direcciones en 10 bits

AD8:AD10: Bits que configuran la parte alta de la direccin del dispositivo, en modo de 10 bits


4.5. Otras funciones importantes del mdulo IIC

o Repeticin de la condicin de start: Esta propiedad del mdulo IIC permite que se genere, en
cualquier momento, una condicin de start sin necesidad de haber sucedido una condicin de stop
anterior.

o Procedimiento de arbitraje: Esta propiedad permite que varios maestros estn conectados al
BUS IIC. Cuando dos o ms maestros tratan de acceder al BUS al mismo tiempo, un proceso de
sincronizacin determinar si el maestro pierde esta propiedad.
Un maestro pierde el arbitramiento si este transmite un 1 mientras otro maestro est
transmitiendo un 0, en ese momento el maestro perdedor se deber conmutar como esclavo. Para

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 36

este caso, la trama hacia el esclavo no llevar condicin de stop. Esta accin es indicada por el bit
IICS[ARBL] = 1.

o Procedimiento de llamada general: Esta propiedad permite al maestro encuestar sobre la
presencia de un esclavo con una direccin determinada. Una llamada general se puede hacer en
formato de 7 o 10 bits de direccin.
Cuando un esclavo identifica que el llamado coincide con su propia direccin, el bit IICS[IAAS]
es puesto a 1 y el llamado deja de ser general.
Si la direccin llamada es la 0x00, se tratar entonces de una llamada general y el software del
usuario determinar la accin a tomar.
Si el bit IICC2[GCAEN] = 0, el bit de ACK no es devuelto y el dato es ignorado.





























Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 37

5. Universal Serial Bus (USB)

Una interfaz para muchos dispositivos. Este protocolo es muy verstil para una variedad de
dispositivos perifricos. Dispositivos de almacenamiento, mouse, teclado, impresora, etc.
Configuracin automtica. Cuando se conecta el dispositivo a una PC, este es detectado
automticamente, indicando a la PC que drivers necesita para su funcionamiento.
Cables estndar. Utiliza cables para conexin estndar y de variadas longitudes
No requiere seteos ni configuraciones. Cuando se conecta un dispositivo, automticamente
se configura y se reporta a la PC indicando las caractersticas de funcionamiento.
No requiere suministro de potencia. El protocolo provee un pin de 5V, y permite
suministrar hasta 500mA.
5.2. Principales caractersticas

5.2.1. Implementacin Fsica

5.2.1.1. Aspecto elctrico

A nivel elctrico, el cable USB transfiere la seal y la alimentacin sobre 4 hilos.


Figura 42. Lneas de comunicacin USB 1.1 y 2.0

A nivel de alimentacin, el cable proporciona la tensin nominal de 5 V. Es necesario definir
correctamente el dimetro del hilo con el fin de que no se produzca una cada de tensin demasiado
importante en el cable. Una resistencia de terminacin instalada en la lnea de datos permite detectar
el puerto y conocer su configuracin (1,5 o 12 Mbits/s).

A nivel de seal, se trata de un par trenzado con una impedancia caracterstica de 90 . La
velocidad puede ser tanto de 12 Mbits/s como de 1,5 Mbits/s. La sensibilidad del receptor puede ser
de, al menos, 200mV y debe poder admitir un buen factor de rechazo de tensin en modo comn. El
reloj se transmite en el flujo de datos, la codificacin es de tipo NRZI, existiendo un dispositivo que
genera un bit de relleno (bit stuffing) que garantiza que la frecuencia de reloj permanezca constante.
Cada paquete va precedido por un campo de sincronismo.

Consumo:

Cada seccin puede proporcionar una determinada potencia mxima siendo el PC el encargado de
suministrar la energa. Adems, el perifrico puede estar autoalimentado (self powered).



Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 38

Control de consumo:

El ordenador gestiona el consumo, teniendo capacidad de poner en reposo (suspend) o en marcha a
un perifrico USB. En reposo, este reduce su consumo (si puede), quedndose la parte USB
funcional.
Esta gestin est orientada especialmente a los equipos porttiles.

5.2.2. Velocidad de Transferencia

El protocolo USB puede funcionar comnmente a 3 velocidades. Dichas velocidades tiene
caractersticas especficas de implementacin dependiendo de la especificacin USB:
La especificacin USB 1.0 define low and full speed. Low speed permite una velocidad de bus
de 1,5 Mbits/seg. A full speed el bus USB puede funcionar a 12 Mbits/seg.
La especificacin USB 2.0 permite una velocidad de Bus de 480 Mbits/seg, lo que permite una
tasa de transferencia de datos de 53 MBytes/seg. Hay una diferencia notable entre esta
especificacin y la anterior. Se debe aclarar que para implementar el USB 2.0 se requiere un diseo
de HW especial, mediante 2 lneas diferenciales de datos. Cada lnea tiene una impedancia
caracterstica de 45 Ohms a tierra o de 90 ohms diferenciales y componentes para el filtrado de
ruido.

5.2.3. USB On-The-Go

Como USB se convirti en la interfaz preferida para todo tipo de perifricos, los desarrolladores
empezaron a pedir una forma de conectar sus perifricos directamente entre s y con
otros perifricos USB. Por ejemplo, un usuario puede querer conectar una impresora directamente a
una cmara o conectar dos unidades en conjunto para el intercambio de archivos.
On-The-Go (OTG) Suplemento para la especificacin USB 2.0 lanzado en 2001define
una limitada capacidad de funcin de host que pueden implementar los dispositivos para permitir la
comunicacin con los perifricos.

5.2.4. Componentes del Bus

Los componentes fsicos del Universal Serial Bus consisten de los circuitos, conectores, y cables
entre un host y uno o ms dispositivos.
El host es una PC u otro dispositivo que contenga un controlador host USB y un hub root. Estos
componentes trabajan juntos para habilitar el sistema operativo que permite la comunicacin con
los dispositivos del bus. El formato de datos del controlador del host para transmitir sobre el bus y
traducir el dato recibido a un formato que los componentes del sistema operativo puedan entender.
A hub has one or more ports for connecting devices. Each device must contain circuits and code
that know how to communicate with the host. The USB specification defines the cables and
connectors that connect devices to hubs.
El controlador host tambin realiza otras funciones relacionadas con la gestin de las
comunicaciones en el bus. El hub root tiene uno o ms conectores para conexin de
dispositivos. El Hub root, en combinacin con el controlador host, detecta y remueve
los dispositivos, lleva a cabo las solicitudes desde el controlador host, y transfiere los datos entre los
dispositivos y el controlador de host.
Los dispositivos son los perifricos y hubs adicionales que se conectan al bus.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 39

Un Hub tiene uno o ms puertos para conectar dispositivos. Cada dispositivo debe contener los
circuitos y el cdigo que le indique cmo comunicarse con el host. La
especificacin USB define los cables y conectores que conectan los dispositivos a los Hubs.


Figura 43. Diagrama en bloques de un bus tpico.

5.3. Elementos de una transferencia USB.

Cada transferencia USB est integrada por una o ms transacciones, y a su vez, cada transaccin
contiene paquetes. Antes de explicar cmo est conformada una transferencia, se definen algunos
trminos.

5.3.1. Endpoints
Todo el trfico del bus viaja desde o hacia los endpoint de cada dispositivo. Un endpoint es un
buffer que almacena datos. Tpicamente es un bloque de memoria o un registro ubicado en el chip

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 40

del controlador del dispositivo. Los datos almacenados en un endpoint son datos recibidos o datos
que estn esperando ser transmitidos.
El host tambin tiene buffers que almacenan los datos recibidos y los datos que esperan ser
transmitidos, pero no tienen endpoint. En su lugar, el host da inicio o fin a las comunicaciones con
los endpoints de los dispositivos.
La especificacin USB define a un endpoint como una porcin nica direccionable del
dispositivo USB que es origen o destino de la informacin en el flujo de comunicacin entre el host
y el dispositivo.
La direccin de un endpoint est compuesta por el nmero de endpoint y su sentido. El nmero
de endpoint es un valor entre 0 a 15, y el sentido est definido desde la perspectiva del host. Un
endpoint de entrada (IN) proporciona datos para ser enviados al host, y un endpoint salida
(OUT) almacena datos recibidos del host.
Un endpoint configurado para transferencias de control debe transferir datos en ambos sentidos,
por lo que est compuesto por un endpoint cuya sentido es de entrada y salida, compartiendo el
mismo nmero. Los endpoints de control son una clase especial por ser bidireccionales.
Cada dispositivo debe tener un endpoint cero configurado como endpoint de control. Raramente
se necesitan adicionales.
Otros tipos de transferencias envan datos en un solo sentido. Un nmero simple de endpoint
puede soportar los dos tipos de sentidos, entrada o salida. Un dispositivo, por ejemplo, puede tener
un endpoint 1 de entrada para enviar datos al host y otro endpoint 1 de salida para recibir datos del
host.
Adicionalmente al endpoint 0, un dispositivo full o high speed tiene hasta 30 endpoint
adicionales, el nmero del endpoint desde uno a quince y el sentido de transmisin, entrada o salida.
En cambio un dispositivo low speed est limitado a dos endpoint adicionales con cualquier
combinacin de sentidos.
Cada transaccin en el bus comienza con un paquete que contiene un nmero de endpoint y un
cdigo que indica el sentido del flujo de datos y si se inicia o no una transferencia de control. Los
cdigos utilizados son IN, OUT y SETUP.
Una transaccin del tipo SETUP es similar a una OUT por la razn de que los datos viajan desde
el host al dispositivo, pero es especial porque inicia una transferencia de control. Los dispositivos
deben identificar este tipo de transaccin porque esta es el nico tipo de transaccin que un
dispositivo siempre debe aceptar, adems porque el dispositivo necesita identificarse y responder
las solicitudes contenidas en los datos recibidos.

5.3.2. Pipes.
Antes de que una transferencia pueda realizarse, se debe establecer entre el host y el dispositivo
lo que se denomina una tubera o pipe. Es una asociacin entre el endpoint de un dispositivo y el
software del controlador del host.
Durante el proceso de enumeracin se establecen pipes. Si el dispositivo es removido del bus, el
host remueve las tuberas que no son necesarias. Cada dispositivo tiene un control por defecto de
pipe utilizando el endpoint cero.
La informacin de configuracin recibida por el host incluye un descriptor de endpoint para cada
endpoint que el dispositivo quiera usar. Este descriptor de endpoint es un bloque de informacin
que le dice al host todo lo que necesita saber sobre el endpoint del dispositivo para poder
comunicarse con l. La informacin incluye la direccin del endpoint, el tipo de transferencia a
usar, el tamao mximo de los paquetes de datos, y cuando sea necesario, el intervalo deseado para
las trasferencias.


Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 41

5.3.3. Tipos de transferencias
La interfaz USB est diseada para manejar distintos tipos de dispositivos con una gran
variedad de requerimientos en relacin a la frecuencia de transferencia, tiempo de respuesta y
correccin de errores. En la especificacin USB se definen cuatro tipos de transferencias de datos,
cada uno de estos tipos de transferencias manejan diferentes necesidades, y cada dispositivo puede
utilizar la forma de transferencias que mejor se adecuen a sus necesidades.
Los tipos de transferencias USB son de control, bulk, interrupt, y por ltimo
isochronous. En la tabla 6 se muestra, para cada tipo de transferencia, diferentes caractersticas.
La transferencia de control es la nica que est definida en la especificacin USB, es
utilizada por el host para aprender sobre el dispositivo. Permite al host obtener informacin sobre el
dispositivo, establecer su direccin, seleccionar configuraciones, entre otras caractersticas. Las
transferencias de control tambin pueden enviar pedidos especficos del fabricante del dispositivo.
Todo dispositivo USB debe dar soporte a este tipo de transferencia.
Las transferencias Bulk son usadas cuando la velocidad de transferencia no es crtica; como
enviar datos a una impresora o cuando se quiere acceder a archivos de un dispositivo de
almacenamiento. Para estas aplicaciones son necesarias las transferencias rpidas pero los datos
pueden esperar de ser necesario. Si el bus se encuentra muy ocupado la transferencia se demora
pero de encontrarse libre la transferencia es la ms rpida. nicamente dispositivos full o high
speed pueden realizar transferencias de este tipo. Los dispositivos de la clase Mass storage
utilizan estas transferencias.
Transferencias Interrupt son utilizadas por dispositivos que necesitan en forma peridica, la
atencin del host o de otros dispositivos. Aparte de las transferencias de control, este tipo de
transferencia es la nica forma de transferir datos para dispositivos low speed. Dispositivos como
teclados o mouse utilizan este tipo de transferencias para enviar datos.
Finalmente, las transferencias isochronous, tienen asegurado el tiempo de envi pero no
posee correccin de errores. Esta transferencia es utilizada para audio o video reproducido en
tiempo real. Es el nico tipo de transferencia que no soporta retransmisin automtica por deteccin
de errores en los datos recibidos, a causa de esto se aceptan errores en forma ocasional. nicamente
dispositivos full y high speed soportan estas transferencias.

Tabla 6. Caractersticas principales para cada tipo de transferencia
Tipo de
transferencia
Control Bulk Interrupt Isochronous
Uso Tpico
Identificacin y
configuracin.
Escner,
dispositivos
mass storage.
Mouse,
keyboard.
Audio y video
en tiempo real.
Requerido S. No. No. No.
Usa low speed? S. No. S. No.
Direccin del
flujo de datos
IN y OUT. In - OUT. In - OUT IN - OUT

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 42

Correccin de
errores
S. S. S. No.
Tasa de
transferencia
garantizada?
No. No. No. S.
Latencia
garantizada?
No. No. S. S.

5.3.4. Trasferencias y transacciones.
La especificacin USB define trasferencia como el proceso de establecer y transportar las
solicitudes de comunicacin. Una transferencia puede ser muy corta, enviando unos pocos bits de
datos de una aplicacin, o muy larga enviando el contenido de archivos muy extensos.
Cada transferencia est compuesta por una o ms transacciones, a su vez cada transaccin est
formada por uno, dos o tres paquetes.
La especificacin USB define transaccin como la prestacin de un servicio a un endpoint. En
este caso servicio puede significar que el host enva informacin a un dispositivo, o que el host
solicita y recibe informacin de un dispositivo.
Cada transaccin incluye identificacin, chequeo de errores e informacin de control, as como
todos los datos a enviar. Una transferencia completa puede estar compuesta por mltiples frames o
microframes. Una transaccin no puede ser interrumpida ni puede establecerse otra comunicacin
en el bus que pueda interrumpir una transaccin.
Una transferencia con una pequea cantidad de datos puede requerir nicamente una
transaccin, en cambio otras transferencias pueden requerir mltiples transacciones con una
pequea cantidad de datos cada una.

5.3.5. Caractersticas de un Bloque en una transferencia
La figura siguiente muestra los elementos de una transferencia tpica. Hay transferencias y
transacciones, etapas y fases, transacciones de datos y paquetes de datos, etapas de estados y fases
de handshake. Las Etapas de Datos tienen paquetes de handshake y las etapas de estados tienen
paquetes de datos. La Tabla 7 muestra los elementos de cada uno de los 4 tipos de transferencias.
Cada transferencia consiste de una o ms transacciones, y cada transaccin consiste de uno,
dos o tres paquetes. Los tres tipos de transaccin se definen por su propsito y direccin en cuanto
al flujo de datos. El Setup de una transaccin enva requerimientos de transferencia de control a un
dispositivo. Las transacciones OUT envan otra informacin de datos o estados al dispositivo. Las
transacciones IN envan informacin de datos o estados al host. La especificacin USB define una
transaccin como el suministro de servicios a un endpoint. En este caso se define servicio como
el envo de informacin desde el host al dispositivo, o requerimientos del host y recepcin de
informacin desde el dispositivo.
Cada transaccin incluye identificacin, chequeo de error, estados, y control de informacin en
todo intercambio de datos. Una transferencia completa quizs requiera mltiples frames o micro
frames, pero una transaccin se debe completar sin interrupciones. Ninguna otra comunicacin
puede irrumpir en el bus en el medio de una transaccin. En una transaccin el dispositivo debe
responder rpidamente con los requerimientos de informacin de datos o estados. El firmware del

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 43

dispositivo configura tpicamente, un endpoint para responder a los paquetes recibidos, y el
hardware responde a los paquetes cuando llegan.


Figura 44. Caractersticas de una trama de Datos
Una transferencia con una pequea cantidad de datos, tal vez requiere solo una transaccin.
Otras transferencias requieren mltiples transacciones con un conjunto de datos en cada.

5.3.6. Fases de una transaccin.
Cada uno de los tipos de transferencias definidos, estn compuesto por una o ms transacciones,
a su vez cada transaccin est integrada por dos o tres fases, en la tabla 7 se muestra las fases
integrantes para cada tipo de transferencia.
Una transaccin tiene hasta tres fases o partes que ocurren en secuencia, token, datos y
handshake. A su vez en cada fase se transmiten en uno o dos paquetes. Cada uno es un bloque de
informacin con un formato definido. Al comienzo de cada paquete se coloca informacin de
identificacin llamado Packet ID (PID). Dependiendo de la transaccin, el PID puede estar
seguido por una direccin de endpoint, datos, informacin de estado o el nmero de frame junto con
los bits de chequeo de error.

Fase token: el host inicia la comunicacin enviando este paquete. El PID indica el tipo de
transaccin: SETUP, IN, OUT o comienzo del frame.
Fase de datos: el host o el dispositivo trasfiere cualquier tipo de informacin en el
paquete de datos. El PID incluye un valor de secuencia de datos (data toggle) que es

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 44

usado para proteger a datos perdidos o duplicados cuando la transferencia tiene mltiples
paquetes.
Fase de handshake: el host o el dispositivo enva un cdigo que indica el estado de la
transferencia, si result exitosa u ocurri algn tipo de error. En transferencias
isochronous no se utiliza esta fase. Los cdigos utilizados en el PID son ACK, NAK,
STALL o NYET.

Tabla 7: fases integrantes de cada tipo de transferencia.
Tipo de transferencia Transaccin Fases (Paquetes)
Control.
Setup. Una transaccin.
Token.
Data.
Handshake.
Data. Cero o ms transacciones
Token.
Data.
Handshake.
Estado. Una transaccin.
Token.
Data.
Handshake.
Bulk.
Una o ms transacciones.
(IN - OUT).
Token.
Data.
Handshake.
Interrupt.
Una o ms transacciones.
(IN - OUT).
Token.
Data.
Handshake.
Isochronous.
Una o ms transacciones.
(IN - OUT).
Token.
Data.

Las seales de handshake son transmitidas en los paquetes de handshake o datos. En todos los
casos, quien recibe la informacin de handshake, la utiliza para decidir qu hacer a continuacin.


Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 45

ACK: indica que el host o el dispositivo ha recibido los datos sin errores.
NACK: significa que el dispositivo est ocupado o no hay datos que devolver. El host
nunca utiliza este cdigo.
STALL: tiene tres significados: solicitud de control no soportado, pedido de control
fallido o fallo del endpoint.
NYET: nicamente dispositivos high speed lo utilizan. Despus que un paquete de datos
es recibido por el endpoint en un dispositivo, este puede devolver este tipo de handshake.
Significa que el endpoint acepta los datos pero no est listo para recibir otro paquete de
datos. Cuando el host piensa que el dispositivo puede estar listo, enva un paquete con un
token especial llamado PING. El endpoint retorna un ACK para indicar que el dispositivo
est listo para recibir el siguiente paquete de datos o devuelve un NAK o STALL de no
estarlo. Este procedimiento es ms eficiente que enviar todo el paquete de datos, encontrar
que el dispositivo no est listo, y tener que reenviar ms tarde.
ERR: The ERR handshake is used only by high-speed hubs in complete-split transactions.
ERR indicates the device didnt return an expected handshake in the transaction the hub is
completing with the host.

5.3.7. Chequeo de error.
La especificacin USB da los requerimientos de hardware necesarios para reducir el ruido en
las lneas, y de esta forma reducir la probabilidad de errores. De todas formas cualquier
perturbacin, como la desconexin de un cable USB, puede alterar otra transmisin. Por esa razn,
se incorpora a cada paquete, bits para el chequeo de errores. Adicionalmente, para transferencias
que requieren mltiples transacciones, se incorpora un valor llamado data toggle que mantiene al
transmisor y al receptor en forma sincronizada de manera de no omitir una transaccin.
Los bits para el chequeo de errores son calculados utilizado el algoritmo llamado
comprobacin de redundancia cclica (CRC). El dispositivo transmisor realiza el clculo y enva el
resultado con los datos transmitidos, luego el dispositivo receptor realiza un clculo similar con los
datos recibidos. Si el resultado coincide significa que no han ocurrido errores por lo que se devuelve
un ACK. En caso de no coincidir no se enva el handshake, lo que significa que se debe
retransmitir.

5.4. Enumeracin de dispositivos.

Antes de que una aplicacin pueda comunicarse con un dispositivo, el host necesita aprender
de este. En el proceso de enumeracin es cuando ocurre el intercambio de informacin que cumple
con esta tarea, para esta tarea se utiliza las transferencias del tipo de control utilizando el endpoint
cero. El proceso completo incluye asignarle una direccin al dispositivo, leer los descriptores del
dispositivo, asignar y cargar el controlador del dispositivo, y finalmente seleccionar la
configuracin de alimentacin requerida por el dispositivo, endpoints y otras caractersticas. Una
vez finalizado este proceso, el dispositivo est listo para trasferir o recibir datos utilizando los
endpoint del dispositivo.

5.4.1. Proceso de enumeracin.
Una de las capacidades del hub es detectar cuando un dispositivo se conecta o desconecta.
Cada hub tiene un endpoint IN para reportar estos eventos al host. En el arranque del sistema el host

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 46

interroga a su root hub si hay dispositivos conectados, despus del arranque peridicamente se
realiza esta accin.
En el proceso de reconocimiento de un nuevo dispositivo, el host enva una serie de solicitudes
al hub donde se conecto el dispositivo. El hub establece la comunicacin entre el dispositivo y el
host. Luego, el host intenta enumerar el dispositivo realizando transferencias de control, las cuales
contienen solicitudes estndar dirigidas al endpoint cero del dispositivo.
Para que este proceso termine satisfactoriamente, el dispositivo debe responder a cada solicitud
retornando la informacin pedida y realizando las tareas solicitadas. Tpicamente el firmware de un
dispositivo contiene toda la informacin que el host puede solicitar pero no debe asumir que el
proceso va a ocurrir en un orden determinado.

5.4.2. Descriptores.
Los descriptores son estructuras de datos o bloques de informacin, que le permiten al host
aprender del dispositivo. Cada descriptor contiene informacin del dispositivo en su totalidad o de
un elemento del dispositivo. Son solicitados durante el proceso de enumeracin por el host
utilizando transferencias del tipo de control.
A medida que el proceso de enumeracin progresa la solicitud de descriptores se concentra en
caractersticas ms especficas: primero en todo el dispositivo, despus en cada configuracin,
posteriormente en la configuracin de cada interfaz, y finalmente, en los endpoint de cada interfaz.
El descriptor tiene un registro que indica el tamao en bytes del mismo llamado bLength. En la
tabla 8 se muestran los distintos tipos de descriptores, en dicha tabla la columna bDescriptor Type
contiene un valor hexadecimal que identifica el tipo de descriptor.

Tabla 8. Se muestran los tipos de descriptores
bDescriptor Tipo descriptor. Requerido?
01h Dispositivo. S.
02h Configuracin. S.
03h string
No. Texto descriptivo
opcional.
04h Interfaz. S.
05h Endpoint.
No, si el dispositivo
nicamente usa endpoint 0.
06h device qualifier.
S, para dispositivos que
soportan full y high speed.
07h other_speed_configuration
S, para dispositivos que
soportan full y high speed.
08h interface_power No.

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 47

09h OTG Solo para dispositivos OTG.
0Ah debug No.
0Bh interface_association
Para dispositivos
compuestos.

A continuacin se describen los principales tipos de descriptores:
Descriptor de dispositivo: contiene informacin bsica acerca del dispositivo, al
conectarse un dispositivo, este es el primer descriptor que el host solicita. Un dispositivo
puede tener un slo descriptor de este tipo. Estos descriptores proveen informacin
general acerca del fabricante, nmero de producto, nmero de serie, clase de dispositivo y
el nmero de configuraciones admitidas. A continuacin se indican los elementos que
forma parte del descriptor de dispositivo:
- bcdUSB: indica la versin en BCD, ej versin 2.0 se indica 0200h
- idVendor: el host tiene un archivo .inf que contiene este valor
- idProduct: identificacin del producto
- bcdDevice: versin del producto en BCD
- iManufacturer: es un ndice que apunta a una descripcin del fabricante
- iProduct: ndice que apunta a una descripcin del producto
- iserialnumber: un ndice que apunta al nmero de serie del dispositivo
Descriptor de configuracin: Provee informacin acerca de los requerimientos de
alimentacin del dispositivo y cuantas interfaces son soportadas. Puede existir ms de una
configuracin para un dispositivo, aunque tpicamente se utiliza una.
- bNumConfigurations: nmero de configuraciones que soporta el dispositivo
- bMaxPacketSize0: el tamao mximo de paquete para el endpoint 0. Para full
speed se puede usar hasta 64
- bDeviceClass: para dispositivos cuya funcin es definida a nivel de dispositivo.
Por Ejemplo un hub o un controlador wireless
- bDeviceSubclass: es una subclase de una clase, ejemplo controlador RF es una
subclase del controlador wireless
- bDeviceProtocol: indica el protocolo de la clase, ejemplo bluetooth para un
controlador wireless.
Descriptor de endpoint: identifican el tipo de transferencia, su sentido y otros datos
especficos de un endpoint. En un dispositivo puede haber varios endpoints y pueden
compartir distintas configuraciones.
Descriptor String: son descriptores opcionales, proveen informacin descriptiva
acerca de una caracterstica del dispositivo.
Adicionalmente a los descriptores estndar, un dispositivo puede contener descriptores
especficos del fabricante. Estos descriptores ofrecen una va estructurada para que el dispositivo
pueda proporcionar informacin detallada sobre s mismo.


Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 48

5.5. Registros asociados al mdulo USB

5.5.1. Registro del ID del perifrico (PER_ID)

La Figura 45 ilustra sobre el registro del ID del perifrico del mdulo USB.


Figura 45. Registro de ID del Perifrico

IDx: Bits para la identificacin del perifrico. Por defecto siempre se lee como un perifrico 0x04.

5.5.2. Registro de ID complementario (ID_COMP)

La Figura 46 ilustra sobre el registro de ID complementario del mdulo USB.


Figura 46. Registro ID complementario

NIDx: Bits como complemento a 1 del ID del perifrico.

5.5.3. Registro de la revisin del perifrico(REV)

La Figura 47 ilustra sobre el registro de revisin del mdulo USB.


Figura 47. Registro de Revisin del USB

REVx: Bits que indican el nmero de revisin del ncleo del USB.

5.5.4. Registro de informacin adicional del perifrico (ADD_INFO)

La Figura 48 muestra el registro de informacin adicional del mdulo USB.


Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 49


Figura 48. Registro de Informacin Adicional del Perifrico

IRQ_NUM: Nmero de interrupcin asignada al perifrico.
IEHOST: Este bit es puesto a 1 cuando est habilitado el modo HOST.

5.5.5. Registro del estado de la interrupcin en modo OTG (OTG_INT_STAT)

Este registro almacena los cambios en el ID y las seales del VBUS (Bus de alimentacin USB).
El software deber leer este registro, para determinar que evento ha generado esta interrupcin. Slo
los bits que han cambiado desde la ltima lectura se ponen a 1. Para borrar el estado de un bit,
basta con escribir un 1 en este. La Figura 49 muestra el registro del estado de interrupcin en
modo OTG.


Figura 49. Registro de Estado de Interrupcin en modo OTG


ID_CHG: Este bit es puesto a 1 cuando se presenta un cambio de estado en el pin ID del
conector USB.
0: No se ha presentado un cambio en el pin ID del conector USB.
1: Se ha presentado un cambio en el pin ID del conector USB.

1_MSEG: Este bit indica cuando ha pasado un milisegundo. Este bit debe ser aclarado cada que se
necesite verificar el milisegundo.
0: No se ha completado un tiempo de 1ms.
1: Se ha completado un tiempo de 1ms.

LINE_STAT_CHG: Este bit indica cuando la lnea de estado del USB cambia. La interrupcin
asociada a este bit se puede utilizar para detectar un estado de RESET, resumen, conexin y datos
como seales pulsantes.
0: No se ha detectado un cambio en la lnea de estado USB.
1: detectado un cambio en la lnea de estado USB.

SESS_VLD_CHG: Este bit indica cuando se ha detectado un cambio en la lnea VBUS indicando
que hay una sesin vlida.
0: No se ha detectado una sesin vlida.
1: Se ha detectado una sesin vlida.


Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 50

B_SESS_CHG: Este bit indica cuando se ha detectado un cambio en la lnea VBUS por un
terminal tipo B.
0: No se ha detectado un cambio por un terminal tipo B.
1: Se ha detectado un cambio por un terminal tipo B.

A_SESS_CHG: Este bit indica cuando se ha detectado un cambio en la lnea VBUS por un
terminal tipo A.
0: No se ha detectado un cambio por un terminal tipo A.
1: Se ha detectado un cambio por un terminal tipo A.

5.5.6. Registro del control de la interrupcin en modo OTG (OTG_INT_EN)

Este registro habilita bit a bit las posibles interrupciones del modo OTG. La Figura 50 muestra el
registro de control de interrupcin en modo OTG.


Figura 50. Registro del control de la interrupcin en modo OTG

ID_EN: Habilita la interrupcin por evento ID.
0: La interrupcin por evento ID est deshabilitada.
1: La interrupcin por evento ID est habilitada.

1_MSEG_EN: Habilita la interrupcin por evento 1_MSEG.
0: La interrupcin por evento 1_MSEG est deshabilitada.
1: La interrupcin por evento 1_MSEG est habilitada.

LINE_STAT_EN: Habilita la interrupcin por evento LINE_STAT_CHG.
0: La interrupcin por evento LINE_STAT_CHG est deshabilitada.
1: La interrupcin por evento LINE_STAT_CHG est habilitada.

SESS_VLD_CHG: Habilita la interrupcin por evento SESS_VLD_CHG.
0: La interrupcin por evento SESS_VLD_CHG est deshabilitada.
1: La interrupcin por evento SESS_VLD_CHG est habilitada.

B_SESS_EN: Habilita la interrupcin por evento B_SESS _CHG.
0: La interrupcin por evento B_SESS _CHG est deshabilitada.
1: La interrupcin por evento B_SESS _CHG est habilitada.

A_SESS_EN: Habilita la interrupcin por evento A_SESS _CHG.
0: La interrupcin por evento A_SESS _CHG est deshabilitada.
1: La interrupcin por evento A_SESS _CHG est habilitada.





Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 51

5.5.7. Registro de estado de interrupcin (OTG_STAT)

Este registro muestra el valor actual desde las salidas del comparador externo del pin ID y el
VBUS. La Figura 51 muestra el registro de control de interrupcin en modo USB A/B.


Figura 51. Registro de estado de interrupcin

ID: Este bit es puesto a 1 cuando se presenta un cambio de estado en el pin ID del conector USB.
0: Indica que un cable tipo A ha sido conectado al conector USB.
1: Indica que no se ha establecido una conexin o que un cable tipo B ha sido
conectado al conector USB.

1_MSEG_EN: Este bit no se usa.
LINE_STATE_STABLE: Este bit indica que las lneas internas, que controlan el
LINE_STAT_CHG se han estabilizado por al menos 1 milisegundo. Primero se lee el bit
LINE_STAT_CHG y luego se lee el LINE_STATE_STABLE.
0: La lnea LINE_STAT_CHG no est estable.
1: La lnea LINE_STAT_CHG est estable.

SESS_VLD: Este bit indica cuando una sesin es vlida.
0: El voltaje VBUS est por debajo del umbral de una sesin vlida tipo B.
1: El voltaje VBUS corresponde al umbral de una sesin vlida tipo B.

B_SESS_END: Este bit indica cuando una sesin tipo B ha terminado.

0: El voltaje VBUS corresponde al umbral de un final de una sesin tipoB.
1: El voltaje VBUS est por debajo del umbral de un final de una sesintipo B.

A_VBUS_VLD: Este bit indica cuando el VBUS tipo A es vlido.
0: El voltaje VBUS est por debajo del umbral vlido del VBUS tipo A.
1: El voltaje VBUS corresponde al umbral vlido del VBUS tipo A.


5.5.8. Registro de control OTG (OTG_CTRL)

Este registro controla la operacin del VBUS y de las resistencias asociadas a la lnea de datos del
USB. La Figura 52 muestra el registro de control OTG.


Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 52


Figura 52. Registro de control OTG

DP_HIGH: Habilita el pullup para la lnea D+.
0: El pullup para la lnea D+ no est habilitado.
1: El pullup para la lnea D+ est habilitado.

DP_LOW: Habilita el puldlown para la lnea D+.
0: El pulldown para la lnea D+ no est habilitado.
1: El pulldown para la lnea D+ est habilitado.

DM_LOW: Habilita el pulldown para la lnea D-.
0: El pulldown para la lnea D- no est habilitado.
1: El pulldown para la lnea D- est habilitado.

VBUS_ON: Seal de encendido del VBUS.
0: La seal de encendido del VBUS no est puesta.
1: El VBUS est encendido.

OTG_EN: Habilita una resistencia pullup/pulldown para el modo OTG.
0: Si el bit USB_EN est en 1 y el bit HOST_MODE es 0, se habilita una
resistencia de pullup para el pin D+. Si el bit HOST_MODE es 1, se ubican
pulldowns para las lneas D+ y D-.
1: Los controles sobre los pullups y pulldowns son usados.

VBUS_CHG: Inserta una resistencia a la seal de VBUS.
0: No inserta una resistencia a la seal de VBUS.
1: Inserta una resistencia a la seal de VBUS.

VBUS_DSCHG: Inserta una resistencia de descarga a la seal de VBUS.
0: No inserta una resistencia de descarga a la seal de VBUS.
1: Inserta una resistencia de descarga a la seal de VBUS.

5.5.9. Registro de estado de interrupcin (INT_STAT)

Contiene una serie de bits para cada evento de interrupcin del mdulo USB y pertenecen a una
sola fuente de interrupcin del microcontrolador ColdFire V1. Para aclarar cada bit, es necesario
escribirlo a 1 una vez se haya atendido el evento de interrupcin. La Figura 53 muestra el registro
de estado de interrupcin.


Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 53


Figura 53. Registro de estado de interrupcin

STALL: Cuando el dispositivo est en modo objetivo (Target), este bit se pone a 1 cuando el SIE
(Serial Interface Engine) enva una seal de STALL. Cuando se est en modo HOST, este bit se
pone a 1 cuando el mdulo USB detecta una seal de STALL. Esta interrupcin puede ser usada
para determinar si la ltima transaccin USB fue completada con xito o si par (STALL).

ATTACH: Interrupcin por enganche. Este bit es puesto a 1 cuando el mdulo USB detecta un
enganche de un dispositivo USB. Esta seal slo ser vlida si el bit HOST_MODE_EN =1. esta
interrupcin indica que un perifrico est conectado y deber ser configurado.

RESUME: Este bit es puesto a 1 dependiendo de las seales DP/DM y puede ser usado como
una seal remota para despertar el dispositivo pegado al bus USB.

SLEEP: Este bit es puesto a 1 cuando el mdulo USB detecta un evento de modo vago (IDLE),
durante 3 milisegundos. Este temporizador es aclarado al detectarse actividad en el bus USB.

TOK_DNE: Este bit se pone a 1 cuando se ha completado el proceso actual de testigo (TOKEN).
El ncleo del ColdFire V1 deber leer, inmediatamente, el registro STAT para determinar el
terminal y el BD usados para el TOKEN. Aclarar este bit causa que el registro STAT sea borrado o
que el estado retenido del registro STAT sea almacenado en el registro STAT.

SOFT_TOK: Este bit se pone a 1 cuando mdulo USB recibe una seal de TOKEN de inicio de
trama (Start Of Frame).

ERROR: Este bit es puesto a 1 cuando alguna de las condiciones de error en el registro
ERR_STAT ocurre. El ncleo del ColdFire V1 deber leer, inmediatamente, el registro
ERR_STAT para determinar la fuente del error.

USB_RST: Este bit es puesto a 1 cuando el mdulo USB a decodificado un RESET vlido. La
accin anterior informa al microcontrolador que podr escribir un 0x00 dentro del registro de
direcciones y habilitar el terminal 0.

5.5.10. Registro de habilitacin de interrupciones (INT_ENB)

Contiene una serie de bits para habilitar cada fuente de interrupcin del mdulo USB. La Figura 54
muestra el registro de habilitacin de las interrupciones.


Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 54


Figura 54. Registro de habilitacin de interrupciones (INT_ENB)

STALL_EN: Bit para habilitar interrupcin por un evento tipo STALL.
0: Inhibe interrupcin por evento STALL.
1: Habilita interrupcin por evento STALL.

ATTACH_EN: Bit para habilitar interrupcin por un evento tipo ATTACH.
0: Inhibe interrupcin por evento ATTACH.
1: Habilita interrupcin por evento ATTACH.

RESUME_EN: Bit para habilitar interrupcin por un evento tipo RESUME.
0: Inhibe interrupcin por evento RESUME.
1: Habilita interrupcin por evento RESUME.

SLEEP_EN: Bit para habilitar interrupcin por un evento tipo SLEEP.
0: Inhibe interrupcin por evento SLEEP.
1: Habilita interrupcin por evento SLEEP.

TOK_DNE_EN: Bit para habilitar interrupcin por un evento tipo TOK_DNE.
0: Inhibe interrupcin por evento TOK_DNE.
1: Habilita interrupcin por evento TOK_DNE.

SOF_TOK_EN: Bit para habilitar interrupcin por un evento tipo SOF_TOK.
0: Inhibe interrupcin por evento SOF_TOK.
1: Habilita interrupcin por evento SOF_TOK.

ERROR_EN: Bit para habilitar interrupcin por un evento tipo ERROR.
0: Inhibe interrupcin por evento ERROR.
1: Habilita interrupcin por evento ERROR.

USB_RST_EN: Bit para habilitar interrupcin por un evento tipo USB_RST.
0: Inhibe interrupcin por evento USB_RST.
1: Habilita interrupcin por evento USB_RST.

5.5.11. Registro de estado de interrupcin por error (ERR_STAT)

Contiene una serie de bits para detectar cada fuente de interrupcin por error en el mdulo USB.
Todos estos bits conforman una OR alambrada y esta a su vez afecta el bit INT_STAT [ERROR].
Los bits pueden ser borrados escribiendo un 1 en estos. La Figura 55 muestra el registro de
deteccin de las interrupciones.


Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 55


Figura 55. Registro de estado de interrupcin por error (ERR_STAT)


BTS_ERR: Este bit se pone a 1 en la deteccin de error por evento de BIT
STUFF (Bit de relleno para sincrona).

DMA_ERR: Este bit se pone a 1 si el mdulo USB hace un requerimiento al DMA de la lectura
de un nuevo BDT, pero no fue posible obtener el dato desde el bus, tanto para lectura como para
escritura. Si se est procesando una transferencia tipo TX (IN), esta puede causar una condicin de
bajo-flujo (underflow). Si se est procesando una transferencia tipo RX (IN), esta puede causar una
condicin de sobreflujo (overflow). Este tipo de condicin es muy usada en el desarrollo de
arbitramiento de dispositivos, tanto para el microprocesador como para el mdulo USB. Lo anterior
minimiza la demanda en el requerimiento de bus y tiempos de inactividad muy grandes (grand
latency). Este bit tambin es puesto a 1 si un paquete de datos supera el tamao mximo
especificado en el BDT, para este caso la mquina trunca el paquete y lo almacena en el buffer de
memoria.

BTO_ERR: Este bit se pone a 1 en la deteccin de error por evento de un tiempo por fuera
(timeout) en la devolucin del bus (bus turnaround). El mdulo USB contiene un temporizador para
el bus turnaround.

DFN8: Este bit se pone a 1 si el campo del dato recibido no tiene 8 bits de longitud.

CRC16: Este bit se pone a 1 cuando un paquete es rechazado por un error en el chequeo cclico
redundante CRC16.

CRC5_EOF: Este bit tiene dos funciones: La primera es que si el Mdulo USB est operando en
modo perifrico (HOST_MODE_EN = 0) y se detecta un error de redundancia cclica tipo CRC5, el
bit se pone a 1. La segunda funcin es que si el mdulo est operando en modo HOST
(HOST_MODE_EN = 1) y se detecta un error por fin de trama (EOF), este bit se pone a 1. Este
tipo de interrupcin se usa en el software para el despacho de paquetes de informacin y garantizar
que no ocurran cruces en las transacciones, al comienzo de una nueva trama.

PID_ERR: Este bit se pone a 1 cuando el PID de una transaccin falla.

5.5.12. Registro de habilitacin de interrupcin por error (ERR_ENB)

Contiene una serie de bits para habilitar cada fuente de interrupcin por error en el mdulo USB.
Poniendo a 1 uno de estos bits, habilita la respectiva interrupcin en el registro ERR_STAT. La
Figura 56 muestra el registro de habilitacin de las interrupciones.


Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 56


Figura 56. Registro de habilitacin de interrupcin por error

BTS_ERR_EN: Bit para habilitar la interrupcin por evento de BTS_ERR.
0: Inhibe interrupcin por evento BTS_ERR.
1: Habilita interrupcin por evento BTS_ERR.

DMA_ERR_EN: Bit para habilitar la interrupcin por evento de DMA_ERR.
0: Inhibe interrupcin por evento DMA_ERR.
1: Habilita interrupcin por evento DMA_ERR.

BTO_ERR_EN: Bit para habilitar la interrupcin por evento de BTO_ERR.
0: Inhibe interrupcin por evento BTO_ERR.
1: Habilita interrupcin por evento BTO_ERR.

DFN8_EN: Bit para habilitar la interrupcin por evento de DFN8.
0: Inhibe interrupcin por evento DFN8_EN.
1: Habilita interrupcin por evento DFN8_EN.

CRC16_EN: Bit para habilitar la interrupcin por evento de CRC16.
0: Inhibe interrupcin por evento CRC16_EN.
1: Habilita interrupcin por evento CRC16_EN.

CRC5_EOF_EN: Bit para habilitar la interrupcin por evento de CRC5_EOF.
0: Inhibe interrupcin por evento CRC5_EOF.
1: Habilita interrupcin por evento CRC5_EOF.

PID_ERR_EN: Bit para habilitar la interrupcin por evento de PID_ERR.
0: Inhibe interrupcin por evento PID_ERR.
1: Habilita interrupcin por evento PID_ERR.















Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 57

Apndice

1. Mdulo Serial en la Familia HC908

Este modulo no se encuentra en el HC908QY4, pero se encuentra en la mayora de los MCUs de
la Familia HC908 [3] y [4].

1.1. Caractersticas

Full duplex, Alta Velocidad, asincrnico, programable de 8 o 9 bit de largo de caracter.
Dos mtodos de receiver wakeup.
Pedidos de Interrupcin separados para Rx y Tx.
Habilitacin separada del Transmisor y el Receptor.
Polaridad programable de la salida del Transmisor.
Operacin dirigida por INTS con ocho Flags de interrupcin.
Transmitter Empty
Transmission Complete
Receiver Full
Idle Receiver Input
Receiver Overrun
Noise Error
Framing Error
Parity Error
Modo de operacin Low power
Framing Error Detection en el receptor
Chequeo de Paridad por Hardware

1.2. Descripcin de la comunicacin serie [2]

Utiliza el sistema doble buffer. El flag SCTE se setea cada vez que un nuevo dato es transferido
desde el buffer TDR al shift register de transmisin serie. El flag SCRF se setea cada vez que un
nuevo dato es transferido desde el shift register al buffer RDR. El registro SCDR es un solo
registro que al escribirlo, se escribe el buffer TDRx y al leerlo, se lee el buffer RDRx.
Se pueden seleccionar 2 formatos de datos diferentes a transmitir, uno de ellos es de 8 bits,
donde hay un bit de inicio, un bit de stop y 8 bit de datos. El otro Formato es de 9 bits, con 1 bit de
inicio, un bit de stop, un bit de paridad extra u otro stop y 8 bit de datos.

Caracteres de Datos Especiales:

Break - No tiene bits de Start o Stop bits, existe como un cero lgico por un tiempo de 10 11
bit (Formato de Datos de 8 o 9 bits respectivamente)
Idle - No tiene bits de Start o Stop, existe como un uno lgico por un tiempo de 10 11 bit
(Formato de Datos de 8 o 9 bits respectivamente)
Prembulo - Un carcter idle de sincronismo




Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 58

1.3. Registros I/O del SCI

Siete registros I/O controlan y monitorean la operacin del SCI:

SCI Control Register 1 (SCC1)
SCI Control Register 2 (SCC2)
SCI Control Register 3 (SCC3)
SCI Status Register 1 (SCS1)
SCI Status Register 2 (SCS2)
SCI Data Register (SCDR)
SCI Baud Rate Register (SCBR)

El mdulo de SCI de la flia. HC908 tiene un mejor manejo automtico de la recepcin de
informacin serial con paridad (implementada por hardware interno), mayor velocidad de TX / RX
por medio de dos alternativas de Clocks de sincronismo (Fbus y External Clock) y hasta un mejor
manejo de comunicaciones serial del tipo Network o Red con mltiples nodos.

1.3.1. Registo SCI de Baud Rate

Este registro permite seleccionar el baud rate para el transmisor del SCI. Los bits SCI baud
rate prescaler (SCP1,SCP0) dividen la frecuencia del BUS (fBus) por un mltiplo de 64, 1, 3, 4,
o 13. Los bits SCI baud rate select bits (SCR2 - SCR0) permiten seleccionar el baud rate de
transmisin desde el prescaler output y dividen la frecuencia de la salida del preescalador por 1,
2, 4, 8, 16, 32, 64, o 128.


Figura 57. Registro de seleccin de tasa de baudios.

Para una frecuencia de BUS = 4,9152 MHz se pueden obtener los siguientes Baud rates:

Tabla 9. Configuracin de los bits SCR
Frecuencia de Bus = 4.9152 Mhz Mximo Baud Rate
(desde tabla prescalador )
SCR2 SCR1 SCR0 Divisor 76.80K Baud 19.20K Baud
0 0 0 1 76.80K Baud 19.20K Baud
0 0 1 2 38.40K Baud 9600 Baud
0 1 0 4 19.20K Baud 4800 Baud
0 1 1 8 9600 Baud 2400 Baud
1 0 0 16 4800 Baud 1200 Baud
1 0 1 32 2400 Baud 600 Baud
1 1 0 64 1200 Baud 300 Baud
1 1 1 128 600 Baud 150 Baud




Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 59

Tabla 10. Configuracin de los Bits SCP
SCP1 SCP0 Divisor Mximo Baud Rate
0 0 1 76.80K Baud
0 1 3 25.833K Baud
1 0 4 19.20K Baud
1 1 13 5.908K Baud

1.3.2. Registro de Interrupciones y de configuracin del Tx

El bit SCI Transmit Interrupt Enable (SCTIE) produce una interrupcin cuando el registro
de datos Tx queda vaco. El prximo byte puede ser cargado en el registro de datos Tx.
1 = Habilita interrupcin
0 = Deshabilita interrupcin

El bit Transmission Complete Interrupt Enable (TCIE) produce una interrupcin cuando Tx
est Completa. Un byte ha sido enviado.
1 = Habilita interrupcin
0 = Deshabilita interrupcin

El bit Transmitter Enable (TE) habilita la operacin de TX y enva un prembulo.
1 = Habilita el transmisor
0 = Deshabilita el transmisor

El bit SCI Enable (ENSCI) habilita al SCI y al generador de baud rate SCI y permite al SCI
ser deshabilitado para baja potencia.
1 = SCI habilitado
0 = SCI deshabilitado

El bit Character Length Select (M)
1 = Caracteres SCI de 9-bit
0 = Caracteres SCI de 8-bit

El bit Parity Enable (PEN)
1 = habilitado
0 = Deshabilitado

El bit Parity Type (PTY)
1 = paridad impar
0 = paridad par

Con los 3 ltimos bits (M,PEN, PTY), en el mdulo de SCI, se puede setear el largo del
caracter, si lleva paridad o no y de qu tipo, y si se utiliza 1 o 2 bits de stop.
Se debe destacar que, en los mdulos de SCI de los MCUs HC908, cuando se trabaja con
paridad (par impar), la misma es generada (en la TX) y decodificada (en la RX) en forma
automtica por el mismo.


Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 60

Figura 58. Registro SCC1


Figura 59. Registro SCC2

Tabla 11. Seleccin del largo de caracter









1.3.3. SCI Status Register 1 (SCS1)


Figura 60. Flags de estado del transmisor.

El SCI Transmitter Empty (SCTE) indica que el contenido del registro de datos SCI ha sido
movido al serial shift register Tx. Este bit es limpiado por la lectura del SCS1 seguida de la
escritura del SCDR.
1 = Data register vaco
0 = Data register no vaco

El Transmission Complete (TC) indica que el SCDR est vaco y no hay transmisin en
progreso. Este bit es limpiado por la lectura del SCS1 seguida de la escritura del SCDR
1 = No hay transmisin en progreso
0 = Transmisin en progreso

1.3.4. SCI Data Register (SCDR)


Figura 61. Registro de Datos SCI.

M PEN PTY Character Length
0 0 x 1 start + 8 (7) data + 1 (2) stop
1 0 x 1 start + 9 (8) data + 1 (2) stop
0 1 0 1 start + 7 data + Even +1 stop
0 1 1 1 start + 7 data + Odd +1 stop
1 1 0 1 start + 8 data + Even +1 stop
1 1 1 1 start + 8 data + Odd +1 stop

Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 61

Tiene Buffers de datos para el shift Register TX/RX. En el SCDR se escriben datos a ser
transmitidos. Inicia la operacin de transmisin.

1.3.5. SCI Status Register 2 (SCS2)


Figura 62. Registro de Estado 2.

El Status Register 2 tiene 2 bits, el bit Break (BKF) Seteado cuando se detecta un break
character. Se limpia por lectura del SCS2 luego de leer el SCDR y el bit Reception in Progress
(RPF) Seteado durante la bsqueda del start bitReseteado despus de se detecta un bit de stop
o falsos bit de start.
























Descripcin General de un Microcontrolador (Mdulos de Comunicacin) Pgina 62

Referencias.

[1] Douglas H. Summerville, Embedded Systems Interfacing for Engineers using the Freescale
HCS08 Microcontroller II: Digital and Analog Hardware Interfacing, State University of New
York at Binghamton, Morgan y Claypool Publishers, 2009.
[2] Data sheet: MC68HC908QY4 Microcontrolers, Rev. 5, 07/2005
[3] Daniel Di Lella, Curso de Microcontroladores HC908, Electrocomponentes S.A., 2005
[4] MCF51JM128 ColdFire Integrated Microcontroller Reference Manual. Freescale
Semiconductor. Rev 1, 2008.
[5] Microcontroller MCF51JM128 ColdFire Data Sheet. Freescale Semiconductor. Rev 0, 2008.
[6] OpenHCI for USB, Compaq, Microsoft, National Semiconductor, septiembre de 1999.
[7] Axelson, Jan. USB Complete, Segunda edicin, USA. 2001.
[8] Jan Axelson, Serial Port Complete, tercera edicin, Madison, Lakeview research, 2007.

Potrebbero piacerti anche