当项目的PCB硬件调试完成之后,接下来就是些测试程序,通过编译正确无误后需要下载到ARM芯片里。可以通过ISP或JTAG来下载。下面是调试记录: 1,通过ISP接口和ARM芯片通讯 前提条件是: 【1】PLC2129的P0.14引脚需要被拉低。 【2】将UART口通过MAX3232E/SP3232E和PC机相连,这里注意,因为LPC2129的供电电压是3.3V和1.8V(ARM Core),需要的和PC机通讯的RS232接口芯片也需要3.3V工作电压,否则通讯不上。 满足以上条件,就可以在Flash Magic的软件界面里读到ARM7的ID号了,操作如下:在Flash Magic的主界面->ISP->Read Device Signature,就会出现如下界面。 但是在串口接入了DTR和RTS硬件流控制线,如下需要要进行编程或擦除操作,则还需要需要如下设定:主界面菜单->Options->Advanced Options,如下图
2,通过JTAG接口和ARM芯片通讯 SEGGER J-Link Commander V4.46a ('?' for help)
Compiled Apr 13 2012 19:32:19
DLL version V4.46a, compiled Apr 13 2012 19:32:02
Firmware: J-Link ARM V8 compiled Dec 1 2015 11:42:48
Hardware: V8.00
S/N: 20080643
Feature(s): RDI,FlashDL,FlashBP,JFlash,GDBFull
VTarget = 3.229V
Info: Could not measure total IR len. TDO is constant high.
Info: Could not measure total IR len. TDO is constant high.
No devices found on JTAG chain. Trying to find device on SWD. WARNING: RESET (pin 15) high, but should be low. Please check target hardware. WARNING: RESET (pin 15) high, but should be low. Please check target hardware.
No device found on SWD.
Did not find any core.
Info: Could not measure total IR len. TDO is constant high.
Info: Could not measure total IR len. TDO is constant high.
No devices found on JTAG chain. Trying to find device on SWD. WARNING: RESET (pin 15) high, but should be low. Please check target hardware. WARNING: RESET (pin 15) high, but should be low. Please check target hardware.
No device found on SWD.
Did not find any core.
J-Link> 出现上述问题的原因主要有以下几个方面: 【1】硬件连接,可以按照NXP官方提供的标准接法如下图 需要检查ARM芯片的JTAG定义的引脚和JLink接口定义的引脚一一对应(注,这里是10PIN接头),如下图 如果硬件连接没有问题,需要检查各连线之间有没有虚焊,然后再JLink的命令窗口的"J-Link>"提示符后面键入"r"命令,用示波器分别测量TCK、TDI、TDO引脚的信号,如果正常,是可以测量到脉冲信号的。 【2】ARM芯片内部使能了CRP(Code Read Protection)功能 如果LPC系列的ARM芯片使能了CRP功能,JLink将无法读取ARM内部寄存器的内容,从而不能找到ARM core ID。
详细信息请参考LPC2100系列ARM7微控制器的加密方法和LPC2478加密设置(LPC)(加密)
If the CRP has been enabled, there is nothing J-Link can do to erase the device since the JTAG interface is disabled.
The LPC devices provide a so called ISP mode (UART communication) in which a device erase command can be sent to mass erase the device which also causes the CRP to be lifted.
If the CRP is disabled but there is a malfunctioning application in the flash memory which for example locks-up the device by incorrectly setting up the PLL or things like that
which also prevents a connection via JTAG and makes it impossible to identify the core,
you can force the device to boot in ISP mode which does not start the application but the JTAG interface is enabled.
In this mode the device can easily be erased via J-Flash, Flasher ARM etc.
3,在KeilMDK下通过JLink调试 以下是参考百度文章: 烧写程序有两种方式 一种是串口ISP下载 ,这个要求你下载个ISP软件 LPC2103 ISP烧写 首先flash magic只支持hex 16进制文件的下载。所以在用ADS做ARM开发的时候必须选择生成hex文件。 具体的方法如下: DeubgInFLASH Settings---->Targets 由于ARM7内核结构的特MOD,当ARM7系统上电或复位后,是通过配置引脚的状态来选择几种启动模式的。 通常根据各个公司各系列芯片的不同,大致包括片内Flash启动模式、片内RAM启动模式、外部存储器启动 模式等;另外,现在很多ARM7芯片都支持片内Boot装载程序实现在系统编程(ISP)和在应用编程(IAP), 如何在复位后进入ISP或者IAP状态,都需要通过配置引脚的状态来确定。因此,除了电源、晶振、jtag、复位构成最小系统的四部分基本单元电路外,最小系统若要正常工作,还需要根据芯片的特MOD添加启动选择电路,这个是与普通的8位单片机所不同的。 对于LPC2103或者LPC2148来说,它的Flash和Ram都内置而且不能外扩外部存储器,上电或复位后系统根据配置引脚P0.14口(又称ISP使能引脚)的高低电平来选择是进入ISP状态还是系统正常从Flash启动。在系统复位时,若P0.14口为低电平,进入ISP状态,若P0.14口为高电平, 正常从Flash启动。硬件上通过跳线来实现,如下图 所示。这部分电路很简单,1个上拉电阻,1个跳线,但对于整个系统是必可少的,若缺少这一部分电路,LPC2103或者LPC2148上电后将进入一个未知的状态,导致系统无法正常工作。正常工作情况下,跳线断开。 推荐参考资料 http://hi.baidu.com/arm7С�м�/blog/item/735ccea3fc7ab6d67dd92a5c.html 推荐另一种是J-link下载 ,这个你可以买个下载头 JTAG接口的基本工作原理是:在芯片内部定义一个TAP(Test Access Port,测试访问端口),开发人员使用连接到芯片的JTAG外部接口上的JTAG调试器,通过访问芯片内部的TAP端口来扫描芯片内部各个扫描单元以写入或读取扫描寄存器的状态,从而对芯片进行测试和调试。一个扫描单元对应一个外部管脚,每个外部管脚有一个扫描寄存器BSR单元,所有这些管脚的扫描寄存器连在一起就形成了扫描链。简单地说,PC通过JTAG调试器对目标板的调试就是通过TAP端口完成对扫描寄存器BSR和指令寄存器IR的读写访问。要了解关于JTAG 更全面的知识,请参阅 IEEE1149.1标准。 简易JTAG线缆一端连接到PC的并口,另一端连接到目标板的JTAG接口,PC并口中的数据、I/O管脚通过一个74XX244单向驱动芯片与目标板JTAG口的TMS、TCK、TDI、TDO、TRST信号线相连,然后用PC上的软件来模拟JTAG所遵守的IEEE 1149.1标准协议,从而访问、控制目标板上处理器的I/O管脚状态,也就能访问、控制挂接在处理器总线上的flash芯片的I/O管脚,实现将数据写入flash芯片中的功能。
|