嵌入式开发者社区
标题:
usb 2.0
[打印本页]
作者:
quwenqi
时间:
2017-11-6 09:54
标题:
usb 2.0
你好:
9 _4 K" e& w. y% F- W$ P
% x& d0 i. f. ]+ z& Q5 ?. F& i
我们公司在OMAPL138_StarterWare_1_10_04_01的基础上( OMAPL138_StarterWare_1_10_04_01\examples\evmOMAPL138\usb_dev_msc),
, H) p( Q( |0 L
/ Z2 O; S7 k+ z% e9 K- K' c
实现了usb mass storage功能,在win7系统下面u盘功能够顺利实际,但是在电脑上接一个hub后,然后将u盘接到hub上,u盘不能正解识别。
. q- ]4 L( i `2 i1 [- V- j, ^4 o
5 q8 V, w- t, ]8 L8 Z) B. O8 \- W
目前分析代码发现经hub转接后,电脑发(SCSI_READ_10 0x28)这个命令,usb 复位。
* A1 e& D7 w& i- C# U" C" k w
& I1 j; d' r3 A; }+ I- y' `" w. q
UsbPhyOn 代码如下,外部时钟配为19.2M. device mode:
( |6 w1 X: l3 y5 w% Q; U3 q
7 Y4 i" W4 T' m8 I$ x( c
请问个和我们的设备电流是否有关:
0 g0 O# {* f+ C. m
! H& x1 i$ n# J
void UsbPhyOn(unsigned int ulIndex)
+ v; l6 x( N( f7 i' C6 ?5 {
{
" S5 \8 E2 b' W: [" R
1 }3 V4 m1 v7 _6 l( p# C t1 z
unsigned int reg = 0;
6 K H( p- e# L9 [1 Y0 W
BSP_KickUnlock();
; X, n+ C1 H5 M
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
% \* C5 b p5 ]0 T2 _" P
reg &= ~(CFGCHIP2_REFFREQ);
! ?: f7 |; K i1 ^/ O1 l. F& Q+ H
reg |= CFGCHIP2_REFFREQ_19_2MHZ;
7 Z, T5 W% D6 @: M3 |
//reg |=CFGCHIP2_REFFREQ_24MHZ;
8 {$ R' |0 |9 R
HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr)=reg;
1 i) C- X' E3 d
7 U, d$ `3 b* P/ H. V1 H/ c
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
) u; @9 u4 O* \; x. @# {
tprintf("\r\n clk==0x%08x:\r\n", reg &= (CFGCHIP2_REFFREQ));
/ ~8 J7 d! p) }" @1 ?$ z
( s5 e! @. a- {1 Y! y7 O
#if debug
1 a3 F" _0 }& l& g6 e' D
/***internal 2.0***/ //aux_clk
( b" [' g' A% `0 j- V/ _% }
. N' j( j9 n; Q, Q0 e) ?
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
' I/ M4 n( _7 E: F% C. O
reg &= ~(CFGCHIP2_USB2PHYCLKMUX);
3 H0 [8 U, j! y. e+ f
reg |= (CFGCHIP2_USB2PHYCLKMUX);
& X2 k6 v6 [, w" G
HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;
# X% c1 k8 j# A5 R
0 ?8 q# g5 c1 b5 e* l) |
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
0 z1 b& H' h4 Z
tprintf("\r\n 2.0clk source=0x%08x:\r\n", reg &= (CFGCHIP2_USB2PHYCLKMUX));
& L3 T% _( I+ K! t* }
: k' k! }" O4 r9 z) |+ J
/***internal 1.0***/ ///phy out
) p1 P; a6 W3 j! t
* n( }% s# A7 ^* I; E
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
( Q/ v+ f4 \2 ^( ^
reg &= ~(CFGCHIP2_USB1PHYCLKMUX);
/ t8 s6 V% r, C1 A2 A" E" E6 C# n4 M
//reg |= (CFGCHIP2_USB1PHYCLKMUX);
( s5 \2 l, Y. y' n% I
HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;
; f8 u! ~6 A) W, E8 Y; k
9 N. \3 @# Y* x# g
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
9 F- B/ P8 {! D
tprintf("\r\n 1.0clk source=0x%08x:\r\n", reg &= (CFGCHIP2_USB1PHYCLKMUX));
9 M5 `% g5 M; x! I) D: { w
- v J1 l$ z! E f# `3 o9 b
" x% K, x3 Q. _, V. B
/***phy run***/ //phy out
5 ^4 E9 z) E0 L% d$ B7 h
6 Q2 B6 `; X$ W/ `( z+ J0 p+ H
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
4 N j, C" F5 C
//tprintf("\r\n CFGCHIP2_PHYPWRDN=0x%08x:\r\n", reg &= (CFGCHIP2_PHYPWRDN));
a$ W/ f, U1 }/ p9 X1 h8 }
$ I0 {" y D5 {- o7 j6 i& i
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
/ o3 E& N W( S
reg &= ~(CFGCHIP2_VBDTCTEN);
8 P8 i* D2 {! T# E. `* r
reg |= (CFGCHIP2_VBDTCTEN);
5 s: u, X& Y& ?, W
tprintf("\r\n phy CFGCHIP2_VBDTCTEN=0x%08x:\r\n", reg &= (CFGCHIP2_VBDTCTEN));
" D. t* `. L8 L# k& Z2 h
#endif
& T, h2 P; p4 }( H0 C
[/ y3 K7 `% z+ \
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
, J/ c3 @4 {' b. z; {& g1 [
reg &= ~(CFGCHIP2_RESET | CFGCHIP2_PHYPWRDN | CFGCHIP2_OTGPWRDN);
" M& F' B) p8 h( c6 S: t
* b# e% J& B! N O( Q6 |* O+ u
reg |= CFGCHIP2_PHY_PLLON;
5 M; U/ [# K% Q! ~: V" O
Z$ o% B2 e, v1 s- e$ e
HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;
# |* U( v; Z( I2 Q$ d& i7 M/ j
) P5 I8 E1 O$ b7 b$ ]
while (!(HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) & CFGCHIP2_PHYCLKGD));
5 w. i; W. v. G- J0 G
o0 F2 \: e; s9 Y$ O
//#ifdef USB_MODE_FULLSPEED
5 ?6 J* W2 l( F( \. P) Y
HWREGB(USB0_BASE + USB_O_POWER) &= 0xdf;
# M' v' ?# H: G( Q5 }# |% ^5 s
//#endif /* USB_MODE_HS_DISABLE */
/ X" O: |' P5 a. ~% ?) C
( O# w$ Y( o6 y% g
tprintf("\r\n USB0_BASE + USB_O_POWER=0x%08x:\r\n", HWREG(USB0_BASE + USB_O_POWER));
* r" F) S. G: P' Q3 \6 W W
}
" H& ^* H2 ]& H& D- N
6 @. c; P) N! ?4 Q7 O
, n! _* d, R& x. }
附件有我们的电路图:
0 j7 b/ {# n( I- A7 Y
请问能否帮助分析,谢谢.
; V8 j }- v8 F
" Z! }; l& F1 J. u- ^; T1 u2 F
$ m9 g- k. c/ \/ x9 y- o: `7 u
& g/ |+ j W0 ^! h0 u( u. j8 H
5 v5 R) m* D+ Y! ~
9 {* o3 K g, E, ] [
& J! @0 I; G/ t5 J, f1 ^
. O% a8 O) F, k8 f- \' b
作者:
quwenqi
时间:
2017-11-6 09:56
telephone num 13437388251
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4