usb 2.0 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] usb 2.0

[复制链接]

2

主题

8

帖子

38

积分

新手上路

Rank: 1

积分
38
跳转到指定楼层
楼主
发表于 2017-11-6 09:54:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
你好:; j  v4 r" Q; h! R2 K7 f" ~. V
- S* l( ^0 ?& Z( @
  我们公司在OMAPL138_StarterWare_1_10_04_01的基础上( OMAPL138_StarterWare_1_10_04_01\examples\evmOMAPL138\usb_dev_msc),& j: a% @# G  n+ j7 K6 {

8 s' P: @3 r( m' q  实现了usb mass storage功能,在win7系统下面u盘功能够顺利实际,但是在电脑上接一个hub后,然后将u盘接到hub上,u盘不能正解识别。' b0 T: G; `( A* u7 S+ b  \
& I9 W( z8 [/ v% d- E
  目前分析代码发现经hub转接后,电脑发(SCSI_READ_10 0x28)这个命令,usb 复位。' H1 a, C* G# L' x3 V$ {, M/ q& X

9 b7 Q8 }. f& O6 Z  UsbPhyOn 代码如下,外部时钟配为19.2M. device mode:
0 M1 `6 x4 T& l# N% E5 k$ v; F; P9 n" h1 Z; i% u/ t
  请问个和我们的设备电流是否有关:
7 h# W. ~: l: g' Y# L3 S4 W2 h1 E/ [, _' z- `
void UsbPhyOn(unsigned int ulIndex)
1 W3 b: Z6 Y6 x# ]% X{
- u. v; `+ H. n! F       
; H# {' Y# E7 c( Y4 D' Z   unsigned int  reg = 0;
' ]" ?  @& H4 |- r   BSP_KickUnlock();* \$ [9 \- F7 T) A* u% J" \
        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);0 ?$ M, a' `+ T1 Z  o/ f7 @
        reg &= ~(CFGCHIP2_REFFREQ);% `* i: y" k5 N
        reg |= CFGCHIP2_REFFREQ_19_2MHZ;2 ~- v/ U/ P% C8 i9 Z9 w. W5 z; e0 X
        //reg |=CFGCHIP2_REFFREQ_24MHZ;) ?5 Z( z) V# a' K+ s
        HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr)=reg;6 j9 W7 h4 p) n4 X
0 d+ j: |2 \0 \8 d7 S2 Y
        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
5 n; l0 O& \. W7 O        tprintf("\r\n clk==0x%08x:\r\n", reg &= (CFGCHIP2_REFFREQ));
# F  L' F, c0 R6 i5 ?. V2 Z1 t8 m, `
#if debug; i* r* z6 |, i, [9 T% q
/***internal 2.0***/ //aux_clk
6 n. g0 ~9 B9 X& B7 u
3 l" ~' a6 e1 K9 S% u6 ?    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);2 `0 Q" ?7 x$ J/ [7 z2 j$ a
    reg &= ~(CFGCHIP2_USB2PHYCLKMUX);
8 W" l0 F& v* R  H    reg |= (CFGCHIP2_USB2PHYCLKMUX);
5 p9 ]& d% I0 e4 ?, D1 @    HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;
+ J; L! F$ t8 N- U9 k
, E6 n" J8 r( T+ N7 S: \    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);4 j# a* Z5 f  A/ [
    tprintf("\r\n 2.0clk source=0x%08x:\r\n", reg &= (CFGCHIP2_USB2PHYCLKMUX));
4 q# i% x' I. C& {' o3 I& k0 f0 [; L* X8 Y% ~; i, c0 Q6 [+ Y) s* B$ ?
/***internal 1.0***/ ///phy out! I; K0 n% Q4 P% p+ K

- ]0 ^! L- I/ [5 o% j# ~    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
" [! Q; {0 m3 F* O3 O+ D5 ~    reg &= ~(CFGCHIP2_USB1PHYCLKMUX);
. O: P+ V: C- x    //reg |= (CFGCHIP2_USB1PHYCLKMUX);
" V8 W1 u( o' K    HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;
$ H) s! z0 a. C$ K1 [' p! k6 h9 S# {& S- b9 y
    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);4 c/ W6 J4 }) H  g% z1 g& r
    tprintf("\r\n 1.0clk source=0x%08x:\r\n", reg &= (CFGCHIP2_USB1PHYCLKMUX));8 [% O7 c9 _9 r$ j5 M/ K$ K6 o

2 q5 L0 m/ j, P; ]3 l& M# _! ~9 X0 h# R! O# y' v# v$ n3 U
/***phy run***/ //phy out
( D& z8 C1 C$ q9 J. F* F: n: s9 g
, L7 y4 e% Z& u* t; v7 z        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);4 l; n+ ?, C3 l7 N: X6 ^7 }
        //tprintf("\r\n CFGCHIP2_PHYPWRDN=0x%08x:\r\n", reg &= (CFGCHIP2_PHYPWRDN));
7 O4 L5 X- F; J. I% j) e$ \! n8 |1 a% L
        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
) |0 f' p" ?  c        reg &= ~(CFGCHIP2_VBDTCTEN);
7 O3 r( E) U# J        reg |= (CFGCHIP2_VBDTCTEN);* B$ r( E1 a1 \
        tprintf("\r\n phy CFGCHIP2_VBDTCTEN=0x%08x:\r\n", reg &= (CFGCHIP2_VBDTCTEN));
4 U2 W, r9 x- Y' S, [#endif
( B% n' ^. Z+ w( Q7 l) b6 d% D0 I' d( E( D
    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
5 a" @0 k% C- V/ @+ ]: E    reg &= ~(CFGCHIP2_RESET | CFGCHIP2_PHYPWRDN | CFGCHIP2_OTGPWRDN);   3 z' V) @8 c3 |; e, F
% ]. a& Z" k4 J+ n* {8 w# t) K
    reg |= CFGCHIP2_PHY_PLLON;2 _: U) S/ |0 p+ {1 c* a

, W5 G! @5 \; t4 v1 c% Q    HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;6 W- G! p6 y1 \) R# p1 ?8 w7 ~

9 N0 a) B9 k# D4 Z2 H, V    while (!(HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) & CFGCHIP2_PHYCLKGD)); 4 n7 V1 f0 b2 ?( U( E3 r- m
( v4 N7 E1 K: d1 e
//#ifdef USB_MODE_FULLSPEED! v# e+ T8 N+ C/ Y2 K/ ^# n
    HWREGB(USB0_BASE + USB_O_POWER) &= 0xdf;0 ~* Q3 o3 q7 @1 k: ^
//#endif /* USB_MODE_HS_DISABLE  */. V  C8 Q5 i( s, K5 ~% P* d" ~7 U
+ W) {7 D1 C: `+ I
tprintf("\r\n USB0_BASE + USB_O_POWER=0x%08x:\r\n", HWREG(USB0_BASE + USB_O_POWER));- `' a' E7 J! |
}5 J$ [; j* ^4 a
, g4 Q, i4 A% U1 c5 ~  K- i

. Q8 \6 f  B/ G  附件有我们的电路图:& ~. D4 J3 D" n' m- [2 ^
  请问能否帮助分析,谢谢.1 q0 D3 X1 K( @. Z6 n8 c
7 f5 l9 c7 S1 I. N1 H! ~* z

5 U5 V+ O8 z3 V' M
' \# C3 n! J0 q& @3 a6 S
, q2 V9 U' n% T6 y& A( q: u( D6 |3 J* w

' T$ G9 B- v7 k
) e" R+ Z" G& F6 f1 o

本帖子中包含更多资源

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

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, 2026-1-31 00:55 , Processed in 0.044970 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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