| 
钻石会员 主题
回帖0
积分11063
阅读权限50
注册时间2009-12-25
最后登录1970-1-1
在线时间 小时
 
 | 
 
| 不使用高压下载编程器的时候,USBASP是avr芯片比较好用的下载器,上位机有!智峰软件,用progisp167版本的比较方便,设置熔丝是中文的。 
 
 官方的代码,PC2低电平,usbasp才会进入低速,才能读取低频率的avr芯片,比如默认内部1MHz熔丝的频率。如果芯片刚买回来是默认的熔丝值,需要进入低速,特别低的速...才能识别出芯片。设置好熔丝后,还要跳线回来,不然下载慢死。
 硬件跟官方电路一样,修改原理如下。
 
 
 YUKI修改成
 每次先根据跳线恢复速度,如果官方代码在高速跳线模式读不出来,就切换成低速模式读取。
 //  replyBuffer[0] = ispEnterProgrammingMode();
 replyBuffer[0] = ispEnterProgrammingMode_YUKI();//代码修改成自动降速,YUKI
 
 
 uchar ispEnterProgrammingMode_YUKI()
 {
 uchar b;
 // return ispEnterProgrammingMode();//原来的代码
 //根据跳线恢复设置
 //跳线设置速度的部分
 ispDisconnect();
 ledRedOff();
 /* set SCK speed */
 if((PINC & (1 << PC2)) == 0)
 {
 ispSetSCKOption(USBASP_ISP_SCK_8);//低速
 }
 else
 {
 ispSetSCKOption(prog_sck);//自动
 //默认   prog_sck=USBASP_ISP_SCK_375:硬件SPI, enable SPI, master, 375kHz, XTAL/32 (default)
 }
 prog_address_newmode = 0;
 ledRedOn();
 ispConnect();
 //加入自动降速的代码
 b = ispEnterProgrammingMode();
 if(b == 1)
 {
 //如果 ispEnterProgrammingMode(); 检测了32次都失败,就降速
 ispDisconnect();
 ledRedOff();
 ispSetSCKOption(USBASP_ISP_SCK_8);//低速
 prog_address_newmode = 0;
 ledRedOn();
 ispConnect();
 b = ispEnterProgrammingMode();
 }
 return b;
 }
 
 【usbasp_YUKI.aps】是Gcc工程文件,方便编译
 usbasp.2011-05-28_YUKI(2012-2-19)加入自动降速_YUKI.rar\usbasp.2011-05-28_YUKI(2012-2-19)加入自动降速_YUKI\firmware\default\,目录的【usbasp_YUKI.hex】是编译好的固件。
 usbasp.2011-05-28_YUKI(2012-2-19)加入自动降速_YUKI.rar\usbasp.2011-05-28_YUKI(2012-2-19)加入自动降速_YUKI\bin\win-driver\libusb_0.1.10.1_win03下使用
 带有一个可以在win03系统下使用的版本驱动。
 作为一个基本工具,如果不想意外固件上电干扰还是什么,把固件或者熔丝抹掉了,其实可以在usbasp正常使用后,usbasp硬件上的m8芯片,熔丝设置成禁止isp编程,这样芯片就相当于固化了。
 
  usbasp.2011-05-28_YUKI(2012-2-19)加入自动降速_YUKI.rar
(568.16 KB, 下载次数: 1162) | 
 |