钻石会员
主题
回帖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)
|
|