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