usb 2.0 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4780|回复: 1
打印 上一主题 下一主题

[未解决] usb 2.0

[复制链接]

2

主题

8

帖子

38

积分

新手上路

Rank: 1

积分
38
跳转到指定楼层
楼主
发表于 2017-11-6 09:54:03 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
你好:
; y5 g6 w' Y% M# g/ n. i' S$ d3 V9 b
  我们公司在OMAPL138_StarterWare_1_10_04_01的基础上( OMAPL138_StarterWare_1_10_04_01\examples\evmOMAPL138\usb_dev_msc),+ O& z( a! S* Q

: I; p& J+ }6 U! J/ k: D* h8 l  实现了usb mass storage功能,在win7系统下面u盘功能够顺利实际,但是在电脑上接一个hub后,然后将u盘接到hub上,u盘不能正解识别。
6 E- r$ e! z2 Q, o( @6 ~
% F/ {4 d) S. G& f0 o4 y4 Y; s  目前分析代码发现经hub转接后,电脑发(SCSI_READ_10 0x28)这个命令,usb 复位。2 P+ A+ E5 t( H# @& n3 H% b

: H' @2 T  R& `" g0 E  UsbPhyOn 代码如下,外部时钟配为19.2M. device mode:$ \" l# R0 q1 F3 K! ]4 H$ X

" {; @: A3 \; V2 ?: _  请问个和我们的设备电流是否有关:
5 \2 D- H0 i0 q' b$ Y) K# d* t* t$ Q
void UsbPhyOn(unsigned int ulIndex)
4 n  z) x6 ?% Z. m7 h8 x9 H{
; T; k. v; O! O8 `: ]        : i" G3 P' e( x* N0 S+ ~
   unsigned int  reg = 0;
) X! k! m9 K( S( O; h   BSP_KickUnlock();
3 n9 s0 t2 Y: @. \5 |        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);5 `' J$ s  d; @2 q! y
        reg &= ~(CFGCHIP2_REFFREQ);
/ k5 B9 D/ s& K, ]# q- i7 y        reg |= CFGCHIP2_REFFREQ_19_2MHZ;& m: `+ X/ R& Q! z2 u0 H
        //reg |=CFGCHIP2_REFFREQ_24MHZ;
2 v$ y2 ]' P) }8 O$ X! k( u        HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr)=reg;
. {5 k: c# C4 S+ @1 ?# O  \+ I0 |4 W- }& k  I) l# a. G
        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);0 I5 d4 [8 {- F
        tprintf("\r\n clk==0x%08x:\r\n", reg &= (CFGCHIP2_REFFREQ));
# W5 a; [% d0 z; ?  h# G8 b  ?1 W
#if debug
, A$ N1 s3 r6 S0 L. a9 }( M2 |# f/***internal 2.0***/ //aux_clk
- \4 Z6 ]# r/ U3 N
, S8 W9 Q) m) J/ u    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
; g2 N3 H5 I5 m1 @8 `    reg &= ~(CFGCHIP2_USB2PHYCLKMUX);
& s! {& D' _( |% L& M; j    reg |= (CFGCHIP2_USB2PHYCLKMUX);' X/ _4 ^' H* n( r
    HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;) a7 g! S! D# Q5 e" v6 n0 y
! ^, A2 ]7 s; f' t7 M' `3 t
    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);/ A: S. @. c7 P+ d4 d( q4 p; ]
    tprintf("\r\n 2.0clk source=0x%08x:\r\n", reg &= (CFGCHIP2_USB2PHYCLKMUX));8 W0 h% p: y7 i9 C4 W
+ H8 z3 K- c- l9 Z, {1 K# W
/***internal 1.0***/ ///phy out
  ~2 N4 Z" B! ]. S3 L% e: t  g# P, V2 P
    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
! G" O) D7 j. ~: m) V* a: Z    reg &= ~(CFGCHIP2_USB1PHYCLKMUX);3 }7 D, u0 H% y- n8 w
    //reg |= (CFGCHIP2_USB1PHYCLKMUX);" i" p6 E! O- O. Y4 D2 t
    HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;
! e  `8 a2 Z/ z# }. F9 P9 n+ r% C% C
    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
2 B) B; y( K1 W0 W. L$ z2 |9 _    tprintf("\r\n 1.0clk source=0x%08x:\r\n", reg &= (CFGCHIP2_USB1PHYCLKMUX));
; D, Z/ m. r+ l" O/ I/ n2 G8 c7 T9 ]- n. w8 V

. M' O* U% q8 O2 J+ `6 x/***phy run***/ //phy out' R  k% f8 \$ O4 L/ W
( q- v, S2 v! J9 ^5 z( f
        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);8 f" `* ~. [% \: e3 L
        //tprintf("\r\n CFGCHIP2_PHYPWRDN=0x%08x:\r\n", reg &= (CFGCHIP2_PHYPWRDN));
+ j$ [, r# [! h4 x
  r: B( h7 ~" O. [6 Q" I6 A        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);* ?: `( g) ]% j; k
        reg &= ~(CFGCHIP2_VBDTCTEN);
! r3 m6 {* t4 `        reg |= (CFGCHIP2_VBDTCTEN);* ?5 a  M) e6 u9 x8 ?6 i) ^
        tprintf("\r\n phy CFGCHIP2_VBDTCTEN=0x%08x:\r\n", reg &= (CFGCHIP2_VBDTCTEN));
6 w/ V; W7 g) n! _#endif
) s- U0 q" q- V$ b+ V' l
9 z, d% Y, x4 ~& z+ J+ ?    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr); / v; n! r. D0 }; J2 h7 A7 S
    reg &= ~(CFGCHIP2_RESET | CFGCHIP2_PHYPWRDN | CFGCHIP2_OTGPWRDN);   
) G; a" ]  G% ]( N2 C/ D
4 B1 N+ k% Y* Z3 u9 E    reg |= CFGCHIP2_PHY_PLLON;) a& [3 k5 V2 O# @: D9 k

* ~6 d+ ^7 F6 c. Z1 e  s    HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;' a" l; @6 w# u# D) R# K
2 [4 i, I( {" m
    while (!(HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) & CFGCHIP2_PHYCLKGD));
8 C  ^) [  h3 y, J3 B" [$ ~
) D/ K5 A/ d! {1 ?4 J% p0 i. Z5 z//#ifdef USB_MODE_FULLSPEED9 u0 [, R1 o1 D9 S! N0 G
    HWREGB(USB0_BASE + USB_O_POWER) &= 0xdf;
' j- `$ X8 V! J( R9 |" K) p- u) d//#endif /* USB_MODE_HS_DISABLE  */
  b& a  B$ Z& i9 H- c( f2 @/ P$ j& J0 E3 s$ H2 n
tprintf("\r\n USB0_BASE + USB_O_POWER=0x%08x:\r\n", HWREG(USB0_BASE + USB_O_POWER));& D3 h  R- \, P7 l  o/ \
}
% j) E4 Q6 ~% F8 \6 r  d( b
% m0 x8 Y- v& M2 S7 d) U" K, J
8 ]& w, A6 K% m; g/ F  附件有我们的电路图:
# G2 [9 H' o* ^9 m, d, x. |. j  请问能否帮助分析,谢谢.
, J7 t1 u8 @( a& U8 d4 \- b9 f& A

- H4 |: H9 G* ?1 z2 v# D/ |; B3 B% l4 R% Z  b' N; A7 ?) X  Q! o9 I& F
' R  t+ W2 t: t* f% K
, B# p' H2 \4 S. g

2 E4 ?1 O) {6 ], @# [) g' Z
3 U5 e! w+ {  o8 E5 F) O6 s. w' @

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

2

主题

8

帖子

38

积分

新手上路

Rank: 1

积分
38
沙发
 楼主| 发表于 2017-11-6 09:56:04 | 只看该作者
telephone num 13437388251
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2025-8-2 20:54 , Processed in 0.040699 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表