阅读:1646回复:10
问一个有人问过的问题?(51+SL811)
请教?
我用SL811+89C51,SL811用12MHz有源晶振. 复位U盘后,能检测到U盘的存在,然后设置寄存器 0F:0XAE ;cSOFcnt->0XAE 0E:0XE0 ;cDATASet->0XE0 05:0X05 ;CtrlReg->0X05 03:0X50 ;EP0Status->0X50 04:0X00 ;EP0Counter->0X00 00:0X01 ;EP0Control->0X01 设置完成后,用示波器检测D+,D-并无1ms sof 信号波形出现,进一步检测后发现,设备为低速时可以产生SOF,设备为高速时只能在配置完寄存器后产生1S左右的SOF,这个问题我在以前的贴子里又看到过,有人解决但没有人说为什么? 那位高手指点一下,谢谢! |
|
沙发#
发布于:2003-07-09 01:32
用SL811HS+51读写U盘吧?
你被CYPRESS的文档给骗了,那份文档中错误百出,还有一份应用文档更是错的连边都沾不上了,号称是HS的,可程序中大量标注S(从设备),唯一正确的信息在EZ-811HS的文档中,那里有份源代码,内容基本是正确的,仔细找能找到的。 我的代码顺序跟你的基本一致,就是写0寄存器后有个25MS的延时,SOF能用逻辑笔看到。为什么要这样的?我都不知道,因为没有任何文档说明这个问题,我说的那个源代码里有这么一出,我就学过来了。 建议你先不RESET,就把那两段代码直接运行,应该能看到SOF的。 又,我第一条指令是05:0X00H,此外先写0E后写0F,可能没什么关系。 再又,你产生了1S的SOF,那应该是正常运行了,你是不是后面搞错了代码把控制搞乱了啊? 你核对一下你的芯片版本,如果低于1。5版,有个BUG说明,你仔细看看。 |
|
板凳#
发布于:2003-07-09 01:35
还有,我问过CYPRESS总部技术支持工程师,晶振以48M有源为佳,内部的那个PLL比较容易受干扰。
|
|
地板#
发布于:2003-07-09 08:40
真是太感谢你了!
|
|
地下室#
发布于:2003-07-09 08:43
你说低于1.5版的有BUG,那怎么解决呢?
liutom能不能再解答一下,谢谢! |
|
5楼#
发布于:2003-07-09 13:46
有一份错误表,里面列出了若干问题,并提出了一些解决方法,但如果是1。5版本,就应该没问题。
又,正确的DATASHEET应该是2002年版的,2001年那个是错的,很多寄存器内容都是不对的,赶快扔了吧。 芯片版本可以从寄存器读出来的。 |
|
6楼#
发布于:2003-07-09 17:06
谢谢你的帮助,现在我按你的方法,先不REST设备,把代码运行一遍就可以产生SOF波形。而后进行通信(SETUP),一直出现TIMEOUT错误,是不是SETUP命令发送出去后设备不响应,还是SL811 SOF参数设置错误,我现在用的是48MHz有源晶振,SOF_H(0FH)->0XAE,SOF_L(0EH)->0XE0。我在论坛上有看到SOF周期为1.3ms的,这是什么原因?是不是我的也是这个原因?
不好意思! 忘了给分了!! :D 能不能载解答一下? 谢谢! |
|
7楼#
发布于:2003-07-09 17:14
liutom,能不能给个信箱地址,有很多问题想向您请教。
jinfen@gddc.com.cn |
|
8楼#
发布于:2003-07-09 20:13
有一份小纸片,仅4页,名为BASIC EMBEDDED HOST USING THE SL811HS
这是一份含有很多正确信息的文档,里面列出了USB HOST OPERATION的8个主要步骤 1。允许中断 2。设备检测到及供电 3。USB RESET 4。SOF/EOP发生 5。USB传输 6。ERRORS 7。SUSPEND/RESUME 8。REMOTE WAKE UP 其中配有流程图,仔细观察就会发现每一步的代码都写出来了。 我根据这个一直读出了设备描述符,之后因为时间实在来不及了,就买了一份伊甸科技的方案,里面的代码正好符合我的要求,把地址一改就能用了,所以后面的东西我就没再弄了。 我的邮箱liuchunlei@263.net.cn |
|
9楼#
发布于:2003-07-10 22:25
liutom,你好!
我有给你发信,请收一下,谢谢! [编辑 - 7/10/03 by jinfen] |
|
10楼#
发布于:2003-07-11 20:46
你好:
SL811的最新资料在下面这个网站上有,保证是可靠的,我们就是参考这个datasheet开发成功的。 网址:http://eden.51.net |
|