|
发表于 2009-6-15 23:56:39
|
显示全部楼层
试试这个版本的驱动和固件.
HEX文件ourdev_453595.rar(文件大小:7K) (原文件名:output_m8.rar)
固件源码ourdev_453596.rar(文件大小:1.57M) (原文件名:usbavrlab.rar)
WINDOWS驱动ourdev_453597.rar(文件大小:29K) (原文件名:driver.rar)
由于原版图与马老师的图有一点出入。原版的能检测外部开发板的电压。
烧入的新固件后指示灯和电压检测就不起作用了。
修改程序中main.c的
led_t leds[] = {{0,LED_OFF,LED_OFF},
{1,LED_OFF,LED_OFF},
{3,LED_OFF,LED_OFF}};
注意它受到宏定义的控制
或
使能config.h中的
#define USBASP_COMPATIBLE
就可以使用指示灯了。
原版的图 (原文件名:TARGET_ AVRISP_mini.gif)
我的图ADC部分有一点儿错误。
如果要使用电压检测.
硬件修改:
硬件中不要焊接100欧姆的R19
在PC2和GND之间接入一个20K电阻。
原来的接在VTG和PC2之间的1K电阻换为30K。只要形成3:2的阻值就行,要K级的,阻值别太小。
软件修改:
就要在Config.h中自己再定义一个类似#define USBASP_COMPATIBLE 的宏比例
#define USBASP_MY_COMPATIBLE
然后修改main.c,加入刚才定义的宏。
#ifndef USBASP_MY_COMPATIBLE
#ifndef USBASP_COMPATIBLE
#ifndef CCCB_COMPATIBLE
led_t leds[] = {{4,LED_OFF,LED_OFF},
{3,LED_OFF,LED_OFF},
{5,LED_OFF,LED_OFF}};
#else //CCCB_COMPATIBLE
led_t leds[] = {{2,LED_OFF,LED_OFF},
{3,LED_OFF,LED_OFF}, //not there
{5,LED_OFF,LED_OFF}};//not there
#endif
#else
led_t leds[] = {{0,LED_OFF,LED_OFF},
{1,LED_OFF,LED_OFF},
{3,LED_OFF,LED_OFF}};
#endif
#else
led_t leds[] = {{0,LED_OFF,LED_OFF},
{1,LED_OFF,LED_OFF},
{3,LED_OFF,LED_OFF}};
#endif
把ISP.h中的
#define ISP_SUPPLY PC1
改为
#define ISP_SUPPLY PC2
把ISP.C中SP_getsupplyvoltage函数里
ADMUX = 1; // Kanal waehlen
改为
ADMUX = 2; // Kanal waehlen
重新编译下载就OK了。
楼上的兄弟,我突然想到可能是你的ISP下载速度太快了,把速度调低。必须低于四分之一你的AVR目标芯片的工作频率才行。
另外我在使用马老师提供的固件在烧写ATINY13V的时候总是有问题,老是失败。更新一下固件后就好了。
(原文件名:Avrisp_small.jpg)
德国人的网站使用这个硬件衍生出很多工具,感兴趣的可以参考一下,有逻辑分析仪,示波器等。
(原文件名:1234.gif) |
|