RoboPeak USB Connector – 免驱动USB的AVR/51 ISP编程器

来源:互联网 发布:人工智能芯片上市公司 编辑:程序博客网 时间:2024/06/04 18:04
 

这里我们很荣幸向大家分享RoboPeak团队开发并使用的免驱动USB的AVR/51 ISP编程器: RoboPeak USB Connector。他的硬件和固件设计已经完全开源,配合Arduino-Lite使用会有很多便利,希望能对各位AVR/Arduino开发者和爱好者有所帮助。

项目主页:http://code.google.com/p/rp-usb-connector/

仅使用单个Atmega88芯片制作,采用USB-HID协议,无需任何驱动可以运行在Windows任意版本(包括64位版本)、Linux、MacOS。相比USBasp编程器(目前尚未良好支持Vista和Windows7),他的优势是显而易见的。

1 简介

RoboPeak USB Connector是用于AVR/C51单片机芯片的USB接口编程器,他由AVR-Doper(http://www.obdev.at/products/vusb/avrdoper.html)项目衍伸而来。因为自身采用HID协议,无需安装任何驱动程序,即可在各类Windows版本(包括64位系统)、Linux、Mac上工作。

RoboPeak USB Connector可以认为是AVR-doper的简化版本,同时我们用Arduino-Lite库重写了他的固件代码,并且在Arduino-Lite中提供了他的支持,配合Arduino-Lite可以很方便的对AVR芯片进行开发和编程烧录。

借助于v-usb的软件USB协议模拟,RoboPeak USB Connector仅包含一块Atmega88芯片,无需USB接口芯片,这样降低了该编程器的制作成本。

支持的操作系统:

任何内建了HID usb驱动程序的操作系统均可工作。因为PC的客户端程序(avrdude.exe)以及可以在以下操作系统上工作,因此RoboPeak USB Connector应当也支持这些操作系统:
  • Linux with libusb
  • Windows from the version WinXP
  • MacOS
我们已经验证了如下的Windows操作系统版本:
  • Windows XP
  • Windows Vista, 32位版 和 64位版
  • Windows 7, 32位版 和 64位版

2 与Arduino-Lite结合给AVR/51设备编程

RoboPeak USB Connector与Arduno-Lite配套使用时将有很多便利,在Arduino-Lite中使用make burn命令即可通过RoboPeak USB Connector将HEX文件烧录进入目标AVR芯片,无需安装或者配置任何程序和环境。下面的视频短片展示了这个过程:

(http://www.tudou.com/programs/view/Den9uh3HTHE/)

这里以Windows7 64位版本为例子,当RP USB Connector接入系统后,会识别出设备AVR-Doper。

将RP USB Connector用ISP下载排线连接目标被编程设备后,进入需要烧录的工程目录,使用make burn命令即可开始下载烧录过程,如下图所示:

3 在非Arduino-Lite环境中烧录

目前avr-gcc(WINAVR)中的avrdude.exe支持AVR-Doper协议的设备,因此可以直接使用该程序利用RP USB Connector进行编程。事实上Arduino-Lite也是利用该程序。

这里推荐使用网络上可用的avrdude GUI包装程序进行操作,这里以avrdude-gui(http://sourceforge.net/projects/avrdude-gui/)程序为例进行设置即可:

您也可以在命令行下使用如下命令进行编程烧录作业:

1
avrdude.exe -P avrdoper -c stk500v2 -p <AVR_chip_type> <Operations>

也可以参考Avr-doper项目的文档获取别的方式:http://www.obdev.at/products/vusb/avrdoper.html

4 如何制作?

RoboPeak USB Connector的原理图可以在该项目的hardware/目录找到:

点击上图查看原始尺寸

可以参考RoboPeak正在使用的布局方式,我们今后也会发布PCB layout文件:

编译固件:

该过程具体见本项目中的README文件。RoboPeak USB Connector使用Arduino-Lite进行开发和编译。大致过程是将RoboPeak USB Connector的固件代码放入Arduino-Lite项目区进行编译即可。

烧录固件到RoboPeak USB Connector

可以使用Arduino-Lite并用make burnall命令来完成对新制作的RoboPeak USB Connector的编程。该命令将会把固件hex文件以及BootLoaderHID的固件下载到目标AVR芯片。并且目标芯片的熔丝也会自动得到配置。

也可以人工对RoboPeak USB Connector进行编程,使用如下的熔丝设置:

1
2
3
4
5
// 仅用于Atmega88
  
LFUSE=CE
HFUSE=DD
EFUSE=00

您也需要去烧录BootloaderHID 固件,他的hex文件可以在Arduino-Lite项目中找到( <Arduino-Lite/src/bootloaders/hidbootloader/pre-compiled/mega88_12M.hex)

5 自我编程能力

RoboPeak USB Connector支持自我编程能力。在固件中包含了一个免驱动的USB Bootloader,BootloadHID (http://www.obdev.at/products/vusb/bootloadhid.html).

在某些情况下,例如您需要更新RoboPeak USB Connector的固件,但却只有一套RoboPeak USB Connector设备,此时,自我编程能力就很有用处。

请按照如下步骤进行自我编程:

  • 连接位于P_ADC排针上的ADC0(PC1)和VCC引脚。
  • 将RoboPeak USB Connector连接至PC。
  • 此时,操作系统应当能提示有一个名为HIDBoot的设备接入了。
  • 进入RoboPeak USB Connector的固件工程目录, 开启用于编译的bash shell终端, 输入并执行

make usbupload

6 是否有成品提供?

为了方便大家,我们考虑提供该编程器的成品或者半成品(未焊接),具体信息请关注我们进一步消息。

7 参考

  • Arduino-Lite AVR固件库:

http://code.google.com/p/arduino-lite/downloads/list

  • Arduino-Lite的介绍和使用:

http://www.robopeak.net/blog/?p=42
http://www.robopeak.net/blog/?p=70

  • Arduino-Lite函数手册和开发参考:

http://www.robopeak.net/blog/?p=107

原创粉丝点击