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.

6657 : McBSP can't transmit in SPI boot mode.

Hello,

    I am trying to burn my program into flash to boot, but McBSP can't transmit data in boot mode(directly SPI boot mode).

    I have checked that the program could run into EDMA Interrupt service function, but can't detect an interrupt transfer completion code in IPRH register. My EDMA Interrupt service function is shown above:

void EDMA_isr()
{
        ......
	if(GET_BIT(IPRH,McBSPx_EDMA_Ch[McBSP_TO_DSP2]-32))	//the result of send to DSP2
	{
		REG_WRITE(ICRH,1<<5);
		SendFlag = 1;
	}
        ......
}

    Then I test my program in debug mode using a simulator, the program works great in first time, but when I debug my program again without re power, it also can not detect an interrupt transfer completion code in IPRH register. When I click the SYSTEM RESET button in CCS, also only the first time It could works normally. And CPU RESET button doesn't work.

    My EDMA parameter options are set as shown above:

myParamSetupMcBSP0Trans.option = CSL_EDMA3_OPT_MAKE(CSL_EDMA3_ITCCH_DIS, \
															CSL_EDMA3_TCCH_DIS, \
															CSL_EDMA3_ITCINT_DIS, \
															CSL_EDMA3_TCINT_EN, \
															CSL_EDMA3CC2_XEVT0_MCBSP_A, \
															CSL_EDMA3_TCC_NORMAL,\
															CSL_EDMA3_FIFOWIDTH_NONE, \
															CSL_EDMA3_STATIC_DIS, \
															CSL_EDMA3_SYNC_A, \
															CSL_EDMA3_ADDRMODE_INCR, \
															CSL_EDMA3_ADDRMODE_INCR);
Attached: my main() function

void main()
{
	int	i;

	while(1)
	{
		// Initial the McBSP registers
		mcbsp_init(McBSP_TO_DSP2,199,1);
		EDMAInit_McBSP();
		McBSP_intc_setup();

		RESET_BIT(McBSP_SPCR(McBSP_TO_DSP2), FRST);
		RESET_BIT(McBSP_SPCR(McBSP_TO_DSP2), GRST);
		RESET_BIT(McBSP_SPCR(McBSP_TO_DSP2), XRST);

		for(i = 0; i < BUFFER_SIZE; ++i)
			McBSP_src[i] = i;

		SET_BIT(McBSP_SPCR(McBSP_TO_DSP2), FRST);
		SET_BIT(McBSP_SPCR(McBSP_TO_DSP2), GRST);
		SET_BIT(McBSP_SPCR(McBSP_TO_DSP2), XRST);
		while(!(SendFlag == 1));
		SendFlag = 0;
		RESET_BIT(McBSP_SPCR(McBSP_TO_DSP2), XRST);
	}
}

I am wonder how could make McBSP transmit data in BOOT mode. Thanks.
    Regards,
Xu Tsou
  • Hi Tsou,

    Instead of running in simulator mode, please select the no boot mode and load the out file through CCS and run the application. Please ensure to load the gel file connecting to the core.

    Please use the latest MCSDK available for keystone devices. Please find the download and user guide link below signature. 

    Also, MCSDK has the MCBSP example project. 

    PATH: ..\ti\pdk_C6657_x_x_x_x\packages\ti\drv\exampleProjects\MCBSP_DigLpbkExampleProject

    Are you working on custom board or EVM?

    Thank you.