On Tue, Sep 21, 2010 at 11:52 PM, David Pedersen <signitary@...> wrote:
> We have to write the first byte with a wakeup bit set, basically mark
> parity, and then the rest of the message must be sent with space parity.
> From 2 or 3 bytes, up to 20 or 30 bytes total in each message. The first
> byte is being sent independently, then the rest of the stream is sent with a
> single write() call, however, surprisingly, the inter-character delay is
> greater with the multiple-byte write! Strange. We're seeing about 14.5ms
> on the single byte, mark parity write, and 15ms delay between the bytes sent
Are you sending 7-bit characters with parity? If so, then you may want
to configure the uart to send 8-bit characters with no parity and
calculate the parity yourself using a lookup table.
I'm not familiar with the OMAP UARTs, but all of the UARTs I've worked
with will send a FIFO worth of data completely in HW. I guess you
might have to look into the driver to figure out what's going on.
If you're changing the parity settings, I would expect that it needs
to allow the FIFO to drain before changing settings. It's also
possible that if the HW doesn't support mark/space parity it might be
doing something funky in the driver.
It's also possible that the FIFO might not be enabled.
Shuswap, BC, Canada