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.

strange behavior of spi when you change configuratin in delfino dual processor

Hello,

I'm using delfino dual processor

and its SPI.

I change periodically SPI configuration

(see Question )

I notice that when I change SPI configuration

CLK signal execute spurious negative pulse as you see in the image.

my code is

void Spi_PowerOn(Spi spi)
{
	EALLOW; // codice per F2837xD
	if(spi==&SpiaRegs) CpuSysRegs.PCLKCR8.bit.SPI_A = 1;
	if(spi==&SpibRegs) CpuSysRegs.PCLKCR8.bit.SPI_B = 1;
	if(spi==&SpicRegs) CpuSysRegs.PCLKCR8.bit.SPI_C = 1;
	EDIS;
}

void Spi_SetUp(Spi spi, int CLKPOLARITY, int CLK_PHASE, int SPIBRR)
{
	//1880 di SPRUHM8C–December 2013–Revised December 2014

	(*spi).SPICCR.bit.SPISWRESET 	= 0;			// Force reset

	//1900 di SPRUHM8C–December 2013–Revised December 2014

	(*spi).SPICCR.bit.CLKPOLARITY	= CLKPOLARITY;	//polarità clock
	(*spi).SPICCR.bit.SPICHAR		= 7; 			//numero di caratteri (8)

	//1902 di SPRUHM8C–December 2013–Revised December 2014

	(*spi).SPICTL.bit.CLK_PHASE		= CLK_PHASE;	//fase clock
	(*spi).SPICTL.bit.MASTER_SLAVE	= 1;			//master
	(*spi).SPICTL.bit.TALK			= 1;			//TX enable (not High Z)

	//1906 di SPRUHM8C–December 2013–Revised December 2014

	(*spi).SPIBRR					= SPIBRR;

	//1880 di SPRUHM8C–December 2013–Revised December 2014

	(*spi).SPICCR.bit.SPISWRESET	= 1;			// Exit reset

	//asm(" RPT #199||NOP");							// wait 1us @ 200MHz
}
void main()
{
	WatchDog_Disable();
	Flash_Setup();

	Spi_PowerOn(&SpibRegs);

	for(;;)
	{
		Spi_SetUp(&SpibRegs,1,0,49);
		asm(" rpt #199||nop");
		asm(" rpt #199||nop");
		asm(" rpt #199||nop");
	}
}

Please help me, thankyou in advice