El puerto serie: UART 8250.

Parte 7: Baud Rate Generator. Reset.

 
EL B.R.G. (BAUD RATE GENERATOR)

El BRG genera las señales de reloj para el funcionamiento de la UART, permitiendo los ratios de transferencia del estándar ANSI/CCITT. Se puede conectar un cristal a XTAL1 y XTAL2 ó una señal de reloj a XTAL1. La salida -BAUDOUT puede excitar la línea XTAL1 de otro 8250.

 La velocidad es determinada por los registros DLL y DLM almacenando un valor divisor de la frecuencia del reloj conectado al 8250.

El resultado debe ser 16 veces mayor que la frecuencia en baudios deseada, ya que el 8250 utiliza 16 pulsos de reloj para cada bit. El siguiente cuadro resume los valores que hay que asignar al divisor para lograr las frecuencias más usuales con los cristales más comunes.

RESET DEL 8250

     Tras dar corriente al 8250 hay que tenerlo unos 500 ns con MR alto para resetearlo. Un nivel alto en MR provoca:

  1. Se inicializan los contadores internos de transmisión y recepción.
  2. Se limpia el LSR salvo en sus bits TEMT y THRE (que son puestos a 1). MCR, todas las líneas discretas, elementos de memoria y demás son puestos a 0. DLL y DLM, RBR y THR no son afectados.

     Tras el reset (MR llevado a estado bajo) el 8250 permanece en estado inactivo hasta ser programado. Un reset hardware activa THRE y TEMT: cuando las interrupciones sean habilitadas, THRE provocará una.

     Por software se puede forzar al 8250 a retornar a un estado totalmente conocido. Dicho reset consiste en escribir el LCR, DLL y DLM, así como MCR. LSR y RBR deberían ser leídos antes de habilitar las interrupciones para borrar cualquier información residual (datos o estado) de las operaciones anteriores.

© 2007
Todos los derechos reservados