I am programming on using SPI function, the master device is NXP ARM chip and slave is DM6437. I configured the SPI word length as 16bit and set CLKGDV = 0.
The master device sends the bytes from 0x0000 to 0x03E8 by a for loop, the received result of DM6437(slave) is correct if master's data rate under 4 Mbit / Sec.
It will be lost some data when I set data rate above 4 Mbit / Sec on master, does the SPI data rate of DM6437 on slave mode able to over 4 Mbit / Sec ?
My SPI initial function :
Int16 EVMDM6437_SPI_Init ( )
{
MCBSP0_SPCR &= ~(1 << 16) ; // XRST
MCBSP0_SPCR &= ~(1 << 0) ; // RRST
MCBSP0_SPCR &= ~(1 << 22) ; // GRST
MCBSP0_SPCR = ( 2 << 11 ) ; // CLKSTP = 2h
MCBSP0_PCR = ( 1 << 3 ) ; // FSXP = 1
MCBSP0_SRGR = ( 1 << 29 ) ; // CLKSM = 1 , CLKGDV = 0
MCBSP0_XCR = ( 2 << 5 ) ; // transmit word length = 16 bit
MCBSP0_RCR = ( 2 << 5 ) ; // receipt word length = 16 bit
MCBSP0_SPCR |= ( 1 << 22 ) ; // GRST
delay( ) ;
MCBSP0_SPCR |= ( 1 << 0 ) ; // RRST
return ;
}