历史上的今天
返回首页

历史上的今天

今天是:2024年12月11日(星期三)

正在发生

2019年12月11日 | 将USBASP改造成STK502编程器

2019-12-11 来源:eefocus

  现在淘宝上还有不少USBasp或者USBisp的51/AVR编程器,它们使用了开源的USBasp硬件,以及PROGISP软件或者其它一些下载软件。其实我们可以非常方便的将它们改为STK502编程器,不但稳定性更好,也可以和AVR Studio无缝集成,使用更加方便。


  USBasp是开源项目AVRDoper出现之前比较有名的一个开源USB编程器项目,它可以对AVR单片机进行编程。它使用avrdude等软件做为上位机编程软件,可以在Windows和Linux操作系统中使用,但是它不能用于AVR Studio软件中,因为它的驱动使用了libusb,而不是STK500的串口方式。


  下图是一个简化了的使用AVRUSB的STK502编程器的原理图,是开源项目AVR-Doper的简化版本。为了更容易说明AVRUSB部分的功能,这里只保留了USB接口和编程接口部分的电路,去掉了电平转换、端口保护电路、升压电路、高压编程等功能,这也是AVR业余爱好者DIY时常用的一个电路。淘宝上的USBASP和这个差不多,基本没有任何保护电路(十多元的东西,要求也没有办法太高了)。如果想做一个功能完善、带有良好保护电路的STK502编程器,可以参考一下AVRUSB的开源项目AVRDoper,它提供了详细的原理图和完整的代码。


  下图中XS1作为编程接口,它使用了标准的6芯接口方式,通过它可以对其它单片机进行编程(XS1也可以使用10芯的接口方式)。如果将P1使用短路块连接,那么这个接口也可以作为外部编程器对单片机U1的编程接口,方便升级单片机的程序,或者写入Bootloader、改变熔丝位等。
 usbasp.gif?imageView2/2/w/550



  因为AVR-doper这个项目已经提供了完整的参考程序,所以只需要拿过来修改一下参数就能使用(主要就是USB接口D+和D-部分的参数和编程接口的定义)。和其它AVRUSB项目的参数设置不同,这个项目的参数配置稍微有一点特殊,它不是直接修改参数配置文件usbconfig.h,而是修改另外一个硬件配置文件hardware.h。打开文件hardware.h后,找到下面代码段后,就可以根据说明修改对应的参数:


/* The following defines can be used with the PORT_* macros from utils.h */



//这一行选择硬件,1代表使用USBASP硬件方式

#define USBASP_HARDWARE     1



#if USBASP_HARDWARE         /* USBasp hardware from www.fischl.de/usbasp/ */



#undef ENABLE_HVPROG

#define ENABLE_HVPROG       0

#define METABOARD_HARDWARE  1   /* most settings are the same as for metaboard */



//定义LED指示灯接口

#define HWPIN_LED           C, 1

#define HWPIN_ISP_SUPPLY1   C, 3    /* these pins are NC on USBasp */

#define HWPIN_ISP_SUPPLY2   C, 4



//定义ISP编程端口,也就是硬件SPI端口

#define HWPIN_ISP_RESET     B, 2

#define HWPIN_ISP_MOSI      B, 3

#define HWPIN_ISP_MISO      B, 4

#define HWPIN_ISP_SCK       B, 5



//USB接口,DPLUS代表D+,DMINUS代表D-

#define HWPIN_USB_DPLUS     D, 2

#define HWPIN_USB_DMINUS    D, 4

#define HWPIN_ISP_TXD       D, 0

#define HWPIN_ISP_RXD       D, 1

#define HWPIN_JUMPER        C, 2



#elif METABOARD_HARDWARE    /* Metaboard hardware from www.obdev.at/goto?t=metaboard */ 


  上面的参数配置是对应上面的参考电路图,大家可以根据自己使用的单片机和具体硬件电路修改上面的参数。最主要的参数就是上面深色背景表示的参数,它们分别对应LED指示、ISP编程接口、USB接口等。修改并保存参数后,重新编译整个项目,最后下载到单片机中就可以进行编程测试了。
 

  如果使用BootloadHID配合AVR-Doper,效果更好。用户可以随时通过USB升级编程器固件程序,或者改变程序的功能。

推荐阅读

史海拾趣

Diodes公司的发展小趣事

Diodes公司积极实施全球化战略,不断拓展海外市场。公司在以色列、加利福尼亚、得克萨斯和日本等地设立了制造工厂,形成了覆盖全球的生产和销售网络。这些工厂不仅为Diodes提供了充足的产能支持,也为公司赢得了更多国际客户的青睐。同时,Diodes还积极参加国际展会和交流活动,加强与国际同行的合作与交流,不断提升公司的国际化水平。

亿晶源(ekinglux)公司的发展小趣事

在不断提升产品质量和创新能力的同时,亿晶源还积极拓展市场。公司先后在华南、华东等地区设立生产基地和销售中心,形成了覆盖全国的销售网络。同时,公司还注重品牌建设,通过参加国内外知名展会、举办技术交流会等活动,提升品牌知名度和影响力。

Emmoco公司的发展小趣事

在追求经济效益的同时,Emmoco也注重环保和可持续发展。公司积极采用环保材料和绿色生产工艺,降低生产过程中的能耗和排放。同时,Emmoco还积极参与环保公益活动,推动电子行业的绿色发展。这些举措不仅体现了Emmoco的社会责任感,也为公司的长期发展奠定了坚实的基础。

百佳(BAIJIA)公司的发展小趣事

百佳公司的创始人蔡永权,在改革开放初期,凭借敏锐的商业洞察力和对技术的执着追求,创立了中山市古镇百佳电子电器厂。初创时期,公司面临着资金短缺、设备简陋、市场竞争激烈等多重困难。然而,蔡永权带领团队坚持不懈,以质量为核心,通过不断改进生产工艺和提升产品质量,逐渐赢得了客户的信任和市场的认可。

芯佰微(Corebai)公司的发展小趣事

芯佰微(Corebai)公司自创立之初,就致力于成为电子行业中微电子领域的领军企业。创始人团队凭借对半导体技术的深厚理解和对市场需求的敏锐洞察,确立了公司的核心技术路线——专注于高性能模拟和数字集成电路的研发。在创业初期,芯佰微就投入大量资源用于技术研发,成功研发出多款具有自主知识产权的集成电路产品,奠定了公司在行业中的技术基础。

Goodwork Semiconductor ( GW )公司的发展小趣事
在通信基站、数据中心等场合,可控硅交流稳压器能够保护通信设备免受电压波动的影响,提高通信系统的稳定性和可靠性。

问答坊 | AI 解惑

问一下关于放大器的偏置电路

file:///C:/Documents%20and%20Settings/Administrator.4797A7AA28774FE/桌面/未命名.bmp请问这个电路中电感RFC和电容Cbypass值应如何计算,假如放大器的输出频率为5000MHz…

查看全部问答>

[求助]多点温度检测系统

如谁有这方面的材料的   请发给我一下可以么?不一定符合下面的要就的,关于多点温度检测系统的都可以发给me,设计一个多点温度检测系统,系统结构框图如下  : 温度测点1→   →  检测器单元1    ...…

查看全部问答>

如何修改VXWORKS的启动标题

VXWORKS启动时超级终端会打印以下信息: Copyright 1984-1998  Wind River Systems, Inc.             CPU: Motorola ADS - PowerPC 860         VxWorks: 5.4 ...…

查看全部问答>

make问题,如何解决? 困扰很久了,感谢指点

    在嵌入式系统上做Qt串口显示程序 ,make后出现的问题,查了一些资料,有的说是pro里面的HEADERS忘记加就会出现这个问题(具体加什么没说);有的说是出现“undefined reference”表示你缺少*.h        困扰很 ...…

查看全部问答>

vxWorks寄存器读写问题

我现在写不了某些寄存器(就I2C寄存器写不进去,其他都可以) 有遇见这种问题的么? 我是关了MMU的啊~ 情况如下: 我在shell中输入 查看内存0x55000000位置的寄存器。 d 0x55000000 55000000:  0100 0000 0000 0000 0000 0000 00 ...…

查看全部问答>

求购 S3C4510B 的开发板 (二手也可以)

求购 S3C4510B 的开发板 最近找了份4510b的资料,看着不错可惜没有板子练。真是郁闷啊!不知道哪为高手还有收藏! 有的话留个言! 电话:13141280460 qq:406672875…

查看全部问答>

额定电流估算口诀

已知电机功率,如何估算电机的额定电流? 三相二百二电机,千瓦三点五安培。 三相三百八电机,一个千瓦两安培。 三相六百六电机,千瓦一点二安培。 三相三千伏电机,四个千瓦一安培。 三相六千伏电机,八个千瓦一安培。 3KW以下,1个KW,2.5个流…

查看全部问答>

2812的eCAN模块问题

在自测试模式下,想实现从邮箱1发数据给邮箱3,但是运行程序发现TRS寄存器不能置位,信息发不出去,不知道怎么回事。 有没有人遇到过类似情况呢? 程序如下 void InitECan(void) { struct ECAN_REGS ECanaShadow; EALLOW; / ...…

查看全部问答>

[求教]TMS320C5416串口疑问,被卡住很久了!

学习C5416已经很久了,但是进度非常的慢,一个人盲打莽撞。 最近又碰上了个卡了很久的问题:     想用一个串口实现同时输入输出,因为C5416是全双工的。我用5416与TLV2541和TLV5636相接实现信号的输入与输出。     5416一个 ...…

查看全部问答>

The embedded system of the analog design

好书适合数字工程师了解的模拟知识   本书为那些希望掌握基本模拟知识的数字工程师而写,内容包括A/D转换器、D/A转换器、运放、滤波器以及模拟和数字系统集成设计。  本书特别适合那些从事信息家电、工业控制和机电控制系统等模拟/数字 ...…

查看全部问答>