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
