官方给的例程怎么改,最高频率只能到6.25Mhz,真让人头大唉
LEI XU:
我的硬件是f28004x controlcard和docking station,求助怎么配置一个10Mhz的SPI时钟
,
Susan Yang:
如果使用默认时钟配置,则LSPCLK为25MHz,最大允许SPI波特率= 25/4 = 6.25MHz
您可以看一下用户指南的 22.4.3 Configuring the SPI for High-Speed Mode
www.ti.com.cn/…/sprui33d.pdf
,
LEI XU:
都试过了,LSPCLK改成50M或者100M,打开高速模式SPI_enableHighSpeedMode()都没有效果,频率反而变低了,原来是6.25M变成2M
,
Susan Yang:
请问您下面的代码部分是怎样设置的?
// // 100MHz SYSCLK frequency based on the above DEVICE_SETCLOCK_CFG. Update the // code below if a different clock configuration is used! // #define DEVICE_SYSCLK_FREQ((DEVICE_OSCSRC_FREQ * 10 * 1) / 2)// // 25MHz LSPCLK frequency based on the above DEVICE_SYSCLK_FREQ and a default // low speed peripheral clock divider of 4. Update the code below if a // different LSPCLK divider is used! // #define DEVICE_LSPCLK_FREQ(DEVICE_SYSCLK_FREQ / 4)
,
LEI XU:
#define DEVICE_OSCSRC_FREQ20000000U
#define DEVICE_SYSCLK_FREQ((DEVICE_OSCSRC_FREQ * 10 * 1) / 2)
#define DEVICE_LSPCLK_FREQ(DEVICE_SYSCLK_FREQ / 2)
,
Susan Yang:
看起来没有什么问题。那您 //// Make sure the LSPCLK divider is set to the default (divide by 4)//SysCtl_setLowSpeedClock(SYSCTL_LSPCLK_PRESCALE_4);
中的分频设置呢?
,
LEI XU:
SPI_enableHighSpeedMode(SPIA_BASE);
SPI_setConfig(SPIA_BASE, DEVICE_LSPCLK_FREQ, SPI_PROT_POL0PHA1,SPI_MODE_MASTER, 10000000, 8);
,
LEI XU:
是这里没有改成2分频导致的,谢谢!
,
Susan Yang:
哈哈,我正要给您回复呢。很高兴您能解决问题
,
user6516483:
为什么我在工程里没有找到这个函数?官方几个spi例子里都没找到这个函数
,
user6516483:
//
// Make sure the LSPCLK divider is set to the default (divide by 4)
//
SysCtl_setLowSpeedClock(SYSCTL_LSPCLK_PRESCALE_4);
这个函数
,
user6516483:
在手册里搜索到了,是SCI的函数
,
Susan Yang:
好的,后续有其他问题的话,请您发新帖,谢谢