在线时间7 小时
UID2112735
注册时间2014-12-9
NXP金币0
该用户从未签到
注册会员

- 积分
- 96
- 最后登录
- 2018-5-11
|
转自 飞思卡尔智能车 微信公众账号
来自 北京科技大学智能车队 的 KEAZ128调试总结
可以作为借鉴。
从飞思卡尔公司申请拿到KEAZ128芯片后,我们就开始研究、设计KEA最小系统,同时我也开始学习它的技术手册、对照底层库配置我们小车需要的控制底层框架。由于在KEAZ128的硬件最小系统设计、第二主控KEA主板设计和程序框架构建这些工作都有我全程参与,所以我对这款芯片的印象还是比较深刻的。KEAZ128与K60同属于ARM CortexM系列芯片,但KEAZ128为ARM Cortex-M0+内核,K60为ARM Cortex- M4内核。两者在性能方面有相同也有不同,下面我将分模块总结在调试KEAZ128的过程中的一些经验。
1.FTM(Timer/PWM Module)
1.1
功能对比
FTM模块可以产生PWM波,同时也有脉冲计数的功能。相应的K60的FTM模块也有此功能。两微控制器PWM功能部分对比如下:
K60:3个FTM模块——FTM0,FTM1,FTM2,其中FTM1和FTM2有正交解码功能。FTM0有8个通道,FTM1和FTM2各有两个通道。
KEAZ128:3个FTM模块——FTM0,FTM1,FTM2,没有正交解码功能。FTM0,FTM1各有0,1两个通道。FTM2有0-5共6个通道。对于一个FTM模块而言,每个通道产生的脉冲频率是一致的。
1.2
设计分析
KEAZ128硬件资源的限制,对设计光电直立E车硬件电路造成了一些困难。具体分析如下:光电直立E车要求具有双电机,双电机需要主控芯片提供同频率的PWM波来控制,因此,选用FTM2模块的两个通道;电机测速需要用到两个编码器(或对管),每个编码器(或对管)有两根信号线,因此,各需占用一个FTM模块,然而在电机测速方面,KEAZ128的3个FTM模块只具有计数功能,没有正交解码功能。因此,我们利用D触发器设计了硬件电路实现方向判定,如图1所示。
图1. 方向判定电路
U1为双通道D触发器,将编码器(或对管)的两根信号线分别接D触发器的DATA1引脚和CLOCK1引脚,将PHA_1作为数据信号接DATA1,PHB_1作为时钟信号接CLOCK1,当PHB_1有上升沿时,PHA_1的电平将被锁存到Q1引脚。
这样,通过读取Q1引脚电平的高低,就可以判定电机的旋转方向。综合PTM的计数功能,就可以实现正交解码功能。
2.GP10模块
此模块同样是单片机控制中最常用也是最基本的一部分了。
KEAZ128(80引脚LQFP封装)具有九组I/0端口,包括71个I/0引脚。其中除I端口有7个管脚之外,其余A、B、C、D、E、F、G、H各有8个管脚。
KEAZ128的引脚控制和K60有很大的不同。所有 8位端口引脚都映射到32位GPIO/FGPIO寄存器,GPIO/FGPIOA寄存器控制PTA0 - PTA7、PTB0 - PTB7、PTC0 - PTC7、PTD0 - PTD7共32个引脚。GPIO/FGPIOB寄存器控制PTE0 - PTE7、PTF0 - PTF7、PTG0 - PTG7、PTH0 - PTH7共32个引脚。GPIO/FGPIOC寄存器控制PTI0 – PTI6共6个引脚。
通过配置GPIO模块的数据输入和数据输出寄存器(GPIOx_PDIR 和GPIOx_PDOR)可以配置输入输出引脚上驱动的逻辑电平。通过数据方向寄存器(GPIOx_PDDR)可以配置引脚为输入或输出。关于配置I/0口的某些特定功能,有一个比较快捷的方法,即配置KEAZ128的系统集成模块(SIM)的引脚选择寄存器0(SIM_PINSEL0)和引脚选择寄存器1(SIM_PINSEL1),即可便捷的将相应功能绑定到相应的引脚上。
KEAZ128对于外围电路的I/O口的分配还是相当足够的。其中停车用的干簧管用了两个I/O口(PTC6、PTC7),拨码开关用了4个I/O口(PTG1、PTG2、PTG3、PTE2),控制电机方向用了两个I/O口(PTH0、PTE6),读取D触发器输出用了两个I/O口(PTB10、PTB11)。
3.ICS模块
3.1
功能对比
KEAZ128的ICS模块和K60的MCG模块相似,但功能较少。
KEAZ128的ICS模块主要配置内核(系统)时钟和总线时钟,而K60的MCG模块除配置内核(系统)时钟和总线时钟外,还可以配置FlexBus时钟和Flash时钟。KEAZ128的系统时钟最高可以配到48MHZ,而K60可以配到120MHZ。
|
|