将USBASP改造成STK502编程器(转)

源:将USBASP改造成STK502编程器

  现在淘宝上还有不少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、改变熔丝位等。
 

2014-9-25 14:51 上传

下载附件 (12.32 KB)

  因为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升级编程器固件程序,或者改变程序的功能。
avrdoper.zip (117.44 KB, 下载次数: 20)

2014-9-25 14:55 上传

点击文件名下载附件

时间: 2024-11-07 03:46:29

将USBASP改造成STK502编程器(转)的相关文章

极路由1s HC5661 编程器救砖教程

说明:极1s如果刷错了固件,比如刷了HC5661A之类的,那么,会出现亮不灯的死机情况,这个时候说明固件引导已经刷坏了,只能拆机用编程器救砖或者返厂维修.如果采用编程器的话,因为没有备份,基本不可能恢复云应用功能.另一种情况是电源灯还亮着,这种情况是不需要拆机的,修复方法官网有. 工具:淘宝买的 CH341A编程器一个,价格大约15元. 接线: 方法: 1.设置编程器 这一步很重要,我就是因为没有设置,花了一天时间,还以为是路由因为自己焊的时候焊坏了!设成与我一样就行了. 2.点击检测,差别是否

利用CH341A编程器刷新BIOS,恢复BIOS,妈妈再也不用担心BIOS刷坏了

前几天,修电脑主析就捣鼓刷BIOS,结果刷完黑屏开不了机,立刻意识到完了,BIOS刷错了.就从网上查资料,各种方法试了个遍,什么用处都没有.终于功夫不负有心人,找到了编码器,知道了怎么用.下面看看具体用法: 先买了一个便宜点的编码器: <ignore_js_op> 把刷错的BIOS芯片先拆下来:<ignore_js_op> 把芯片放到编码器上: 再找一台电脑,我的笔记本派上用场了,下载编码器的驱动程序和编码器软件:  <ignore_js_op> <ignore_

谈谈编程器软件开发与设计

*************************************************************************************************************************** 作者:EasyWave                                                   时间:2014.05.24 类别:协议标准-编程器简介                                  声明:

IAR 编程器 STM8S 脚位的位定义

多余的就不说了,都明白,为了方便操作,我们常常会用到类似于LED1 = 1来点亮一个灯,此处LED1就是一个脚位,它当然不是系统自带,一般都是我们宏定义一个脚位. 昨天刚接触IAR这个编程器,想用类似的方法来操作,但是类似51内核操作(keil中写法) sbit   LED1  PA0  ; STVD 中的  _Bool   PA0_OUT   @PA_ODR:0; 这是头有点大,一方面想着操作能方便点,一方面又不想折腾太多时间. 经过一番折腾,最后还是选择通过位操作结合宏定义来操作,具体如下:

ELINK离线编程器常见问题

Q1 编程器是否可以接JTAG JTAG接口已经包含SWD接口引脚,按以下引脚对应接线即可: SWDIO->目标板JTAG 的JTMS SWCLK->目标板JTAG 的JTCK Q2 PC机上是否可以同时连多个编程器 考虑到操作简易,ELinkPROG只允许同时识别一个编程器,建议逐一操作编程器. Q3 编程器升级是否会产生额外费用 本款编程器配套ELinkPROG工具软件和固件的升级均是永久免费. Q4 离线编程器是否有保护功能 编程器内部设计有过流保护功能(限值300mA). Q5 软件屏

ELINK编程器典型场景之多APP文件下载

有些应用场合中,单MCU内会采用BootLoader+APP1+APP2的加载模式,程序启动时先进入BootLoader程序,依据设定条件跳转至APPx应用运行:为满足此类需求,设计多达三个程序文件(含BootLoader时只能下载最多两个APP程序文件,若单独下载BootLoader则可以下载多达三个APP程序文件)下载功能,脱机下载时ELinkPROG工具把多个程序文件合并为单个镜像文件(并依据目标板MCU进行地址与范围识别)至编程器脱机存储器内. 需要注意的是加载的程序文件必须为原二进制格

全驱动编程器引脚驱动图

驱动 5V CMOS 器件, 内部输出缓冲区配置成开路模式

ELINK离线编程器版本详细说明

V1.0.2  发布日期 2018-05-01 增加支持STM32 F2.STM32 F4系列 V1.0.1  发布日期 2018-02-01 增加支持STM32 L0.STM32 F1系列 V1.0.0  发布日期 2017-09-08 支持STM32 F0.STM32 F3系列 原文地址:https://www.cnblogs.com/raswin/p/9044745.html

单片机应用编程技巧问答

1. C语言和汇编语言在开发单片机时各有哪些优缺点? 答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言.其主要优点是占用资源少.程序执行效率高.但是不同的CPU,其汇编语言可能有所差异,所以不易移植. C语言是一种结构化的高级语言.其优点是可读性好,移植容易,是普遍使用的一种计算机语言.缺点是占用资源较多,执行效率没有汇编高. 对于目前普遍使用的RISC架构的8bit MCU来说,其内部ROM.RAM.STACK等资源都有限,如果使用C语言编写,一条C语言指令编译