飞思卡尔K60入门
飞思卡尔K60 DMA 中文手册

/*----------------------------------------------------------------------------------------------------------------------------- 桂林电子科技大学物联网工程Editor:JaceLin Date:2014.2.5-------------------------------------------------------------------------------------------------------------------------------- 一、DMA特性1)k60有16个DMA通道二、寄存器1)控制寄存器:DMA_CR31-18 reserved17 CX 取消转移,0正常操作,1取消剩下数据转移16 ECX 错误取消转移,0正常操作,1取消转移15-8 reserved14 EMLM 使能副循环映射0 禁止,TCDn.word2 为32位1 使能,TCDn.word被重新定义6 CLM 持续连接模式,0当副循环结束后,再次激活DMA要通过裁决,1不用裁决5 HALT 停止DMA操作,0正常模式,1停止DMA操作4 HOE 错误时停止,0正常操作,1当有错误时HALT=1,也就是DMA停止3 reserved2 ERCA 使能循环通道裁决,1 EDBG 使能调试,写0,调试也用DMA,写1,调试时DMA不可用0 reserved2)错误状态寄存器DMA_ES31 VLD 所有错误状态位逻辑或,0没有错误,1表示至少有1个错误没有清除30-17 保留16 ECX 转移被取消0没有被取消的转移,1最后一次记录是被取消的转移15 保留14 CPE 通道优先错误,0没有通道优先错误,1有13-12 保留11-8 ERRXHN 错误通道位/被取消的位(最多16位)7 SAE 源地址错误,0没有源地址配置错误,1有错误6 SOE 源偏移错误,0没有源偏移配置错误,1有偏移配置错误5 DAE 目标地址错误,0没有错,1有错误4 DOE 目标偏移错误,0没有错误,1有3 NCE NBYTES/CITER配置错误,0没有,1有2 SGE Scatter/Gather配置错误,0没有,1有1 SBE 源总线错误,0没有错误,1有0 DBE 目标总线错误,0没有,1有3)使能请求寄存器DMA_ERQ (16个通道的请求信号寄存器)以下都是0禁止,1使能:31-16 保留15-0 ERQ15-ERQ04)使能错误中断寄存器DMA_EEI (16个通道的错误中断寄存器)以下都是0禁止,1使能:31-16 保留15-0 EEI15-EEI05)清除使能中断寄存器DMA_CEEI(清除EEI的使能中断)7 NOP 0正常操作,1没有操作,这个寄存器所有脱下可以忽略6 CAEE 清除所有使能错误中断,写0清除特定EEI,写1清除所有EEI5-4 保留3-0 清除使能错误中断(一共16位,写相应位表示选定,通过CAEE清除)6)设置使能错误中断寄存器DMA_SEEI7 NOP 0正常操作,1没有操作,这个寄存器所有脱下可以忽略6 SAEE 设置所有使能错误中断,写0设置特定EEI,写1设置所有EEI5-4 保留3-0 设置使能错误中断(一共16位,写相应位表示选定,通过SAEE设置)7)清除使能请求寄存器DMA_CERQ(清除ERQ的请求中断)7 NOP 0正常操作,1没有操作,这个寄存器所有脱下可以忽略6 CAER 清除所有使能请求,写0清除特定ERQ,写1清除所有ERQ5-4 保留3-0 清除使能请求中断(一共16位,写相应位表示选定,通过CAER清除)8)设置使能请求寄存器DMA_SERQ7 NOP 0正常操作,1没有操作,这个寄存器所有脱下可以忽略6 SAER 设置所有使能请求,写0设置特定ERQ,写1设置所有ERQ5-4 保留3-0 设置使能请求(一共16位,写相应位表示选定,通过SAER设置)9)清除完成状态位寄存器DMA_CDNE7 NOP 0正常操作,1没有操作,这个寄存器所有脱下可以忽略6 CADN 清除所有完成位,0清除特定位,1清除所有位5-4 保留3-0 CDNE 清除(特定完成位,共16位)10)设置状态位寄存器DMA_SSRT7 NOP 0正常操作,1没有操作,这个寄存器所有脱下可以忽略6 SAST 配置所有完成位,0设置特定位,1设置所有位5-4 保留3-0 SSRT 设置(特定完成位,共16位)11)清除错误寄存器DMA_CERR7 NOP 0正常操作,1没有操作,这个寄存器所有脱下可以忽略6 CAEI 清除所有完成位,0清除特定位,1清除所有位5-4 保留3-0 CERR 清除(特定位,共16位)12)清除中断请求寄存器DMA_CINT7 NOP 0正常操作,1没有操作,这个寄存器所有脱下可以忽略6 CAIR 清除所有中断请求位,0清除特定位,1清除所有位5-4 保留3-0 CINT 清除(特定位,共16位)13)中断请求寄存器DMA_INT (16个通道)以下都是0禁止,1使能:31-16 保留15-0 INT15-INT014)错误寄存器DMA_CRR (16个通道)以下都是0禁止,1使能:31-16 保留15-0 ERR1-ERR015)硬件请求状态寄存器DMA_HRS(16个通道)以下都是0禁止,1使能:31-16 保留15-0 HRS15-HRS016)通道n优先级寄存器DMA_DCHPIn7 ECP 使能通道优先权写0不支持高优先级,写1支持高优先级6 DPA 禁止优先级功能写0支持低优先级,写1不支持任何优先级5 5-4 保留3-0 CHPRI 通道n优先级设定,共16个优先级-----------------------------------------------------------------------------17)TCD源地址(DMA_TCD_SADDR)31-0 SADDR 源地址18)TCD信号源地址偏移(DMA_TCD_SOFF),表示下一个数据的存储地址15-0 SOFF 源地址信号偏移19)TCD传输属性(DMA_TCD_ATTR)15-11 SMOD 源地址模数10-8 SSIZE 源数据转换大小000 8位001 16位010 32位011 保留100 16字节其它保留7-3 DMOM 目标地址模数详见SMOD定义2-0 DSIZE 目标数据转换大小详见SSIZE定义20)TCD副循环计数器(DMA_TCD_NBYTES_MLNO)31-0 NBYTES 副循环转换计数,也就是副循环每次传输的字节数,21)TCD有符号副环路偏移(DMA_NBYTES_MLOFFNO)31 SMLOE 副循环源地址使能0没有应用SADDR,1应用于SADDR32 DMLOE 副循环目标地址偏移使能0没有应用DADDR,1应用于DADDR29-0 NBYTES 副循环偏移计算---- 22)TCD有符号副循环偏移(DMA_NBYTES_MLOFFYES)31 SMLOE 源副循环偏移使能0没有应用SADDR,1应用于SADDR32 DMLOE 目标副循环偏移使能0没有应用SADDR,1应用于SADDR29-10 MLOFF 当SMOE和DMOE为1,这里是偏移量,或者说是下次数据地址9-0 NBYTES 副循环字节转换计算23)TCD末尾(结束)源地址调整(DMA_TCD_SLAST)31-0 SLAST 末尾(结束)源地址调整24)TCD目标地址(DMA_TCD_DADDR)31-0 DADDR 目标地址25)TCD有符号目标地址偏移(DMA_TCD_DOFF),每次传输完存储目标地址增量15-0 DOFF 目标地址偏移* 26)TCD当前副循环连接(主循环计数)DAM_TCD_CITER_ELINKYES* 15 ENLINK 当副循环结束时,是否使能通道连接,0禁用,1使能* 14-13 保留* 12-9 LINKCH LINKCH连接通道号* 8-0 CITER 当前主循环迭代计数器,用于对主循环总次数计算(也就是副循环循环次数)** 27)TCD当前副循环连接(主循环计数)DMA_TCD_CITER_ELINKNO15 ELINK 使能通道对通道最小循环0不用,1使能14-0 CITER 循环数28)TCD末尾(结束)目标地址调整(DMA_TCD_DLASTSGA)31-0 SLASTSGA29)TCD控制与状态(DMA_TCD_CSR)15-14 BWC 带宽控制00 没有DMA 引擎停止01 保留10 DMA每读写一次停止4个周期11 DMA每读写一次停止8个周期13-12 保留11-8 MAJORLINKCH 连接通道号(16位)7 DONE 通道完成,该位标志DMA主循环完成,6 ACTIVE 通道执行,该位标志通道已经执行5 MAORELINK 使能通道对通道连接在一个主循环完成后0禁止通道连接,1使能通道连接4 ESG 使能散/聚模式0禁用,1使能3 DREQ 禁止请求,0通道ERQ位不作用,1通道ERQ位清除当主循环完成后2 INTHALF 使能一个中断当主计数完成一半时0禁止,1使能1 INTMAJOR 使能一个中断当主循环计数完成时0禁止,1使能0 START 通道开始,0没有开始,1开始* 30)TCD起始副循环连接(DMA_TCD_BITER_ELINKYES)** 15 ELINK 使能通道对通道连接当副循环完成时0禁止,1使能* 14-13 保留* 12-9 LIMKCH 连接通道号* 8-0 BITER 开始主循环计数,该值必须和CITER相同** 31)TCD起始副循环连接(DMA_TCD_BITER_ELINKNO)15 ELINK 使能通道对通道连接当副循环完成时0禁止,1使能14-0 BITER开始主循环计数------------------------------------------------------------------------------1)通道配置寄存器(DMAMUX_CHCFGn)7 ENBL DMA通道使能6 TRIG DMA通道触发使能0触发禁止,1触发使能5-0 source DMA通道源(64个DMA源,可映射16个中任何一个DMA通道)------------------------------------------------------------------------------DMA 请求复用配置---DMA request multiplexer configuration这个选项总结了这个DMA模块是怎么配置的,-------------------------------------------------------------------------*/。
飞思卡尔新手攻略

自己写的简单攻略,有不全的,大家提出来,我再补充修正详尽下~~刚开始智能车制作的同学看到一大堆的东西,可能都有点迷茫,貌似什么都不会,又貌似什么都会点,有点发憷,不知道从何开始,下面我把制作过程需要准备的硬件、软件和你需要学习的知识给大家系统一下,就是一个简单的入门攻略~~~入门攻略~~解决的问题:需要准备的硬件、软件和所用知识,以及简单的制作过程~入门攻略~~预期的目的:~~~~1.~入门攻略~~硬件准备篇下面列出的就是你需要的一些基本的硬件了,以飞思卡尔车模为例(1)车模(带舵机)(晕了,以下这几个都附有图片,可惜传不上来,我给大家一个链接地址吧/myspace/blog/show_144764.html )(2)清华做的S12最小系统板,芯片是16位的MC9S12DG128这个板子用起来还行,大家可以自己设计,也可以选择自己学校的板子,还可以用站长demon设计的(3)摄像头或者是光电传感器组(下图为摄像头)根据你的需要选择合适的型号的摄像头或光电传感器(具体怎么选,将在高级篇中介绍一下)(4)BDM(注意实际用时还需要一个USB数据线,用于连接到电脑上)这个是下载程序到单片机和在线调试用的,这个有时候使用不当经常出问题,常见问题都有一些解决方法,也将在高级攻略篇给出一些问题的解决方法。
(5)电源一块以上这些都是最基本的硬件东东,必须具备,为了把车模组装好,甚至弄的特别合理,使车的性能达到最好,有些需要调整,有些需要撤换,大家根据自己情况选择就可以,具体硬件优化攻略将在智能车制作高级攻略中介绍~~2. ~入门攻略~~软件准备篇(1)CodeWarrior 5.0最新版本应该在5.0以上了,它是完整的用于编程应用中硬件bring-up的集成开发环境。
CodeWarrior包括构建平台和应用所必需的所有主要工具- IDE、编译器、调试器、编辑器、链接器、汇编程序等。
这个软件能满足飞思卡尔智能车的编程、调试、仿真等(2)窜口调试软件在我们学习和调试串口与计算机通讯时发挥很大的作用(3)PDF2Word 可轻松将PDF转换为Word格式,转换稳定,出错机率小,是我们编辑文稿的必备软件(可选软件:DXP2004,其库元件已经包含飞思卡尔16位HCS控制器,是设计HCS12系列单片机PCB系统板的理想工具)3. ~入门攻略~~知识准备篇(1) 学习C语言编程及应用(建议大家用C语言编程序,如果你是汇编高手那就另当别论了)(2)单片机由浅入深攻略(单片机学习详细攻略网址:/thread-288-1-1.html)根据这个攻略去把飞思卡尔单片机去学习和练习应用下,一定要自己动手去编程和设计,把实验板都尽量弄熟练了(3)了解舵机,电机和传感器的性能及如何用单片机去控制它们(这个可以结合单片机去学习,最好能参考一些前辈做过的程序学习,多多问问老师和同学,自己再多多动手和思考)(4)学习用编程调试软件CodeWarrior,论坛里有不少教程,你们可以去下载看看,不是很难学的,不懂的多思多问多练(5)接口电路设计这里涉及的知识较广,模电、数电等等~~4. ~入门攻略~~简单制作过程以上三个准备工作都准备好了,你就可以开始整车的制作了第一步:硬件组装把你的电路板在车模上固定好,把电机、舵机、测速传感器,摄像头都连接到电路板对应的接口处,再接上电源第二步:程序编制及调试在CodeWarrio中新建一个工程,然后根据你的硬件条件在里面编制自己的程序,最好先在CodeWarrio里仿真一下看程序有没有错误,然后再用BDM下载到单片机上运行,看车能按你的设计跑吗,如此反复调试直到达到你的目标~~~智能车制作高级攻略将陆续推出,敬请留意~~。
k60在KEIL中的使用手册

K60是飞思卡尔公司的cortex m4系列CPU,目前技术较为新,市面上的开发板使用的芯片大部分是144pin的PK60X256VLQ100的样品,其主频正常使用为100MHz,其超频可以到达150作用。
下面我以KEIL MDK4.23和J-Link V8作为开发环境和下载器,下面是简单的使用手册(以图文形式向大家介绍)。
一、首先下载和安装KEIL MDK4.2.3地址:/download/product/选择MDK-ARM后,填写信息就可以直接下载。
二、安装省略啦,window下软件安装就是傻瓜式的了,只要会单机和双击就可以了,呵呵。
三、创建项目1.首先打开安装好的keil mdk,他的IDE采用的是keil4:如下图2.选择项目菜单Project,点击New uVision Project。
3.选择存储路径,写好项目名称test,点击保存。
4.选择CPU型号,我们这里使用的是飞思卡尔公司的MK60系列CPU,所以我们选择如下图所示。
5.点击ok,点击是。
出现如下图所示,其中startup_MK60DZ10.s为K60系列CPU的启动文件的汇编源代码。
6.设置J-LINK下载器,点击Flash中的Configure Flash Tool…如图所示。
(1)、Utilties选项卡中的Use Taget Driver for Flash Programming选择Cortex-M/R J-LINK/J-Trace。
(2)、Debug选项卡中的Use选择Cortex-M/R J-LINK/J-Trace。
(3)、C/C++选项卡中的Include Paths点击后面按钮。
添加K60头文件路径C:\Keil\ARM\INC\Freescale\Kinetis。
红色为安装目录。
7.下面我们新建个文件,点击File中的New,然后保存为main.c。
然后右键Source Group1添加TYS_system_k60.c和main.c文件到项目中。
K60 介绍 (中文)

第2章简介2.1 概要本章提供了Kinetis组合和K60系列产品的概述。
同时,本章提供了本文件所包涵设备的高水准的描述。
2.2 Kinetis组合Kinetis是低功耗可扩展和在工业上使用混合信号ARM®Cortex™-M4系列MCU的最好的组合。
第一部分介绍超过200引脚、外围设备和软件兼容性的5个MCU系列。
每个系列提供了优良的性能,与普通外设内存,内存映射,并提供内部和系列之间轻松迁移包和功能可扩展性。
Kinetis MCUs使用了飞思卡尔的新的90nm带有独特FlexMemory的薄膜存储器(TFS)闪存技术。
Kinetis系列MCU结合了最新的低功耗革新技术和高性能,高精密混合信号功能与连通,人机界面,安全及外设广泛。
Kinetis MCUs使用了飞思卡尔和ARM第三方合作伙伴的市场领先的捆绑模式。
表示低功耗混合信号USB 段LCD以太网加密和篡改检测DDR所有Kinetis系列都包涵强大的逻辑、通信和时序阵列和带有伴随着闪存大小和I/O数量的集成度等级的控制外围部件。
所有的kinetis系列包涵一下共同特征:· 内核:· ARM Cortex-M4内核提供1.25 DMIPS / MHz的DSP指令(浮点单元在kinetis系列可用)。
· 高达32位的DMA,同时尽可能减小CPU干预。
· 提供50MHz、72MHz和100MHz几种CPU频率(120MHz和150MHz在kinetis可用)。
· 超低功耗:· 10种低功耗操作模式通过优化外设执行和唤醒时间来延长电池寿命。
· 为了增加低功耗的灵活性,增加了低漏唤醒单元、低功耗定时器和低功耗RTC。
· 业界领先的快速换醒时间。
· 内存:· 从32 KB闪存/ 8 KB的RAM可扩展为1 MB闪存/128 KB的RAM。
同时使空白的独立闪存执行代码和固件更新。
飞思卡尔技术报告

K60模块分配K60的简介,我们本次使用了以下模块。
1. FTM模块:K60中集成3个FTM模块,而今年我们选用两个B车进行追踪循迹。
B车模使用单电机、单舵机,另外需要一个编码器。
所以对3个FTM模块进行如下配置:FTM0用以产生300Hz PWM信号控制舵机,FMT1用以产生18.5KHz PWM信号控制电机,FTM2用以采集编码器数据。
2. 定时器模块:K60中有多个定时器模块,我们使用了其中2个。
其一用以产生5ms 中断,处理相关控制程序。
另一个用以超声波模块的计时。
3. SPI模块:我们使用了K60的一个SPI模块,用以和无线射频模块NRF24L01P通信。
4.外部中断:我们使用了三个外部中断。
第一个是PORTA的下降沿中断,用以响应干簧管检测到磁铁。
第二个是PORTD的跳变沿中断,用以响应超声波模块的输出信号。
最后一个是PORTE的下降沿中断,用以响应NRF24L01P模块的相关操作。
数据采集算法传感器是智能车的眼睛,它们给智能车循迹和追踪提供了必不可少的信息。
因此,在智能车软件设计中必须保证数据采集算法的稳定性,同时兼顾其快速性。
本车比赛,我们的智能车主要采集以下传感器的数据:电感传感器电路板、编码器、超声波、干簧管。
下面主要详述超声波模块、电感传感器电路板的数据采集。
1 .超声波模块数据采集我们使用的超声波模块的DO引脚输出50Hz的矩形波信号,通过高电平的时间向单片机传递数据。
本超声波传感器的高电平时间为声波单程传输的时间,通过这个时间可计算出两车之间的距离。
我们使用外部中断和计时器结合的方式测量高电平时间。
首先配置PORTD11为跳变沿中断。
中断被触发时,如果PORTD11为高电平则开始计时,如果PORTD11为低电平则停止计时并记录时间间隔。
2. 电感传感器电路板的数据采集电感传感器电路板通过输出电压的大小反应响应位置和方向的磁场强度。
本次比赛中,我们使用了10个电感分布在6个不同位置,因此每个周期都要采集10路ADC数据,每路ADC数据采集32次进行平均滤波。
飞思卡尔智能车入门资料大全概要共35页文档

▪
28、知之者不如好之者,好之者不如乐之者。——孔子
▪
29、勇猛、大胆和坚定的决心能够抵得上武器的精良。——达·芬奇
▪
30、意志是一个强壮的盲人,倚靠在明眼的跛子肩上。——叔本华
谢谢!
35
飞思卡尔智能车入门资料大 全概要
41、实际上,我们想要的不是针对犯 罪的法 律,而 是针对 疯狂的 法律。 ——马 克·吐温 42、法律的力量应当跟随着公民,就 像影子 跟随着 身体一 样。— —贝卡 利亚 43、法律和制度必须跟上人类思想进 步。— —杰弗 逊 44、人类受制于法律,法律受制于情 理。— —托·富 勒
45、法律的制定是为了保证每一个人 自由发 挥自己 的才能 ,而不 是为了 束缚他 的才能 。—— 罗伯斯 庇尔
▪
26、要使整个人生都过得舒适、愉快,这是不可能的,因为人类必须具备一种能应付逆境的态度。——卢梭
▪
27、只有把抱怨环境的心情,化为上进的力量,才是成功的保证。——罗曼·罗兰
K60各模块入门培训教程

北京理工大学智能车俱乐部程序培训K60各模块入门前言这个小文档是对k60单片机的各模块进行了初步的介绍,以便大家在之后车队的k60实际培训演示中能更好地理解,能更快的上手单片机,另外说一下车队用的K60单片机型号是MK60DN512ZVLL10,不同型号的k60单片机各模块基本操作有些小区别。
本文档是基于给大家实际演示的各模块功能来撰写的,里面讲的各个模块在以后的做车过程中基本上都会用到。
实际上一个智能车上所实现的功能都是由这些最基本的小模块组合而成的,把这些小模块各个击破了,都理解了,以后看智能车的整体程序也就容易得多了~另外注意:在我没实际操作讲解之前,大家看这些模块的时候可以不用纠结一些细节的问题,大致有个概念即可~在我讲的时候好好听我讲各个模块的例程,做好笔记,然后看实验现象,进行进一步的理解。
之后自己再回去仔细看例程、笔记和这个文档,并且自己可以对程序进行一些改动,然后烧写程序看现象仔细研究。
PS:我们第十届包括之前的学长们都没有进行这样专门的比较系统的单片机各模块的培训,也没有学长们亲自给我们写这些入门的学习文档,基本都是自己去查资料学习,所以你们这一届算是很走运的了!不要错失良机不好好学习哦~话说回来,毕竟车队是一年比一年进步嘛,培训会慢慢地变得更加有条理!还有你们明年培训下一届的时候也是哦学完了单片机各个模块后,以后你们要是想对车进行哪个模块的调试不会出现不知道程序在哪、不知道怎样去调试这些最基本、较Low的问题~你们对各个模块理解透了,智能车整体的程序架构你们会轻而易举的掌握。
以后想调那个模块调哪个,整个程序也不会乱,以后要在车上增加新模块新功能也会容易得多!所以......仓鼠们打起精神~好好学吧!!!第十届摄像头游清目录一、GPIO模块 (5)1、GPIO概述 (5)2、I/O口的使用方法 (6)二、FTM占空比(PWM)模块 (9)1、PWM概述 (9)2、PWM程序讲解 (10)三、中断模块 (13)1、中断概述 (13)2、GPIO(I/O)口外部中断 (13)2.1I/O口外部中断概述 (13)2.2I/O口外部中断程序讲解 (14)3、PIT定时器中断 (16)3.1PIT定时器中断概述 (16)3.2PIT定时器中断程序讲解 (16)四、A/D(模数)转换模块 (18)1、A/D模块概述 (18)2、A/D模块程序讲解 (19)五、串口通信(UART)模块 (21)1、串口(UART)模块概述 (21)1、串口(UART)模块程序讲解 (22)后记 (25)一、GPIO模块车队用的K60单片机有100个引脚,如下图:其中大部分引脚有GPIO模块的功能,GPIO模块可以输出指定的高低电平,或读入输入电平,在实际智能车上可以用于调试用的小灯、蜂鸣器、拨码开关和摄像头信号数据采集及外部中断等。
K60各模块入门培训教程

K60各模块入门培训教程K60是一款ARM Cortex-M4内核的微控制器系列,由恩智浦半导体(NXP)公司推出。
K60系列微控制器具有高性能、低功耗、丰富的外设和丰富的开发工具支持等特点,适用于各种应用场景。
本教程将重点介绍K60微控制器的各个模块,包括GPIO(通用输入输出)、UART(串口通信)、SPI(串行外设接口)、I2C(串行接口)、ADC(模拟数字转换器)、PWM(脉冲宽度调制)等。
每个模块都将详细介绍其功能和使用方法。
一、GPIO模块GPIO模块是K60微控制器的通用输入输出模块,用于控制外部硬件设备。
K60系列微控制器通常具有多个GPIO引脚,可以配置为输入或输出。
在本教程中,我们将介绍如何配置GPIO引脚的方向(输入或输出)、读取输入引脚的状态和设置输出引脚的状态等。
二、UART模块UART模块是K60微控制器的串口通信模块,用于与外部设备进行异步通信。
K60系列微控制器通常具有多个UART模块,每个UART模块都包含发送和接收功能。
在本教程中,我们将介绍如何配置UART模块的波特率、数据位、停止位和校验位等,并编写代码实现通过UART与外部设备进行通信。
三、SPI模块SPI模块是K60微控制器的串行外设接口模块,用于与外部设备进行全双工的串行通信。
K60系列微控制器通常具有多个SPI模块,每个SPI模块都包含主机和从机模式。
在本教程中,我们将介绍如何配置SPI模块的工作模式(主机或从机)、时钟极性和相位等,并编写代码实现通过SPI与外部设备进行通信。
四、I2C模块I2C模块是K60微控制器的串行接口模块,用于与外部设备进行双向的串行通信。
K60系列微控制器通常具有多个I2C模块,每个I2C模块都可以配置为主机或从机。
在本教程中,我们将介绍如何配置I2C模块的工作模式(主机或从机)、时钟频率和从机地址等,并编写代码实现通过I2C与外部设备进行通信。
五、ADC模块ADC模块是K60微控制器的模拟数字转换模块,用于将模拟信号转换为数字信号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、飞思卡尔Kinetis功能特性
1、ARM发展史 2、ARMv7处理器分类 3、ARM Cortex-M4特性 4、飞思卡尔Kinetis家族介绍 5、K60内部资源介绍
山东大学 Kinetis培训
ARM发展史
ARM架构发展历程
山东大学 Kinetis培训
ARMv7处理器分类
ARMv7根据应用分类:
• 应用处理器(Cortex-A系列) Aplication Processor • 实时控制器(Cortex-R系列) Real-time Processor • 微控制器(Cortex-M系列) Micro Controller 山东大学 Kinetis培训
最快频率、最高性能、合理功耗 即
模拟比较器
开发环境
3通道
CW10.1、IAR、MDK
山东大学 Kinetis培训
软件应用
调试工具
开发环境
二、K60开发生态系统
其 他 支 持
山东大学 Kinetis培训
Kinetis开发环境
支持Kinetis开发的IDE(集成开发环境)目 前主要包括CodeWarrior10.1及以上版本, IAR6.1及以上版本和Keil MDK(即Keil for ARM)等。
山东大学 Kinetis培训
飞思卡尔Kinetis家族
Kinetis系列是由飞思卡尔推出的业界第一款基于ARM
Cortex-M4内核的混合信号微控制器,采用飞思卡尔创新的 90nm薄膜存储器(TFS)闪存技术,具有独特的Flex存储器
(可配置的内嵌 EEPROM)。
Kinetis 微控制器系列融合了最新的低功耗革新技术,具有 高性能、高精度的混合信号能力,宽广的互连性,人机接口和
安全外设。飞思卡尔公司以及其他大量的ARM第三方应用商提
供对Kinetis 微控制器的应用支持。
山东大学 Kinetis培训
飞思卡尔Kinetis家族
山东大学 Kinetis培训
飞思卡尔Kinetis K系列
增加以太网,硬件 加密,温度检测和 DRAM控制器 增加图形液 晶驱动
增加USB 功能
增加模拟测量引 擎,以太网和硬 件加密
SD卡控制器 外部中断 DMA控制器 山东大学 Kinetis培训
K60内部资源介绍
K60(K60N512VLL100)
ADC通道数 ADC精度 ADC最大速度 ADC特殊功能 DAC 4组差分输入,24个单端 差分模式可编程16位,13位,11位和9位精度 单端模式可编程为16位,12位,10位和8位精度 361ksps/16bit, 818ksps/<=13bit 可编程增益的放大器(PGA) 硬件平均功能(Hardware Average Function) 12bit/1通道
四、K60代码框架分析
山东大学 Kinetis培训
K60上电启动顺序
(1)上电起初,单片机的电压调节器会把整个系统置于POR(上 电复位)状态的上电阶段,一直到工作电压达到了可以让单片机 正常工作的电压阈值之后才释放这个上电阶段,进入复位阶段; (2)在复位保持期间,由单片机内部的模式控制复位逻辑统筹支 配整个复位阶段的执行顺序; (3)首先MCG模块使能,并默认为FEI时钟模式; (4)相应模块的时钟使能,包括Coreclock,Systemclock, Flashclock,busclock等这些不需要门控(clock gate,M4的特色) 控制的时钟; (5)Flash控制器从复位状态释放(注意这时外部RESET脚仍然保 持低电平),并且执行一系列的初始化操作(因为要为接下来的 代码执行做准备了);
山东大学 Kinetis培训
K60上电启动顺序
(6)单片机/RESET引脚释放,但是系统复位状态继续保持, 一直到上面的Flash控制器初始化完毕(如果Flash控制器提前 初始化好,则/RESET引脚释放后立即从POR状态苏醒); (7)Kinetis从复位状态唤醒之后,开始设置堆栈(stack), 程序计数器(PC)和连接寄存器(LR),即从中断向量表地 址0读取内容给堆栈指针,地址4读取内容给PC指针,LR寄存 器设置为0xFFFF_FFFF。 (8)上面三个寄存器设置好了之后,单片机就开始从PC指针 指向的地址开始执行代码了,即进入启动代码阶段,最后才转 到main开始执行。
山东大学 Kinetis培训
K60内部资源介绍
山东大学 Kinetis培训
K60内部资源介绍
K60(K60N512VLL100)
封装 可用IO FLASH RAM LQFP100(14mm*14mm) 70 512kbyte 128kbyte
非易失存储
CPU类型 CPU最大速度 完整并行IO
无
ARM Cortex-M4 100M PTC0-15,PTD0-7
山东大学 Kinetis培训
Kinetis开发环境
CodeWarrior10.2 山东大学 Kinetis培训
Kinetis开发环境
IAR 6.3 山东大学 Kinetis培训
Kinetis开发环境
山东大学 Kinetis培训
开发环境对比
Codewarrior
优 点
IAR
Keil MDK
1、基于Eclipse开发 1、界面简洁,操作 1、界面简洁而且 平台,编辑界面交互 方面; 友好,上手简单; 功能强大; 2、老牌编译器厂商, 2、被ARM收购, 2、采用GCC编译器 自家的IAR编译器的 编译器对ARM内核 和GDB调试器; 编译效率较高; 支持相对较好; 3、对飞思卡尔的 3、第三方插件支持 3、可以向导化生 MCU支持较好。 丰富; 成启动代码,方面 4、可以向导化生成 4、支持在线实时仿 开发。 启动代码,上手简单。 真。
山东大学 Kinetis培训
Kinetis开发板
山东大学 Kinetis培训
三、IAR+Jlink开发K60方法
山东大学 Kinetis培训
IAR+Jlink开发K60方法
1、IAR代码模板结构分析 2、IAR模板移植 3、IAR项目工程设置技巧 4、Jlink调试技巧
山东大学 Kinetis培训
实时响应、合理性能、较低功耗
一般性能、最低成本、极低功耗
ARM Cortex-M4特性
ARM Cortex-M4处理器是在M3的基础上强化了运算能力,采用一个 扩展的单时钟周期乘法累加(MAC)单元,优化的单指令多数据(SIMD )指令,饱和运算指令和一个可选的单精度浮点单元(FPU),源于 Cortex-M4系列一些创新性的技术,包括: RISC处理器内核,高性能32位CPU、具有确定性的运算、低延迟3阶段 管道,可达1.25DMIPS/MHz; Thumb-2指令集,16/32位指令的最佳混合,提供最佳代码密度; 低功耗模式,支持多种状态低功耗模式; 嵌套矢量中断控制器(NVIC),低延迟、低抖动中断响应、支持以纯C 编写中断服务例程,能出色的完成中断处理; 广泛的工具和RTOS支持,广泛的第三方工具支持、Cortex微控制器软 件接口标准(CMSIS)最大限度缩短开发周期和难度; CoreSight调试和跟踪,JTAG和2针串行线调试(SWD)连接、支持多 处理器、支持实时跟踪。
山东大学 Kinetis培训
K60内部资源介绍
K60(K60N512VLL100)
UART SPI I2C 4个(UART0~UART3) 3个(SPI0~SPI2) 2个(I2C0~I2C1)
Input Capture输入捕捉
PWM
Flex Timer模块,有硬件16bit计数器,至少8通道
Flex Timer模块,16bit计数器 FTM0——8通道 FTM1——2通道 FTM2——2通道 1个(SDHC0) 所有IO都可触发中断(PTA~PTE) 56个源,16通道
Flash存储类型 N=仅包含程序Flash;X=包含程序Flash和FlexMemory 程序Flash大小 32 = 32 KB;64 = 64 KB;128 = 128 KB;256 = 256 KB; 512 = 512 KB;1M0 = 1 MB 硅材料版本 温度范围 空=主要使用的版本;Z=初始版本;A=主要使用版本的 更新 V = –40到105摄氏度;C = –40到85摄氏度
山东大学 智能车工作室
By jicheng0622 /jihceng0622
ARM Cortex-M4学习与实践
——基于飞思卡尔Kinetis系列
山东大学智能车工作室 纪成 2013年3月
山东大学 Kinetis培训
内容安排
1
2 3 4 5 6
飞思卡尔Kinetis功能特性 K60开发生态系统介绍 IAR+Jlink开发K60方法 K60代码框架分析 K60外设资源在智能车中的应用 K60学习资源整理
清零RAM中初始化为 0的.BSS段
初始化锁相环PLL
跳转到main函数
山东大学 Kinetis培训
内存映射.map文件分析
山东大学 Kinetis培训
ቤተ መጻሕፍቲ ባይዱ
五、K60外设资源在智能车 中的应用
山东大学 Kinetis培训
K60外设资源在智能车中的应用
K60高精度高速的AD,可以有效的采集传感器模拟参数; K60的每个IO都可以设置为中断触发源,为智能车硬件设 计提供更大的灵活性; K60的FTM模块可以提供PWM通道,控制智能车的舵机和 电机; K60的PIT模块实现周期性中断,提供时间基准,或者与 LPTMR模块的脉冲累加功能实现速度测量; K60使用ARM Cortex-M4的核,具有1.25DMIPS/MHz的运 算能力,另外还有单时钟周期乘法累加(MAC)单元,优 化的单指令多数据(SIMD)指令、饱和运算指令等,使 更加复杂的处理算法的实现成为可能。