自己用CH341A制作的使用USB ISP 下载线需要使用CH341DP的烧写软件。装好驱动将下载线的USBA口公头连到电脑后,打开CH341DP.EXE就能自动监视检测下载线了,当程序提示显示为时表明下载线好使(注意一定要给下载线ISP插座一头的VCC,GND连接到单片机的电源和地上,否则会检测不到下载线),之后选择MCU(如果是51则必须自己手动选择为89S51/52而对于AVR则程序会自动识别芯片型号的)再点击配置按钮对于89S52其主界面如下图:对于AVRatmage16其程序主界面如下图:点击确定按钮
配置完后就可以点击“浏览”按钮选择要烧写的程序了这个USB下载线烧写速度是很快的
这个下载软件需要注意的是:
由于这个软件不同于双龙的ISP软件将SPIEN位操作屏蔽(即默认为编程)而是同MAGE8USB万能烧写软件一样对于所有列出的融丝位都是开放操作的,因而要倍加小心。尤其不要将SPIEN位不编程即将钩号去掉。否则若没有JTAG使能芯片将不能再串行烧写而锁死。
融丝配置时AVR器件要求:配置融丝位为未编程为“1”,已编程为“0”。
该软件同双龙的ISP软件一样,是通过选择打钩来表示设置融丝为“0”即表示对该位编程。
详细设置注意事项:
1.加密设置位部分
芯片加密锁定后就不能从芯片读取内部Flash和EEPROM中的程序和数据了。融丝位仍然可以查看,可以通过其他配置软件的擦除命令将内部Flash和EEPROM中的程序和数据清除,并将BootLock12和BootLock11恢复为“11”,处于无锁定状态。
通常使用如图十状态配置解释如下:
融丝位 配置 (备注及解释)
BootLock12 不选
BootLock11 不选
BootLock02 不选
BootLock01 不选
Lock2 不选
Lock1 不选
2.配置
OCDEN 不选 (为“1”表示仅使能JTAG口的编程功能,编程为“0”且JTAGEN也为“0”时表示使能JTAG全部功能)
JTAGEN 可选 (JTAG编程在片仿真功能使能位,若不使用在片实时仿真则不选,以保证直接可靠的使用JTAG涉及到PC口的四个引脚的功能,不然则可能影响这四个引脚所接的外设的正常工作就需要必须将OCDEN设为“1”或者考虑JTD的设置了。)
SPIEN 必须选 (SPI串口ISP模式编程使能位,如果禁止该功能就不能使用ISP方式下载编程了,ISP编程不会影响引脚功能,但硬件电路设计时需要将ISP口与其并接的器件串接电阻或跳线进行隔离,以免其他器件将引脚电平改变而不能正常编程)
CKOPT 不选 (当使用的系统时钟频率比较高>8MH或者要求抗干扰能力强(工作环境干扰大)时可设为“0”,以保证系统时钟的稳定。当系统时钟频率比较低<2MHz时可以将其设为“1”(也是出厂默认的设置),以减少功耗)
EESAVE 不选 (执行擦出命令时是否保留EEPROM中的内容,默认为“1”表示同FLASH一起擦除,若为“0”则只擦除FLASH中的内容)
BOOTSZ1 选 (BOOTSZ1和BOOTSZ0 用于设定Bootloader区的大小及起始的首地址,默认为“00”,表示Bootloader的大小为1024个字节大小,起始首地址为0x1C00)
BOOTSZ0 选
BOOTRST 不选 (用于设定芯片上电启动时,第一条执行的指令的所在地址。默认为“1”,表示从0x0000开始执行,若设为“0”则启动时从Bootloader区的起始地址处开始执行)
BODLEVEL 不选 (电源检测功能检测的电平大小设定,为“1”时为检测4V电压,为“0”时为检测2.7V电压)
BODEN 选 (用于启动电源检测功能,5V系统检测4V电压,3V系统检测2.7V电压。当芯片的供电电压低于BOD检测电压时,AVR就进入RESET复位状态,直到电源电压恢复到BOD电平以上才使得芯片从头执行程序,保证了系统的可靠性)
以下几位用于选择系统的时钟源:
这个软件好使的一种配置即如图十所示的配置,若配置为图十一所示,将会出现软件不识别该MCU也就不能进行烧写了,芯片并没有坏的但需要用别的下载器下载软件(如双龙配合STK5000并口下载线)。将其修改到合适的状态才可识别(个人估计可能为沁恒的芯片还有不足或者下载软件还有BUG吧,比较遗憾的是他们又不对个人用户公开下载软件源代码也就不能为广大使用者所修改和加补丁了)。(图十)
(图十一)
SUT1 不选 (AVR芯片出厂时的默认配置--使用内部1MHz时钟源,CKSEL3~CKSEL0为“0001”和SUT1~SUT0为“10”,如图十一)
SUT0 选 (为最长的启动延时,保证了无论外部晶振是否工作都能进行最初的ISP下载,但用户得小心配置这些位,CKSEL3~CKSEL0一旦配错可能造成芯片无法启动而锁死。)
CKSEL3 不选 (如果使用外部振荡器作为系统时钟就必须先正确配置CKSEL位,否则系统运行会出问题,比如时钟错误等,若没有使用使用外部振荡器作为系统时钟时,千万不能对CKSEL位错误配置或者配置为外部时钟振荡器
CKSEL2 不选 (因为这时系统会失去工作时钟而死机,ISP模式将不能对其编程(除非尝试人为在芯片的晶振引脚输入有源晶振等时钟信号使得ISP工作,将其配置为内部1MHz工厂设定时钟后再根据实际修改为需要的正确时钟源),只能通过JTAG或者并行烧写器对其进行编程了
CKSEL1 不选
CKSEL0 不选
总之详细配置参见下图:
关于融丝其他相关说明:
RSTISBL位 : 默认不编程“1”-PIN1用作复位引脚,编程“0”-PIN1用作I/O口,复位为内部复位。
WDTON位: 默认为不编程“1”-看门狗完全软件控制,编程“0”看门狗始终工作,软件只可以调节溢出时间
时钟设置融丝位对应如下(由上面的图中也可以看到CKSEL3~0,SUT1~0因为系统所需要的或者所配备的时钟而定的,因而一定要按实际的情况找准了配置,因为不同的配置将决定使用内部还是外部时钟振荡源,决定启动时间的长短=时钟周期KCK+ms):
系统时钟源选择融丝:CKSEL3~0取值
1.外部石英/陶瓷振荡器:1111~1010
2.外部低频晶振:1001(CK0PT=0,使用内部36pF电容)
3.外部RC振荡:1000~0101
4.可校准的内部RC振荡:0100~0001
5.外部时钟:0000
外部振荡器设置融丝为如下对应:
融丝位 工作频率 C1,C2容量(pf)仅用于石英晶振
CKOPT CKSEL3~0 MHz
1 101 0.4-0.9 仅适合陶瓷振荡器
1 110 0.9-3.0 12-22
1 111 3.0-8.0 12-22
0 101,110,111 >=1.0 12-22
外部RC振荡器融丝位设置对于如下:
融丝位 (CKSEL3~0) 工作频率范围MHz
0101 <=0.9
0110 0.9-3.0
0111 3.0-8.0
1000 8.0-12.0
可校准的内部RC振荡器融丝位配置对应如下:
融丝位 (CKSEL3~0) 工作频率范围MHz
0001 1.0
0010 2.0
0011 4.0
0100 8.0
总之只要找准了,想清楚了再仔细配置就不会出什么问题了。如果需要更多了解融丝位的功能可以参看相应AVR芯片的使用说明书。比如MAGE16的使用说明书中就有详细的说明的:
https://static.assets-stash.eet-china.com/album/old-resources/2009/3/5/4942f591-943c-4444-96f8-763b94f93359.rar
用户571671 2010-1-28 15:13
用户280118 2010-1-26 11:53
用户571671 2010-1-12 10:50
用户228857 2010-1-4 17:54
用户214811 2009-11-5 13:19
zengxiang11111_844991846 2009-9-3 10:55
用户571671 2009-6-12 17:41
用户158591 2009-6-6 09:08
用户158591 2009-6-6 07:59
用户206608 2009-6-4 22:50