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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] usb 2.0

[复制链接]

2

主题

8

帖子

38

积分

新手上路

Rank: 1

积分
38
跳转到指定楼层
楼主
发表于 2017-11-6 09:54:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
你好:
; l/ J) x2 ^$ Y  I% u8 k/ [5 J, F+ Z8 ?2 ~6 w2 j. M
  我们公司在OMAPL138_StarterWare_1_10_04_01的基础上( OMAPL138_StarterWare_1_10_04_01\examples\evmOMAPL138\usb_dev_msc),
) T) }3 e: E# D* }7 W0 p3 F/ W3 x3 y) b4 ?6 c
  实现了usb mass storage功能,在win7系统下面u盘功能够顺利实际,但是在电脑上接一个hub后,然后将u盘接到hub上,u盘不能正解识别。
0 [- L4 P* o6 d0 a0 `; p& D
! p' o; K  f1 c$ u( B( s" `# @: d  目前分析代码发现经hub转接后,电脑发(SCSI_READ_10 0x28)这个命令,usb 复位。
4 b: h6 s( k) `; k
0 V" T! b/ V5 p$ J1 E4 o" U$ P: a2 T  UsbPhyOn 代码如下,外部时钟配为19.2M. device mode:4 F8 C* E8 N! A& L0 u
1 ?. S; K! `  e: T
  请问个和我们的设备电流是否有关:
. L& \5 l$ n( j; Q) B0 Z8 \: i3 [$ L+ `* q; m
void UsbPhyOn(unsigned int ulIndex)( [( e0 D3 y, P- q9 u  l
{
% `2 K  p! x7 u        & ^: X+ {6 F5 ~' x' s4 e4 a
   unsigned int  reg = 0;
4 B' N; W9 s* }, j4 C# V. A   BSP_KickUnlock();+ d2 X; W( B6 d( f) Y: i9 }
        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);5 R. h% P; W3 z2 Q, \
        reg &= ~(CFGCHIP2_REFFREQ);
+ x( m$ Y: ]' K5 C& S$ }        reg |= CFGCHIP2_REFFREQ_19_2MHZ;! G* N& A) Z. q; q
        //reg |=CFGCHIP2_REFFREQ_24MHZ;
8 x% C# p; X: g) {% \        HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr)=reg;
6 r7 c8 }8 @7 l& P! D" y5 G# h0 Y" b; j. ?
        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
) a7 s% }2 O) t, O: p        tprintf("\r\n clk==0x%08x:\r\n", reg &= (CFGCHIP2_REFFREQ));3 x" N8 |4 N  @& F9 Z

, I# u) J( @% _/ A# G#if debug  y& }8 y/ S* W3 [2 C
/***internal 2.0***/ //aux_clk& n, ]1 p# t, p) U  w. Q

. w0 U7 C% e" @) ?+ {    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
' G  l: g1 B$ I) v    reg &= ~(CFGCHIP2_USB2PHYCLKMUX);1 W' h! W7 z0 G, a8 E4 \5 ?& E
    reg |= (CFGCHIP2_USB2PHYCLKMUX);" v1 I  l& i9 S" \" n
    HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;) B% v6 J$ q7 b% `
0 v- p7 K; {1 [9 }! x
    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
+ N4 e% [1 J  c  v9 t    tprintf("\r\n 2.0clk source=0x%08x:\r\n", reg &= (CFGCHIP2_USB2PHYCLKMUX));1 E- a" k7 z( L; C& c/ f

' B3 ?0 O, k' u, S. m/***internal 1.0***/ ///phy out
9 D( H8 n9 H8 p; q% \0 u3 w) q8 a; ?1 `' a
    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);" v  b  X+ c4 i) j
    reg &= ~(CFGCHIP2_USB1PHYCLKMUX);* T' M, x) }- G% o" K4 _
    //reg |= (CFGCHIP2_USB1PHYCLKMUX);
9 o3 t$ g' l  c0 |    HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;
! J$ v2 ]7 o" u8 N- {- {& r3 K) D9 M: z7 T8 z7 g5 g. k
    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
& U1 W% ]6 z8 j) j    tprintf("\r\n 1.0clk source=0x%08x:\r\n", reg &= (CFGCHIP2_USB1PHYCLKMUX));! D  b7 d0 s* C. L' R3 T

0 l5 t5 o( n3 N1 _( A( R* w* H; V; @  [3 o1 ]
/***phy run***/ //phy out
' H' L7 R: w5 [( h( F9 W0 k" j# c9 V/ }; j
        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);: o( ]0 o: }6 H! p0 ^
        //tprintf("\r\n CFGCHIP2_PHYPWRDN=0x%08x:\r\n", reg &= (CFGCHIP2_PHYPWRDN));% i9 F$ C0 [9 [
" E* [- _9 h! A* T
        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
- V- U- n/ L; p        reg &= ~(CFGCHIP2_VBDTCTEN);" H. z& C4 M# z& [
        reg |= (CFGCHIP2_VBDTCTEN);- ]3 E2 r9 k  T7 g. Z$ C6 ^
        tprintf("\r\n phy CFGCHIP2_VBDTCTEN=0x%08x:\r\n", reg &= (CFGCHIP2_VBDTCTEN));
0 e( w4 v4 I# n8 M+ U#endif
* x+ d" M2 y0 }& s  U2 w& r  ]& b- I1 G7 R% D, C1 F
    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
- k' s  |: Z5 G+ |7 @% n! F    reg &= ~(CFGCHIP2_RESET | CFGCHIP2_PHYPWRDN | CFGCHIP2_OTGPWRDN);   . |( |* h. D3 E% F* A- v

# t. B% w) l. k+ w    reg |= CFGCHIP2_PHY_PLLON;
# ]- w* V+ s2 G/ i$ `' B, z& i9 d& a; k) Q; t
    HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;
/ c+ c( u; b; i: l1 j$ S( e5 e8 r% b
+ n6 ~4 e$ R4 B6 U( P# A    while (!(HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) & CFGCHIP2_PHYCLKGD)); ) A/ E9 A# I+ g9 N5 I; W; i
7 P$ K; F* |) A& ?) C. l1 d+ }
//#ifdef USB_MODE_FULLSPEED+ s6 i: w. Q. Z- F
    HWREGB(USB0_BASE + USB_O_POWER) &= 0xdf;
  X7 {1 V3 }: D4 L$ B6 b2 E) C( r//#endif /* USB_MODE_HS_DISABLE  */8 @6 O# O: p4 _/ N6 O) {
1 Z0 `% a  Y. D4 |0 d# T
tprintf("\r\n USB0_BASE + USB_O_POWER=0x%08x:\r\n", HWREG(USB0_BASE + USB_O_POWER));
  S% j( s0 l  e' T1 U& _}
- ]; u5 O! P1 v3 `8 s7 n1 M
) X6 _5 i' b& C" Z' T! `2 E3 c4 M3 I
  附件有我们的电路图:
6 i9 F" `  h) |( n  请问能否帮助分析,谢谢.
& T6 J) k- a* S0 K6 f/ D: E. l% H) Q! }& Q7 h

0 j& M, H6 |& ~  Y$ m! k5 g3 J. T  L0 L; ^) y( [0 s- t* O9 N
, N) t% w/ p, y2 E0 Y  w

3 i" w+ P2 p* E7 u( T; n; ?. |8 t2 z- `( E8 ~

  u' H3 t  V4 Z% _/ i0 v3 D6 M

本帖子中包含更多资源

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

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:53 , Processed in 0.036817 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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