打印

STM32 USB-OTG-LIB 写得非常乱!

[复制链接]
楼主: litop
手机看帖
扫描二维码
随时随地手机跟帖
21
yaohuitime| | 2010-5-13 18:01 | 只看该作者 回帖奖励 |倒序浏览
谢谢 vigia
还有个问题就是
/* Rx FIFO */
  WRITE_REG32(&pdev->regs.common_regs->rx_fifo_siz, 160);
  /* Non-periodic Tx FIFO */
  nptxfifosize.b.depth  = 160;
  nptxfifosize.b.startaddr = 160;
  WRITE_REG32(&pdev->regs.common_regs->np_tx_fifo_siz, nptxfifosize.d32);
  /* Periodic Tx FIFO */
  ptxfifosize.b.depth  = 128;
  ptxfifosize.b.startaddr = nptxfifosize.b.startaddr + nptxfifosize.b.depth;
  WRITE_REG32(&pdev->regs.common_regs->host_p_tx_fifo_siz, ptxfifosize.d32);


看代码知道 接收 周期发送 非周期发送 一共是1.5K
但“总共1.25K字节的USB数据RAM区”
不能理解???

"总共1.25K字节的USB数据RAM区 "这个区域到底在哪里?

使用特权

评论回复
22
yaohuitime| | 2010-5-13 18:04 | 只看该作者
我算了下 地址分配
Rx 160 *4Byte
nptx  160 *4Byte
ptx  128*4Byte
好像是1.5K
??

使用特权

评论回复
23
vigia| | 2010-5-14 11:33 | 只看该作者
这段代码是设置rx fifo160字节,非周期性tx fifo160字节,周期性tx fifo128字节。

总共1.25K,并不是什么应用都需要全部用完的吧。

另外,建议你先看看STM32_USB-FS-Device_Lib V3.1.1,里面有用STM32105/107的OTG模块实现USB各类设备的例程。

使用特权

评论回复
24
birenai| | 2010-9-21 17:45 | 只看该作者
8# 香水城


还好及时看到这点,换其他的芯片按时交了任务,不然就惨了,白买了一块107的开发板。

使用特权

评论回复
25
无冕之王| | 2010-9-22 12:12 | 只看该作者
楼主的反应似乎有点过了,感觉没这么乱

使用特权

评论回复
26
xsgy123| | 2010-9-22 19:33 | 只看该作者
这个有楼主说的那么乱吗??

使用特权

评论回复
27
simple_head| | 2010-9-28 17:39 | 只看该作者
这个OTG的库中的usb_core.c中只有发送的函数 USB_OTG_StartXfer, 没有接受的函数. 难道要我自己写?还是我没有找到?

使用特权

评论回复
28
vigia| | 2010-9-28 18:00 | 只看该作者
这个OTG的库中的usb_core.c中只有发送的函数 USB_OTG_StartXfer, 没有接受的函数. 难道要我自己写?还是我没有找到?
simple_head 发表于 2010-9-28 17:39


对于USB主机,所有的发送和接收都由USB主机发起的,所以都由这个USB_OTG_StartXfer发起,不存在接受函数的概念。

使用特权

评论回复
29
simple_head| | 2010-9-28 22:02 | 只看该作者
不同意你的说法. OUT packet和SETUP packet都是由USB_OTG_StartXfer发送: 用户数据 --> FIFO. 而IN packet 是FIFO --> 用户数据变量空间.

USB_OTG_StartXfer中的数据流向是:用户数据 --> FIFO, 不是FIFO --> 用户数据变量空间.

你可以看到: usb_core.c中USB_OTG_WritePacket这个函数是由USB_OTG_StartXfer调用,而USB_OTG_ReadPacket 则没有被任何地方调用.

你如何解释?

使用特权

评论回复
30
simple_head| | 2010-10-1 16:59 | 只看该作者
23 楼, 你的这个解释是不对的 (你忘记了fifo depth的单位是32Bit word, 不是8 bit Byte).

Rx 160 *4Byte
nptx  160 *4Byte
ptx  128*4Byte
总共是1.5K, 但是手册中说可用的空间是1.25K, 这也是我所困惑的问题.

使用特权

评论回复
31
ning321613| | 2010-12-16 14:39 | 只看该作者
哪位朋友能提供一份官方的例程给我吗?谢谢,现在好像下不到了
这是我邮箱:2002_shijiebei@163.com


21# yaohuitime

使用特权

评论回复
32
hsbjb| | 2010-12-16 17:13 | 只看该作者
的确是有点看不懂

使用特权

评论回复
33
香水城| | 2010-12-16 17:54 | 只看该作者
哪位朋友能提供一份官方的例程给我吗?谢谢,现在好像下不到了
这是我邮箱:2002_shijiebei@163.com


21# yaohuitime
ning321613 发表于 2010-12-16 14:39


库:http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/um0721.zip
手册:http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/USER_MANUAL/CD00238039.pdf

使用特权

评论回复
34
icecut| | 2011-1-29 14:29 | 只看该作者
呵呵.这个ip的确有难以理解的地方.ip费用还是挺贵的.
建议大家参考6410的Linux库去理解.

使用特权

评论回复
35
lvkun1987| | 2011-4-13 13:59 | 只看该作者
小弟我最近开始搞USB。用STM32F107的片子,还是菜鸟一只,能不能把你OTG的工程程序发给我参考一下啊。不甚感激啊!!!谢谢了!我的邮箱lvkun19870811@163.com

使用特权

评论回复
36
lvkun1987| | 2011-4-13 14:06 | 只看该作者
33# 香水城
求USB的OTG的例程、库以及资料
邮箱lvkun19870811@163.com 不胜感激!

使用特权

评论回复
37
hnsw| | 2011-8-11 08:56 | 只看该作者
刚买了107开发板,准备研究OTG

使用特权

评论回复
38
yinyangdianzi| | 2011-8-11 10:09 | 只看该作者
越乱越有感觉啊

使用特权

评论回复
39
zook0k| | 2014-10-19 17:19 | 只看该作者
有用,谢谢

使用特权

评论回复
40
alan_mini_chen| | 2014-12-31 13:22 | 只看该作者
淘宝店铺:北京云电子科技
有STM32 Android usb OTG 设备开发板,提供Eclipse和keil平台下的源代码,可以实现STM32和安卓平台通过usb直接连接,无需外部电脑。如果当前的STM32设备已经在PC机上使用,可以不动硬件的条件下,直接和安卓平台连接。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则