查看: 41366|回复: 64

[分享] Kinetis芯片常见技术问题(不断更新中...)

[复制链接]

该用户从未签到

35

主题

508

帖子

0

金牌会员

Rank: 6Rank: 6

积分
2167
最后登录
1970-1-1
发表于 2013-4-15 14:07:52 | 显示全部楼层 |阅读模式
 
本帖收集了客户在使用[url=https://www.freescale.co
m/zh-Hans/webapp/sps/site/homepage.jsp?code=KINETIS]Kinetis芯片[/url]时碰到的一些常见共性问题,希望能给大家带来帮助。

 
声明:有些问题使用图片会更加直观和有效,由于论坛发帖贴图数量的限制,今后碰到需要贴图的问题将会新建楼层,我会在问题列表中指出贴图所在楼层。敬请理解。
回复

使用道具 举报

该用户从未签到

35

主题

508

帖子

0

金牌会员

Rank: 6Rank: 6

积分
2167
最后登录
1970-1-1
 楼主| 发表于 2013-4-15 14:10:05 | 显示全部楼层

RE:Kinetis芯片常见技术问题(不断更新中...)

========================存储模块===========================

1> 问题:K70产品提供NAND Flash控制器(NFC)和FlexBus模块,其中NFC数据线,/WE(写使能)管脚与Flexbus模块AD数据线,读写线共用管脚,是否K70可以同时接NAND Flash和外部SRAM?
解答:K70应用内部仲裁机制允许Flexbus与NAND Flash共用管脚。


2>问题:Kinetis芯片安全设置分为几级?
解答:Kinetis芯片安全设置分为4级。芯片安全设置位于FTFL_FSEC寄存器中,【KEYEN】设置是否使能后门锁;【MEEN】设置是否使能Mass Erase;【FSLACC】设置是否使能工厂入口;【SEC】设置芯片状态。
安全级别如图所示:
级别0,[SEC]为unsecure,芯片处于未安全保护状态;
级别1,[SEC]为secure,由于mass erase使能,芯片可以通过Flash mass erase命令来解锁;
级别2,[SEC]为secure,由于mass erase使能,芯片可以通过Flash mass erase命令来解锁;
级别3,[SEC]为secure,由于仅是后门锁使能,除非在软件中设置了后门锁和相应Flash解锁操作,否则芯片将无法解锁。
安全级别.jpg
 
3> 问题:为什么Kinetis芯片每次运行Flash“Mass Erase”命令后,芯片状态为secure状态?
解答:Kinetis芯片Flash配置信息放置在地址从0x400至0x40F区域内,这部分配置信息正好位于Flash存储空间内。其中0x40C地址为Flash安全配置字节,在芯片复位过程中将会被放置到FTFL_FSEC(Flash安全寄存器)中。当芯片运行Flash“Mass Erase”命令后, 地址0x40C值为0xFF,FTFL_FSEC寄存器 【SEC】位为0b11,即芯片状态为secure状态。

 
4> 问题:如何解锁secure状态的Kinetis芯片?
解答:根据Kinetis芯片安全级别设置来决定是否能够解锁Kinetis芯片。通常处于安全级别1和2的芯片,可以通过运行Flash Mass Erase命令来解锁。目前Segger J-Link工具和P&E Universal Munltilink工具支持解锁Kinetis芯片:
Segger J-Link工具提供Commander工具,可以在Commander界面下输入“unlock Kinetis”命令来解锁。
运行IAR、CodeWarrior工程进入调试界面会弹出芯片处于加密状态的信息,询问是否通过mass erase去解锁芯片。使用Segger J-Link工具和P&E Universal Munltilink工具点击“是”选项以解锁Kinetis芯片。

 
5> 问题:AN4379将Flash区域0x0至0xBFFF保护,其中包括了Flash配置区域,如何解除保护?
解答:Flash配置区域一旦被保护,就不能通过常用的Flash擦写命令修改Flash保护寄存器的值,其中包括mass erase命令。只能进入EzPort模式下执行bulk erase命令来擦除Flash配置区域。也可以运用Segger J-Link提供的命令行(J-Link Commander)软件运行“unlock Kinetis"命令来擦除Flash配置区域。
Kinetis L系列产品同样存在这样的问题,解决方法是通过外部的SWD调试器执行全擦除操作。

 
6> 问题:Program Flash IFR主要功能是什么?如何访问?
解答:Program Flash IFR是一个非易失的存储空间,独立于Flash 存储空间之外,提供64字节的仅可单次写入的存储器。可以写于一些重要的信息,可以通过Read Once命令进行多次读取操作,也可以通过Program Once命令进行单次写入操作。

 
7> 问题:Flexbus模块使用片选0可以正常工作,使用完全相同的配置,为什么片选1不能工作?
解答:Flexbus CS0的CSMR比较特殊,仅当它的有效位V置1后,其他的片选设置才有效。
 

8> 问题:Flexbus模块为什么突发模式可以提高数据传输速度?
解答:突发模式下通过8bit外设端口读32bit最少需要7个时钟,而写32bit最少需要8个时钟,非突发模式下通过8bit外设端口读或写32bit最少需要13个时钟.因此突发模式节省了5~6个时钟,如果总共需要传输4000字节,则可节省5000~6000个时钟,以60MHz的FCLK为例,节省时间83~100ms.
 
9> 问题:为什么Flexbus需要外接地址缓存,如何设计地址缓存地址?(贴图见 #44 楼)
解答:Kinetis产品Flexbus总线使用数据地址共用管脚模式,由于芯片管脚数量现在,并不能提供完全独立的32位数据和地址总线,所以在使用32位地址线(数据线)时需要使用地址缓存器。地址缓存电路需要使用FB_ALE信号作为地址缓存触发信号,具体线路图见#44楼所示。
 
 
10> 问题:K20 120MHz产品NDND Flash控制器提供两个片选信号和一个RB信号,如何在实际应用中使用?

解答:使用NFC控制三星2GB的flash,型号为K9WAG08U1M,三星2GB的flash内含两片1GB的FLASH,由引脚CE0,CE1控制使能,状态反馈由R/B0和R/B1引脚给出。K系列控制器的NFC有片选CE0,CE1,和一个状态采集脚R/B,硬件电路三星2GB的flash的两个R/B0和R/B1引脚一同连接到NFC的R/B,使用飞思卡尔官方DEMO,当NFC片选CE0时,即选择第一片1G时,块擦除、页编程、页读取都是正常的,但是当选择CE1选择第二片1G时,出现写错误标志,具体现象为:不管是块擦除还是页写入,再读出相应地址的值为前几十个为0x30303030,接着是写入正确的数据左移位后的数据。管脚配置代码也提高了管脚驱动能力。问题是由于NFC模块没有收到正确的R/B信号,导致NFC开始送出读数据时钟的时候 Flash 那边还没有准备好数据。由于芯片只引出一个RB管脚,所以无论使能CE0 还是CE1, NFC_RAR 中的RB0 和RB1 都enable, 尤其是RB0 一定要enable。
回复 支持 反对

使用道具 举报

该用户从未签到

35

主题

508

帖子

0

金牌会员

Rank: 6Rank: 6

积分
2167
最后登录
1970-1-1
 楼主| 发表于 2013-4-15 14:11:01 | 显示全部楼层

RE:Kinetis芯片常见技术问题(不断更新中...)

===================工具篇=====================
1> 问题:MKL25 提供例程,使用Keil软件可以正常编译目录中提供的例程,但是使用【make_new_proj_l2k_pe.exe】工具生成的例程却不能正常编译?
解答:首先需要检查所用Keil软件license类型,如果使用Cortex-M MDK-ARM License,Keil软件存在'bug',不能正常编译使用【make_new_proj_l2k_pe.exe】工具生成的例程。需要修改Keil项目Linker文件,增加 在文件中增加一行"--cpu Cortex-M0+"(最好增加在第一行)。Keil将会在新的版本中修正这个问题。
 
2> 问题:Kinetis芯片是否支持JTAG链,即一个JTAG设备可同时连接多个Kinetis芯片?硬件电路如何实现?
解答:Kinetis芯片支持JTAG链。Keil工具(ULink)和Segger J-Link工具可以支持这样的连接方式,具体信息请查看下面的链接:
http://www.keil.com/support/man/docs/ulink2/ulink2_su_chaining.htm
http://www.segger.com/admin/uploads/productDocs/UM08001_JLinkARM.pdf
在调试器或编程器软件界面将会提供“配置选项”或“调试设置”,选择正确的配置将可以实现多个Kinetis芯片同时调试或编程。
硬件电路设计请参考下图:
链接.jpg
实际使用的JTAG接口电路图:
daisy chain.jpg
 
3> 问题:如何使用FRDM_KL05Z板子自带的OpenSDA工具调试其他Kinetis芯片?
解答:FRDM_KL05Z板子自带OpenSDA调试器,通常是用来调试板上KL05芯片。如果用来调试外部Kinetis芯片需要先见 OpenSDA工具与板上KL05芯片隔离,需要改动两处:1. 切断板子底部J6跳线1-2之间的连线;2. 如图示切断U4D-11与J6-2跳线之间的连线,需要飞线连接U4D-11与跳线J6-2。
FRDM_KL05Z.jpg
 
4> 问题:使用IAR V6.40编译正常的MQX Lite项目,使用IAR V6.50编译却报错,为什么?(贴图见 #45楼)
解答:这是因为IAR汇编源文件要求更改造成MQX Lite汇编文件不能被正确编译。解决的办法是使用最新的Processor Expert软件(PExDRV 10.2 版本及以上),打开MQX_Lite所在项目,删除MQX Lite所产生的代码,然后使用Processor Expert软件产生新的MQX Lite汇编文件。具体操作贴图见#45楼。
 
5> 问题:CodeWarrior V10.4工程如何设定项目的相对路径?
解答:CW项目工程编译过程中经常会碰到路径无法找到的错误,大部分情况下都是因为工程路径使用的是绝对路径,如果要解决这类问题,需要使用相对路径。
例如工程【hello world】的绝对路径是:D:\Workspace\CW V10.4\KINETIS512_V2_SC\build\cw\hello_world\k60_hello_world
下面就是使用相对路径来指定驱动的位置:
"${PROJECT_LOC}/../../../../src/drivers/smc"
"../"是回退目录,这样回退四层就回到D:\Workspace\CW V10.4\KINETIS512_V2_SC目录,这样就可以找到src及其对应代码的位置。例程见#48楼。
 
6> 问题:CodeWarrior V10.4基于KL25芯片创建项目如何支持浮点运算?
解答:可以在项目配置中使用【c9x】库,详情见#49楼。
 
7> 问题:如何使用Keil IDE软件编译产生S19格式的 image文件?
解答:使用格式转换工具“fromelf.exe”可以转换输出S19格式的image文件。
HowToGenerateS19AndBinInKeil.jpg
回复 支持 反对

使用道具 举报

该用户从未签到

35

主题

508

帖子

0

金牌会员

Rank: 6Rank: 6

积分
2167
最后登录
1970-1-1
 楼主| 发表于 2013-4-15 14:11:34 | 显示全部楼层

RE:Kinetis芯片常见技术问题(不断更新中...)

=========================通信模块===========================
 
1> 问题:Kinetis 全速USB控制器是否需要在USB数据线上外接上拉或者下拉电阻?
解答:Kinetis全速USB控制器内部提供数据线上需要的上拉或者下拉电阻,USB控制器工作在HOST或者Device模式均不需要外接上下拉电阻。可以通过USBx_OTGCTL寄存器控制使能上下拉电阻。
 
2> 问题:以太网控制器模块最小工作频率?
解答:无论以太网控制器工作于MII/RMII模式 100Mbps, 以太网控制器最小工作频率为50MHz。低于这个频率会引起数据错误和FIFO存取问题。注意这里所指时钟频率为以太网控制器工作频率,而不是RMII/MII 外部PHY参考时钟频率。
 
3> 问题:通过ENET控制器串行管理读取外部PHY寄存器,为什么读取值与设定值不同?
解答:MDIO需要至少10ns的保持时间,可以通过修改ENET_MSCR[HOLDTIME]寄存器位改变保持时间,典型值为3个内部总线时钟周期(0b010)。
 
4> 问题:以太网控制器工作于RMII模式,MAC与外部PHY除了共用50MHz时钟,还有其他限定条件吗?
解答: ENET模块工作于RMII模式下,必须与外部RMII PHY共用50MHz时钟。基于外部PHY参考时钟如果PHY输出时钟产生延时会造成数据错误。有些PHY芯片要求MCU 参考时钟必须接PHY芯片输出时钟,请参考所用PHY芯片手册来决定Kinetis EXTAL管脚外接时钟来源。
 
5> 问题:以太网控制器未出现错误,为什么不能接收到数据?
解答:以太网控制器的DMA引擎作为系统总线主设备可以主动发起读写内部存储器和外部存储器的动作。而DMA将外部的存储器数据定义为缓冲区(Buffer),并且采用缓冲区描述表来管理缓冲区。缓冲区描述表采用环型链表的方式来维护。在特定情况下会出现没有可用的接收缓冲(缓冲空状态位没有设置),这时以太网控制器清掉RDAR位并且停止环型链表轮询直到缓冲空状态位置位。可以采取增加接收缓冲数量解决上述问题。
回复 支持 反对

使用道具 举报

该用户从未签到

35

主题

508

帖子

0

金牌会员

Rank: 6Rank: 6

积分
2167
最后登录
1970-1-1
 楼主| 发表于 2013-4-15 14:13:46 | 显示全部楼层

RE:Kinetis芯片常见技术问题(不断更新中...)

=========================系统模块==========================
1> 问题:振荡器模块时钟低功耗模式和高增益模式的区别?
解答: 高增益模式主要用于电磁噪声环境,通过提高晶振电压幅度,提高抗干扰能力,同时功耗也会加大。在高增益模式,电压幅度会达到VCC级别,可能存在过激现象,可以通过串接电阻解决过激问题。低功耗模式是电压幅度在1V左右,容易受到噪声干扰,优势是功耗低。16MHz晶振,工作在高增益模式,功耗为1.5mA;工作在低功耗模式,功耗为700 uA。
 
2> 问题:为什么在访问寄存器时会产生hard fault异常?
解答:Kinetis绝大部分模块时钟默认为关闭状态,如果需要访问特定模块寄存器需要先使能模块时钟在进行寄存器读写,否则会产生hard fault异常。
 
3> 问题:USB模块可以使用FLL输出时钟,是否FLL输出时钟精度满足USB协议要求?
解答: 产品不需要通过USB相关认证是可以使用FLL输出时钟的。FLL输出时钟并没有完全评估是否满足USB协议要求。如果FLL参考时钟为片内慢速时钟,则USB模块可以使用的温度范围比较有限,需要根据温度变化自动校准片内慢速时钟。
 
 
4> 问题:为了降低功耗,芯片启动模式工作频率是否可以调低?
解答:Kinetis芯片默认启动时钟模式为FEI模式,MCG输出时钟频率为20.97MHz。可以通过配置Flash选项寄存器设置低功耗模式启动,这时内核和总线时钟为2.62MHz,外部总线和Flash时钟为1.31MHz。
回复 支持 反对

使用道具 举报

该用户从未签到

35

主题

508

帖子

0

金牌会员

Rank: 6Rank: 6

积分
2167
最后登录
1970-1-1
 楼主| 发表于 2013-4-15 14:14:34 | 显示全部楼层

RE:Kinetis芯片常见技术问题(不断更新中...)

=======================计时器模块==========================
1> 问题:RTC_TPR 寄存器是累加寄存器,除非发生溢出,否则连续读取不会出现最后读取值小于之前读取值,但是的确会发生最后读取值小于之前读取值的情况。为什么?
解答:RTC_TPR寄存器的值在增加过程中是可以被读取的,如果在TPR寄存器增加过程中同时读取寄存器的值,会由于数据总线的限制,读到不正确的值。建议客户连续两次读取TPR寄存器的值,然后软件进行验证,只取两次读取完全相同的值作为TPR寄存器的值。
回复 支持 反对

使用道具 举报

该用户从未签到

35

主题

508

帖子

0

金牌会员

Rank: 6Rank: 6

积分
2167
最后登录
1970-1-1
 楼主| 发表于 2013-4-15 14:15:00 | 显示全部楼层

RE:Kinetis芯片常见技术问题(不断更新中...)

=========================模拟模块============================
回复 支持 反对

使用道具 举报

该用户从未签到

35

主题

508

帖子

0

金牌会员

Rank: 6Rank: 6

积分
2167
最后登录
1970-1-1
 楼主| 发表于 2013-4-15 14:15:34 | 显示全部楼层

RE:Kinetis芯片常见技术问题(不断更新中...)

========================安全模块============================
 
1> 问题:如何获取DryICE模块技术资料?
解答:DryICE模块内容需要客户签NDA协议(飞思卡尔技术保密协议)后才能获得。客户签好NDA协议后,需要联系当地的飞思卡尔销售,销售会帮助客户获取DryICE相应资料。
回复 支持 反对

使用道具 举报

该用户从未签到

35

主题

508

帖子

0

金牌会员

Rank: 6Rank: 6

积分
2167
最后登录
1970-1-1
 楼主| 发表于 2013-4-15 14:16:18 | 显示全部楼层

RE:Kinetis芯片常见技术问题(不断更新中...)

=====================调试编程模块============================
回复 支持 反对

使用道具 举报

该用户从未签到

35

主题

508

帖子

0

金牌会员

Rank: 6Rank: 6

积分
2167
最后登录
1970-1-1
 楼主| 发表于 2013-4-15 14:16:51 | 显示全部楼层

RE:Kinetis芯片常见技术问题(不断更新中...)

=========================人机交互模块=======================
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-27 04:06 , Processed in 0.107658 second(s), 28 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表