本帖最后由 FSL_TICS_ZJJ 于 2014-9-11 15:20 编辑
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解锁操作,否则芯片将无法解锁。问题
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芯片。
===================工具篇=====================
1> 问题:MKL25 提供例程,使用Keil软件可以正常编译<klxx-sc-baremetal><klxx-sc-pex>目录中提供的例程,但是使用【make_new_proj_l2k_pe.exe】工具生成的例程却不能正常编译?
解答:首先需要检查所用Keil软件license类型,如果使用Cortex-M MDK-ARM License,Keil软件存在'bug',不能正常编译使用【make_new_proj_l2k_pe.exe】工具生成的例程。需要修改Keil项目Linker文件<ProcessorExpert.scf>,增加 在<ProcessorExpert.scf>文件中增加一行"--cpu Cortex-M0+"(最好增加在第一行)。Keil将会在新的版本中修正这个问题。
2> 问题:Kinetis芯片是否支持JTAG链,即一个JTAG设备可同时连接多个Kinetis芯片?硬件电路如何实现?
解答:Kinetis芯片支持JTAG链。Keil工具(ULink)和Segger J-Link工具可以支持这样的连接方式,具体信息请查看下面的链接:
http://www.keil.com/support/man/ ... nk2_su_chaining.htm
http://www.segger.com/admin/uplo ... M08001_JLinkARM.pdf
在调试器或编程器软件界面将会提供“配置选项”或“调试设置”,选择正确的配置将可以实现多个Kinetis芯片同时调试或编程。
硬件电路设计请参考下图:
常见
3> 问题:如何使用FRDM_KL05Z板子自带的OpenSDA工具调试其他Kinetis芯片?
解答:FRDM_KL05Z板子自带OpenSDA调试器,通常是用来调试板上KL05芯片。如果用来调试外部Kinetis芯片需要先见 OpenSDA工具与板上KL05芯片隔离,需要改动两处:1. 切断板子底部J6跳线1-2之间的连线;2. 如图示切断U4D-11与J6-2跳线之间的连线,需要飞线连接U4D-11与跳线J6-1。
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位并且停止环型链表轮询直到缓冲空状态位置位。可以采取增加接收缓冲数量解决上述问题。
=========================系统模块==========================
1> 问题:振荡器模块时钟低功耗模式和高增益模式的区别?
解答: 高增益模式主要用于电磁噪声环境,通过提高晶振电压幅度,提高抗干扰能力,同时功耗也会加大。在高增益模式,电压幅度会达到VCC级别,可能存在过激现象,可以通过串接电阻解决过激问题。低功耗模式是电压幅度在1V左右,容易受到噪声干扰,优势是功耗低。16MHz晶振,工作在高增益模式,功耗为1.5mA;工作在低功耗模式,功耗为700 uA。
2> 问题:为什么在访问寄存器时会产生hard fault异常?
解答:Kinetis绝大部分模块时钟默认为关闭状态,如果需要访问特定模块寄存器需要先使能模块时钟在进行寄存器读写,否则会产生hard fault异常。
=======================计时器模块==========================
1> 问题:RTC_TPR 寄存器是累加寄存器,除非发生溢出,否则连续读取不会出现最后读取值小于之前读取值,但是的确会发生最后读取值小于之前读取值的情况。为什么?
解答:RTC_TPR寄存器的值在增加过程中是可以被读取的,如果在TPR寄存器增加过程中同时读取寄存器的值,会由于数据总线的限制,读到不正确的值。建议客户连续两次读取TPR寄存器的值,然后软件进行验证,只取两次读取完全相同的值作为TPR寄存器的值。
本文转自:
http://www.freescaleic.org/bbs/article_1280_543397.html安静
礼品都是阿莫网友们的,我们不会去兑换的,所以我的飞币不做参考哦。
一周热门 更多>