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.

TL16C750: TL16C750 BAUDOUT Problem after writing divisor value 0x000C

Expert 8760 points
Part Number: TL16C750
Other Parts Discussed in Thread: TL16C752C

Hi team,

My customer asks us whether TL16C750 has writing sequence regading DLM and DLL.
Please let me know it.

The customer's evaluation results are bellow.

Wnen the customer writes divisor value 0x000C fist to DLM then to DLL, output from BAUDOUT sometimes
does not come out. When the customer wrote divisor value 0x000C first to DLL then to DLM, corret output
from BAUDOUT always comes out.

①first to DLM then to DLL → BAUDOUT sometimes NG

  The writing sequence is bellow:

    LCR b(1)=1, b(0)=1
    LCR b(7)=1

    DLM 0x00
    DLL 0x0c

    FCR b(2)=1, b(1)=1, b(0)=1
    LCR b(7)=0
    MCR b(1)=1
    MCR b(2)=1
    IER b(2)=1, b(0)=1

②first to DLL then to DLM → BAUDOUT always OK

  The writing sequence is bellow:

    LCR b(1)=1, b(0)=1
    LCR b(7)=1

    DLL 0x0c
    DLM 0x00

    FCR b(2)=1, b(1)=1, b(0)=1
    LCR b(7)=0
    MCR b(1)=1
    MCR b(2)=1
    IER b(2)=1, b(0)=1

Best regards,
Fumio Nakano

  • This sounds as if only writing to DLM latches the entire 16-bit value. This would contradict the datasheet:

    When either of the divisor latches is loaded, a 16-bit baud counter is also loaded to prevent long counts on initial load.

  • Ladisch-san,

    Thank you for your prompt reply.
    And sorry for my misleading expression.

    I have rewritten the title and content, so please read the following rewritten content.


    My customer asks us whether TL16C750 has writing sequence regarding to DLM and DLL.
    Please let me know it.

    The customer's evaluation results are bellow:

    When the customer writes first 0x00 to DLM then 0x0C to DLL as divisor value 0x000C,
    output from BAUDOUT sometimes does not come out.
    When the customer writes first 0x0C to DLL then 0x00 to DLM as divisor value 0x000C,
    corret output from BAUDOUT always comes out.

    ①first 0x00 to DLM, then 0x0C to DLL → BAUDOUT sometimes NG

      The writing sequence is bellow:

        LCR b(1)=1, b(0)=1
        LCR b(7)=1

        DLM 0x00
        DLL 0x0c

        FCR b(2)=1, b(1)=1, b(0)=1
        LCR b(7)=0
        MCR b(1)=1
        MCR b(2)=1
        IER b(2)=1, b(0)=1

        note:  When BAOUOUT does not come out, the customer confirms that the correct value
                   0x000C is written in the register

    ②first 0x0C to DLL, then 0x00 to DLM → BAUDOUT always OK

      The writing sequence is bellow:

        LCR b(1)=1, b(0)=1
        LCR b(7)=1

        DLL 0x0c
        DLM 0x00

        FCR b(2)=1, b(1)=1, b(0)=1
        LCR b(7)=0
        MCR b(1)=1
        MCR b(2)=1
        IER b(2)=1, b(0)=1


    Best regards,
    Fumio Nakano

  • Ladisch-san,

    Thank you for your cooperation.

    I got the following information from the customer.

    ・There are many samples that have the same phenomena.
    ・There is no sequence problem for divisor value 0x0003.

    So, I think TL16C750 has DLM/DLL writing sequence as to divisor value 0x000C.

    The customer must report measures to end users.
    So, we hope to receive your answer as soon as possible.

    Best regards,
    Fumio Nakano

  • Either the device requires the DLL/DLM sequence, or there is something wrong with the software/hardware that does the writes.
    But I'm not a TI employee, nor have I information about the actual application, so I fear I cannot help you.
  • Ladisch-san,

    Thank you for your answer.

    Best regards,
    Fumio Nakano
  • This devices need to have a sequence for they registers, because sometimes they have some issues as you said. In this case is necessary to load first DLL and next DLM. If you can, please check version TL16C752C on page 45, this datasheet include some examples and a flux diagram regarding of a sequence to program the UART. In case of this version, DLM is DLH.

    Regards
    Francisco