usb 2.0 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] usb 2.0

[复制链接]

2

主题

8

帖子

38

积分

新手上路

Rank: 1

积分
38
跳转到指定楼层
楼主
发表于 2017-11-6 09:54:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
你好:, f: [" U9 I/ K2 W6 E: z; p

$ v% ^9 X4 t8 O$ ^1 t) t9 \  我们公司在OMAPL138_StarterWare_1_10_04_01的基础上( OMAPL138_StarterWare_1_10_04_01\examples\evmOMAPL138\usb_dev_msc),
* I  Z8 c" Q) B1 Z5 R- Z# k; m6 ~, A9 s7 `) K
  实现了usb mass storage功能,在win7系统下面u盘功能够顺利实际,但是在电脑上接一个hub后,然后将u盘接到hub上,u盘不能正解识别。
8 U, p, m! T5 @# s8 F1 C7 E) e6 E" q
9 e) I9 x: n4 v2 P  目前分析代码发现经hub转接后,电脑发(SCSI_READ_10 0x28)这个命令,usb 复位。
! G! E  D! a/ N, l3 P; l5 L7 U2 ~" i/ J  p+ N7 Q) ^) _
  UsbPhyOn 代码如下,外部时钟配为19.2M. device mode:
+ x2 A4 I5 y2 [& G/ @
! N" d1 {3 g2 W. I5 {  P  请问个和我们的设备电流是否有关:
: m/ L7 i( V) z0 ]* L, d) D: B1 D$ T; d9 w% c: E( j3 T
void UsbPhyOn(unsigned int ulIndex)
0 q4 y$ y- f5 G" i/ O% l& o! F) j{
+ ~' g( F& F0 I0 t+ R  q0 a4 Y" H       
4 k3 b. f, k, j, G: Y   unsigned int  reg = 0;$ P' O6 u7 I5 f7 \- L
   BSP_KickUnlock();
& |. e0 d0 U, Z! Y        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);/ I) C! K2 ^* p
        reg &= ~(CFGCHIP2_REFFREQ);
1 B: k2 L5 y4 K9 `2 {        reg |= CFGCHIP2_REFFREQ_19_2MHZ;( A1 ?" M9 x' y1 `0 M6 O! k
        //reg |=CFGCHIP2_REFFREQ_24MHZ;
. p& ^2 l0 N) c" `8 `        HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr)=reg;0 g* ]& w6 i# D

+ w) g' q5 o' K. M( i. H        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);: n2 v4 v& E1 K% Q9 R8 p$ u- B
        tprintf("\r\n clk==0x%08x:\r\n", reg &= (CFGCHIP2_REFFREQ));$ u+ T2 o: s) i& @: f

, t7 I3 a7 p4 J2 @#if debug
- M( q  E3 W7 r1 o/ ]3 I/***internal 2.0***/ //aux_clk
! \* |( u5 q$ e, U
% r  L* D9 M- W& j! n! U    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);& u' y4 r. A+ H  R9 E/ r
    reg &= ~(CFGCHIP2_USB2PHYCLKMUX);
4 A4 c1 ~7 {9 i) i5 ?9 @: ]    reg |= (CFGCHIP2_USB2PHYCLKMUX);
1 v6 k# W& ^4 F. q7 C( a' F: ^! m) N    HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;
- G4 j( H0 w, Q7 g. B% @' n# M
" F0 A7 a* ^! C, P: _* W/ a1 D    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);* ?. z$ Q" C5 A: e2 u
    tprintf("\r\n 2.0clk source=0x%08x:\r\n", reg &= (CFGCHIP2_USB2PHYCLKMUX));7 e1 {1 C$ G9 a8 B  _

$ y8 |. J0 G8 X, H% d/***internal 1.0***/ ///phy out
+ }% T, i8 X, t. h" S
* L1 s) W" U3 p4 Q. ~* y    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
6 |+ k/ m6 E$ X+ R$ X4 r1 B+ n+ l    reg &= ~(CFGCHIP2_USB1PHYCLKMUX);( `& w, A9 b" z! o& P3 b# d% k- e
    //reg |= (CFGCHIP2_USB1PHYCLKMUX);+ W% Y1 T1 |2 Z* E3 z# B
    HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;
* u. u  I6 E' N0 |
/ E4 x4 U$ P8 C& B* D    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
$ ^" G" @6 ^, x' u$ ^6 P, |4 F8 b7 S    tprintf("\r\n 1.0clk source=0x%08x:\r\n", reg &= (CFGCHIP2_USB1PHYCLKMUX));9 C+ p6 X' l! |& O0 h/ `$ {) T

5 M; z' X% m. x' o8 O5 a2 a2 }" E7 D) P/ d: X! f& d
/***phy run***/ //phy out5 Y0 r4 I$ T, ]5 \0 g

, p9 \; e- ~; Z  G% j        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);0 C3 g4 z5 `: v. R5 ?9 x# G
        //tprintf("\r\n CFGCHIP2_PHYPWRDN=0x%08x:\r\n", reg &= (CFGCHIP2_PHYPWRDN));
, M0 Q5 M0 x; Y  z+ d
6 M9 m) Q1 L+ [        reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);* f8 _8 }) L3 j- m$ W7 A: L1 a
        reg &= ~(CFGCHIP2_VBDTCTEN);( w8 Q7 Y* j9 y" ]! ^
        reg |= (CFGCHIP2_VBDTCTEN);) M- r1 a9 f- |" M- \
        tprintf("\r\n phy CFGCHIP2_VBDTCTEN=0x%08x:\r\n", reg &= (CFGCHIP2_VBDTCTEN));- Q1 \$ q: Q0 h" ?/ W
#endif
1 p1 B  J0 F/ h2 y1 M& T$ y+ R) E# k! f3 S6 H
    reg = HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr);
: q. a& a. G+ q; D$ Y5 ?    reg &= ~(CFGCHIP2_RESET | CFGCHIP2_PHYPWRDN | CFGCHIP2_OTGPWRDN);   
0 o+ w8 j  J5 _& X6 P7 S- }, s8 B+ M
    reg |= CFGCHIP2_PHY_PLLON;
0 Y9 k6 H4 f' h, j! R/ x) S9 D. j2 X; T' z+ A- ]2 j+ J: c( m
    HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) = reg;2 ~* Q$ R  h$ ]

+ G' t& O' b* F+ g" Z    while (!(HWREG(g_USBInstance[ulIndex].uiPHYConfigRegAddr) & CFGCHIP2_PHYCLKGD));
1 K0 O9 K# |" R$ i! {+ e+ w! G8 x  z* n
//#ifdef USB_MODE_FULLSPEED
  H: {- R( b3 ^" A    HWREGB(USB0_BASE + USB_O_POWER) &= 0xdf;
3 K" E9 ^5 ]: Q' A  d//#endif /* USB_MODE_HS_DISABLE  */; Q* `) B8 ?/ L4 m
# }6 z0 E9 n! Q9 F% e# K
tprintf("\r\n USB0_BASE + USB_O_POWER=0x%08x:\r\n", HWREG(USB0_BASE + USB_O_POWER));
. M  F- z6 f. v  S3 E7 s% B}1 y+ h0 y- x8 R% m; N$ x

8 r, w( k3 I; ?; e8 k( z/ ^0 B/ U: o4 C3 i8 @3 B1 p- |% F
  附件有我们的电路图:
  W* B4 R- t3 c* v" S7 A( \  请问能否帮助分析,谢谢.. @6 E$ Q! {2 d

& I! Y1 t8 c1 u: e
) z/ X$ N4 z. |* A7 g+ ~
+ s7 ^0 Z6 J8 h( _% O, j( s8 j5 [- M

7 P; v) R( }9 V, M1 V$ a) E5 P. X. l# P% S6 H) F' o1 [+ Y
" V8 G; B& H' z! d* x3 i( Q& z

本帖子中包含更多资源

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

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, 2025-11-5 03:02 , Processed in 0.039013 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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