Diferencia entre revisiones de «SCI (Interfaz de Comunicación Serial) - MC9S08QE128»

De Wikitronica
Saltar a: navegación, buscar
(SCIxD)
(En Lenguaje C)
Línea 173: Línea 173:
  
 
void Transmitir_dato(byte dato)    // Se ejecuta la transmisión de dato por encuesta
 
void Transmitir_dato(byte dato)    // Se ejecuta la transmisión de dato por encuesta
  {
+
  {   byte bandera;
 
     while (SCI1S1_TDRE == 0);  // No finaliza ciclo hasta que esté libre el registro en el que se guardará el dato que se enviará   
 
     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
 
         bandera= SCI1S1; // Aclara la bandera

Revisión del 11:57 12 nov 2012

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 

Configura las opciones de soporte LIN y supervisa la actividad del receptor.

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  

Escribe: Recepción (Rx) de dato; Escribe: Transmisión (Rx) de dato.

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

Se en carga de ejecutar la transmisión de dato por encuesta, es decir se queda esperando hasta que transmita un dato, para luego salir del ciclo, enviar por el puerto el dato y finalmente limpiar la bandera, para volver a transmitir.

En Assembler


Prueba

En Lenguaje C


void Transmitir_dato(byte dato)    // Se ejecuta la transmisión de dato por encuesta
 {   byte bandera;
     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

Se en carga de ejecutar la recepción de dato por encuesta, es decir se queda esperando hasta que reciba un dato, para luego salir del ciclo, enviar el dato por el puerto y finalmente limpiar las banderas, para volver a recibir.

En Assembler


Prueba

En Lenguaje C

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

</source>

Referencias

1.Reference Manual. Freescale

Bibliografía

Texto


Ángel Diaz y Rhayza Rodríguez