打印

关于USB自动ISP电路的讨论

[复制链接]
6425|43
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hotpower|  楼主 | 2010-10-12 11:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
hotpower|  楼主 | 2010-10-12 11:28 | 只看该作者
电路图说明:
首先做产品和做开发板不同,前者无键或无专用的键控制复位或isp,而后者可以。
本电路假定系统只有usb端口与pc主机通讯。
由于4线usb无任何控制,故只能从vbus即usb电源入手,利用插入vbus=1,拔出vbus=0来控制。如图三所示。
三个图的时序完全相同,如图一所示。

使用特权

评论回复
板凳
hotpower|  楼主 | 2010-10-12 11:30 | 只看该作者
手机没电了,下午继续…
晕死了

使用特权

评论回复
地板
frandon| | 2010-10-12 11:32 | 只看该作者
楼主用手机上的这些图片?

使用特权

评论回复
5
mutongtootie| | 2010-10-12 15:17 | 只看该作者
很不错的电路

使用特权

评论回复
6
mutongtootie| | 2010-10-12 15:22 | 只看该作者
为了正常应用,Key还是少不了啊。另外如果想USB供电,VBUS就不是一个判断条件了

使用特权

评论回复
7
秋天落叶| | 2010-10-12 15:54 | 只看该作者
菜农一直忙的都没空上网,只能用手机上网了

使用特权

评论回复
8
hotpower|  楼主 | 2010-10-12 17:33 | 只看该作者
俺设计的产品需要usb下载程序或数据。
开始想到的就是图三,问题:
usb插入主机后,该电路自动产生reset和pb.15进入isp状态所需的时序。
工作流程被强迫拉入isp状态。
isp正常工作结束后,回到工作状态,此时才能下载数据(自己编写)。
这在装机时是正常和合理的。
但是在用户使用时,一般只下载数据。
此电路问题就来了,每次必须先下载程序,后下载数据。
或借助与华邦的isp应用程序向nuc120发送芯片复位命令!
难!

使用特权

评论回复
9
hotpower|  楼主 | 2010-10-12 17:43 | 只看该作者
求人不如靠自己!自然想到了图一。
由于usb线只有在下载时才插入主机。
那么就可以借助一个正常的键key。
它在运行状态是正常的键,而在usb插入主机时就变为了isp功能键。
这样想下载数据时,就不压key。
反之,压key下载程序。

使用特权

评论回复
10
hotpower|  楼主 | 2010-10-12 17:47 | 只看该作者
由于搞不清楚华邦的isp应用程序在下载完程序后是否复位以回到运行状态,故又想到了图二:
在usb插入主机后,key和isp键分别负责复位和下载。

使用特权

评论回复
11
hotpower|  楼主 | 2010-10-12 18:00 | 只看该作者
本帖最后由 hotpower 于 2010-10-12 18:13 编辑

正常时,isp进入的流程:程序从ldrom引导,判断pb.15,若pb.15=0进入isp,若pb.15=1则进入aprom执行用户应用程序。该主题电路的成败还要看华邦的isp应用软件。当它点击开始编程烧写时,若内部发送一条芯片复位命令的话,此主题电路全部不成立!!!除非产生的pb.15的脉宽很宽很宽!这样斑竹再给俺解惑,否则俺这华邦的菜鸟不能在这继续耽误下去了,只能再选型了…先谢谢了!

使用特权

评论回复
12
hotpower|  楼主 | 2010-10-12 18:05 | 只看该作者
一片ft2232h可以实现俺的全部功能,
即一路usb转串口isp,一路usb转并口下载数据。

一则成本过高,二则管脚过多。

看来俺的路还挺艰难的…

使用特权

评论回复
13
X-Hawk| | 2010-10-12 18:26 | 只看该作者
借助与isp应用程序向nuc120发送芯片复位命令!
可以的。isp應用程序恐怕需要自己寫,其實接口有放出來的。但官方網站沒有正式開放。相信只是時間問題。

isp應用程序也不會亂發reset命令的。沒有必要呢。

樓主請參考下這個帖子或許能解疑惑(244樓、309樓):
http://www.**.cn/bbs/bbs_content ... o=1&bbs_id=1003

使用特权

评论回复
14
hotpower|  楼主 | 2010-10-12 18:37 | 只看该作者
实际可以bootloader,这个我有些明白,斑竹曾有建议。但它的缺点是要先将bootloader通过icp下载进去,若bootloader被意外擦除?如何是好?

使用特权

评论回复
15
X-Hawk| | 2010-10-12 18:39 | 只看该作者
担心是多余的,普通程序没有能力擦写bootloader的。
有能力意外擦写bootloader的,比如nu-link, ulink, 也就有能力靠这些重新写进去。

使用特权

评论回复
16
X-Hawk| | 2010-10-12 18:44 | 只看该作者
本帖最后由 X-Hawk 于 2010-10-12 18:45 编辑

抱歉说错了。普通程序不是没能力擦写bootloader, 如果它先写特殊的某个寄存器的特殊位就具备了这个能力。
有人愿意这么干,当真只能由他。。。

使用特权

评论回复
17
hotpower|  楼主 | 2010-10-12 19:14 | 只看该作者
好久没去那个网站了,马潮老师又要出山了?
俺当年陪他一起玩…
回帖太多,斑竹为何不上传到此地?

使用特权

评论回复
18
hotpower|  楼主 | 2010-10-13 00:09 | 只看该作者
等吧…

使用特权

评论回复
19
highend| | 2010-10-13 10:40 | 只看该作者
为啥不用CDC的串口,通过串口指令实现??
就好像STC的51,上电后,等一会儿ISP.......

一般进入ISP的两个方法:
1,IO电平,例如按键。
2,上电等待xxx毫秒。

特殊,还有其他方法,比较偏门,仅供参考(一个输出腿,做成触摸感应,测量电容,在430芯片上可以。上电后,检测触摸按键,实现xxx, 应用程序启动后,还是一个普通输出口,不影响)。
120的漏电流可能较大,需要试验......

不过,通过USB的串口,上电时间较长。系统发现设备,直到通讯,时间很不固定。

使用特权

评论回复
20
hotpower|  楼主 | 2010-10-13 11:19 | 只看该作者
串口速度太慢,俺需要海量数据传输。
谢谢

使用特权

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

本版积分规则

1460

主题

21619

帖子

506

粉丝