I am using an external clock to transmit serial data from a VC33 to a
CPU but it is occasionally loosing a data word. The XSR EMPTY bit 3
of the serial port global control register seems to stay low all the
time (ie transmit shift register empty) even if I stop the external
clock and load the serial output port buffer with a new word then the
XSR Empty bit stays low. I'm using this bit to determine when the CPU
has clocked the data out of the DSP so the DSP can load a new
transmit word but it never goes to a 1 so never stops the DSP
transmitting even if the previous word wasn't clocked out by the CPU.
I've designed a unit which is in production so I need to resolve
this problem ASAP. I can get over it by redesigning the handshaking
and maybe using the TXD ready (bit 1 of the control reg) or a spare
port so its not the end of the world but it would use a few precious
The serial port global control reg @ 0x808040 is set to 0x0E3F0304,
the FSX control reg @ 0x808042 is set to 0x00000EFD (and FSR control
reg @0x808043 is set to 0x00000111). The serial port timer regs @
0x808044-0x808046 are all set to zero. I'm using code composer
v4.10.7 with a parallel port Jtag emulator.
I have only just found this problem after looking everywhere else
so I may be doing something wrong but I'v re-read all the serial port
documentation and checked TIs knowledge base etc etc and can't find
anything so far.
has anybody ever come across this problem before ?