在线时间15 小时
UID421178
注册时间2013-3-15
NXP金币0
该用户从未签到
金牌会员
 
- 积分
- 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解锁操作,否则芯片将无法解锁。
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。 |
|