电脑并口下载线与串口下载线的烧录速度对比
电脑并口下载线与串口下载线的烧录速度对比测试条件:
目标单片机AT90S8335
烧录文件 8KB (填充0x00数据)
工作电压 5V
工作频率 8MHz
烧录操作 仅烧录和校验 FLASH ROM
电脑性能: Intel 赛扬1.7GHz 128MB RAM
并口下载线 STK200(自制,使用HC244,支持3V目标板)
软件 PonyProg
ICCAVR 6.22自带的烧录软件
双龙SL_ISP V1.32
串口下载线 AVRISP V3.0 downloan for ouravr(Auto adr inc ,串口速率我自己改为115200bps)
V2.1 for xiaoqi(我自己修改为AT90S2313版本)
软件 AVRprog(官方下载,自动搜索硬件,实测支持19200bps 38400bps 115200bps的通讯速率 )
双龙SL_ISP V1.32
关于Auto adr inc(自动增量地址处理)
通讯命令中 AVRISP收到 'a'指令是要回答 'Y',电脑上位软件才认为AVRISP具备该功能.
在xiaoqi的V2.1并没有回复该命令,结果每烧一个字节都要发2字节地址数据,速度并不理想。
V3.0 真正支持,速度得到有效提升。
关于AVRprog的警告 <flushing!>
AVRprog认为通讯出错,嘲笑!偷学不到家,该脸红了!
V3.0 已经修复这个BUG.原因是驱动LED(仅AVR开发板才有)的指令 'x'+data 'y'+data没有正确应答,参见3.0源程序
关于<AVR下载线改进意见>
确有其事
反正软件是用软件仿真SPI,并没启用(2313的)硬件SPI,建议改用其他管脚
并口速度数据(单位 秒):
烧录 检验 合计
PonyProg 26 6 32
ICCAVR 6.22 25 5 30
SL_ISP V1.32 120 10 130(已经设为 TUBRO 超慢)
串口速度数据(单位 秒)
V3.0 @ 115200bps
烧录 检验 合计
AVRProg 36 6 42
SL_ISP V1.32 38 8 46 (差不多)
V3.0 @ 38400bps
烧录 检验 合计
AVRProg 40 10 50
V3.0 @ 19200bps
烧录 检验 合计
AVRProg 44 16 60
总结:
AT90S8535的8KB FLASH ROM 烧录速度tWD_PROG 4mS/Byte @5V理论共用32秒时间
并口下载中
1) 免费的PonyProg做得很好,接近理论速度了,但好像已经停止开发了,不支持最新的器件
2) ICCAVR 6.22自带的烧录软件,快,正版收费。盗版另算
3) SL_ISP V1.32 好像太差了,???
串口下载中
AVRprog和SL_ISP 1.32速度都差不多。影响速度的是串口的速度。
SL_ISP 1.32的功能较强,支持各种芯片的烧录设定。
感叹:
对于双龙公司的商业手法,我个人不赞成。
低成本ISP是AVR的一个优点。
双龙抹去并口下载线中人尽皆知的集成型号(244缓冲器)也算了,
为何还要在自家软件里面恶意搞慢并口下载的速度(不要说我的电脑太慢了吧!)
这样人家也不会买你的双龙串口下载线的。
DIY ?Do It Youself!!
2004.11.06 深夜 avr910下载线固件版本已经升级到了3.6,使用了硬件SPI和90S2313做硬件缓冲,还增加JTAG ICE协议下载模式,经测试速度远超并口下载线:
测试条件:
目标单片机ATMEGA16L-8PI
烧录文件 16KB (填充随机数据)
工作电压 5V
工作频率 8MHz
烧录操作 仅烧录和校验 FLASH ROM
电脑性能: Intel P3 550MHz 256MB RAM
串口下载线:符合avr910标准的串口下载线,主控芯片换为90S2313、7.3728M晶振、通讯速率强制为115200、固件版本3.6。
下载软件:AVRprog 1.37 彩虹汉化版
双龙SL_ISP V1.32
以下为实测数据,单位:秒
烧录 检验 合计
AVRProg V1.37 5 4 9
SL_ISP V1.32 很慢 失败 失败
总结:
ATMEGA16L的16KB FLASH ROM 烧录速度 0.3mS/Byte 校验速度 0.2mS/Byte @5V理论共用9秒时间
从以上数据可以看出:
1、AVR910串口下载线经过升级固件和修改硬件后,速度飞升,远超并口下载线和JTAG的速度,达到BOOTLOAD下载的速度,且性能远比并口下载线稳定。
2、双龙的SLISP使用的是跟ATMEL不同的下载协议,导致下载很慢且写入的数据无效。
详细升级过程请到WWW.21ICBBS.COM的AVR论坛里搜索我(gxlujd )的2个帖子,一个是如何对硬件进行修改的,一个是关于升级到3.6版本的事宜。
AVR910下载线原理图:
http://cache.amobbs.com/bbs_upload782111/files_1/armok014902.jpg
点击此处下载3.6版固件 以上就是我实际测试的数据,我一直用这种下载线和BOOTLOAD下载方式的,至于并口的下载线我从来没有使用过,所以大家只能参考楼主的关于并口下载线的测试数据了。 to: HJJourAVR
双龙的降低速度是有道理的.
你延长并口线试试.
高速的出错机会很大. to: musich
看来要贴一个图了,速度应该是由用户来根据实际情况来选择。
http://cache.amobbs.com/bbs_upload782111/files_1/armok014982.jpg
MCU在系统编程软件1.3.2简介
13、在使用并行下载线编程时,编程速度是可以调节的,分TURBO、FAST、NORMAL和SLOW四档,请根据自己系统的时钟频率进行选择。
一般情况下可以参照下表进行选择
TURBO模式: SPI时钟没有任何延时
FAST模式: SPI时钟大约在100KHZ
NORMAL模式: SPI时钟大约在50KHZ
SLOW模式: SPI时钟大约在5KHZ,适于32.768KHZ超低频系统。
TURBO SLOW模式:SPI时钟大约在1KHZ,支持16KHZ以下的时钟频率。
注意:
1、 当您选择AT89S51/52时,你的系统可能不支持TURBO模式,建议选择FAST以下的模式。
2、 选择TURBO模式可以获得最快的编程速度,但对系统的要求会高,如果出现进入不了编程模式或校验出错,请降低编程速度。
请问该软件做到了没? 我简单查看了avr910_2313_V36.asm
( www.mikrocontroller-projekte.de 30.Sep.2004 版本的汇编源代码)
发现:
1) 依然是软件SPI参见子程序 rdser, wrser。
2) AT90S系列MCU仅仅支持字节写模式 每次一个字节 编程时间 4mS
ATMEGA系列MCU支持页写(Block Write)模式 每次64字(128字节) 编程时间 4.5mS
新产品MEGA系列支持页写模式,速度明显提高了
参数:
串口115200bps n,8,10.0868mS/Byte (10bit)
SPI 0.043mS/Byte AVRSTUDIO仿真得到的数值
页写 Block Write 4.5mS/128Bytesfor ATMEGA16
字节写 ByteWrite 4mS/Byte for AT90S8535(实际时间用不到4mS)
AT90S85358192字节
(0.0868 + 0.043*4 + 4 )*8192+100(mS)= 35S
UART SPI 写 其他
ATMEGA16 64字x128页
(0.0868*128+0.043*4*128+4.5)*128+100(mS) = 4.9S
UART SPI 写 其他
ATMEGA8推测时间 32字x128页
(0.0868*64+0.043*4*64+4.5)*128+100(mS) = 2.8S
UART SPI 写 其他
ATMEGA64推测时间 128字x256页
(0.0868*256+0.043*4*256+4.5)*256+100(mS) = 18S
UART SPI 写 其他
总结:
1) 无论是那种下载线,如果MCU本身支持页写模式,速度将会高速提升。
2) 在页写模式中,UART和SPI是影响速度的主要因素
a. UART 115200bps 已经是普通串口最高速度,
该版本的作者建议使用USB型串口转换器,以获得更高速度参见NOTE16
b. SPI速度也不能再提高了
ATMEL文件:
串行时钟(SCK) 的最小低电平时间和最小高电平时间要满足如下要求
低:> fck < 12 MHz 时为2 个CPU 时钟周期, fck >= 12 MHz 时为3 个CPU 时钟周期
高:> fck < 12 MHz 时为2 个CPU 时钟周期, fck >= 12 MHz 时为3 个CPU 时钟周期
要兼顾 1MHz~8MHz,速度只能以1MHz为准。
c.你可以为8MHz或16MHz的用户板做个专用版本,但相信BootLoads 的速度更高!!
3) 对于AT90S系列MCU,Sorry!无论是那种下载线,最高速度只能是 约 35S/8Kbytes 了
-----此内容被HJJourAVR于2004-11-06,15:46:24编辑过
-----此内容被HJJourAVR于2004-11-06,18:43:53编辑过 还没有和双龙联系。
我是这段时间要做一条串口下载线才研究的,学AVR倒有一年多了,建议大家多用C语言,AT90S升级到ATMEGA是改动很多寄存器,用汇编将会令你痛不欲生, 除非类似AVRISP这种要求时序速度很高,容量又小的任务
不过ATMEGA下载速度已经不错了,希望双龙公司能把下载线升级到最新的软硬件版本,方便以后的用户,也希望双龙能向旧用户提供升级服务,毕竟他们都是用钱买来的。
MEGA系列的IAP功能很吸引我,但手头上只有AT90S8535和AT90S2313而已。
MEGA系列的优点很多: 多累加器,预分频定时器,ISP,PWM,ADC,SPI,I2C,IAP,价钱也不贵,相信MEGA系列很快能占领市场。
不过,更要谢谢你创办了ouravr,AVR的芯片和软件支持方面还有很多问题,希望大家能在这里交流交流
我遇到 AVRstudio不能定义很多中文字符 如.db '我是中国人汉字显示困难' 必定出错(查看机器码和应用出错,但编译器不报错)
我也老是觉得 ICCAVR的代码优化不够,IAR好一点,这是我先学汇编后学C的固执心理
-----此内容被HJJourAVR于2004-11-06,16:31:08编辑过 Sorry!
我说的是 DB 伪指令 在FLASH或EEPROM 中定义字节常数
DW 伪指令 在FLASH或EEPROM 中定义字常数
CHARTAB:
.db"我"
.db"是"
.db"中"
.db"国"
.db"人"
.db"汉"
.db"字"
.db"显"
.db"示"
.db"困"
.db"难"
.db00H,00H
http://cache.amobbs.com/bbs_upload782111/files_1/armok015042.jpg
其中红圈的 "中汉字难"的机内码搞错了,中文机内码高低字节都大于0xA0的,怎会出现0x20呢
我 CED2
中 D6D0
汉 BABA
字 D7D6
难 C4D1
你对比一下Keil C51 你就会发现生成的机器码不一样 话题不同,开新贴了,顺便捞点积分。
http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=58522&bbs_page_no=1&bbs_id=1000 AVR910下载线支持ATMEGA48芯片吗???
页:
[1]