原创 Kinetis KL25系列MCU学习篇(七)

2013-9-3 22:05 1747 15 18 分类: 消费电子
今天说说关于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模块图
20130903215700624.jpg
SPI操作流程图
20130903215842496.jpg

文章评论3条评论)

登录后参与讨论

用户435352 2014-11-17 16:09

谢谢分享

huhaomcu_856934054 2014-8-17 21:09

谢谢赐教,学习了!

suyong_yq 2014-8-15 14:06

我看了一下你的代码,驱动程序设计本身有一点问题: SPI是同步总线,收发的过程是在一个时间段完成的,但在你的驱动程序中将这两个过程分开了,这样如果用户连续收或者连续发,肯定是不对的。正确的做法是,写一个SPI_SwapByte的API,发送的同时从总线上接收数据,如果要用单独的发送或接收功能,可以在相应的API内部包SPI_SwapByte。 还有一个建议,作为软件工程师,调程序的时候应该多从软件方面入手分析问题。
相关推荐阅读
huhaomcu_856934054 2014-08-19 20:54
uCOS-Ⅱ
启动uCOS-Ⅱ的学习与移植!...
huhaomcu_856934054 2014-07-20 10:08
多通道电路原理图
简单说说关于Protel中提供的多通道原理绘制与PCB布局布线. Protel(不知99SE是否可以)有提供多通道电路原理图的设计,这项功能在有些方面还是很有用处的,比如说:当部分原理图在一张图...
huhaomcu_856934054 2014-04-07 09:10
IAR制作工程模板
我个人学习新的MCU过程一般会是如下过程,建立一个个的DEMO工程,每个DEMO工程学习一个外设,所以每个DEMO程序都很简单,但是在建立一个个DEMO程序的过程中,会发现开始的步骤基本上就是相同...
huhaomcu_856934054 2014-03-14 18:06
新公司与老公司的比较
在新公司上了几天班真心有点想念以前的老公司了! 下面来比较比较新公司与老公司吧: 1.业务量。新公司的项目更多,人员更多,涉及的面也较广,整体的技术水平要大大强于以前的老公司。以前老公司里...
huhaomcu_856934054 2014-02-24 15:01
辞职了!
辞职了,但愿柳暗花明又一村!!...
huhaomcu_856934054 2014-02-21 09:22
回来啦!
之前因为身体原因一直在家休息,直到今天才来武汉上班。但愿今年个人的工作能有所上升!...
我要评论
3
15
关闭 站长推荐上一条 /2 下一条