课题:《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,提示退出
切换到串口,插上,不见动静
第二种,用串口模拟手动