We are using the UPP bus on the C6655 to interface to an FPGA. We have a loop back test which uses the B channel as the transmit from the DSP and the A channel a a receive from the FPGA. We are seeing the B channel transmit more data then it is programmed for.
When we operate at 16.67MHz (set UPICR(27 to 24) = 9 ie. 1000M / 3 / 2 / (9 + 1))
we see 1 extra word transferred across the UPP channel B.
When we operate at 57MHz (set set UPICR(27 to 24) = 2 ie. 1000M / 3 / 2 / (2 + 1))
we see 4 extra words transferred across the UPP channel B.
This is true wether we do a line size of 64, 128 or 256. We are transferring only 1 window and 1 buffer. We are using the internal clock for the transmit side. Here are the register settings.
UPP_UPPID = 0x44231100
UPP_UPPCR = 0x00000088
UPP_UPDLB = 0x00000000
UPP_UPCTL = 0x02020006
UPP_UPICR = 0x32383238
UPP_UPIVR = 0xaaaabbbb
UPP_UPTCR = 0x03030303
UPP_UPISR = 0x00000000
UPP_UPIER = 0x00000000
UPP_UPIES = 0x00001f1f
UPP_UPIEC = 0x00001f1f
UPP_UPEOI = 0x00000000
UPP_UPID0 = 0x81132880
UPP_UPID1 = 0x00010100
UPP_UPID2 = 0x00000100
UPP_UPIS0 = 0x81132980
UPP_UPIS1 = 0x00020000
UPP_UPIS2 = 0x00000020
UPP_UPQD0 = 0x81132980
UPP_UPQD1 = 0x00010100
UPP_UPQD2 = 0x00000100
UPP_UPQS0 = 0x81132a80
UPP_UPQS1 = 0x00020000
UPP_UPQS2 = 0x00000020
Any idea as to why we get the extra transfers?