使用定时器控制C6678的SPI接口以9.6k的速率发送数据,约每104us发送一个16bit的数据,同时接收一个16bit数据。接收数据后,会对数据做一些处理,并生成下一个要发送的数据,DSP主频配置为1G,处理时间肯定没有超过104us 。但是只有在SPI速率配置为60M以上时,程序才能正常运行,小于60M运行时就会出现如下图所示的问题:
或者程序加载运行后,又显示如下错误:
这是什么原因呢,怎样才能使spi的时钟速率降低呢,SPI的相关配置如下
SPI_Data_Format SPIDataFormat = { .delayBetweenTrans_ns = 0,//两次传输之间的延迟 /*.ShifDirection = */SPI_MSB_SHIFT_FIRST, /*.disable_CS_timing = */1, /*.clockPolarity = */SPI_CLOCK_LOW_INACTIVE, /*.clockPhase = */0, // /*.clockSpeedKHz = */66000, /*.clockSpeedKHz = */33000, /*.wordLength = */16 }; SPI_Transfer_Param SPITransferParam = { SPI_CS_0, /*Chip select number*/ 1, /*select one of the 4 SPI formats*/ SPI_CS_NO_HOLD, /*hold CS between multiple words*/ FALSE, /*Enable the delay counter at the end of the current transaction*/ // TRUE, 2 /*number of bytes per SPI word*/ };