| 
 | 
 
你好: 
; X* U2 p* F) E% o5 s8 H" k+ C1 v/ r 
  我们公司在OMAPL138_StarterWare_1_10_04_01的基础上( OMAPL138_StarterWare_1_10_04_01\examples\evmOMAPL138\usb_dev_msc),) i% R* G* B4 q$ a 
 
% f8 a! {* t) c( s  实现了usb mass storage功能,在win7系统下面u盘功能够顺利实际,但是在电脑上接一个hub后,然后将u盘接到hub上,u盘不能正解识别。, b& t- v/ Z: U 
 
/ B' m8 U1 t- N5 V  目前分析代码发现经hub转接后,电脑发(SCSI_READ_10 0x28)这个命令,usb 复位。 
1 O# }- Q7 x4 r( Z' M$ D, Y3 i7 b$ K& ]- [7 @$ F% F6 T- d 
  UsbPhyOn 代码如下,外部时钟配为19.2M. device mode:$ y1 L6 S3 i/ E# [  \% s 
 
) E% q5 N2 p; C4 x  请问个和我们的设备电流是否有关: 
0 F% s) c+ q' R9 K; `9 x3 f# M# w! ^1 f8 W; G2 V( L 
void UsbPhyOn(unsigned int ulIndex) 
; P, z' N8 e  J( P3 |{ 
0 h" }% K, C* z         
1 _. v' h; a) y  U9 @   unsigned int  reg = 0;2 k0 E8 ?5 u- B# k3 K; ? 
   BSP_KickUnlock();, ]0 f2 Y; ~- G 
        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);* r2 [; l# P& w" J 
        reg &= ~(CFGCHIP2_REFFREQ);+ _4 k6 j5 l! m5 C! N 
        reg |= CFGCHIP2_REFFREQ_19_2MHZ; 
+ V1 S# f9 `# B( J+ t        //reg |=CFGCHIP2_REFFREQ_24MHZ;+ d- O+ s" K0 c3 P/ u, \ 
        HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr)=reg; 
$ D7 {' J/ ?, d7 @. y 
6 e( r9 f# o! X: q3 T4 Z) b        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr); 
0 i+ h2 l! ^2 M/ T        tprintf("\r\n clk==0x%08x:\r\n", reg &= (CFGCHIP2_REFFREQ)); 
! j$ I6 L) \) L2 m5 k, }! J( g1 a. {( b% _6 q# Q, u6 i 
#if debug 
8 r, w' O" Q" Q/***internal 2.0***/ //aux_clk- w9 Y5 ~: Y, ?6 a% l* x( m- O 
 
& h! b; Q' p: r7 l0 s* P- A    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr); 
4 D* d, J2 @' b) k# S! A    reg &= ~(CFGCHIP2_USB2PHYCLKMUX); 
( `2 `+ U: [% ~  j$ b2 R    reg |= (CFGCHIP2_USB2PHYCLKMUX);, w2 }* |0 z" u; r3 G 
    HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;: G$ \6 L. y/ b/ a  k; H' d 
 
' @& a) ^" |" u5 s    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);6 C2 G; B& p. Z 
    tprintf("\r\n 2.0clk source=0x%08x:\r\n", reg &= (CFGCHIP2_USB2PHYCLKMUX)); 
5 C0 f$ @9 g3 S1 I) }: i8 \/ e* V0 U. _ 
/***internal 1.0***/ ///phy out* l7 D) ^# A; s 
, h+ P; `! n  p+ e, c! z( ?; h  a/ n 
    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);2 _) `! V" w) ?9 ~, g  w 
    reg &= ~(CFGCHIP2_USB1PHYCLKMUX); 
# P2 Y: h2 A% J6 ]8 B/ r$ r    //reg |= (CFGCHIP2_USB1PHYCLKMUX); 
  |2 Q0 Q- F- M    HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;% u0 I3 B6 O6 ~6 F  Q% J0 ` 
 
' D' R3 H7 ]% A( `    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr); 
5 }$ B) \, \8 @% Z, a    tprintf("\r\n 1.0clk source=0x%08x:\r\n", reg &= (CFGCHIP2_USB1PHYCLKMUX));' h- ~5 ^7 O9 J! J( v: b 
* b% I7 N6 p2 a: e4 G( x 
% ^/ x" t+ }. a" B3 P" ]. J 
/***phy run***/ //phy out 
/ i$ k6 E+ t6 N1 J+ [, k/ L% {$ B& w/ F 
        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr); 
. M/ J* Y2 x! ~% k7 d9 Y$ P  u        //tprintf("\r\n CFGCHIP2_PHYPWRDN=0x%08x:\r\n", reg &= (CFGCHIP2_PHYPWRDN)); 
. @* Y0 z9 m# t0 P2 K 
* Q% g. L% j, ~* Y, r* ]        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);' s+ ]) ]) g. t/ j% G 
        reg &= ~(CFGCHIP2_VBDTCTEN); 
% Q, G8 K; a" U        reg |= (CFGCHIP2_VBDTCTEN);. @9 R" G: p, D9 }6 R/ H7 h 
        tprintf("\r\n phy CFGCHIP2_VBDTCTEN=0x%08x:\r\n", reg &= (CFGCHIP2_VBDTCTEN)); 
+ j$ ^8 {0 Y# Q3 K% {2 S, x2 z#endif 
( l. U6 B- A; N6 {8 u9 I* B  w0 H! T3 @. S  c 
    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);  
" d6 L8 I/ \, B, N6 o0 @/ H    reg &= ~(CFGCHIP2_RESET | CFGCHIP2_PHYPWRDN | CFGCHIP2_OTGPWRDN);    
  z  Q$ B- [' J# M* O. L; R  Y! o' G5 O9 o 
    reg |= CFGCHIP2_PHY_PLLON;1 T3 }2 X2 Z; P: z; ` 
' B# Y$ @1 y3 H3 ]$ r9 S! O 
    HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg; 
+ Y# I4 }% G( N. V 
8 {& ^$ E+ ^$ K: c: x" _- m/ c4 m" Y) t    while (!(HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) & CFGCHIP2_PHYCLKGD)); % `$ Q# r* h; }3 R6 V 
, N7 ~1 E3 S7 o 
//#ifdef USB_MODE_FULLSPEED 
: z3 J4 b6 \  N0 |7 W  W    HWREGB(USB0_BASE + USB_O_POWER) &= 0xdf; 
5 h' N% r* V; r: G$ k# U4 |//#endif /* USB_MODE_HS_DISABLE  */, t( H7 i9 r2 C& D7 a/ M 
+ k% e) G! Q! ?- Q 
tprintf("\r\n USB0_BASE + USB_O_POWER=0x%08x:\r\n", HWREG(USB0_BASE + USB_O_POWER));. g5 }  T' x2 @" w, N# a) g3 N 
}! H; _. N, x- t% }3 x6 U% i 
 
0 U; C( f  f, G% y! O* s 
; A2 C5 X: {( P6 H6 y5 W  附件有我们的电路图:+ `6 m4 {9 y. @# U: e 
  请问能否帮助分析,谢谢.+ Q% x; p9 S  C9 x2 B 
( a+ G: ?( c( G  m/ Z 
 
. H6 s6 F) h- ~" r+ L* e: J, ` 
; u. H2 B7 {' D# L5 ?& O, ^ 
- g4 H$ `& m1 X* }+ u3 u" B 
# i# t3 _3 ^7 d  c# C1 B7 h; C2 X" N4 ^ 
* F/ `& m* S* D% j 
 |   
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册 
 
 
 
x
 
 
 
 
 |