SCI (Interfaz de Comunicación Serial) - MC9S08QE128

De Wikitronica
Revisión del 23:45 11 nov 2012 de Misato (Discusión | contribuciones) (En Lenguaje C)

Saltar a: navegación, buscar

Uso y Configuración para la recepción / transmisión serial para el MC9S08QE128

Texto---------------------------Imagen En construcción

Características Generales del SCI

Características del módulo SCI incluyen:[Ref. Reference Manual]

  • Formato Full-duplex, estándar sin retorno a cero (NRZ).
  • Doble buffer de transmisión y el recepción con habilitadores separados.
  • Tasas de baudios programables (13-bits).
  • Opera por Interrupciones o por encuesta las siguientes actividades:

- Transmisión registro de datos y registros completos.

- Recepción de registros de datos completos.

- Recepción de desbordamiento(carry) , error de paridad, error de framing y error de ruido.

- Recepción de inactividad.

- Pin receptor de flanco activo.

- Detección de banderas.

  • Hardware de generación y comprobación de paridad.
  • Programable a 8-bits o 9-bits de caracteres de longitud.
  • Receptor de activación por línea libre o marca de dirección.
  • Opcionales: Generación de salto de carácter de 13-bit / Detección de saltos de carácter de 11-bit.
  • Transmisor de polaridad de salida seleccionable.

Inicializaciones Generales del SCI

Texto---------------------------Imagen

En Assembler


Prueba


En Lenguaje C


Prueba

Registros SCI

Los Registros del SCI son de 8-bits. Cada registro tiene características para la configuración del puerto serial dependiendo de cómo se desea trabajar con él.

Texto---------------------------TABLAS

SCIxBDH

SCIxBDL

SCIxC1

SCIxC2

SCIxS1

SCIxS2

 7-LBKDIF   6-RXEDGIF    ////    4-RXINV   3-RWUID   2-BRK13   1-LBKDE   0-RAF 

SCIxC3

   7-R8       6-T8     5-TXDIR   4-TXINV   3-ORIE   2-NEIE   1-FEIE   0-PEIE 


SCIxD

EL registro SCIxD se utiliza para recibir o transmitir un dato por el puerto serial. Para más detalles ver la sección de Inicializaciones Generales del SCI de este mismo artículo.

  7-R7/T7     6-R6/T6     5-R5/T5     4-R4/T4     3-R3/T3     2-R2/T2     1-R1/T1     0-R0/T0  

Serial por Interrupciones

Texto---------------------------Imagen


Transmisión

En Assembler


Prueba


En Lenguaje C


Prueba


Recepción

En Assembler


Prueba


En Lenguaje C


Prueba

Serial por Encuesta

Texto---------------------------Imagen

Transmisión

En Assembler


Prueba

En Lenguaje C


void Transmitir_dato(byte dato)    // Se ejecuta la transmisión de dato por encuesta
 {
     while (SCI1S1_TDRE == 0);   // No finaliza ciclo hasta que esté libre el registro en el que se guardará el dato que se enviará  
         bandera= SCI1S1;	// Aclara la bandera
   	 SCI1D = dato;         // Enviando dato 
 }

Recepción

En Assembler


Prueba

En Lenguaje C

<source lang = "C">
 
byte Recibir_dato(void)         //Se ejecuta la recepcion de dato por encuesta
 {   byte dato; 
     while (SCI1S1_RDRF == 0); // No finaliza ciclo hasta que esté listo el dato 
	   bandera= SCI1S1;  // Aclara la bandera 
	   dato = SCI1D;    // Se Salva el dato 
           return dato;    // Retorna dato
 }

</source>

Referencias

1.Reference Manual. Freescale

Bibliografía

Texto


Ángel Diaz y Rhayza Rodríguez