嵌入式开发者社区
标题:
usb 2.0
[打印本页]
作者:
quwenqi
时间:
2017-11-6 09:54
标题:
usb 2.0
你好:
$ E6 s6 ?; T7 h, D
6 J5 c2 Q3 h$ K& {) O
我们公司在OMAPL138_StarterWare_1_10_04_01的基础上( OMAPL138_StarterWare_1_10_04_01\examples\evmOMAPL138\usb_dev_msc),
3 U* R: ~3 X9 _ b! ^, D( M J
0 F" d. l, b) s( J8 y
实现了usb mass storage功能,在win7系统下面u盘功能够顺利实际,但是在电脑上接一个hub后,然后将u盘接到hub上,u盘不能正解识别。
0 P8 g, u* P( ^
8 N6 U5 Z! y: T
目前分析代码发现经hub转接后,电脑发(SCSI_READ_10 0x28)这个命令,usb 复位。
+ \7 P1 c. @( W8 G# X7 j$ I h, B
+ j6 ^; _9 C5 P* k) A$ X: c3 K: }
UsbPhyOn 代码如下,外部时钟配为19.2M. device mode:
$ m d/ d$ w5 ~
; p) Q" J& D1 Y
请问个和我们的设备电流是否有关:
3 k: L: j7 _" h" ?3 r" R; j
* J1 F3 B+ w. c, B( N1 [0 ?- W; A
void UsbPhyOn(unsigned int ulIndex)
( V) x* X$ ~* m) P e- s1 l
{
4 r& {8 |- j8 Q3 E" D/ o
0 E q7 J- T0 ^% d. {, ^
unsigned int reg = 0;
$ v! B& ]6 ~3 {/ a7 L1 _
BSP_KickUnlock();
) \9 N+ }7 r6 C& e+ T5 T6 S0 I
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
) p9 S, f' _' ~
reg &= ~(CFGCHIP2_REFFREQ);
6 T4 }7 i& Z( _ a8 m
reg |= CFGCHIP2_REFFREQ_19_2MHZ;
' v& T; S( z4 ]2 B3 Z- C1 u
//reg |=CFGCHIP2_REFFREQ_24MHZ;
4 ?# p, e9 U, v9 P( u& b8 t
HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr)=reg;
& D+ N/ e3 @, y: Q
/ V( [" B. |4 B* j8 N6 u' }$ ^ P
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
! `0 f1 L1 ^6 \; S. B2 O: d
tprintf("\r\n clk==0x%08x:\r\n", reg &= (CFGCHIP2_REFFREQ));
# A, D1 ~) d9 v1 X1 y
. i1 n- a9 l! G" I5 y) K9 P
#if debug
/ E$ L: N w4 o0 ~& ^+ o8 T
/***internal 2.0***/ //aux_clk
# k- s; c, C( x) L) g
. x2 t4 e2 Y7 P' p
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
( }! A* }$ _) d" \! L
reg &= ~(CFGCHIP2_USB2PHYCLKMUX);
6 V& B0 e) E* r( w. v, _
reg |= (CFGCHIP2_USB2PHYCLKMUX);
x! p5 ~& S# E; L; X- K3 m
HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;
1 I& p- y3 |% S# w# g. ^2 o
, \' z# c* O; p1 J7 ^8 `8 L
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
/ l( P0 ^& M( W+ v; X
tprintf("\r\n 2.0clk source=0x%08x:\r\n", reg &= (CFGCHIP2_USB2PHYCLKMUX));
: n6 y$ ~4 \8 p5 ?$ k" \( ^
# C9 ~& k, h& W" ]* g6 [
/***internal 1.0***/ ///phy out
8 S. |% Y6 V$ m( @ ^% n! H% B& r
9 F+ g% C" P8 _4 _! Z5 d' x1 `
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
# n8 b# y7 S7 U4 P7 m, L! ^! M1 i) @
reg &= ~(CFGCHIP2_USB1PHYCLKMUX);
. ^8 c' J* r) O
//reg |= (CFGCHIP2_USB1PHYCLKMUX);
4 ?2 ~6 z# E7 S& ~ E8 @8 I, b( ^
HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;
) Q6 ?% ]* ` z3 F8 h ^
/ V; I5 e, x, b, I
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
3 Y+ H7 p% F2 P& o* |6 h5 c
tprintf("\r\n 1.0clk source=0x%08x:\r\n", reg &= (CFGCHIP2_USB1PHYCLKMUX));
& I3 q! e* i9 Z( G6 ?
) Y8 U) N# g1 E9 u& F
8 p, U; ^& }' v4 B" b* o
/***phy run***/ //phy out
k. N/ C+ H+ H9 s9 k
6 _$ H3 ^# n5 w
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
" Y% t# p* s: L
//tprintf("\r\n CFGCHIP2_PHYPWRDN=0x%08x:\r\n", reg &= (CFGCHIP2_PHYPWRDN));
9 S( [8 u- ^) {4 t3 h" d
: }; `) P/ m* B! H5 ~! B
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
. W: j4 t K: w0 A& F3 l! Q
reg &= ~(CFGCHIP2_VBDTCTEN);
1 f# m( u! b2 X
reg |= (CFGCHIP2_VBDTCTEN);
% G. z) a9 X' b' i! U0 g$ p
tprintf("\r\n phy CFGCHIP2_VBDTCTEN=0x%08x:\r\n", reg &= (CFGCHIP2_VBDTCTEN));
/ T. H4 i3 W2 r" n+ Y
#endif
/ _: o4 N* r1 T' C. s) u, J3 |
: B+ g" d4 a) v9 g5 ^& Q4 e# F
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
6 B P& h6 }$ _
reg &= ~(CFGCHIP2_RESET | CFGCHIP2_PHYPWRDN | CFGCHIP2_OTGPWRDN);
0 b2 v( }# n N$ G
! b& F/ o' @ S6 ?/ U
reg |= CFGCHIP2_PHY_PLLON;
2 }& X/ ^1 V; a7 d- P8 W8 B2 ]
6 O7 R- E* ~+ Z8 i8 t
HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;
$ ~4 {8 O. c* D) p. f8 P
" R& l* |7 l* @6 j+ {/ o+ w3 f% D
while (!(HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) & CFGCHIP2_PHYCLKGD));
" x( u% {" U' z7 H+ E/ R S
9 l+ h' h) W8 l
//#ifdef USB_MODE_FULLSPEED
3 K5 r3 P; A" i3 [" x, @! @/ U% Q
HWREGB(USB0_BASE + USB_O_POWER) &= 0xdf;
4 l- c2 V0 n7 T+ K7 X+ l* H
//#endif /* USB_MODE_HS_DISABLE */
; O* P7 x! I5 S& }
' K$ x/ [$ N7 N( E
tprintf("\r\n USB0_BASE + USB_O_POWER=0x%08x:\r\n", HWREG(USB0_BASE + USB_O_POWER));
8 O" [0 {. H! G: V; V+ r" c* f; U
}
# w6 i$ @3 ?/ p
8 `/ j' n2 a) @# W7 c
; M! f, D& A! b/ o+ Q
附件有我们的电路图:
! V( ^( m9 ^, s7 \) }7 Q
请问能否帮助分析,谢谢.
+ J4 |; B. c$ c8 f! ?) Y! A
9 i5 e# h) s( O! X9 d9 y5 V
( E0 D. K: \/ a# U
/ B! d# K) \8 g
$ ^! y% S) z, f3 F! T) t( X
- r# Q$ ]" e- p) j
b9 M Z/ J2 j" U- [- W! E2 N
3 p% G! m" y; H! N5 p. A8 l
作者:
quwenqi
时间:
2017-11-6 09:56
telephone num 13437388251
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4