TL16C550 UART no transmite, el baudout es permanentemente alto

1

Tengo un TL16C550CIFN UART conectado a un MC68000 softcore en un FPGA.

El UART parece estar funcionando correctamente porque puedo escribir los registros (estoy alternando OUT1 y OUT2, etc.) pero el pin de baudout está constantemente alto y el indicador de vacío del transmisor nunca se borra. Supongo que el generador de baudios no funciona o me estoy perdiendo algo más. He probado algunos cristales externos y parecen que oscilan correctamente (puedo ver el reloj a través de mi analizador lógico) y he intentado conectar la entrada del reloj a un reloj generado desde el FPGA. En ambos casos, baudout es constantemente alto, la bandera vacía del transmisor nunca se borra y nada parece transmitirse.

He probado unos 8 chips diferentes ... así que, a menos que tenga un lote realmente malo, no creo que sea un problema con el UART. Pensé que podría ser que el UART deshabilite el generador de baudios cuando las señales de detección del operador no son correctas, así que conecté todo en la placa para que pareciera un módem nulo. Todavía no hay alegría. :(

    
pregunta user1104505

1 respuesta

1

Causas posibles:

El pin MR es alto (reinicio maestro)
¿Has puesto tu alcance en el pin MR? Esto debería ser bajo para el funcionamiento normal.

El generador de velocidad en baudios tiene un valor ilegal
¿Has verificado que los valores escritos en el BRG?

El pin BAUDOUT se está colocando alto. ¿Está seguro de que el pin BRG no tiene un cortocircuito?

El UART ciertamente no desactiva el BRG dependiendo de ninguna de las señales de control del módem. O bien el oscilador no se está ejecutando (y usted declara que sí lo está) o el BRG está en reinicio, o el pin es impulsado externamente alto / bajo.     

respondido por el Jason Morgan

Lea otras preguntas en las etiquetas