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.

TL16C754C: Errors at 300,N,8,1 and errors at any baud rate with E,7,1

Part Number: TL16C754C
Other Parts Discussed in Thread: MAX3243, TM4C1294KCPDT, TL16C554A

Hi,

I am using the TL16C754CPM device, where its Channels A & B are going out to a DB9 connector (through a MAX3243), Channels C & D are going to two UART channels of the TI TM4C1294KCPDT Serial to Ethernet device. The 16C754 device is controlled by a PIC16F887 device.

After repeated efforts in trying to resolve the error issues, to keep the set up as simple as possible, I have it now such that data is received on Channel B and sent out on Channel A.

Channels A & B are connected directly to the serial ports on 2 different computers.

I am using only the POLLED mode without any Interrupts.

The PIC is having an instruction cycle time of 325ns (12.288MHz) and the 16C754 is using a 6.144MHz crystal.

HyperTerminal is running on both computers, both computers and both Channels A & B set to the same baud rate, parity, stop bits etc.

I send data from PC-1 to Channel B, the PIC reads from Channel B and writes in to Channel A, which is received by PC-2 and displayed on the HyperTerminal screen.

When we manually type the data - keep a key pressed for continuous repeated sending of the same key - we do not face any errors at any baud rate or parity / 7 or 8 bits / stop bit combinations.

Whatever is typed on PC-1 appears on PC-2 without any errors.

But, when we use a program to send a line of characters (max 30), then the problem starts.

Errors start appearing at 300,N,8,1,whereas 1200,N,8,1 up to 19200,N,8,1 works without any errors. (We only need from 300 to 19200)

Errors appear at any baud rate when using 7 bits and Odd or Even parity.

The setting of the DLL / DLH / LCR are correct, verified by reading all the registers.

Whether the RX FIFO is disabled or Enabled with trigger level at any of the 4 settings, the result is the same.

Option 1 was to read from Channel B, write into Channel A, byte by byte - same result as above

Option 2 was to read from Channel B, store in memory, until a time out (no data) for about 0.5 sec and then read from memory and send these characters out on Channel A - same result as above.

Replaced the TL16C754CPM device - same result. These TL16C754CPM devices were received as samples directly from TI.

So, what else information do you need from me ?

How or where do I look for a problem ?

Character by character with manual typing does not give any problem - so, there is no error in setting the registers of the device or read / write.

But when characters are sent continuously by a program, there seems to be some timing issue.

HELP !

  • Hello Shashidhar,

    Can you tell me what exactly is the error you are seeing using lower baud rates? (Example, you receive 0xAA on CHB and expect to send 0xAA on CHA but instead send 0xAB)

    Are you able to measure the bit period on what you are sending and receiving for PC1, PC2, and our device? We may want to see how different each side's baudrate is and modify our UART device to be more accurate to the PC's or vice versa.

    Have you tried adding in 2 stop bits instead of 1? I ask because this device does have a stop bit errata:

    Thanks,

    -Bobby

  • Hi Bobby,

    Yes, the 2 stop bits with 300 baud works properly.

    Also, after a more thorough test with all combinations, we find that all parity & data / stop bit combinations also work properly from 19200 baud to 1200 baud.

    However, I found that the none of the error flags were being set even when I was getting the errors at 300,N,8,1.

    I understand the reason for the errors now, but asking our customers to use 2 Stop bits instead of 1 is not an option for us !

    Does the TL16C554A have any such similar or other problems for baud rate / parity / data & stop bits combinations ?

    Thanks

    Shashi

  • Hey Shashi,

    "Does the TL16C554A have any such similar or other problems for baud rate / parity / data & stop bits combinations ?"

    This is a bit of a tricky question for us. I do not know the older device's history.

    My understanding is that the 554A does not share the same intellectual property as the 754C so I do not think it has the same framing issue the C version.

    Because C version has a framing/sync problem. Is it possible for you to make the C version's baudrate slightly faster to lower the timing on the sync bits? (decrease DLL value by 1 or 2)?

    Thanks,

    -Bobby

  • Hi Bobby,

    We changed the device to TL16CP554A and we did not find any problems !

    So, we will just start using the 554A instead of the 754C device.