飞思卡尔K60入门_第1页
飞思卡尔K60入门_第2页
飞思卡尔K60入门_第3页
飞思卡尔K60入门_第4页
飞思卡尔K60入门_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、山东大学 智能车工作室By jicheng0622http:/ Cortex-M4学习与实践山东大学智能车工作室 纪成2013年3月山东大学 Kinetis培训基于飞思卡尔Kinetis系列山东大学 Kinetis培训飞思卡尔飞思卡尔KinetisKinetis功能特性功能特性1K60K60开发生态系统介绍开发生态系统介绍2IAR+JlinkIAR+Jlink开发开发K60K60方法方法K60K60代码框架分析代码框架分析K60K60外设资源在智能车中的应用外设资源在智能车中的应用K60K60学习资源整理学习资源整理63451、ARM发展史一、飞思卡尔一、飞思卡尔KinetisKinetis功

2、能特性功能特性山东大学 Kinetis培训2、ARMv7处理器分类3、ARM Cortex-M4特性4、飞思卡尔Kinetis家族介绍5、K60内部资源介绍ARM发展史山东大学 Kinetis培训ARM架构发展历程ARMv7处理器分类山东大学 Kinetis培训ARMv7根据应用分类:应用处理器(Cortex-A系列) Aplication Processor实时控制器(Cortex-R系列) Real-time Processor微控制器(Cortex-M系列) Micro Controller即最快频率、最高性能、合理功耗实时响应、合理性能、较低功耗一般性能、最低成本、极低功耗ARM Co

3、rtex-M4特性 ARM Cortex-M4处理器是在M3的基础上强化了运算能力,采用一个扩展的单时钟周期乘法累加(MAC)单元,优化的单指令多数据(SIMD)指令,饱和运算指令和一个可选的单精度浮点单元(FPU),源于Cortex-M4系列一些创新性的技术,包括:l RISC处理器内核,高性能32位CPU、具有确定性的运算、低延迟3阶段管道,可达1.25DMIPS/MHz;l Thumb-2指令集,16/32位指令的最佳混合,提供最佳代码密度;l 低功耗模式,支持多种状态低功耗模式;l 嵌套矢量中断控制器(NVIC),低延迟、低抖动中断响应、支持以纯C编写中断服务例程,能出色的完成中断处理

4、;l 广泛的工具和RTOS支持,广泛的第三方工具支持、Cortex微控制器软件接口标准(CMSIS)最大限度缩短开发周期和难度;l CoreSight调试和跟踪,JTAG和2针串行线调试(SWD)连接、支持多处理器、支持实时跟踪。山东大学 Kinetis培训飞思卡尔Kinetis家族山东大学 Kinetis培训飞思卡尔Kinetis家族山东大学 Kinetis培训飞思卡尔Kinetis K系列山东大学 Kinetis培训增加段式液晶的驱动增加USB功能增加模拟测量引擎,以太网和硬件加密增加USB功能增加图形液晶驱动增加以太网,硬件加密,温度检测和DRAM控制器Kinetis 命名规则山东大学

5、Kinetis培训字段说明取值Q质量状态M=正式发布芯片;P=工程测试芯片K#Kinetis系列号K20A内核属性D=Cortex-M4 w/DSP;F= Cortex-M4 w/DSP和FPUMFlash存储类型N=仅包含程序Flash;X=包含程序Flash和FlexMemoryFFF程序Flash大小32 = 32 KB;64 = 64 KB;128 = 128 KB;256 = 256 KB;512 = 512 KB;1M0 = 1 MBR硅材料版本空=主要使用的版本;Z=初始版本;A=主要使用版本的更新T温度范围V = 40到105摄氏度;C = 40到85摄氏度K60内部资源介绍山

6、东大学 Kinetis培训K60内部资源介绍山东大学 Kinetis培训K60(K60N512VLL100)封装LQFP100(14mm*14mm)可用IO70FLASH512kbyteRAM128kbyte非易失存储无CPU类型ARM Cortex-M4CPU最大速度100M完整并行IOPTC0-15,PTD0-7K60内部资源介绍山东大学 Kinetis培训K60(K60N512VLL100)UART4个(UART0UART3)SPI3个(SPI0SPI2)I2C2个(I2C0I2C1)Input Capture输入捕捉Flex Timer模块,有硬件16bit计数器,至少8通道PWMFl

7、ex Timer模块,16bit计数器FTM08通道FTM12通道FTM22通道SD卡控制器1个(SDHC0)外部中断所有IO都可触发中断(PTAPTE)DMA控制器56个源,16通道K60内部资源介绍山东大学 Kinetis培训K60(K60N512VLL100)ADC通道数4组差分输入,24个单端ADC精度差分模式可编程16位,13位,11位和9位精度单端模式可编程为16位,12位,10位和8位精度ADC最大速度361ksps/16bit, 818ksps/=13bitADC特殊功能可编程增益的放大器(PGA)硬件平均功能(Hardware Average Function)DAC12bi

8、t/1通道模拟比较器3通道开发环境CW10.1、IAR、MDK山东大学 Kinetis培训二、二、K60K60开发生态系统开发生态系统软件应用调试工具开发环境其他支持Kinetis开发环境n支持Kinetis开发的IDE(集成开发环境)目前主要包括CodeWarrior10.1及以上版本,IAR6.1及以上版本和Keil MDK(即Keil for ARM)等。山东大学 Kinetis培训Kinetis开发环境山东大学 Kinetis培训CodeWarrior10.2Kinetis开发环境山东大学 Kinetis培训IAR 6.3Kinetis开发环境山东大学 Kinetis培训开发环境对比山

9、东大学 Kinetis培训CodewarriorIARKeil MDK优点1、基于Eclipse开发平台,编辑界面交互功能强大;2、采用GCC编译器和GDB调试器;3、对飞思卡尔的MCU支持较好。4、可以向导化生成启动代码,上手简单。1、界面简洁,操作方面;2、老牌编译器厂商,自家的IAR编译器的编译效率较高;3、第三方插件支持丰富;4、支持在线实时仿真。1、界面简洁而且友好,上手简单;2、被ARM收购,编译器对ARM内核支持相对较好;3、可以向导化生成启动代码,方面开发。缺点成于Eclipse,也败于Eclipse,需要运行在java虚拟机之上,软件体积庞大,对PC机硬件要求高。不支持生成启

10、动代码,需要自己建立开发模板,上手较难。编译速度较慢,效率一般。Kinetis调试工具n 目前Kinetis的调试工具主要有飞思卡尔自己的OSBDM及USBDM、P&E Multilink、J-Link和ulink等等,其中JLink(目前发展到V8版本)以其支持范围广、价格便宜、速度快等优势得到广泛应用。山东大学 Kinetis培训J-LinkP&E MultilinkOSBDM 山东大学智能车工作室根据开源资料,自行设计了OSBDM调试器和USBDM调试器,其中OSBDM由飞思卡尔官方开源,目前由P&E公司维护,USBDM由网友pgo开源和维护。 经过二次设计和完善

11、,目前山大设计的OSBDM分别支持CW、IAR和Keil MDK三种开发环境,而且支持飞思卡尔几乎全系列MCU,包括: Freescale HCS12/HCS12(X)/HCS08(已测试MC9S12DG128、MC9S08JM60) Freescale Coldfire V1,V2,V3,V4(已测试MCF52259) Freescale DSC全系列(已测试MC56F8366) Freescale PowerPC架构的Qorivva系列(已测试MPC5604B) Freescale Cortex-M4核的Kinetis系列(已测试K10、K60)Kinetis调试工具山东大学 Kineti

12、s培训Kinetis开发板山东大学 Kinetis培训山东大学 Kinetis培训三、三、IAR+JlinkIAR+Jlink开发开发K60K60方法方法IAR+Jlink开发K60方法山东大学 Kinetis培训山东大学 Kinetis培训四、四、K60K60代码框架分析代码框架分析K60上电启动顺序山东大学 Kinetis培训(1)上电起初,单片机的电压调节器会把整个系统置于POR(上电复位)状态的上电阶段,一直到工作电压达到了可以让单片机正常工作的电压阈值之后才释放这个上电阶段,进入复位阶段;(2)在复位保持期间,由单片机内部的模式控制复位逻辑统筹支配整个复位阶段的执行顺序;(3)首先M

13、CG模块使能,并默认为FEI时钟模式;(4)相应模块的时钟使能,包括Coreclock,Systemclock,Flashclock,busclock等这些不需要门控(clock gate,M4的特色)控制的时钟;(5)Flash控制器从复位状态释放(注意这时外部RESET脚仍然保持低电平),并且执行一系列的初始化操作(因为要为接下来的代码执行做准备了);K60上电启动顺序山东大学 Kinetis培训(6)单片机/RESET引脚释放,但是系统复位状态继续保持,一直到上面的Flash控制器初始化完毕(如果Flash控制器提前初始化好,则/RESET引脚释放后立即从POR状态苏醒);(7)Kine

14、tis从复位状态唤醒之后,开始设置堆栈(stack),程序计数器(PC)和连接寄存器(LR),即从中断向量表地址0读取内容给堆栈指针,地址4读取内容给PC指针,LR寄存器设置为0 xFFFF_FFFF。(8)上面三个寄存器设置好了之后,单片机就开始从PC指针指向的地址开始执行代码了,即进入启动代码阶段,最后才转到main开始执行。K60启动代码分析山东大学 Kinetis培训RestHandler清零通用寄存器组跳转到Kinetis_Start_C关闭看门狗如果从ROM启动,则复制中断向量表到RAM中修改中断向量表地址为RAM中的地址复制初始化数据段.data到RAM把以ram_functio

15、n声明的函数拷贝到RAM中清零RAM中初始化为0的.BSS段初始化锁相环PLL跳转到main函数内存映射.map文件分析山东大学 Kinetis培训山东大学 Kinetis培训五、五、K60K60外设资源在智能车外设资源在智能车中的应用中的应用K60K60外设资源在智能车中的应用外设资源在智能车中的应用n K60高精度高速的AD,可以有效的采集传感器模拟参数;n K60的每个IO都可以设置为中断触发源,为智能车硬件设计提供更大的灵活性;n K60的FTM模块可以提供PWM通道,控制智能车的舵机和电机;n K60的PIT模块实现周期性中断,提供时间基准,或者与LPTMR模块的脉冲累加功能实现速度

16、测量;n K60使用ARM Cortex-M4的核,具有1.25DMIPS/MHz的运算能力,另外还有单时钟周期乘法累加(MAC)单元,优化的单指令多数据(SIMD)指令、饱和运算指令等,使更加复杂的处理算法的实现成为可能。山东大学 Kinetis培训K60外设资源山东大学 Kinetis培训GPIO模块山东大学 Kinetis培训GPIO模块需要考虑如下几个寄存器:PORTx_PCRn端口控制寄存器,管理管脚复用GPIOx_PDDR端口数据方向寄存器GPIOx_PDOR端口数据输出寄存器GPIOx_PDIR端口数据输入寄存器GPIOx_PTOR端口输出翻转寄存器GPIO模块山东大学 Kine

17、tis培训PORTx_PCRMUX-管脚复用控制PE-拉电阻使能 0禁能上拉或者下拉电阻 1禁能上拉或者下拉电阻PS-拉电阻属性设置 0使能下拉电阻 1使能上拉电阻GPIO模块山东大学 Kinetis培训GPIOx_PDDRGPIO模块山东大学 Kinetis培训GPIOx_PDORGPIO模块山东大学 Kinetis培训GPIOx_PDIRGPIO模块山东大学 Kinetis培训GPIOx_PTORGPIO模块山东大学 Kinetis培训例程: PORTE_PCR(10) |= PORT_PCR_MUX(1); /使能PTE10为GPIO GPIOE_PDDR |= 1 10; /设置PTE

18、10为输出 GPIOE_PDOR &= (110); /设置PTE10输出为0A/D模块山东大学 Kinetis培训K60的AD模块特点:(1)最高16位AD转换精度,逐次逼近型的,所以速度没问题,而且能做到如此精度已实属不易了,再往高估计就该换-的了;(2)最多4对差分模拟输入通道和24个单端模拟输入通道,对一般工业应用足够了;(3)输出精度可选,差分模式可编程16位,13位,11位和9位模式,单端模式可编程为16位,12位,10位和8位;(4)输入时钟可选四种时钟,即bus_clock,bus_clock/2,ALTCK,ADACK;(5)内设内部温度传感器,用于监控芯片温度;(6

19、)硬件平均功能,对AD转换结果在队列里平均之后输出;(7)带自校准模式;(8)最高64倍PGA(programable gain Amplifier)。A/D模块山东大学 Kinetis培训A/D模块需要考虑如下几个寄存器:ADCx_SC1nADC状态及控制寄存器1ADCx_CFG1ADC配置寄存器1ADCx_CFG2ADC配置寄存器2ADCx_RnADC结果寄存器ADCx_SC2ADC状态及控制寄存器2A/D模块山东大学 Kinetis培训void ADC_Init1(void) SIM_SCGC3 |= (SIM_SCGC3_ADC1_MASK ); /打开 ADC1 门控时钟 ADC1_

20、CFG1 = ADC_CFG1_ADIV(3) /输入时钟8分配 | ADC_CFG1_MODE(0) /8位精度 | ADC_CFG1_ADICLK(0); /时钟源为Busclk ADC1_SC2 = 0; ADC1_SC1A = ADC_SC1_ADCH(20); /选择AD1_20通道 ADC1_SC1A &= ADC_SC1_AIEN_MASK; /禁止转换完成中断ADC初始化函数:A/D模块山东大学 Kinetis培训void Read_ATD1(uint8 *pbuf ,uint16 len) do ADC1_SC1A |= ADC_SC1_ADCH(20); / 写入A

21、DCx_SC1A触发转化 while(!(ADC1_SC1A & ADC_SC1_COCO_MASK); *pbuf+ = (uint8)ADC1_RA; while(-len);ADC读函数:PWM模块山东大学 Kinetis培训FTM模块的特点: 1、时钟源可选择,FTM的时钟源可以来自系统时钟或外部时钟。可对时钟分频,分频比为1,2,4,8,16,32,64,128,这属于定时器的特性; 2、最多3个FTM定时器FTM0、FTM1、FTM2,即可以有3个自由计数器,也即可以存在独立的3路PWM模块; 3、所有的通道都可以设置为中心对齐的PWM输出模式,且某个FTM定时器中的每对通

22、道都可以级联以产生PWM信号; 4、 PWM通道可成对工作在相同输出或互补输出,也可各通道独立输出,当通道成对互补输出时可使用死区插入功能,这对一些全桥控制电路有很大意义,省去了外围死区电路; 5、可软件控制PWM的输出,即屏蔽或者开启单独某个通道。PWM模块山东大学 Kinetis培训PWM模块需要考虑如下几个寄存器: PORTx_PCR端口控制寄存器 FTMx_MODE特征模式选择寄存器 FTMx_SC状态及控制寄存器 FTMx_OUTINT通道输出初始状态寄存器 FTMx_CNT计数寄存器 FTMx_OUTMASK输出屏蔽寄存器 FTMx_MOD模数寄存器(周期寄存器) FTMx_CnSC通道状态及控制寄存器 FTMx_CnV通道值寄存器(占空比寄存器) FTMx_CNTIN计数器初始值寄存器PIT模块山东大学 Kinetis培训PIT模块山东大学 Kinetis培训PIT模块需要考虑如下几个寄存器:PIT_MCRPIT模块控制寄存器PIT_LDVALn定时器加载寄存器PIT_TCTRn定时器控制寄存器PIT_TFLGn定时器标志寄存器PIT模块山东大学 Kinetis培训PIT_MCRPIT模块山东大学 Kinetis培训PIT_LDVALnPIT模块山东大学 Kinetis培训PIT_TCTRLPIT模块山东大学 Kinetis培训void

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论