今天说说关于Kinetis KL25芯片内部的SPI模块!KL25内部的SPI模块可把我整惨了,今天FreeScale的FAE终于跟我发来了邮件,问题也就解决了,下面来总结关于Kinetis KL系列内部的SPI模块!Kinetis与传统MCU一样内部提供了SPI模块,在KL系列中一般为两个SPI模块,SPI0和SPI1.SPI0使用的是Bus Clock,SPI1使用的是System Clock传输速率最高可达时钟源的1/2,已经算是相当快了,但在有些情况下需要注意传输速率不要超过DataSheet中给出的参数。Kinetis MCU的SPI模块支持DMA传输,能大大加快数据传输的速度。
其实Kietis内部的SPI模块操作起来并不复杂,甚至于比16位MCU内部的SPI模块都要简单,如PIC系列M
CU。那为什么会出现它困扰了我这么长时间呢!第一:FreeScale的芯片稍微有点操蛋,第二:我连线
的方法有点问题。首先说说我的解决过程,本来是想用Kinetis内部的SPI去驱动一块SPI接口的液晶屏结果没有搞成功,于是单步调试,问题就出在我用单步调试上,我想通过单步调试看相关寄存器标志位的变化,以及SPI数据缓冲寄存器的值,结果就是不管怎么调SPI模块寄存器的标志位和数据寄存器的反应跟它的数据手册上完全不同,于是便将自己的代码上传到论坛去问FreeScale的FAE,他们都说代码没有问题,也不知道怎么回事,今天终于收到了苏州总部的邮件原来它娘的SPI模块不能单步调试,单步就有问题,标志位的变化就会不同,会把SPI的时序打乱,这告诉我们一点有些东西并不能完全以标志位判断,还是根据老示波器之类的仪器(可怜我没有示波器)。还有就是我的连线有点问题,我接成了MOSI-
MISO,MISO-MOSI,真是一失足成千三古恨啊!下面我将基于IAR的SPI代码上传,希望能对其它人有所帮
助!
SPI模块图
SPI操作流程图
用户435352 2014-11-17 16:09
huhaomcu_856934054 2014-8-17 21:09
suyong_yq 2014-8-15 14:06