Kinetis程序烧写检查单
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文主要写给Kinetis的初学者,特别是首次使用Cortex-M内核产品的工程师,文章主要针对用户在下载程序或调试过程中经常遇到的问题进行分析,其内容主要包括:
1.原理图说明
2.硬件电路板自检
3.Kinetis调试工具说明
4.程序无法下载分析
5.Check List
一.原理图自检
这里仅介绍与调试相关的原理图
图1 Kinetis MCU接口连接示意图
二.硬件电路板自检
在贴片硬件电路板之前,最好先对电路板做一下简单的短路测试,特别有些PCB尺寸非常小,加工精度要求比较高的板子,如果生产厂家没有做相应的测试,很有可能PCB本身是存在短路的。MCU相关电路需要特别注意以下几点:
1.各级VCC/VDD和GND之前是否存在短路。
2.外部晶体电路是否存在对地短路。
在PCB焊接之后,同样需要做相应的检测:
1.检测JTAG/SWD插针到MCU管脚是否存在虚焊或连焊。
2.检测NMI管脚上拉是否有效。
3.上电检测各级VCC是否正常工作。
4.检测MCU的IO口是否有因虚焊导致的过压/过流。
5.
三.Kinetis调试工具说明
Kinetis常见的评估板包括:FRDM Board, TWR Board, MAPS Board, 目前常见的这些开发板都板载了mbed仿真器,用户无需额外购买仿真器来进行调试。板载的mbed仿真器可以通过U盘拖拽的方式下载编译好的二进制代码,也可以通过在IDE调试环境中通过CMSIS-DAP来进行代码的仿真。同时,用户可以通过按住Reset按钮上电的方式,使mbed 仿真器进入Bootloader模式,用户可以通过此模式更换仿真器的固件,使mbed仿真器模拟成J-Link仿真器。点击这里查看详细步骤。
用户自己设计的板子,通常需要使用外部的仿真器进行调试或者烧写,常见的仿真器有J-Link和U-Multilink.
图2 J-Link、U-Multilink仿真器图
J-Link只有一组接口10*2(2.54间距),支持JTAG和SWD两种模式:
图3 J-Link接口信号图
Kinetis系列芯片中有些两种模式都支持,有些仅支持SWD模式,设计的时候我们尽可能选择SWD模式,这中模式占用的管脚非常少,仅需要VCC, SWDIO, SWCLK, RESET, GND这5根线,如果不考虑对芯片进行解锁,RESET也可以不接。
U-Multilink有多组接口,支持NXP多款内核的芯片,其中PORTB和PORTG是针对Kinetis 系列的,其中PORTB与J-Link的接口类似,而PORTG是5*2 (1.27间距)与FRDM板接口类似
图4 U-Multilink接口信号图
需要注意的是,Kinetis的RESET管脚可以与需要与Jlink接口的Pin15相连,并非Pin3。四.程序无法下载分析
当硬件检测无问题后,就可以通过仿真器对Kinetis进行编程,首先可以通过J-Link Commander读写Kinetis芯片ID的方式来验证芯片是否正常工作。
1.连接J-Link仿真器与MCU,并上电,如果芯片为空白芯片,可以看到J-Link仿
真器的灯为红色,这是由于芯片内部没有用户程序,默认的看门狗会不断复位
芯片(像KL17这种出厂有烧好的Boot的芯片例外)。
2.双击J-Link Commander图标,如果有如下提示,说明仿真器可以正常访问芯
片,如果在IDE(IAR,KEIL,KDS)中不能下载程序,说明是软件配置的问题。
可以在Check List里查看对应的配置。
3.如果J-Link Commander无法读取到芯片ID,需要仔细检查下J-Link与MCU之
间的连接是否正确,特别是线序,以及线的质量,同时减小接口连线的长度。
由于SWD是串行工作的,信号在线上的质量不好,可能会影响时序,这个问
题也可以尝试降低SWD的工作频率,具体方法见Check List。
4.有些情况下,芯片可以烧写一次,但是第二次就不能继续烧写了,这个问题有
几种可能:
(1). 第一次烧写的程序包含加密位,芯片被加锁了,而芯片的Reset并未与
MCU Reset引脚相连,此时由于J-Link无法写入解锁命令,所以芯片无法重新
编程。重新连接Reset后,就可以重新编程。这里还有一个问题,部分MCU支
持Reset Pin复用GPIO功能,如果用户程序把reset pin在代码中复用成GPIO,
可以通过下拉NMI管脚后上电的方式,让用户程序来不及不执行IO口切换函
数,并通过J-Link Commander输入unlock kinetis解锁命令来将之前的程序清
除。
(2). 第一次烧写的程序进入了非常低的低功耗模式,与第一种问题类似,同样
可以通过连接Reset的方式重新下载程序。
(3). 第一次烧写的程序将LVD的电平设置为比较高的电压,而供电电压根本达
不到这个值,这个问题比较容易在KE系列上出现,由于KE系列支持2.7V ~
5.5V供电,并且LVD有4.3V和2.6V两个阈值,当用户使用3.3V供电时,如果
用户代码将LVD设置为4.3V,则芯片无法正常启动,Reset始终处于复位状
态,同时也无法下载程序。此问题同样可以通过连接RESET并利用unlock
kinetis命令来解锁。
五.Check List
硬件检查:
1.板子上电前检测电源,Reset对地是否存在短路
2.根据图1所示电路,连接仿真器并检测信号是否导通
3.检测NMI管脚是否有上拉电阻
4.上电检测各个电源域是否正常
5.上电检测Reset信号,如果为持续的高,说明芯片内部已经有Code在运行,如果
为类似三角波,说明芯片在不断的复位,如果持续为低,需要检测Reset对地是否有短路
6.通过J-Link
软件检查: