| 
 | 
 
你好:" Z& T: s  E* L$ @/ V! I 
2 H8 t4 D# K1 V  X' b- [ 
  我们公司在OMAPL138_StarterWare_1_10_04_01的基础上( OMAPL138_StarterWare_1_10_04_01\examples\evmOMAPL138\usb_dev_msc),: N( u/ {. t, L3 x 
% [' A/ Q( _' N9 P! y 
  实现了usb mass storage功能,在win7系统下面u盘功能够顺利实际,但是在电脑上接一个hub后,然后将u盘接到hub上,u盘不能正解识别。 
* E: T% w! O1 H* D  k# t( X: o0 q 
  目前分析代码发现经hub转接后,电脑发(SCSI_READ_10 0x28)这个命令,usb 复位。' J# ^/ ]* Y+ a8 @/ W) ` 
3 }8 l5 U+ k) Z% z0 @# L! [ 
  UsbPhyOn 代码如下,外部时钟配为19.2M. device mode:" j: Z; A) V$ Z& ^, I: a0 M3 w 
; G6 `- Y- D7 @, f# a 
  请问个和我们的设备电流是否有关:5 J" G% M& C2 _( ]) v/ b 
3 P& L% F* ?0 s2 V( G0 t" H1 a, K 
void UsbPhyOn(unsigned int ulIndex)/ S0 A( n  B0 s: \+ E4 ~1 K% K3 k 
{ 
$ ]! i+ b' w, f1 m( n! s# s         
) p9 a( y; p% L7 h* w   unsigned int  reg = 0; 
1 O& E/ A4 u8 N8 T( b   BSP_KickUnlock();8 C$ C0 H/ ~+ ?! O0 V5 `' r( w 
        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr); 
' f. \; b" a0 S2 Q- c' R        reg &= ~(CFGCHIP2_REFFREQ); 
  s7 Z( ?% b5 ^5 O5 q5 g2 _        reg |= CFGCHIP2_REFFREQ_19_2MHZ; 
  ]) p& A8 H( |. ~0 ]4 z$ H        //reg |=CFGCHIP2_REFFREQ_24MHZ; 
! _2 ]/ ^) a. H1 J  o9 h* n. \0 d0 a        HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr)=reg;: h  M0 g: D0 O2 j  Y) G9 R( k, ~6 K 
/ J( j5 W4 u- }* P1 [ 
        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);/ L: K% q3 h4 c$ S 
        tprintf("\r\n clk==0x%08x:\r\n", reg &= (CFGCHIP2_REFFREQ)); 
% j  q$ V- i  ?6 \6 M6 l. e. D2 a3 V! z$ c9 h* H* H 
#if debug 
) d2 i+ A: m7 a- M! b/***internal 2.0***/ //aux_clk+ ^& P6 f9 A) s% S 
 
* y" C) Z# Z2 a4 V    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr); 
/ A9 [" G# f2 n    reg &= ~(CFGCHIP2_USB2PHYCLKMUX);" R* b  w0 Q' t- E2 O2 \ 
    reg |= (CFGCHIP2_USB2PHYCLKMUX); 
  n9 z1 k- O8 P3 ]% a, ~5 [# ?    HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg; 
3 u! y% o/ l/ `4 o8 v0 m+ H) s, y1 F+ a! v 
    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr); 
0 p4 i) ?/ y' l    tprintf("\r\n 2.0clk source=0x%08x:\r\n", reg &= (CFGCHIP2_USB2PHYCLKMUX)); 
: }, R- B3 E# s 
! N  \1 G# K# r3 H/***internal 1.0***/ ///phy out 
) ]2 m7 i4 d: e# P, m% f- ]" F1 [0 T 
    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr); 
4 S7 P! w8 ^' R% ], h$ @, L    reg &= ~(CFGCHIP2_USB1PHYCLKMUX); 
1 G. l$ B% y! T" A5 |' o6 `: z    //reg |= (CFGCHIP2_USB1PHYCLKMUX);  N  f) D; ~2 N5 z! Z 
    HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;2 I3 t1 \& L, s- S 
 
% e: u  W5 n- i7 `    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);5 y7 ^2 j2 s% m! P 
    tprintf("\r\n 1.0clk source=0x%08x:\r\n", reg &= (CFGCHIP2_USB1PHYCLKMUX));. |8 t; K/ i" t. I- {2 N# R+ o" ? 
 
6 \8 ]' t2 ~7 Q. `( N& K7 Z 
' X7 E4 N2 L' L3 T: Q& h/***phy run***/ //phy out 
! N5 D1 H6 E  [9 ~9 R  {" R 
3 s1 m* z$ {% U6 v+ d7 J- q        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);* ~4 H* |4 W) ^; G* D 
        //tprintf("\r\n CFGCHIP2_PHYPWRDN=0x%08x:\r\n", reg &= (CFGCHIP2_PHYPWRDN)); 
3 @/ _0 W8 Q. _ 
7 }: H/ q8 A1 p8 ?        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr); 
. S. v3 F: c" r( k; f        reg &= ~(CFGCHIP2_VBDTCTEN); 
) ]4 [( m5 L1 A' |        reg |= (CFGCHIP2_VBDTCTEN); 
3 J- ]0 [% a  `7 u! e. w9 V' o9 a        tprintf("\r\n phy CFGCHIP2_VBDTCTEN=0x%08x:\r\n", reg &= (CFGCHIP2_VBDTCTEN)); 
* z6 P: U) d: |, b#endif5 u; z' S9 s: [- K+ d+ H: Z) K 
0 v5 z, f9 K& K4 u7 w; r1 s 
    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);  
( r% t9 y8 g, |3 H    reg &= ~(CFGCHIP2_RESET | CFGCHIP2_PHYPWRDN | CFGCHIP2_OTGPWRDN);    
* |% `0 w$ o( k- K! q+ R2 M: V& `/ v. ~+ u* \8 C 
    reg |= CFGCHIP2_PHY_PLLON;- ?& n- v, r2 n) w: n 
 
! G( _" H4 G2 t. H  ^    HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg; 
1 _2 f- w. x2 `- z: R* d 
: @' L- W- E  I/ d    while (!(HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) & CFGCHIP2_PHYCLKGD));  
+ U( e, g9 U% Z" G3 m* Y2 v$ \! _# }- P# s 
//#ifdef USB_MODE_FULLSPEED 
1 ?( E5 d; o; b$ p    HWREGB(USB0_BASE + USB_O_POWER) &= 0xdf; 
0 T8 W& i0 ~0 U. D//#endif /* USB_MODE_HS_DISABLE  */0 M) _7 o8 Y8 p6 E0 @5 A. W 
- @/ F7 A, Z7 i! h: g. G8 h. C/ s 
tprintf("\r\n USB0_BASE + USB_O_POWER=0x%08x:\r\n", HWREG(USB0_BASE + USB_O_POWER)); 
/ K/ k  Q: @, i! n% y+ n, x+ C}) e: f' q. R# p  O+ O 
 
5 S) Q4 V' Y4 [- j( }! p* B4 d+ U% |6 s0 q% e# i: Y, l 
  附件有我们的电路图:/ A$ P% j$ E% W1 ]' q6 n' w 
  请问能否帮助分析,谢谢. 
" Y* [2 J0 V: `2 G) P( Q3 n0 ]+ J" w( k" u  i7 w/ H 
3 l/ s" c% f4 t1 D3 } 
& B/ d1 z# M; [2 J; `* t$ I# N 
 
: L% c4 i0 P: |: s- G 
  c# [9 `  C7 H3 ?+ G' w$ }6 O! L2 b- I 
' |  j; s: |1 ^5 t$ E( J9 a 
 |   
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册 
 
 
 
x
 
 
 
 
 |