嵌入式开发者社区
标题:
usb 2.0
[打印本页]
作者:
quwenqi
时间:
2017-11-6 09:54
标题:
usb 2.0
你好:
: Q% H- _! C9 a2 I
1 c+ q5 h& f5 y5 k8 \
我们公司在OMAPL138_StarterWare_1_10_04_01的基础上( OMAPL138_StarterWare_1_10_04_01\examples\evmOMAPL138\usb_dev_msc),
/ }) C( D0 s# a9 R/ |
/ F7 B0 u# O7 A+ ?2 H' }7 v+ ?2 _
实现了usb mass storage功能,在win7系统下面u盘功能够顺利实际,但是在电脑上接一个hub后,然后将u盘接到hub上,u盘不能正解识别。
# R) X' j7 @" d0 A$ t
. a" a& F" x5 C6 p/ R
目前分析代码发现经hub转接后,电脑发(SCSI_READ_10 0x28)这个命令,usb 复位。
y" n9 \0 \% d$ ?
+ ~$ ]' M9 {& ^8 x( G/ b, y+ {) Z
UsbPhyOn 代码如下,外部时钟配为19.2M. device mode:
. J1 |3 n5 [3 L. ?. W9 I
8 i% J$ m' P+ m' B/ h5 y; K" S+ ]
请问个和我们的设备电流是否有关:
/ d! O1 P; S# j+ Z/ H+ m" T
0 s4 F2 k& {- \/ `# f) X
void UsbPhyOn(unsigned int ulIndex)
+ C! L! ~2 F) a$ Y( B
{
1 R0 l" ^- q8 |4 ~+ d+ [0 `
T' \6 f; A6 K" X4 T' n/ L+ J5 W
unsigned int reg = 0;
/ n/ E/ c' J! w4 Y9 l$ Q, b9 C
BSP_KickUnlock();
! e. F" t/ |" Z0 |8 w5 b/ N1 W
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
, H9 q& Z% L; X4 Q' o' e
reg &= ~(CFGCHIP2_REFFREQ);
# g( G) R2 v' ~5 \
reg |= CFGCHIP2_REFFREQ_19_2MHZ;
: M2 X' p3 A; A! V
//reg |=CFGCHIP2_REFFREQ_24MHZ;
+ |. d3 W7 v8 h+ F3 B4 A2 s% }
HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr)=reg;
1 L, _4 B% E% n3 Y4 X, T( Y
' G7 f" r4 B1 T- t! {8 ^0 L- r
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
$ x7 O; t0 z3 e' M; i
tprintf("\r\n clk==0x%08x:\r\n", reg &= (CFGCHIP2_REFFREQ));
9 r- k$ U, v m$ {/ n) F& f
; I- e4 e: b: U8 J9 {
#if debug
9 L* G* m2 R6 n' Q
/***internal 2.0***/ //aux_clk
% n( `* D; M$ @* Y D( a; u2 n/ g
& r' E8 @$ K. I D
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
# H/ p+ A" X4 @7 N1 x! A
reg &= ~(CFGCHIP2_USB2PHYCLKMUX);
3 _" [4 K- }) L7 E9 _2 y7 W# d7 B
reg |= (CFGCHIP2_USB2PHYCLKMUX);
0 J0 |+ Y& ^1 X( k- ]
HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;
4 a( K' t6 W% c- |: x9 |
A: _1 C6 h) K. J O. g" ?
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
) n$ Q8 E9 l9 d2 M2 S9 ]/ U. n# {
tprintf("\r\n 2.0clk source=0x%08x:\r\n", reg &= (CFGCHIP2_USB2PHYCLKMUX));
^; g6 t" J* e
7 P5 _; \1 j/ r+ A9 `% l, S
/***internal 1.0***/ ///phy out
+ X7 @4 J' |$ {6 y9 U9 `* V
5 y1 X4 O z/ k* O ]! Y5 o$ K
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
% X C$ H4 e1 g
reg &= ~(CFGCHIP2_USB1PHYCLKMUX);
0 {/ `+ T) }& G5 h' g
//reg |= (CFGCHIP2_USB1PHYCLKMUX);
9 t4 A% d4 ?$ b2 u& D* p2 k! O
HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;
6 ?( F: p) K, z# v' e
: M& P C3 \4 O- u, O$ T6 o
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
& Y4 I5 R' @9 W
tprintf("\r\n 1.0clk source=0x%08x:\r\n", reg &= (CFGCHIP2_USB1PHYCLKMUX));
7 l' \7 l' m8 c X7 }
, x5 ^) h2 F$ C
/ [" O/ t. _: A
/***phy run***/ //phy out
( d6 x( W2 S5 ~
" p# J( G0 K( r4 H: I( Q$ g! Q
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
5 N8 f5 D, D6 D* p0 J
//tprintf("\r\n CFGCHIP2_PHYPWRDN=0x%08x:\r\n", reg &= (CFGCHIP2_PHYPWRDN));
# d! @; o7 i; S+ M8 G
) d7 _1 M7 U F4 L4 c# T2 u
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
9 t6 Q ~$ Q* u" N& d# K2 T$ B
reg &= ~(CFGCHIP2_VBDTCTEN);
9 [# M: u5 a8 l, c
reg |= (CFGCHIP2_VBDTCTEN);
/ d4 z0 E7 R9 [1 G6 b) R! p! c
tprintf("\r\n phy CFGCHIP2_VBDTCTEN=0x%08x:\r\n", reg &= (CFGCHIP2_VBDTCTEN));
7 \( q$ q! _: ]2 Y
#endif
* X% P7 u. z U! l( i- O
0 X! Q7 _; N% G1 v9 e* h
reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
5 L4 M5 S) P$ N, h! H. `
reg &= ~(CFGCHIP2_RESET | CFGCHIP2_PHYPWRDN | CFGCHIP2_OTGPWRDN);
( e) V$ o8 y0 A" T# Y1 U4 [8 s8 S
) U$ |' F+ o6 A) g5 k
reg |= CFGCHIP2_PHY_PLLON;
/ J; a. Z( Z' U- `5 Q
/ {* R$ [9 Z3 Y
HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;
" g. Y% @/ `4 ?7 W5 Q5 g
+ [1 h6 }0 m! U r9 B5 }; T
while (!(HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) & CFGCHIP2_PHYCLKGD));
3 O) q+ ~" i' J- J& Q+ B( t
& d6 F1 \/ F: @: E6 U) e3 ~, l5 q" t4 j
//#ifdef USB_MODE_FULLSPEED
9 N* M2 p5 b U
HWREGB(USB0_BASE + USB_O_POWER) &= 0xdf;
8 E3 @2 u7 v- C: A9 P% j8 o
//#endif /* USB_MODE_HS_DISABLE */
$ k$ p( @& ~' {4 H
* F$ ^7 `3 @* n1 }1 d
tprintf("\r\n USB0_BASE + USB_O_POWER=0x%08x:\r\n", HWREG(USB0_BASE + USB_O_POWER));
2 R6 @1 ` R4 X, Q3 }. _
}
{/ z2 B: I7 h: D; X
+ X; A# o+ S. g. l1 Z
5 T N" V* S. r4 s* d1 x9 c
附件有我们的电路图:
# T: n8 ~# z' N1 O1 |. i8 t
请问能否帮助分析,谢谢.
, }: U: C- Y: z
6 u& b, |- {/ r: n
: w, g2 [0 Q: n
( O( ]& C' y- Q7 J! K. P
4 B9 S+ o5 W* W2 r$ k
. U, Y5 B) P+ B9 ^/ q( z9 d
& J6 a1 r( G7 `% b, m, b
3 f" C2 p8 L( t. u) v( w
作者:
quwenqi
时间:
2017-11-6 09:56
telephone num 13437388251
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4