原创 自制简单方便的51/avr单片机USB ISP 下载线 (软件部分)

2009-3-5 09:41 12362 9 22 分类: MCU/ 嵌入式

自己用CH341A制作的使用USB ISP 下载线需要使用CH341DP的烧写软件。装好驱动将下载线的USBA口公头连到电脑后,打开CH341DP.EXE就能自动监视检测下载线了2d0c77aa-6b70-4e4f-a2c7-9e29f0207a65.jpg,当程序提示显示为9d6eb786-81cb-45fb-9786-8a2bd43eeb28.jpg时表明下载线好使(注意一定要给下载线ISP插座一头的VCC,GND连接到单片机的电源和地上,否则会检测不到下载线),之后选择MCU(如果是51则必须自己手动选择为89S51/52而对于AVR则程序会自动识别芯片型号的)再点击配置按钮对于89S52其主界面如下图:点击看大图对于AVRatmage16其程序主界面如下图:2e843ded-c1cb-4f55-b23e-9f03b677f64e.jpg点击确定按钮点击看大图


配置完后就可以点击“浏览”按钮选择要烧写的程序了点击看大图这个USB下载线烧写速度是很快的f94e12f7-f355-4c35-8784-d5b2dad1740b.jpg


烧写52情形:点击看大图


烧写成功:点击看大图


这个下载软件需要注意的是:


由于这个软件不同于双龙的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吧,比较遗憾的是他们又不对个人用户公开下载软件源代码也就不能为广大使用者所修改和加补丁了)。(图十)点击看大图


(图十一)4090d157-71ae-4d65-9983-e5b130d7e3da.jpg



SUT1        不选          (AVR芯片出厂时的默认配置--使用内部1MHz时钟源,CKSEL3~CKSEL0为“0001”和SUT1~SUT0为“10”,如图十一)
SUT0        选             (为最长的启动延时,保证了无论外部晶振是否工作都能进行最初的ISP下载,但用户得小心配置这些位,CKSEL3~CKSEL0一旦配错可能造成芯片无法启动而锁死。)
CKSEL3      不选            (如果使用外部振荡器作为系统时钟就必须先正确配置CKSEL位,否则系统运行会出问题,比如时钟错误等,若没有使用使用外部振荡器作为系统时钟时,千万不能对CKSEL位错误配置或者配置为外部时钟振荡器
CKSEL2      不选              (因为这时系统会失去工作时钟而死机,ISP模式将不能对其编程(除非尝试人为在芯片的晶振引脚输入有源晶振等时钟信号使得ISP工作,将其配置为内部1MHz工厂设定时钟后再根据实际修改为需要的正确时钟源),只能通过JTAG或者并行烧写器对其进行编程了
CKSEL1      不选               
CKSEL0      不选


总之详细配置参见下图:


点击看大图蓝色部分为AVR出厂默认设置


点击看大图


点击看大图


关于融丝其他相关说明:


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

PARTNER CONTENT

文章评论13条评论)

登录后参与讨论

用户571671 2010-1-28 15:13

好的,我的QQ在页面右侧博客公告上有

用户280118 2010-1-26 11:53

联系一下 我地为什么不能检测MCU 其他一切正常啊 ····

用户571671 2010-1-12 10:50

电路图在“自制简单方便的51/avr单片机USB ISP 下载线 (硬件部分)”啊

用户228857 2010-1-4 17:54

我没有看到你的图

用户214811 2009-11-5 13:19

请问下楼主,用它给C51下载程序行吗?

zengxiang11111_844991846 2009-9-3 10:55

顶~~~~~~~~~~~~

用户571671 2009-6-12 17:41

晶振的起震电容呢20-30pf应该都不是问题的,关键是你主要电路对了就可以了的,嗯,熔丝位的问题比较重要,出现“数据校检错误,请重新下载”嗯,那就不要用下载太快的方式了,选用一般速度就可以了,越快的话由于屏蔽和布线等原因会造成错误。

用户158591 2009-6-6 09:08

情况有所改变,楼主共享的是v1.2版本的下载软件,现在在沁恒网站上可以找到v1.3版本的,比较这两个版本,v1.3的下载速度更快。 我按楼主的熔丝位设定,加上外部晶振(8MHz)和复位电路。(ps:原来看有些网页上说复位电路和晶振都可以不加的,就省事没加,熔丝位按照默认的配置),就可以实现下载了。 但是去掉晶振后,然后按照内部晶振的熔丝位设定方式,还是提示“数据校检错误,请重新下载”。 还有一个问题想问下,晶振的起震电容我用的是30pf,是不是有点大,用20pf或者22pf会不会更好点?

用户158591 2009-6-6 07:59

烧写52可以,烧写mega16的时候,我用默认的熔丝位设定,并且也没有外部晶振,可以读配置成功找都mega16,但是下载的时候就会提示“数据校检错误,请重新下载”。

用户206608 2009-6-4 22:50

无法使用软件
相关推荐阅读
用户571671 2011-12-14 21:33
关于“自制简单方便的51/avr单片机USB ISP下载线”的一些说明
   之前自己写的“自制简单方便的51/avr单片机USB ISP 下载线(硬件/软件部分)”得到了很多朋友的关注,大家也提出了一些问题。在这里我系统地说明一下:         1.用沁恒公...
用户571671 2010-06-14 20:28
完全解决Protel 99SE汉化版的菜单和功能丢失问题
Protel 99SE是一款极其优秀的PCB设计软件,小巧而又功能丰富,对于电脑的硬件的要求很低,那些凡能跑WINDOW98的电脑也可以运行。可惜有两个典型的不足:1.没有官方的汉化版,这对于懂英语的...
用户571671 2010-06-04 17:07
让Ubuntu10.04中的YAMAHA声卡发声
自己的电脑上已经装了Ubuntu10.04好久了,最近才发现它居然还是个“哑巴“,一直没有声音,不管是启动还是用各种播放器播放MP3歌曲均不能听到声音。都说Ubuntu对于设备的驱动已经做的很好了的,...
用户571671 2010-03-27 12:04
INTERL BUS和MOTOROLA BUS及其区别
在实际应用中用到的很多带并行总线的芯片的硬件连接、读写操作都分为INTERL BUS和MOTOROLA BUS(某些文献上又叫INTERL 模式和MOTOROLA 模式)这可以在相应的芯片手册上看到,...
用户571671 2010-02-27 13:57
LCD BackLight Control for utulinux 2440 LCD 背光控制
LCD BackLight Control for utulinux 2440 LCD 背光控制                     注解:borlittle仅供学习参考,源代码版权归原著者所有 ...
用户571671 2010-02-27 13:55
LED Example for utulinux 2440 LED测试示例
LED Example for utulinux 2440 LED测试示例注解:borlittle仅供学习参考,源代码版权归原著者所有<?xml:namespace prefix = o ns ...
EE直播间
更多
我要评论
13
9
关闭 站长推荐上一条 /3 下一条