搜索
bottom↓
回复: 49

请教STM32F205使用USB3300做HS msc存储设备

[复制链接]

出0入0汤圆

发表于 2014-8-12 19:55:17 | 显示全部楼层 |阅读模式
     我目前在用STM32F205+USB3300做HS 存储设备,看了官方的例程和各位坛友里面使用USB3300做高速MSC的例程。我自己也打了块板子,把官方的例程编译了一下烧了进去,但插入到电脑上一点反应都没有。后来看USB3300手册,说要对其进行初始化。翻了一遍下载的各种示例代码,就是没发现初始化PHY(ST的代码虽不是用USB3300,但也应该也有这块初始化才对)这一块的代码。看到usb_core.h 有USB_OTG_PhyInit()的定义,但没有函数实体。不知道怎么回事。
     手头上只有万用表,目前板子上USB3300的CLKOUT量出直流电压为1.6V左右,CLK应该是输出了,DIR是低电平。STM32怎样通过ULPI接口初始化USB3300呢?求用过USB3300的大侠给些指点。谢谢!

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2014-8-12 20:09:22 | 显示全部楼层
关注下HS usb的帖子

出0入0汤圆

 楼主| 发表于 2014-8-12 20:11:38 | 显示全部楼层
好的,谢谢。稍后看下。

出0入0汤圆

 楼主| 发表于 2014-8-12 21:04:22 | 显示全部楼层
还是找不到具体的信息呀。mfkiwl 能给些具体的帖子参考吗?

出0入0汤圆

 楼主| 发表于 2014-8-16 09:04:37 | 显示全部楼层
发现了一个问题,官方2xx的示例代码用的芯片和我用的封装不一样,ULPI的STP和DIR定义的端口不一样。改过之后烧进去终于有未知设备的提示了。接着看。

出0入0汤圆

发表于 2014-8-30 19:43:31 | 显示全部楼层
Frank.Dong 发表于 2014-8-16 09:04
发现了一个问题,官方2xx的示例代码用的芯片和我用的封装不一样,ULPI的STP和DIR定义的端口不一样。改过之 ...

问下楼主有解决了吗,我这边同样是未知设备

出0入0汤圆

 楼主| 发表于 2014-8-31 11:29:50 | 显示全部楼层
Xiangxiang8 发表于 2014-8-30 19:43
问下楼主有解决了吗,我这边同样是未知设备

还没有解决呢,中间这段时间有事情一直没有搞。昨天网上买了一个别人的207板子和USB3300,打算用别人的试试。你这边有什么进展了,帖子里也说下,咱们互通有无。

出0入0汤圆

发表于 2014-8-31 13:50:17 | 显示全部楼层
我这边也是,自己打的板子,F4+3300,焊接好后,第一次能用,找到了设备,然后再也没有成功过。。。一直是unknown decive    一直在各种找原因,还没找到

出0入0汤圆

 楼主| 发表于 2014-8-31 14:12:25 | 显示全部楼层
Xiangxiang8 发表于 2014-8-31 13:50
我这边也是,自己打的板子,F4+3300,焊接好后,第一次能用,找到了设备,然后再也没有成功过。。。一直是u ...

如果第一次能识别出来,那问题就不大了。你程序没动的话,就换块新板再试试。看是不是,硬件上不小心改了什么。我这是,一直都是未知设备。我担心我这是硬件问题。

出0入0汤圆

发表于 2014-8-31 14:46:48 | 显示全部楼层
我都怀疑第一次怎么了。。。不管第一次,现在我担心程序是不是不对,我是例程,但是我检测和3300连接的引脚,没有发现波形,没有初始化3300啊

出0入0汤圆

 楼主| 发表于 2014-8-31 14:55:28 | 显示全部楼层
Xiangxiang8 发表于 2014-8-31 14:46
我都怀疑第一次怎么了。。。不管第一次,现在我担心程序是不是不对,我是例程,但是我检测和3300连接的引脚 ...

3300和STM32中间应该还是有通讯的,先前我用例程时,ULPI的有个IO定义和我的板子不在一个端口上,程序烧进去一点反应都没有,后来调整过来之后就一直是未知设备。至于USB3300到底需要初始化不,看了好久给有的坛友也聊了下,基本断定不需要刻意去初始化什么。当然我现在没有调通,一切都还有可能。你再琢磨琢磨 吧。我这边没示波器,只有万用表,调起来还是比较麻烦的。

出0入0汤圆

发表于 2014-8-31 16:48:02 | 显示全部楼层
Frank.Dong 发表于 2014-8-31 14:55
3300和STM32中间应该还是有通讯的,先前我用例程时,ULPI的有个IO定义和我的板子不在一个端口上,程序烧 ...

恩,好的,和你聊了收获不少,不是软件的问题,估计是硬件DP和DN的阻抗的问题了。。。我再想办法试试吧,如果有进展再交流

出0入0汤圆

发表于 2014-9-23 19:21:16 | 显示全部楼层
还是再问下,兄弟你那边有进展吗?我重新打了一块板子,重新匹配的阻抗。。。然后现在还是knowndevice。。。。但是出现了一个进展是这个known device是3s出现一次,分析USB3300和STM32连接的各个脚有数据了。

出0入0汤圆

发表于 2014-9-23 22:38:32 | 显示全部楼层
USB3300的资料网上真的很少,我也碰到好多问题没有解决

出0入0汤圆

 楼主| 发表于 2014-9-26 12:03:39 | 显示全部楼层
Xiangxiang8 发表于 2014-9-23 19:21
还是再问下,兄弟你那边有进展吗?我重新打了一块板子,重新匹配的阻抗。。。然后现在还是knowndevice。。 ...

最近事情较多有段时间没搞了,有进展了,我再发消息吧。

出0入14汤圆

发表于 2014-9-27 23:28:01 | 显示全部楼层
顶起,也想搞host usb

出0入0汤圆

发表于 2014-10-7 19:43:23 | 显示全部楼层
我这边解决了,总结下:
1,首先是例程,直接使用官方hs的例程是完全可以的,一点问题也没有。
2,关于硬件,首先是电路一定要按照官方的来设计,比如说内部LDO时VDD1.8和VDDA1.8都做好滤波并且不能接在一起,最重要的是晶振需要接1M电阻,我就是坑在之类,如果不接1M电阻的话硬件会反复重启,现象就是反复unknown或者移植unknown。
3,关于90欧姆的阻抗匹配,似乎不是很严格也没有太大的问题,看过微雪电子的usb布线,也不是很标准,不过最好还是标准的好,百度下是有两层板的90欧姆布线的粗细和间距的,尽量不要加过孔,可以从usb口的另一侧绕进去,因为usb和芯片是别着的。

出0入0汤圆

发表于 2014-10-7 20:04:01 | 显示全部楼层
Xiangxiang8 发表于 2014-10-7 19:43
我这边解决了,总结下:
1,首先是例程,直接使用官方hs的例程是完全可以的,一点问题也没有。
2,关于硬件 ...

感谢楼主经验分享。

出0入0汤圆

发表于 2014-10-7 20:05:20 | 显示全部楼层
楼主的F4+USB3300,其中USB3300发热如何,稳定性高?

出0入0汤圆

发表于 2014-10-7 20:19:28 | 显示全部楼层
so_so_so_so 发表于 2014-10-7 20:05
楼主的F4+USB3300,其中USB3300发热如何,稳定性高?

不发热,稳定性很高

出0入0汤圆

 楼主| 发表于 2014-10-8 09:48:38 | 显示全部楼层
Xiangxiang8 发表于 2014-10-7 19:43
我这边解决了,总结下:
1,首先是例程,直接使用官方hs的例程是完全可以的,一点问题也没有。
2,关于硬件 ...

感谢分享,晚上回去试下.

出0入0汤圆

 楼主| 发表于 2014-10-8 21:29:25 | 显示全部楼层
Xiangxiang8 发表于 2014-10-7 19:43
我这边解决了,总结下:
1,首先是例程,直接使用官方hs的例程是完全可以的,一点问题也没有。
2,关于硬件 ...

确实如你所说:
    1、晶振两端需要接电阻。手头上没有1M的,接了个2M的试了下也行。不接的话,会出现未知设备不停的刷新。周期大概就是2~3秒的样子;
    2、VDDA1.8V和VDD1.8V不能接一起,我画图时没注意画到一起去了。滤波电容不能太大,开始手头上没有4.7UF的,焊了个0.1和10UF。不能使用,一直未知设备,刚把10UF的去掉,只剩了个0.1UF的。能识别出一个盘符。

    初步看USB高速应该没什么问题了,下一步接着调EMMC存储。但USB3300的参数尽量按照规定用,不要像我这样对付。

出0入0汤圆

发表于 2014-10-26 17:13:45 | 显示全部楼层
Xiangxiang8 发表于 2014-10-7 19:43
我这边解决了,总结下:
1,首先是例程,直接使用官方hs的例程是完全可以的,一点问题也没有。
2,关于硬件 ...

楼主,你的hs msc最快能跑到多少M?我传输速度只有1MB左右
另外,你知道hs msc下能开启双缓冲吗?我没找到相关资料,现在速度太慢了。。。

出0入0汤圆

发表于 2014-10-26 20:28:27 | 显示全部楼层
学习了,STM32USB有这么多讲究,下次会注意

出0入4汤圆

发表于 2014-11-7 23:41:07 | 显示全部楼层
哎,我之前是用的10M的匹配电阻(这种情况用示波器测量24M晶振波形时,一个脚是正弦波,另一个脚确实一个高电平),而换了1M电阻后,两个引脚都是正弦波了。。。被网上的一个原理图给坑了

出0入4汤圆

发表于 2014-11-8 22:44:28 | 显示全部楼层
Xiangxiang8 发表于 2014-10-7 19:43
我这边解决了,总结下:
1,首先是例程,直接使用官方hs的例程是完全可以的,一点问题也没有。
2,关于硬件 ...

确实如你所说,USB3300和接口的DP、DN是别着的,但要是从接口一侧绕过去的话,基本不能保证DP、DN两根线是等长的,因为外侧的那条线肯定要比内侧的线要长。。。
这两条USB高速数据线应该尽量保证等长吧??

出0入0汤圆

发表于 2014-11-10 14:49:34 | 显示全部楼层
我之前试过hid HS可用,MSC HID没反应

出0入4汤圆

发表于 2014-11-11 01:09:33 | 显示全部楼层
我的3300+407也跑通了!!!

出0入0汤圆

 楼主| 发表于 2014-11-11 20:05:30 | 显示全部楼层
呵呵,恭喜。我的连EMMC存储,只能识别出盘符,就想 是一个读卡器。EMMC驱动测试感觉也通了,就不是不知道为什么读不出容量。

出0入0汤圆

 楼主| 发表于 2014-12-3 22:48:32 | 显示全部楼层
4bit 模式前几天试完了,写速度1M,SDIO_CLK 24M.问题原因:写地址应该是扇区地址,原来示例代码里乘以512变成字节地址了,就一直不对。

今天刚把8位试完。板子自己画的(为了好出线,部分不用的焊盘都给删了),焊那个EMMC,真TM难焊,焊5此能成功一次都不错了。8bit通了,感觉速度还没有4bit的快,这次往里拷个68M的压缩文件居然提示要等三十多分钟。奇怪,不知道为什么。主频我暂时没动,还是24M。不知道是不是硬件原因导致的。程序方面,我就改了两个地方初始化SDIO_BusWide_4b改成了SDIO_BusWide_8b   EMMC_4BIT_REG改成了EMMC_8BIT_REG。有调通的麻烦指导一下,谢谢!

出0入0汤圆

发表于 2015-3-8 18:24:46 | 显示全部楼层
Xiangxiang8 发表于 2014-10-7 19:43
我这边解决了,总结下:
1,首先是例程,直接使用官方hs的例程是完全可以的,一点问题也没有。
2,关于硬件 ...

我上microchip网站没有找到例程啊,能吧例程发上来吗

出0入0汤圆

发表于 2015-3-8 18:42:45 | 显示全部楼层
xingchen 发表于 2015-3-8 18:24
我上microchip网站没有找到例程啊,能吧例程发上来吗

这个例程百度很好找的。。随便一搜索就能搜出来

出0入0汤圆

发表于 2015-5-10 03:58:58 | 显示全部楼层
我来看下,也准备自己做块高速USB板子

出0入0汤圆

发表于 2015-7-30 16:02:04 | 显示全部楼层
http://www.embed-net.com/thread-171-1-1.html
STM32F4xx+USB3300实现高速USB数据传输,单片机程序及PC驱动程序源码分享

出0入0汤圆

发表于 2015-8-28 09:02:58 | 显示全部楼层
你好,我现在在做STM32F407IGT6+USB3300的板子,插上设备后没反应,曾经有过一次是unknown device ,之后一直没反应,不知道什么原因,可以参考一下你的高速部分的设计吗

出0入0汤圆

发表于 2015-8-28 18:11:16 | 显示全部楼层
clarababy 发表于 2015-8-28 09:02
你好,我现在在做STM32F407IGT6+USB3300的板子,插上设备后没反应,曾经有过一次是unknown device ,之后一 ...


D:\Administrator\STM32Cube\Repository\STM32Cube_FW_F4_V1.7.0\Projects\STM324x9I_EVAL\Applications\USB_Device

This application is a part of the USB Device Library package using STM32Cube firmware. It describes how to use
USB device application based on the STM32F4xx multi core support feature integrating Mass Storage (MSC)
and Human Interface (HID) in the same project.

This is a typical application on how to use the STM32F4xx USB OTG Device peripheral, where STM32 is
enumerated as a CDC device in the High Speed mode, and also as a HID device in the Full Speed mode,
using the native PC Host HID/CDC drivers to which the STM324x9I-EVAL board is connected.

At the beginning of the main program the HAL_Init() function is called to reset all the peripherals,
initialize the Flash interface and the systick. The user is provided with the SystemClock_Config()
function to configure the system clock (SYSCLK) to run at 168 MHz. The Full Speed (FS) USB module uses
internally a 48-MHz clock, which is generated from an integrated PLL. In the High Speed (HS) mode the
USB clock (60 MHz) is driven by the ULPI.

It's worth noting that the system clock (SYSCLK) can be configured, depending on the used USB Core:
- SYSCLK is set to 168 MHz: for FS Core, because used embedded PHY requires 48 MHz clock,
                             achieved only when system clock is set to 168 MHz.
- SYSCLK is set to 180 MHz: for only HS Core, since no embedded PHY is used.

When the application is started, the user has just to plug the two USB cables into a PC host and two
USB devices (CDC/HID) are automatically detected. When the VCP application is started, the STM32 MCU is
enumerated as serial communication port and is configured in the same way (baudrate, data format, parity, stop bit)
as it would configure a standard  COM port. The 7-bit data length with no parity control is NOT supported.
When HID Mouse device is detected, and the Joystick buttons mounted on the STM324x9I-EVAL board, allow
to user to emulate the Mouse directions.

@note Care must be taken when using HAL_Delay(), this function provides accurate delay (in milliseconds)
      based on variable incremented in SysTick ISR. This implies that if HAL_Delay() is called from
      a peripheral ISR process, then the SysTick interrupt must have higher priority (numerically lower)
      than the peripheral interrupt. Otherwise the caller ISR process will be blocked.
      To change the SysTick interrupt priority you have to use HAL_NVIC_SetPriority() function.
      
@note The application needs to ensure that the SysTick time base is always set to 1 millisecond
      to have correct HAL operation.
      
For more details about the STM32Cube USB Device library, please refer to UM1734
"STM32Cube USB Device library".
      

@par USB Library Configuration

To select the appropriate USB Core to work with, user must add the following macro defines within the
compiler preprocessor (already done in the preconfigured projects provided with this application):
      - "USE_USB_HS" and "USE_USB_FS" when using USB Dual Core Mode




本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2015-8-28 18:13:53 | 显示全部楼层

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2015-8-30 22:32:00 | 显示全部楼层

你好,非常感谢你的回答,我的原理图是这样的,参考的是STM32F407的开发板给的资料画的,不知道是什么问题导致的没有反应?

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2015-8-30 22:38:25 | 显示全部楼层

是不是我的图上的USB3300的15引脚和26引脚没有连在一起?

出0入0汤圆

发表于 2015-8-31 11:49:09 | 显示全部楼层
clarababy 发表于 2015-8-30 22:38
是不是我的图上的USB3300的15引脚和26引脚没有连在一起?

R17用1M的电阻

出0入0汤圆

发表于 2015-8-31 15:09:11 | 显示全部楼层

F205使用USB3300图纸不全啊,补全可以吗

出0入0汤圆

发表于 2015-8-31 15:44:08 | 显示全部楼层

谢谢,收到了

出0入0汤圆

发表于 2015-8-31 15:53:11 | 显示全部楼层

恩,我把R17电容改了测试还是不行

出0入0汤圆

发表于 2015-8-31 16:17:23 | 显示全部楼层
STM32F746G-DISCO 也用这个 3300 可以参考




本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2016-3-18 19:42:28 | 显示全部楼层
学习了!!!!!!!!!!!!!!

出0入0汤圆

发表于 2016-9-26 15:07:28 | 显示全部楼层
yangpeng012 发表于 2014-11-11 01:09
我的3300+407也跑通了!!!

你好有没有F407-USB3300 的例子发我跑一下啊 我弄好久 都是 不识别

出0入0汤圆

发表于 2017-3-28 11:36:25 | 显示全部楼层
AE007 发表于 2016-9-26 15:07
你好有没有F407-USB3300 的例子发我跑一下啊 我弄好久 都是 不识别

请问解决没有,我也是无法识别

出0入0汤圆

发表于 2017-3-28 16:12:26 | 显示全部楼层
ffbiao 发表于 2017-3-28 11:36
请问解决没有,我也是无法识别

我貌似就再CUBE上配置了下,识别到了后面也没弄了,例子也不见了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 02:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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