This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TL16C550DPTR asynchronous communications element receive issue

Hi all

when using TL16C550DPTR to implement UART function

device crystal is 14.7456MHz. connect BAUDOUT pin and RCLK pin directly.

I set the registers by the following sequence and value:

IER = 0x00

IIR =  0x01

FCR = 0x00

*LCR = 0x83

MCR = 0x00

LSR = 0x60

MSR = 0x00

SCR = 0x1B

(set baud rate 19200)

*DLL = 0x30

*DLM = 0x00

*LCR = 0x03

Actually I only modified registers with * mark above .The others remain power on default value.

I connected TL16C550DPTR with a RS-232 transceivers to PC's RS-232 port.

Then start to transmit data to PC and PC received correct data at its RS232 port.

But TL16C550DPTR received nothing from PC's response.I porobe the BAUDOUT pin appear a 3.686 MHz frequency

It is not match with datasheet(16× baud rate clock for the receiver).I tried to modify DLL and DLM again but BAUDOUT still remain the same frequency.

Did I miss something to set with registers? Any suggest setting?

When will BAUDOUT be affected by new DLM & DLL value?immediately or need to be something triggered?

Thanks

  • Hello,

    You don't need to write any other register. Are you sure that you are accessing to the divisor latch registers? Could you describe the configuring process? .

    Best regards,
    Diego.
  • Hi Diego

    When TL16C550DPTR power on I modified LCR = 0x83 (set 8 bit mode and enable DLAB)

    then config DLL = 0x30 DLM = 0x00 (set baud rate 19200. my crystal is 14.7456MHz )

    finally  set LCR = 0x03(disable DLAB) and start to read/write  RBR / THR

    after configuring registers as I described above. transmiting data from TL16C550DPTR  to PC works fine.

    This means the baud rate configuration is correct . Why BAUDOUT still output a incorrect frequency?