So I've got a 28L92 UART wired in now, pretty much following BigDumbDinosaur's guide and using his init code, but I'm having some problems. Initially I was just trying to blast out a stream of 'J' at 115.2k bps, and although I could see the bits clocking out on the Tx line my PC (using a USB<->TTL serial dongle) wasn't showing squat except maybe the occasional garbage character. On rare occasions I would see a small burst of Js and then nothing. Nothing I could do would make it happen on demand though.
After a LOT of fiddling I decided to drop down to 9600 bps, and at that point I got my Js....mostly. Interspersed with them were random garbage chars, almost exclusively $F0 or $FF bytes, and one or two $F5 bytes. They would pop up every few dozen bytes and were seemingly randomly distributed.
Next, I decided to eliminate the SBC's role almost entirely and changed the init code to put the UART into automatic echo mode. It seems to work fine at 9600 bps, but I did not push enough bytes through fast enough to trigger the glitches, I think. At 115.k bps I still get nothing, and in fact based on the lights on the serial dongle it looks like the UART isn't even receiving because the transmit light is not blinking at all.
After all this I finally decided to program the UART to output its transmit clock on one of the OPx pins, and that's when I noticed the issue...when set at 115.2k bps the transmit clock is actually closer to 120k bps. At 9600 bps it's almost spot-on but I suspect it's got some occasional glitching that is causing the garbage characters.
The input clock is 3.6864 MHz from a half-can crystal oscillator. The UARTs are ebay buys but both were still sealed in pick-and-place tape. Power is 5V from my bench power supply and the input power seems stable. Everything also has bypass caps, etc. I've swapped out both the oscillator and the UART itself to no avail
I'm attaching jpegs of the input clock and serial clock waveforms; I can print up some schematics too but they're largely unremarkable and I don't think this is a wiring issue.
Has anyone seen something like this before?