嵌入式开发者社区
标题:
usb 2.0
[打印本页]
作者:
quwenqi
时间:
2017-11-6 09:54
标题:
usb 2.0
你好:
( j, b/ B; z. R( O9 o. Q
. _& v$ u8 j5 q7 y
我们公司在OMAPL138_StarterWare_1_10_04_01的基础上( OMAPL138_StarterWare_1_10_04_01\examples\evmOMAPL138\usb_dev_msc),
. f9 b1 t7 s0 X# g8 H, e) S0 a
. ]. J) v! x8 b4 F" Z3 u; O$ t" J p
实现了usb mass storage功能,在win7系统下面u盘功能够顺利实际,但是在电脑上接一个hub后,然后将u盘接到hub上,u盘不能正解识别。
* J- n2 D% N, x+ i
- D) G2 @7 r1 e' ~ _$ K0 S- T; n
目前分析代码发现经hub转接后,电脑发(SCSI_READ_10 0x28)这个命令,usb 复位。
& \: i, \" C K' ?! r
. B; V* S# u* J) L& n( T" v7 T3 m9 }
UsbPhyOn 代码如下,外部时钟配为19.2M. device mode:
6 ?) a: q+ U) e2 @7 f, O
% @! ` @9 c! O& b/ R
请问个和我们的设备电流是否有关:
7 C3 _+ _0 D- J$ |' r# ]/ }- _
; D2 u7 G( \: ]$ ]; j2 \
void UsbPhyOn(unsigned int ulIndex)
" n0 E; Y. h& Z$ @2 K, h
{
: W+ k4 k. @" w
. f" M3 ^# I% l! m2 A
unsigned int reg = 0;
' C3 c! \% w, w4 T! h1 B" t7 D
BSP_KickUnlock();
6 ~$ K" M6 M; w3 n( G
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
1 I( Y7 ^' z( p$ U( U
reg &= ~(CFGCHIP2_REFFREQ);
4 S7 I) U( _/ w/ `3 ~
reg |= CFGCHIP2_REFFREQ_19_2MHZ;
! ^9 Z, w7 D$ W
//reg |=CFGCHIP2_REFFREQ_24MHZ;
* |5 V* o. W/ }- S( |
HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr)=reg;
+ g7 R1 F+ }( f) z$ Z0 ]$ \
( m3 r5 G2 Y/ J* \$ _
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
$ e" H# h, J6 ?( M. ^
tprintf("\r\n clk==0x%08x:\r\n", reg &= (CFGCHIP2_REFFREQ));
6 ~$ P3 B$ Y1 J |6 Z( S4 P
: U5 e* u) y% r
#if debug
& e' a% `) q* K# Z i1 T
/***internal 2.0***/ //aux_clk
6 L! _6 G3 E: k8 C6 M
# a5 @7 U; M8 Z' n8 g; `2 M
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
$ K% f" d! R3 s" W1 l0 d/ g
reg &= ~(CFGCHIP2_USB2PHYCLKMUX);
0 r4 l9 a' v" y7 r
reg |= (CFGCHIP2_USB2PHYCLKMUX);
, j; R9 v/ v1 B f( I
HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;
# `: G& C# C8 \$ V3 X
: Y; z* w+ o/ n" ^- E8 S
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
& l& v( h& |/ S1 `. c
tprintf("\r\n 2.0clk source=0x%08x:\r\n", reg &= (CFGCHIP2_USB2PHYCLKMUX));
3 m9 e2 N) k! G& ?) C' R
K6 n3 N/ _; ]. U" H( s# V1 M) G
/***internal 1.0***/ ///phy out
8 I8 T$ s; r3 m
5 s6 x V7 r* h
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
+ ~! A7 L" a" d* g9 N. g
reg &= ~(CFGCHIP2_USB1PHYCLKMUX);
^! i) W5 V9 k; ^# ^. N( {
//reg |= (CFGCHIP2_USB1PHYCLKMUX);
1 g- x# R4 k. }2 ], z% M8 ]
HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;
( [% l4 x* i8 L2 C# Q
6 [, T/ o" v8 d7 w/ m. i
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
/ i: D, {( Y# m) X) d/ N
tprintf("\r\n 1.0clk source=0x%08x:\r\n", reg &= (CFGCHIP2_USB1PHYCLKMUX));
0 V- n2 a# U8 |$ [
$ c4 y w. _, E( L
2 ?5 i. O1 K. i" i9 A# q& u% ?
/***phy run***/ //phy out
! B! w! ?; T) M; j
5 A9 y# x6 L* s4 g; B) J
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
; i* A- C- ?# @5 }
//tprintf("\r\n CFGCHIP2_PHYPWRDN=0x%08x:\r\n", reg &= (CFGCHIP2_PHYPWRDN));
- e3 V- Y$ x% Q
8 H" k1 E+ @! ^. a, O: F
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
! o# N% \% l P @1 e
reg &= ~(CFGCHIP2_VBDTCTEN);
) G: }: b% F' ]2 m3 f0 a9 Y9 @ u1 {: g
reg |= (CFGCHIP2_VBDTCTEN);
: `. B2 k4 ~4 R1 N, Y
tprintf("\r\n phy CFGCHIP2_VBDTCTEN=0x%08x:\r\n", reg &= (CFGCHIP2_VBDTCTEN));
4 J1 e- c R/ q) A
#endif
$ j: e' z: [- n1 A2 U# _5 g, g
. K" R: |- ^) V7 K3 i5 O& _+ O
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
5 N, A# U; H$ F% K) ]$ t. H6 N
reg &= ~(CFGCHIP2_RESET | CFGCHIP2_PHYPWRDN | CFGCHIP2_OTGPWRDN);
, s2 j5 c* I# r' M
/ r" }/ d$ _6 y* e1 B5 t
reg |= CFGCHIP2_PHY_PLLON;
( Y* _2 y; N! a0 \# T% L8 T
+ ^" p F# f( m$ O( d
HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;
2 H/ x$ p% O! m
7 i8 r, D& L& {7 \: A
while (!(HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) & CFGCHIP2_PHYCLKGD));
! G+ i8 }: R7 @- S% n- t* j
- C9 }7 N& d5 a2 e) F
//#ifdef USB_MODE_FULLSPEED
2 f2 }6 ]" f# n. C
HWREGB(USB0_BASE + USB_O_POWER) &= 0xdf;
1 C* |, B3 R% }* D
//#endif /* USB_MODE_HS_DISABLE */
1 X: l- N% ?) \$ U9 @' Y. [& k" U1 {
+ _0 G- t6 i6 M
tprintf("\r\n USB0_BASE + USB_O_POWER=0x%08x:\r\n", HWREG(USB0_BASE + USB_O_POWER));
Z2 V+ x2 H6 e, q0 ^# d
}
& t6 s, T8 g# ?9 t+ L0 s
" B' e( [% {% l+ C
6 F# N# o- d. G5 P' b) m6 |
附件有我们的电路图:
* T+ H$ F. @% O/ Z/ v
请问能否帮助分析,谢谢.
3 C& x, x5 i# U
h8 k+ ^$ D) J! j
! X+ Z" P6 ?9 h3 N* S! A
, x' X5 m, G, c
7 [4 n- B p1 b k f
# w# B k+ \8 }! S( r7 E5 ^
5 k) L u9 I" x# l
, q' \" y v, ^3 |/ ^: n' P: y- U
作者:
quwenqi
时间:
2017-11-6 09:56
telephone num 13437388251
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4