Hello,
I recently had my butt kicked by the TL16C2752 DUART. I could not get it to work on the Steckschwein, despite having used a 16C550 for over 10 years without any problems. The DUART kept receiving corrupted bytes. After 2 months of pulling my teeth and hair and whatnot, I finally found an errata document by TI, describing a known flaw in the TL26C2752 and related UARTs with 64 byte FIFOs.
I documented my experience here, may it save someone's time: https://www.steckschwein.de/post/2026/0 ... e-trouble/
Beware of the TL16C2752 DUART
-
ArnoldLayne
- Posts: 109
- Joined: 28 Dec 2014
- Location: Munich, Germany
- Contact:
- BigDumbDinosaur
- Posts: 9425
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: Beware of the TL16C2752 DUART
ArnoldLayne wrote:
I recently had my butt kicked by the TL16C2752 DUART. I could not get it to work on the Steckschwein, despite having used a 16C550 for over 10 years without any problems. The DUART kept receiving corrupted bytes. After 2 months of pulling my teeth and hair and whatnot, I finally found an errata document by TI, describing a known flaw in the TL26C2752 and related UARTs with 64 byte FIFOs.
Quote:
TI classifies the severity of this behaviour as “moderate”.
Quote:
A suggested workaround is to use 1.5 oder (sic) 2 stop bits.
Quote:
Throwing the TL16C2752 in the bin and use a 16C2552 instead will very certainly work, too.
Maxlinear’s ST16C2550 appears to be a suitable substitute and I couldn’t find any errata sheet for it.
BTW, what frequency are you using to drive the DUART? It appears from TI’s bit rate tables a higher frequency tends to produce smaller timing errors. I’ve always run the NXP devices at 3.6864 MHz, which produces negligible errors with the odd-ball bit rates. The 2550/2552/2752 appears to support 7.3728 MHz and 14.7456 MHz, either which would give you more granular timing to deal with runt stop bits.
Last edited by BigDumbDinosaur on Wed Feb 25, 2026 4:37 pm, edited 1 time in total.
x86? We ain't got no x86. We don't NEED no stinking x86!
-
ArnoldLayne
- Posts: 109
- Joined: 28 Dec 2014
- Location: Munich, Germany
- Contact:
Re: Beware of the TL16C2752 DUART
The TL16C2552 is not mentioned in the errata document, so it should be ok. I'm going to find out.
- BigDumbDinosaur
- Posts: 9425
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: Beware of the TL16C2752 DUART
ArnoldLayne wrote:
The TL16C2552 is not mentioned in the errata document, so it should be ok. I'm going to find out.
I looked at Maxlinear’s offerings and noticed that while they have listed the 16C2552, the data sheet says it isn’t in production any more and it should not be used in new designs. Caveat emptor, my friend!
x86? We ain't got no x86. We don't NEED no stinking x86!
-
ArnoldLayne
- Posts: 109
- Joined: 28 Dec 2014
- Location: Munich, Germany
- Contact:
Re: Beware of the TL16C2752 DUART
Yep, everyone but TI seems to have retired them.
- BigDumbDinosaur
- Posts: 9425
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: Beware of the TL16C2752 DUART
ArnoldLayne wrote:
Yep, everyone but TI seems to have retired them.
x86? We ain't got no x86. We don't NEED no stinking x86!
Re: Beware of the TL16C2752 DUART
Could be retiring some old process line.
- BigDumbDinosaur
- Posts: 9425
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: Beware of the TL16C2752 DUART
BigEd wrote:
Could be retiring some old process line.
One thing about the 16Cxxx universe is that it has really expanded. There are seemingly-countless versions of the basic device, ranging from the broken 16C450 and 16C550 (prior to A-suffixed) parts, to four- and eight-channel devices. Unfortunately, none has a timer like that of the NXP 26xx/28xx parts.
As I optimistically look forward to developing my POC hardware to increasing capability (assuming my own “timer” doesn’t run out anytime soon), I am thinking about what to do in future designs with serial hardware. If I switch to a 16Cxxx device, I will need something to replace the 28L92’s timer so I have a jiffy IRQ source and a HPET (I use the timer in POC V1.3’s second DUART as the HPET). A somewhat-cursory search for something suitable for a PIT either turns up the old Intel parts, which are too slow to work with modern 65xx hardware, or timers that are integral to an MCU.
I’ve thought about making a PIT from a GAL, but GALs generally lack the needed logic fabric—and I shudder at the thought of devoting a CPLD just to act as a timer. I’ll have to resolve this at some point.
x86? We ain't got no x86. We don't NEED no stinking x86!
Re: Beware of the TL16C2752 DUART
Could you use a 65C22 for your PIT?
- BigDumbDinosaur
- Posts: 9425
- Joined: 28 May 2009
- Location: Midwestern USA (JB Pritzker’s dystopia)
- Contact:
Re: Beware of the TL16C2752 DUART
Sean wrote:
Could you use a 65C22 for your PIT?
x86? We ain't got no x86. We don't NEED no stinking x86!
-
ArnoldLayne
- Posts: 109
- Joined: 28 Dec 2014
- Location: Munich, Germany
- Contact:
Re: Beware of the TL16C2752 DUART
ArnoldLayne wrote:
The TL16C2552 is not mentioned in the errata document, so it should be ok. I'm going to find out.