文档库 最新最全的文档下载
当前位置:文档库 › 菜农群课笔记之ICP与ISP

菜农群课笔记之ICP与ISP

菜农群课笔记之ICP与ISP
菜农群课笔记之ICP与ISP

课题:《ICP与ISP详解》

主讲人:雁塔菜农

内容:ICP ISP原理及HotIsp和NuMicro ICP Programming Tool软件使用详细解说

地点:菜农Cortex-M0技术交流群群号:12047788

时间:2011-4-1320:30–2011-4-1323:40

以下内容由Swallow_0322整理,若有失误之处请谅解!

今天想再从头讲一遍新唐工具的使用方法及一些革命道理,因为有些人还

是不太明白,实际是不明白它们之间的关系和作用。首先我们最终目标是将程序代码下载到目标板上的M0芯片里(要清楚引导程序和运用程序的区别),那么必须借用一些工具及软件,主要可以通过两种途径。大家可能对其他MCU的ISP 都很熟悉,大多是通过串口进行下载,感觉很方便,那么这些芯片都内置了及固化了ISP固件,在上电启动时,通过某种接口和协议与PC通讯,完成对FLASH 的烧录。新唐的实际也是一样的,不同的是必须你将这个ISP固件想办法先放进去,有些人说这不方便,但是可能有更多的人说这种方法好,可以自己编写ISP固件,说法不一。国军在3.21日直飞西安见菜农时说想近期就事先烧录进去,但是菜农说再等大家讨论,俺觉得应该保持现状,但可以由厂家事先烧录进去,不要固化。前者需要用nulink通过ICP软件,将ISP.BIN烧录到M0的LDROM 区,所以,就有了关键词“Nulink”和"ICP",后者需要通过USB或UART(新唐的ISP很有创意)借助ISP软件再ISP,所以,我们应该首先现在新唐的ICP和

ISP软件这个是ICP的外观,这个是ISP的外观图标。

由于ICP要用到USB,xp需要驱动vista不需要,再者我们看到需要keil等调试平台,故需要下载nulink for keil的驱动,现在有个普遍的问题,就是版本的匹配问题。前天俺给一位55岁的老先生指导了四个多小时,最后实际是版本的问题。

现在大家知道了我们需要硬件nulink,软件icp,isp,keil。菜农为了更加方便,故自己在以前为nxp的arm7和m0做的isp软件hotshell升级成为hotis 直接为两个厂家的M0提供ISP服务。由于时间的问题,hotisp暂时只做了链接和整片删除功能,hotisp主要提供一些测试功能,如是否真的有nulink插入,usbisp接入等,它可以在加密的情况下读出配置位,并可强行ISP,所以,目前ICP和Hotisp是互补关系。icp主要提供nulink向M0的LDROM写入ISP.BIN,并配置从LDROM启动,这是主要任务,此后hotisp将全部接替所有后续的任务。

大家首先启动HotISP,此时主要测试nulink的好坏和驱动安装否。

这是hotisp,假若长度和检验和

早先的版本是多文件系统,内置INI文件。

后来新唐出了B系列,就存在配置升级的问题故现在做成活的。这个路径可以这样找到:右键属性可能xp的是其他名称(XP 为),可以看到了config.ini。

现在的任务是检查nulink的好坏,大家注意左下的状态栏,有系统提示,特别重要。

现在插入nulink,等5秒左右系统提示:usbicp设备接入!!!

它说明你的驱动和nulink都是正常的。此时nulink和助学板的灯都会亮的。(在使用之前要安装nulink驱动吗?对,vista可以不要),等会说版本的问题。(哦那么win7也不需要了,俺没有win7)。

停留说明设备还在。

链接ICP开始

测试:Nu-Link制作芯片为NUC120RE3AN,软件版本号为4125

测试:目标板芯片为NUC120RE3AN

测试:Config0=0x80000002,Config1=0x00000000

测试:程序从LDROM启动,程序未加密

ICP链接成功

直接拔掉具备

3次,故约5秒hotisp才

再点击"ICP",链接进入下图。

注意它全部是hotisp测试出来的,它的依据就是那个配置文件config.ini。

config0的翻译

点击看看,可以看出config0变化了,再点击有复原。

注意,这是目标板子的芯片。

这是hotisp测试的nulink的版本号,特别注意这个版本号4125,

keil mdk 4.12a是4125,高的版本是4228,所以keil和icp的版本应该一致

【新唐是通过keil或icp自动对nulink 否则就会存在一会升级一会降级的问题。

升级的,不匹配可以要升级或降级,keil或icp有权力对nulink升级或降级,所以为了避免这点:keil4.12应该unlink4125(ICP)keil4.14以上应该unlink4228(ICP),那晚把俺折腾的老先生就是4.13,最后降级驱动降级到4125,keil没变。(120助学板配的是哪个版本的unlink?4125,icp可以强行升级它,升级完就可以变4228了?icp可以强行升级它到4228)

但若keil为4.12则调试又将nulink降级到4125,所以来回折腾】现在就要使用新唐的ICP了!为什么?因为现在hotisp不具备烧写LDROM 的功能。这是要把hotisp的链接断开(断开后显示为)、

、。

助学板用的是ICP不能自动识别,故必须选择一个M0

的大类型--》

链接--》,我现在就是版本不匹配的问题,因为我的ICP是4228,nulink是

的内容,这是芯片里面的数据。

3个,也可以只写一个ldrom,它就是我们

需要

下来需要配置,选中点击,弹出对话框。

就不会运行,也就不能ISP了

,使能,点确定。

--》

离线下载是需要,这三个要选择--》点击确定,现

在就可以烧写了,我只选择了ldrom和配置,(此操作是将isp.bin写入目标芯片的LDROM及配置目标芯片

因为要改写配置,故必须整片擦除。(所以有如下提示)烧写后,目标板的内部只有isp.bin了。

(改写配置必须全部重新FLASH?对)

你可以加密,ICP是在4228开始支持批量的,所以从这里也可以区分4125和4228,此处选,ICP的任务就结

束了。

此时要断开,回

到hotisp。我发现个问题,可能是没有复位,我们试试,注意,我们刚ICP完,没断电,现在开始自动ISP。注意,主频我们不理会,那是为nxp的用的。

选中。在hotisp的右侧主要操作这个。

注意波特率是57600,我们用的是COM10(usb转串口)现在我没插串口,

双击

已经没了,现在系统有提示串口个数是否变化,我接串口。(三线串口不能用,必须要带流控全串口?对)。

死机..............

,我现在拔掉串口双击

没了,系统提示串口个数发生变化,即少了一个串口,因为俺拔掉了。

再插入,再双击,识别成了COM11,

,选择COM11;

--》打开

,COM10变为COM11估计是刚才蓝屏的结果,必须关闭。

开始连接,

链接成功后显示,DB9的1

脚,是用于远程监测的,假若有数字,说明远程的助学板首先是开机的,

因为里面的max3232里面的非门其作用了,至少变化了,这主要检测远程的助学板开机否,协议的握手进一步检测是否死机,假若没数字即max3232没工作,远程就没开机。

自动ISP的电路:

看看DCD信号,对于PC是输入的

它实际是DB9_3即PC的TX输入,经过3232到达RXD0,即PC发送数据,M0接

收数据,直接没经过M0而进入T2IN,经过3232的非门即反向到达DB_1即DCD。

假若3232坏或目标板未开机,那么非门就不会作用,DCD就不会得到至少一次的变化,一位串口的一帧由起始位0数据0xff(假使)和停止位1组成的,那么至少有一个脉冲的发生所以这个21是跳变的数字,并不是发送的数据,只要跳

变,就可以知道对方开机否,这就是DCD的目的。所以,助学板已经具备了远程被控制的能力。

有人批评自动ISP电路复杂,没意义。都是神马和浮云!

!这个在新唐的ISP就要直接擦除,HotISP

hotisp的ISP和新唐的ISP完全兼容,功能一样并更加强大,自动识别检测注

编程设置,一般选择APROM和DATA,还有校验、擦除

开始编程

aprom和data都通过了校验,因为

断开,断开后显示,这样,我们的串口自动ISP就完成了。

那么写入的程序对吗???注意:ICP没写程序,只写了ISP固件,而程序是由HotISP完成的。C:\HotISP\hex\Smpl_DrvRTC.hex,注意:我们选择了RTC 做实验。HotISP自带串口助手,立即检查。

点击,

选择你的串口号

准备打开,打开后可以看见程序确实写入了!!!

就是你的复位键!!!打钩就

可以清空!

此处为测试DTR控制复位的效果,自己实践一下吧,呵呵!

这是将要远程控制的

最后一个USBISP,现在俺没接线,

把nulink拔了

插上没动静,因为ISP.BIN固件要求PB15接地。

我们可以用3种方法链接USBISP:

第一种:

1.按下key1,rst

2.松开rst

3.松开key1

就会发现提示

可以选中表示接好了!

自动显示?

拔掉usbisp,提示退出

切换到串口,插上,不见动静

第二种,用串口模拟手动

相关文档