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.

TMS320C6657: C6657 uPP Channel B always reads NULL

Part Number: TMS320C6657

I am using TMDXEVM6657 eval Board on which all uPP-Pins are accesible on the 80-Pin Header.

Converting ChannelA via uPP works very fine only on Channel B i always get "Zeros".

My configruation is:

void upp_pinmux_enable(void){
//Uint32 CHIP_MISC_CTRL = CSL_BOOT_CFG_REGS + CHIP_MISC;
//* (volatile unsigned int *) CHIP_MISC_CTRL = 0x00000000; //Use ASYNC3 as clk source to rpi_chip_clk
//	Uint32 Chip_Pin_control_1 = hBootCfg->CHIP_PIN_CONTROL_1;
	Uint32 Chip_Pin_control_1 = 0x02620584;
* (volatile unsigned int *) Chip_Pin_control_1 = 0x00000001;
}

uPPInit():

	upp_key_config();	// program the KICK0 and 1 registers.
	upp_pinmux_enable(); // Though internal loopback, enable uPP in PIN_CONTROL_1

	// read PID
	int pid = CSL_FEXT(uppRegs->UPPID, UPP_UPPID_REVID);
	if(pid != CSL_UPP_UPPID_RESETVAL)
	{
		printf("\n Error : Incorrect UPP ID read.");
		goto upp_test_exit;
	}

	// toggle SW reset in PCR
	CSL_FINST(uppRegs->UPPCR, UPP_UPPCR_SWRST, RESET);
	for (i = 0; i < 200; i++)
		asm(" nop");
	CSL_FINST(uppRegs->UPPCR, UPP_UPPCR_SWRST, RUNNING);


	// init regs: CTL, ICR, IVR, TCR
	uPP = uppDevParams_DEFAULT;
	uPP.A.direction = UPP_DIR_RCV;
	uPP.A.dataRate = UPP_DR_SDR;
	uPP.A.dataWidthVal = dataWidth;
	uPP.A.idleValueVal = 0xAAAA;
	uPP.A.clkDivVal = 0x1;			// use clock div between 0 and 0xF
	uPP.A.rcvThresh = UPP_TT_256B;
	uPP.A.useStart=1;
	uPP.A.useEnable=1;
	uPP.A.dataPacking=UPP_DP_RJUST_0FILL;
	//uPP.A.dataWidthVal=15;

	uPP.B.direction = UPP_DIR_RCV;
	uPP.B.dataRate = UPP_DR_SDR;
	uPP.B.dataWidthVal = dataWidth;
	uPP.B.idleValueVal = 0xBBBB;
	uPP.B.clkDivVal = 0x1;
	uPP.B.rcvThresh = UPP_TT_256B;
	uPP.B.useStart=1;
	uPP.B.useEnable=1;
	uPP.B.dataPacking=UPP_DP_RJUST_0FILL;
	uPP.loopback = UPP_LB_NONE;
	uPP.numChannelsVal = 2;
	uPP.useInterleave=0;
	status = upp_config(&uPP);

as i understood the direction of the pins is configured by above Initialisation right?

As i have read in the EvalBoards-scm some of the uPP-Pins are Bi-directional, is there any suggestion on how to configure these pins?

Many thanks in advance

Regards Martin