Other Parts Discussed in Thread: DRV8711, , TMS320F28035, LAUNCHXL-F28379D
Tool/software: Code Composer Studio
Hello,
I have doing a small SPI test between F28035 as Master and F28379DZ as slave. My connections are SIMO of Master to SIMO of Slave, SCLK of master to SCLK of slave, SPISTE of master to SPISTE of slave. The two boards share the common ground. The voltage across all SPI connections are 3.3V.
Master code:
Uint16 sdata= 0x0001;
for(;;)
{
SpiaRegs.SPITXBUF=sdata;
while(SpiaRegs.SPIFFRX.bit.RXFFST !=1) { }
sdata++;
delay_loop();
}
void delay_loop()
{
long i;
for (i = 0; i < 10000000; i++) {}
}
void spi_fifo_init()
{
// Initialize SPI FIFO registers
SpiaRegs.SPICCR.bit.SPISWRESET=0; // Reset SPI
SpiaRegs.SPICCR.all=0x000F; //16-bit character, Loopback mode
SpiaRegs.SPICTL.all=0x0017; //Interrupt enabled, Master/Slave XMIT enabled
SpiaRegs.SPISTS.all=0x0000;
SpiaRegs.SPIBRR=0x0063; // Baud rate
SpiaRegs.SPIFFTX.all=0xC022; // Enable FIFO's, set TX FIFO level to 4
SpiaRegs.SPIFFRX.all=0x0022; // Set RX FIFO level to 4
SpiaRegs.SPIFFCT.all=0x00;
SpiaRegs.SPIPRI.all=0x0010;
SpiaRegs.SPICCR.bit.SPISWRESET=1; // Enable SPI
SpiaRegs.SPIFFTX.bit.TXFIFO=1;
SpiaRegs.SPIFFRX.bit.RXFIFORESET=1;
}
Slave code:
void spi_fifo_init()
{
// Initialize SPI FIFO registers
SpiaRegs.SPICCR.bit.SPISWRESET=0; // Reset SPI
SpiaRegs.SPICCR.all=0x000F; //16-bit character, Loopback mode
SpiaRegs.SPICTL.all=0x0013; //Interrupt enabled, Master/Slave XMIT enabled
SpiaRegs.SPISTS.all=0x0000;
SpiaRegs.SPIBRR.all=0x0063; // Baud rate
SpiaRegs.SPIFFTX.all=0xC022; // Enable FIFO's, set TX FIFO level to 4
SpiaRegs.SPIFFRX.all=0x0022; // Set RX FIFO level to 4
SpiaRegs.SPIFFCT.all=0x0000;
SpiaRegs.SPIPRI.all=0x0010;
SpiaRegs.SPICCR.bit.SPISWRESET=1; // Enable SPI
SpiaRegs.SPIFFTX.bit.TXFIFO=1;
SpiaRegs.SPIFFRX.bit.RXFIFORESET=1;
}
interrupt void spiRxFifoIsr(void)
{
rdata=SpiaRegs.SPIRXBUF; // Read data
SpiaRegs.SPIFFRX.bit.RXFFOVFCLR=1; // Clear Overflow flag
SpiaRegs.SPIFFRX.bit.RXFFINTCLR=1; // Clear Interrupt flag
PieCtrlRegs.PIEACK.all|=0x20; // Issue PIE ack
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
The master code (F28035) waits on the while(SpiaRegs.SPIFFRX.bit.RXFFST!=1){} loop forever and the slave code never receives anything in rdata.
Signals are all 3.3 V on the Picoscope forever. Previously I was working on driving DRV8711 using F28035 and the same SPI coding worked for me.
Am I missing something here? Maybe on the connections?
Thank you,
Nikit shah

