打印

偶也来玩玩DIY -- VersaloonPro

[复制链接]
6830|42
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 Simon21ic 于 2010-4-30 19:23 编辑

首先有几点说明:
1. Versaloon其实2年前就已经有了。最早开发Versaloon只是因为当时别人送的ST-Link无法在Linux下使用。所以,早期的Versaloon很简单,只是提供了一个USB==>JTAG的链路,然后在OpenOCD里写了一个Versaloon的驱动。并且,ST意大利部门也有工程师也亲自测试并使用Versaloon。当然,还有一些事情无法公开(比如,与st.com邮箱通信的任何内容都不可公开)。之后,慢慢增加了多种MCU的支持,使得USB_TO_XXX协议更加完善。
  在增加各种MCU的支持的过程中,也发现了一些问题,比如,各种MCU的下载接口对硬件的需求都不同,使得接口固定的Mini版本无法适应有些MCU,而使得需要修改硬件。前段时间为了增加STM8_SWIM的支持,就修改过硬件。不过,最近受fuxiangbo大侠启发,准备使用配置板的方式来解决这个问题,同时,也使得我有动力去实现VersaloonPro版本。当然,fuxiangbo为这个方式申请专利后,所有涉及到的版权费,就需要所有参与和使用Versaloon的人共同承担了。相关的问题,我会和他沟通后,发布在这里。

2. DIY不应该只是焊接焊接硬件,下载别人做好的hex代码那么简单。我看过不少代码,很多代码都是别人产品里使用的,有些东西的用量是用million作为单位的。当然,也包括不少开源项目的代码。好的代码或者构架,可以让整个系统维护起来非常简单,而不好的代码构架,会让维护变成灾难。Versaloon里,使用了不少技巧,使得代码还算是比较容易维护。这里用我的VSGUI作为例子吧,VSGUI中,每种芯片都会有一个页面,而这些页面已经里面的内容,基本都是自动生成的,对很多东西的修改,不需要涉及到源代码。VSGUI中的熔丝位配置界面,在开发环境中是空的,因为所有东西都自动生成,所以,对于AVR/STM8/STM32,都是用同一个界面来配置熔丝位。所有芯片相关的数据(包括熔丝位数据),都是放在对应的xml配置文件中。
  VersaloonPro版本的DIY,会邀请一些网友做部分的开发,通过这些开发,我相信是可以学到不少东西的。当然,开发的过程、成果、以及感想,都会公开发布。

3. 关于版权以及许可问题,Versaloon的所有资料都是基于GPLv3发布的,并且,作为所有者,我可以更改许可协议。目前,在GPLv3协议上,增加了一个限制,就是没有许可的话,不得擅自用于商业项目。
  任何提供核心功能改进的人,都可以在在改动的文件的文件头里,按照固定的格式,增加他自己的版权信息。当然,这里需要对核心部分的修改,如果只是修改printf输出的信息格式的话,是不允许增加版权信息的。OpenOCD里,AVR和SVF的支持是我做的,所以,相关的文件的版权信息是我加上的,但是,也有人只是修改一些外围功能,而把自己的版权信息加上,结果OpenOCD的维护人员并没有生效他的版权信息。

4. 可能的失败原因。
  很多原因会导致失败,或者期限无限制延长。比如,没有人感兴趣,那当然就只能无限期延长了。

相关帖子

沙发
Simon21ic|  楼主 | 2010-4-30 19:01 | 只看该作者
本帖最后由 Simon21ic 于 2010-4-30 19:27 编辑

VersaloonPro版本的功能说明以及开发进度

目前基本都是我自己规划的。这里先大致描述一下。
1. 相对于Mini版本,Pro版本会增加对目标芯片供电电压和高压电压的控制支持,使得一些需要高压编程的芯片也可以支持,比如AVR和PIC。

2. 控制部分提供20Pin的通用接口,包括2个5V兼容的8位口,3个电源口(GND,TVCC,HV),一个时钟口。系统提供的接口通过配置板,转接到目标芯片的编程接口,并在转接板上,根据需要,会增加一些专用电路。转接板还有一个9Pin的控制接口,用于提供一些额外的控制,比如,提供系统VCC电压,这样在转接板上就可以实现电压转换。配置板使用49Pin板卡(PCI-98P的一面),其中20Pin为控制部分的通用接口,20Pin为目标芯片的编程接口,9Pin为控制接口。PCI-98P的接插件会坐在一个独立的配置板上,方便更换。

3. 提供离线编程支持。Pro版本会使用一个液晶,用于显示相关的信息,在离线编程时,也可以显示进度。同时,使用蜂鸣器来做声音提示。离线编程的实现是基于USB_TO_XXX的命令的。在线编程时,USB_TO_XXX命令是从USB接口得到的,离线编程时,这些命令是从外置的Flash芯片中得到的,底层的USB_TO_XXX实现机制,不修改做做任何改动。并且,需要增加USB_TO_VERIFY命令,用于校验数据。

4. 支持的目标芯片。Pro版本可以支持的芯片应该可以增加很多,并且,以前不支持的接口也可以支持,比如AVR的高压编程。由于硬件和协议都非常通用,所以增加新的支持也相对容易。所以,能够支持的芯片,基本就看需要支持哪些芯片了。当然,不排除有些芯片的编程接口需要太多的硬件或者软件资源,而无法实现。

功能划分
不同的功能,可能由不同的人负责,这里会不定期更新各个功能的进度。

大致的硬件原理图 ---- by Simon,5月4号完成。

使用特权

评论回复
板凳
Simon21ic|  楼主 | 2010-4-30 20:27 | 只看该作者
本帖最后由 Simon21ic 于 2010-5-2 07:27 编辑

硬件原理图(使用KiCAD制作)
panel.pdf (52.25 KB)
control.pdf (215.69 KB)

控制器:
可以使用48脚或者64脚的STM32芯片,部分功能无法再48脚的芯片上实现。

USB部分,使用STF203保护:


简单的接口保护(5.1V稳压管和限流电阻):


系统电源3.3V(1117),蜂鸣器,LED控制,按键,232串口(TXD、RXD、RTS、CTS),STM32基本电路,SPI Flash芯片等就不列出了。
BOOT0用10K下拉,然后通过一个按键解3.3V,上电是用于判断是否进入ISP模式,应用中,作为一个按键使用。
BOOT1通过一个电阻和LED接到GND,应用中,作为LED控制脚。

面板部分:
这个就比较简单了,4个按键,1个LED,6个编程接口,1个液晶。固定孔还没画,液晶接口需要等买到后确定。



外壳,80*110*25,上面有一条缝,正好适合PCI-98P插卡:

使用特权

评论回复
地板
fuxiangbo| | 2010-4-30 20:50 | 只看该作者
顶一下...!我咋跃升变大侠了啊?:$跟着各位大侠学习才对.....!

使用特权

评论回复
5
fuxiangbo| | 2010-4-30 20:55 | 只看该作者
液晶用的啥呢?

使用特权

评论回复
6
Simon21ic|  楼主 | 2010-4-30 21:01 | 只看该作者
液晶用的啥呢?
fuxiangbo 发表于 2010-4-30 20:55


HTG1603A,3X16字符液晶,面积小,IIC接口,不过不确定容不容易购买。
目前芯片资源不是很足够,基本应该选用IIC或者SPI接口的液晶。
外壳也比较小,也只能使用小尺寸的液晶。

使用特权

评论回复
7
fuxiangbo| | 2010-4-30 21:08 | 只看该作者
我们现在用的也是这家的12864 COG液晶!这款液晶好像是通讯用的... 我与这家业务有联系的,我可以帮你问问,直接找厂家!你手头有样品么?

使用特权

评论回复
8
Simon21ic|  楼主 | 2010-4-30 21:14 | 只看该作者
本帖最后由 Simon21ic 于 2010-4-30 21:16 编辑

好的,多谢支持,暂时没有样品,这个要等51节后去赛格看看了。
目前液晶的尺寸上限基本可以定下来了,到时候选一个最合适的(容易购买,又不太贵)。

目前应该还算比较初级的阶段,需要把一些电路定型,这样可以确定下控制器选型。
还有那个专利的问题,还要和兄台商量一下,如果你们申请专利的话。

使用特权

评论回复
9
fuxiangbo| | 2010-4-30 21:28 | 只看该作者
我一般直接找厂家...这样比较有保证!

使用特权

评论回复
10
xuyiyi| | 2010-5-1 04:37 | 只看该作者
哈!好主意,支持一把!

使用特权

评论回复
11
Simon21ic|  楼主 | 2010-5-1 22:48 | 只看该作者
本帖最后由 Simon21ic 于 2010-5-1 22:50 编辑

液晶已经买了,128*64,SPI接口,带中英文字库。
面板比较简单,也基本搞定了。
Boost电路可能用分立器件实现,有没有其他的建议?

使用特权

评论回复
12
fuxiangbo| | 2010-5-2 09:17 | 只看该作者
用的液晶模块?这个有点贵吧!

使用特权

评论回复
13
Simon21ic|  楼主 | 2010-5-2 14:20 | 只看该作者
本帖最后由 Simon21ic 于 2010-5-2 14:37 编辑
用的液晶模块?这个有点贵吧!
fuxiangbo 发表于 2010-5-2 09:17


是啊,不过暂时找到适合的就这几种液晶。
尺寸不能超过3.7*5.5,接口也只能使用SPI接口。
以后找到更加合适的再换吧,只要和控制板的接口不变就可以了。
可能会使用5110的液晶模块,这个就只要15块钱左右了。

使用特权

评论回复
14
fuxiangbo| | 2010-5-2 19:43 | 只看该作者
用12864 COG的不错!性价比可以接受!

使用特权

评论回复
15
Simon21ic|  楼主 | 2010-5-2 20:37 | 只看该作者
本帖最后由 Simon21ic 于 2010-5-2 20:57 编辑

看了一下,又找到一个合适的:OCM12864-9,这个也很便宜。可惜没有串行的驱动方式。
目前面板上,几种液晶的封装都画上了,对于固件来说,驱动层的接口一样,只是使用不同的驱动就可以了。

突然,发现COG封装的有不少都可以使用,筛选中。。。

使用特权

评论回复
16
mohanwei| | 2010-5-2 21:14 | 只看该作者
在线调试器?
一般有2-3个LED就足够了,呵呵

使用特权

评论回复
17
Simon21ic|  楼主 | 2010-5-3 18:38 | 只看该作者
弄了几个12864的COG液晶,相当的便宜啊,还带2色背光。。。。。。
等一些器件到后,确认完封装,面板就可以发出去打样了,之后可以安排人手开发液晶驱动和UI接口

使用特权

评论回复
18
Simon21ic|  楼主 | 2010-5-5 17:39 | 只看该作者
节后又要忙了,这个项目就慢慢进行了

使用特权

评论回复
19
shaky| | 2010-5-5 18:09 | 只看该作者
:)

使用特权

评论回复
20
Simon21ic|  楼主 | 2010-5-5 18:36 | 只看该作者
第一阶段,panel面板完成后,做液晶驱动和菜单系统。
之后的控制板,如果能够弄到STM32F200的话,就会用这个芯片。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

266

主题

2597

帖子

104

粉丝