wylew 发表于 2018-1-29 17:55:30

无薪税绵 发表于 2018-1-29 12:42
感觉这两句有问题:
endpoint_size |= (UX_DCD_OTG_FS_DOEPTSIZ_XFRSIZ_MASK & (endpoint.wMaxPacketSize * ...

在非0的OUT端点中,DOEPTSIZ_XFRSIZ为位,DOEPTSIZ_PKTCNT为位
计算传输大小时:
endpoint_size = (0x0007FFFF & (endpoint.wMaxPacketSize * (fifo_length - 1 + endpoint.wMaxPacketSize)));
计算数据包个数:
endpoint_size |= ((fifo_length - 1 + endpoint.wMaxPacketSize) / endpoint.wMaxPacketSize) << 19;
其中,fifo_length为读取的端点长度
这样,合理吗?
再有,fifo_length和endpoint.wMaxPacketSize是一个意思吧,为什么又需要定义一个fifo_length呢?

kylongmu 发表于 2018-1-29 22:52:10

wylew 发表于 2018-1-29 15:27
接口芯片不是外接,而是集成到控制器中的

貌似ST有“on-chip Hi-speed PHY ”的只有F7X2、F7X3系列,其它都是Full-speed的PHY,极速就是12Mbit/S,你用的那颗芯片?你靠dd报告的速度可信吗?为啥不是MCU来统计结果回传?

wolfgang2015 发表于 2018-1-29 23:23:51

高速丢包这个有可能是电路的干扰造成,这块要通过软件硬件综合分析。选择一个最合适的速度。追求速度软硬件各项成本开销都有

wylew 发表于 2018-1-29 23:34:43

kylongmu 发表于 2018-1-29 22:52
貌似ST有“on-chip Hi-speed PHY ”的只有F7X2、F7X3系列,其它都是Full-speed的PHY,极速就是12Mbit/S, ...

芯片似乎用的是3500,至于速率,因为缺少Windows下的驱动,只能接在linux主机上,但在linux主机上能测试虚拟串口的工具似乎没找到。。。你有推荐的吗?

wylew 发表于 2018-1-29 23:38:17

wolfgang2015 发表于 2018-1-29 23:23
高速丢包这个有可能是电路的干扰造成,这块要通过软件硬件综合分析。选择一个最合适的速度。追求速度软硬件 ...

硬件上面现在没有动,只考虑软件上面,cdc类驱动用了三个端点,一个中断端点,两个批量端点,就是现在在IN和OUT批量端点上的传输大小和数据包个数上修改,但没有设计好合理的大小和个数。。。

kylongmu 发表于 2018-1-29 23:48:12

St的mcu有3500吗?你连自己用的芯片都是似乎……

wylew 发表于 2018-1-29 23:57:43

kylongmu 发表于 2018-1-29 23:48
St的mcu有3500吗?你连自己用的芯片都是似乎……

因为对USB phy操作不多,而且也没研究太长时间,所以对这个不是特别的清晰,查了下,USB phy芯片用的是USB3500,并且嵌入了USB控制芯片内部

无薪税绵 发表于 2018-1-30 08:30:19

wylew 发表于 2018-1-29 17:55
在非0的OUT端点中,DOEPTSIZ_XFRSIZ为位,DOEPTSIZ_PKTCNT为位
计算传输大小时:
endpoint_ ...

fifo_length为端点长度
endpoint.wMaxPacketSize是最大允许封包值
不是同一概念。

丢包的问题,看看是不是优先级太低导致的问题。

wylew 发表于 2018-1-30 09:31:02

无薪税绵 发表于 2018-1-30 08:30
fifo_length为端点长度
endpoint.wMaxPacketSize是最大允许封包值
不是同一概念。


代表的含义是不一样,fifo_length的值根据不同的端点采用不同的传输方式而改变,控制传输时为8,高速批量传输时为512......您说的那个优先级太低,指的是什么的优先级?还有,就像我这BULK-OUT端点的传输大小和包个数可以这样计算,那对应的BULK-IN端点又该如何设计呢?

无薪税绵 发表于 2018-1-30 09:55:25

你看看这位大神的博客,应该对你有帮助的。
http://www.cnblogs.com/zkp2010/p/5510753.html
页: 1 [2] 3
查看完整版本: STM32F系列:USB接口提速问题