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.

TL16C752C: UART setting

Part Number: TL16C752C
Other Parts Discussed in Thread: TL16C752D

Hi all

Would you mind if we ask TL16C752C?
Our customer would like to use UART controller TL16C752C with following condtions;

<Condition>
Baud rate : 1200bps
Rength to be transmitted or received : 8bit
Parity : Even
Stop : 2bit
Vcc : 5.0V
Input clock : 24MHz(±10ppm)

And then, register settings are as follows;

<Register setting>
IER:0x01(in case of tranmission : 0x03)
FCR:0x31
LCR:0x1F
MCR:0x08
DLL/DLH:
1200bps:0x04E2
EFR:0x10

As our customer's problem, in case of receiving, it occurs parity error.
Our customer confirmed the wave form, it seems that there is no problem.
And then,  using the same conditon, it is possible to receive the data without parity error using CPU.
So, if you have some advice, could you let us know?(Divide setting,,, stuff)

We need your help.

Kind regards,

Hirotaka Matsumoto

  • Hey Hirotaka-San,

    I want to to make sure I understand the error you are seeing here. You are saying you have a device (not the same UART device) sending a message but the TL16C752C flags an interrupt because it thinks there is a parity error.

    This same UART device seems to be able to send data correctly but will flag parity errors when it receives.

    May I ask what you see in IIR? Also what is in LSR?

    The DLL/DLH look correct to me but you may want to try 0x04E1..... There seems to be some errata with this device which suggests this as a work around because the device could possibly miss a start bit if it receives a shorter stop bit than it expects.

    One thing I would suggest is you try to move the customer from this device and into the TL16C752D as it should not experience this errata (This could very likely be the issue here).

    Thanks,

    -Bobby

  • Bobby san

    Thank you for your reply!

    I want to to make sure I understand the error you are seeing here.
    You are saying you have a device (not the same UART device) sending a message but the TL16C752C flags an interrupt because it thinks there is a parity error.
    ->Yes, your recognition is correct. 
       In case of CPU(send) -> TL16C752C(receive) : there is a parity error.
       In case of CPU(send) -> CPU(receive) : there is no problem.

    OK, we will check registers IIR and LSR and will feed back you.
    After that, we informed that we want the customer to try 0x04E1 of DLL/DLH.

    Kind regards,

    Hirotaka Matsumoto

  • Bobby san

    And then, we have additional information for you.
    The customer tried to set 0x04E1 of DLL, although the frequency of occurrence decreases, the parity error didn't disappear absolutely.
    The customer uses MCU with FROM, that's why, they could not confirm IIR and LSR perfectly.
    Only they could bit1, 2 and 3 of LSR.  
    -BIT1 : 0
    -BIT2 : 1
    -BIT3 : 0
    As the conclusion, it seems that TL16C752C can't catch parity bit.
    Stop bit is 2bit, it seems that there is framming error.

    Kind regards,

    Hirotaka Matsumoto

  • Hirotaka San,

    Is it possible to move the customer from the TL16C752C to the TL16C752D?

    If not, they can try lowering the divisor value again (seeing as doing so before seemed to of helped). 0x04CD is the value which is 1.75% difference between the true 16xbaud rate(1200bps) of 0x04E2. Typically want a value which is no greater than 4% but I chose 1.75% to give us more room for margin. I would probably start from the 0x04E2 value and work my way down to 0x04CD checking the percentage of correct before immediately jumping to 0x04CD.

    Thanks,

    -Bobby

  • Bobby san

    Thank you for your reply!

    Is it possible to move the customer from the TL16C752C to the TL16C752D?
    ->Yes, we encourage to our customer to move the customer from the TL16C752C to the TL16C752D.
       We guess that our customer will evalute TL16C752D.

    Kind regards,

    Hirotaka Matsumoto

  • Bobby san

    Thank you for your support always.

    We have one question about TL16C752C.

    <Condition>
    Baud rate : XXXXX
    Rength to be transmitted or received : 8bit
    Parity : Even
    Stop : 2bit
    Vcc : 5.0V
    Input clock : 24MHz(±10ppm)

    Which does the error intend to occur baud rate with lower or high?
    Because, our customer used it(TL16C752C) with high baud rate.
    How much is the low baud rate with no error?

    Kind regards

    Hirotaka Matsumoto

  • Hey Hirotaka,

    I don't have data on which baud rates are worse for this errata but I suspect the error to get worse with more data sent (without pauses) rather than with speed. For example, if you send 10 bytes of data versus 30 bytes then it will more likely occur during the case with 30 bytes. This is because the error will build up (UART will start sampling later and later until it is out of sync).

    -Bobby