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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] usb 2.0

[复制链接]

2

主题

8

帖子

38

积分

新手上路

Rank: 1

积分
38
跳转到指定楼层
楼主
发表于 2017-11-6 09:54:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
你好:, n" g! b7 D* P8 z  _1 {

5 _- T( n+ @: r  我们公司在OMAPL138_StarterWare_1_10_04_01的基础上( OMAPL138_StarterWare_1_10_04_01\examples\evmOMAPL138\usb_dev_msc),% U9 W! G2 }, Z3 _2 I
/ e5 I( {0 _+ M/ F: o2 u0 y* P8 U
  实现了usb mass storage功能,在win7系统下面u盘功能够顺利实际,但是在电脑上接一个hub后,然后将u盘接到hub上,u盘不能正解识别。
' ^. n+ K1 m0 @0 P6 Z2 {" Z: @/ t' u, _
  目前分析代码发现经hub转接后,电脑发(SCSI_READ_10 0x28)这个命令,usb 复位。, a$ I# l' L$ B2 G8 t

7 |/ R  _7 y9 Z8 w. n  UsbPhyOn 代码如下,外部时钟配为19.2M. device mode:5 ^6 G9 [1 m. D3 n, C' X

/ z! |& R5 a) [) B0 f  请问个和我们的设备电流是否有关:
) ~/ U4 }( i" k% I2 K! k
4 X7 P  n. J3 V1 q0 f3 ~# {! |' Hvoid UsbPhyOn(unsigned int ulIndex); n( H+ @, }- b9 e: l' i. Z
{
, z, F* G! x9 H       
% Z" B. c  F$ B/ X0 j   unsigned int  reg = 0;
* ?: |4 s- ^9 S0 O   BSP_KickUnlock();
7 S3 s2 E, b: Z, L" T        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);2 G# h4 D% ^- ]/ d9 |
        reg &= ~(CFGCHIP2_REFFREQ);5 {+ B1 Y  w" b# P6 Y
        reg |= CFGCHIP2_REFFREQ_19_2MHZ;  k% q$ q- b( R# c1 I! B! r
        //reg |=CFGCHIP2_REFFREQ_24MHZ;1 P! p; C! f  B; G  {- R% O
        HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr)=reg;. x$ i7 j% X+ C7 i! A4 h! Q
7 ~7 w* z% v: q8 g
        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
* g0 A) g  T8 U0 v; H1 H        tprintf("\r\n clk==0x%08x:\r\n", reg &= (CFGCHIP2_REFFREQ));
* y8 I4 S9 {# f. X" z8 ]
6 V1 Q  X. M5 W* ?7 R# p#if debug: |6 k7 k  D" ~, b/ \9 E
/***internal 2.0***/ //aux_clk
9 A& n2 @% z7 k  \0 J
1 V- ?6 f6 k; o/ [& q    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
. i+ s1 p( E; _, z3 C$ y    reg &= ~(CFGCHIP2_USB2PHYCLKMUX);/ a/ T* W1 \2 ^7 l6 J
    reg |= (CFGCHIP2_USB2PHYCLKMUX);
: Y0 L6 m( E  e* |; V# a0 ~    HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;+ c( R2 ?0 ?9 m  r
7 `7 H3 J) D# d/ T% R
    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);" B7 b4 \6 c7 s
    tprintf("\r\n 2.0clk source=0x%08x:\r\n", reg &= (CFGCHIP2_USB2PHYCLKMUX));
2 q% `9 s! o0 |# R6 J$ q+ \4 X* i6 q) u8 [. B
/***internal 1.0***/ ///phy out
$ K4 m7 ^8 K$ E5 k! X4 d# K8 x9 K3 Z& _
    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
$ u* A! Q1 [6 F$ E) @  M    reg &= ~(CFGCHIP2_USB1PHYCLKMUX);" b  o4 Q$ I6 h- w5 g
    //reg |= (CFGCHIP2_USB1PHYCLKMUX);7 X$ ^+ F% ~4 A3 h
    HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;  z, T3 k& m$ Z% L, t1 s3 l( Q4 Q* c

9 S7 g9 r, u2 x1 A1 A* F    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
/ S" {& [  |. l" p. c! k    tprintf("\r\n 1.0clk source=0x%08x:\r\n", reg &= (CFGCHIP2_USB1PHYCLKMUX));
" Y/ Y. _! A+ q4 F6 j
2 y* a# Q2 j4 H+ Q  x0 F0 W( m1 `( K4 n" G
/***phy run***/ //phy out
/ I1 C# d# D9 O: f% T; f% X, J6 m0 e, T; R! m
        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
7 \' Y6 t+ ^6 q& l6 D, B        //tprintf("\r\n CFGCHIP2_PHYPWRDN=0x%08x:\r\n", reg &= (CFGCHIP2_PHYPWRDN));
* e  q+ _# M" E" s4 r9 u; l% E7 ]3 [- H& ?4 N# _$ ?8 d
        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);1 e5 S$ Y6 i$ n, A6 ~- \
        reg &= ~(CFGCHIP2_VBDTCTEN);
. j1 t% b: f0 _  F        reg |= (CFGCHIP2_VBDTCTEN);! y8 U! p$ S( b2 X; o
        tprintf("\r\n phy CFGCHIP2_VBDTCTEN=0x%08x:\r\n", reg &= (CFGCHIP2_VBDTCTEN));# e" P! A/ f# r: o; i1 ]; m) }) ]
#endif  Z5 o( J( m- a7 v5 e
  v3 S2 x  k9 d
    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
" z% b; M4 f! l    reg &= ~(CFGCHIP2_RESET | CFGCHIP2_PHYPWRDN | CFGCHIP2_OTGPWRDN);   
: f& c# E9 t# U0 ]
7 H) E  o. _$ Z    reg |= CFGCHIP2_PHY_PLLON;! }5 j0 O+ ?7 T  a- @

" j; F; N/ o7 V    HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;' A) n& G) J  r6 D8 e
; U) t0 u- X3 V& b
    while (!(HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) & CFGCHIP2_PHYCLKGD));
) @, Y+ u( G- L( h" Y( o0 k  O1 l( S7 {* n$ V# e" o" }
//#ifdef USB_MODE_FULLSPEED
, J8 F& b  K0 Z& D* Y2 v  R    HWREGB(USB0_BASE + USB_O_POWER) &= 0xdf;: Q5 v1 Y% c2 Y. p
//#endif /* USB_MODE_HS_DISABLE  */
! B+ u9 z$ w% \4 C4 f% F  S; i* R) |! M$ L  g, c
tprintf("\r\n USB0_BASE + USB_O_POWER=0x%08x:\r\n", HWREG(USB0_BASE + USB_O_POWER));! i; R8 e/ n* B
}
/ i2 Q' R& v" E
: d4 n% e7 z1 t8 |2 U
) @  O; W- l: D+ F& B. C" @  附件有我们的电路图:4 s" b  X# C( W& x/ i! ^
  请问能否帮助分析,谢谢.
2 T2 p. t) `6 R. f% x* U
2 l5 o; t- d8 L- Z7 P. f7 ]0 M2 J
1 X! i1 d% k. W$ m( @
5 G/ M3 R: f, @* h' D! M  ?& e
* m- @+ n$ z  J/ q* M. J6 i
) m+ k" o: Z' s: S2 h. d: a4 W5 Q/ y

, K  Z% q" E' e8 T

本帖子中包含更多资源

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

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-6-17 01:52 , Processed in 0.035863 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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