准备了很长时间,现在终于差不多(自己也下了决心)可以拿出来了。在这里也做个小广告,喜欢DIY的朋友也可以使用RC2版本,不过只支持ARM、AVR、AVR32,并且今后维护的力度肯定是放在最新版本上的,所以RC2不会在提供过多的支持。
【介绍】 Versaloon是我自己开发的一个在线编程器,对于部分MCU也支持离线编程。 使用了CM3核心的处理器,集成USB接口,速度上也比较快,最重要的是,非常灵活。 所以目前支持的MCU种类也比较多,将来还会增加更多的MCU的支持。 Versaloon的理念是做超级加法,把各种MCU的在线编程时序(很多MCU都会公开在线编程的时序),在一个硬件工具上实现。 并且,开发Versaloon用到的所有工具都是没有版权问题的,而且具有多平台支持的特性。 比如: vsprog(上位机命令行界面程序),使用纯C语言+libusb[+libxml,用于解析xml配置文件],可以在Windows和Linux下编译,只需要修改app_cfg.h中的_PLATFORM宏,可以使用Visual C++ 2008 Express或者MinGW中的GCC编译。 vsgui(上位机图形界面程序),使用Lazarus,可以在Windows和Linux下编译,不需要做任何修改。 PCB,使用KiCAD,可以在Windows和Linux下使用,不需要做任何修改。 固件,32K以下的时候,使用IAR EWARM 5.11KS;超过的话,也可以直接使用Codesourcery G++ Lite编译,不需要做任何修改。
Versaloon Bloghttp://blog.**/SimonQian/25666/category.aspx Versaloon讨论组:http://group.**/1065/ Versaloon-usr邮件列表:http://simonqian.com/mailman/listinfo/versaloon-usr_simonqian.com taobao:http://shop36603123.taobao.com/ 最好能够先预定。
成品图片:
Versaloon_Mini RC3版本
Versaloon_Nano RC3版本
【支持的MCU】 已经支持的(我这里针对几种型号的MCU做过一段时间的测试,没有发现问题): 1.AVR(维护阶段) 支持AVR的ISP和JTAG接口下载程序,不支持仿真(除非Atmel提供给我仿真的一些资料)。 使用JTAGICE mkII的公开的协议,上位机可以使用AVRStudio或者Avrdude。 2.S51(已经在测试,并有人维护) 是通过USB_TO_XXX实现的。 支持S51的ISP功能,上位机使用vsprog(命令行界面)或者vsgui(图形界面)。 3.AVR32(已经找到测试人员) 根据STK600公开的协议开发,移植到JTAGICE mkII上,协议基本上是一样的。 上位机可以使用AVR32Studio或者IAR EWAVR32。 4.C8051F(这个好像用的人不多,测试人员都找不到) 目前支持JTAG接口,接口上已经留出了C2接口,以后会增加C2的支持。 上位机使用vsprog(命令行界面)或者vsgui(图形界面)。 5.ARM(这个芯片的种类太多了,是在没有办法都测试) ARM的支持是通过OpenOCD来实现的,Versaloon提供了一个驱动接口,并且公开的驱动的源代码。 目前在LPC214x,LPC213x,STM32F101C8上测试过,上位机使用可以支持OpenOCD的工具。 比如一些Eclipse配置的ARM开发环境,另外IAR EWARM也具有GDB Server的接口,也可以支持OpenOCD。 我这里的测试基本上都是在IAR EWARM上完成的,速度测试是使用telnet到OpenOCD来实现的。 并且如果发展的顺利的话,以后会和一个法国人合作,开发一个Eclipse+FreeRTOS的ARM平台,所有的接口都使用公开的已知的接口。 注:MDK不支持OpenOCD,也没有公开的接口,所以目前无法支持。 6.PSoC(寻找测试人员) 目前的硬件由于没有电源的控制,所以只能支持Reset方式的ISSP编程。 如果有人需要的话,可以再做一个全功能的PSoC支持。 PSoC的支持具有离线编程的功能。 上位机使用vsprog(命令行界面)或者vsgui(图形界面)。
准备增加的: 如果Versaloon的这种实现方式和理念能够得到认可的话,之后将会增加更多的MCU支持。 准备要支持的这些MCU,协议上已经基本都看过了,相信问题不大。 1.XMega(估计样片要等很长的时间) 2.STM8(估计样片要等很长的时间) 3.C8051F_C2(已经败了一块开发板了,正在进行中) 4.MSP430(这个的JTAG接口不是标准的,否则就已经可以支持了,开发板已经有了,一位网友提供的,这里要向他表示感谢) 5.I2C接口或者SPI接口的EEPROM/Flash
【二次开发】 Versaloon会提供一个二次开发的接口:USB_TO_XXX。 USB_TO_XXX可以实现各种单片机的资源,比如GPIO、SPI、USART、I2C、ADC等,通过USB接口由PC控制。 将会提供所有的上位机的USB_TO_XXX的驱动的源代码(C语言),并给出使用USB_TO_XXX接口实现的S51编程器的源代码(vsprog)作为示例。
【上位机程序】 部分MCU的支持,是通过我自己开发的上位机程序来实现的。 这里就给出一些编程时候的图片(包括WindowsXP下的和Ubuntu8.04下的) vsprog:USB_TO_XXX驱动和S51的支持代码将公开
S51的支持
PSoC的支持 vsgui:只是根据GUI中的选项,生成命令,调用vsprog,所以需要和vsprog放在同一目录下。
S51的支持
当然,也可以用于更新固件(需要stm32boot),给张Ubuntu下的图吧,使用CDC模拟的串口来更新,所以选择ttyACM0
【参与到这个项目中】 如果你对Versaloon的实现方式和理念有兴趣的话,并且能够并愿意开发或者维护一些MCU的支持的话,你也可以加入到这个项目中来。 目前S51和AVR(AVR32,AVRX)的支持已经有人来维护了。 如果参与到这个项目中的话,可以得到所有的最新的源代码,当然,只是用于维护的目的,不能挪作他用。 并且,由于Versaloon也将由自己销售,所以会有一定的收入来源,否则,没有足够的收入来维护和支持Versaloon的发展,毕竟Versaloon可以支持的MCU太多,必定需要一定的维护经费的,这也就是RC3版本为什么不是公开的原因了。 对于某些MCU需要一些开发板或者需要购买一些芯片测试的话,都可以中销售收入中提取。
各部分使用到的开发工具: PCB:KiCAD 固件:IAR EWARM 5.11 KS或者Codesourcery G++ Lite for ARM vsprog:Visual C++ 2008 Express或者GCC(包括MinGW下的GCC) vsgui:Lazarus 0.9.26之后的版本
【最终目的】 说实话,我自己开发的编程器基本都是GPL的,而且我向来也是支持开源的,并且对好几个开源的开发工具都做过一定的贡献。 所以Versaloon的最终目的也就是开源,这个在我的小组里已经提到过。 当Versaloon的用户和维护支持人员,可以满足Versaloon自己发展的时候,我会公开所有源代码和资料(当然,仍旧还是会提供成品的Versaloon销售)。 这个也要和所有想参与到这个项目中的朋友说明的,所有人对Versaloon做的贡献,在实际成熟的时候,都会免费公开(可能基于GPL协议,也可能自己定义一个开源协议,只针对国内用户)。 AVRminiProg应该算是简单的,但Versaloon的复杂程序就意味着这个项目必须商用,才能得以更好的维护,我也是到RC3版本由于需要找人做测试的时候才发现这个问题的。 目前,从硬件到固件到驱动到上位机程序,全部都是我一手包办,开源的RC2版本也曾经需要找一些人来一起维护,但对我公布的源代码的回复只是“研究研究”,这样发展下去的话,明年的Versaloon就会想今年的AVRminiProg一样。 AVRminiProg其实是走了一条错误的路,以至于现在几个日本人来找我说需要一些支持,我都没有办法提供(日本常用的AVR芯片和国内常用的区别很大)。
【其他图片】
Versaloon_Mini+ZLG的2148开发板
Versaloon_Nano+Mega128
Versaloon_Nano+ZLG的2148开发板 |