I was using two 6747 communicating through SPI, 4-pins with SCS, 30MHz.
The slave receive data using EDMA, but I find nearly half of the data are missing, the successfully received words are correct.
The master part I use a function to send a word in succession, which goes as below:
void SPI1_Send_Word(Uint16 data)
{ while(SPI1_SPIBUF&0x20000000); //check TXBUFF
SPI1_SPIDATA1 = spidat1 | data;
}
What's the length of transmit buffer? only one word?
If TXBUFF is set 1 after a word is written to SPIDATA1, does that mean this word needs to be written again? If not, then where maybe cause the problem?