This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS/TMS320C6748: TMS320C6748 Universal Parallel Port (UPP) internal digital loop back and external loop back not working?

Part Number: TMS320C6748

Tool/software: Code Composer Studio

Hai sir,

I am using TMS320C6748 DSP with UPP data [0:15] , clk, enable other wait pins also there in my custom board

presently we are sending the data from DSP to FPGA in FPGA side through ILA we are checking the pins .

in FPGA ILA clock, enable start all pins are getting but no data from dsp side. we are refered below code in FPGA loop back enabled.

UPP_UPPCR &= ~0x08; // Disable UPP
while(UPP_UPPCR & 0x80); // Wait for DMA idle
UPP_UPPCR |= 0x10; // Reset UPP
for(i=0;i<200;i++); // Keep in reset
UPP_UPPCR &= ~0x10; // Enable UPP

/*UPP Configuration */
UPP_UPCTL = 0
| 0 << 26 // 8-bit data format - Channel A
| 0 << 25 // 8-bit interface
| 0 << 18 // 8-bit data format - Channel B
| 0 << 17 // 8-bit interface
| 1 << 2 // Dual channel mode
| 2 << 0; // Duplex Mode 0. Channel A receives and Channel B transmits
UPP_UPICR = 0x00000000; // Channel B divisor = 15
UPP_UPIVR = 0xFFFF0000; // Set idle values
UPP_UPTCR = 0x00; // Set channel transfer thresholds
UPP_UPDLB = 0x00; // No digital loopback
UPP_UPIES = 0x00; // No Interrupts
UPP_UPPCR = 0x08; // Enable peripheral
while(1) // Infinite Loop for RX and TX
{
UPP_UPQD0 = (uint32_t)&recv_buffer; // DMA RX buffer base
UPP_UPQD1 = 0x00200002; // 32 lines of 2 bytes
UPP_UPQD2 = 0x00000002; // Line Offset Address = Byte Count => Data buffer is contiguous block in memory
while(UPP_UPQS2 & 0x02){}; // Wait for RX to complete
UPP_UPID0 = (uint32_t)&xmit_buffer; // DMA TX buffer base
UPP_UPID1 = 0x00200002; // 32 lines of 2 bytes
UPP_UPID2 = 0x00000002; // Line Offset Address = Byte Count => Data buffer is contiguous block in memory
while(UPP_UPQS2 & 0x02){}; // Wait for TX to complete
}

Above code used for external loop back from DSP to FPGA.

then below code digital loop back i used same code only DLB register value only changed

UPP_UPDLB = 0x2000; // No digital loopback

Actually how to store the recv_buffer data into DDR2 memory could you give me some suggestions.

Thanking you

Regards,

Ram