完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我们正在尝试通过使用安装在 STM32L476 上的 OTG_FS IP 的 USB 主机内核,以高速和低软件负载接收批量短数据包(最大数据包大小 4 字节)。
先决条件 ・我不使用 cubemx 生成的代码。 ・主机和设备一对一连接。(我不使用集线器) ・激活管仅为散装管(处于稳定状态,不包括控制管)。 ・最大数据包大小为 8 字节。 ・OTG_FS 内核被强制作为 USB host-only 工作(FHMOD@OTG_GUSBCFG = 1)。 ・AHB CLK 为 75MHz。 在实现上面的过程中,我有一些疑问。 1.去抖完成中断(DBCDNE@OTG_GOTGINT) 我正在考虑在端口连接检测到中断 (PCDET@OTG_HPRT) 之后使用 DBCDNE 中断等待电气去抖周期。 但是,手册指出,除非启用 HNPCAP 或 SRPCAP,否则不会发生 DBCDNE 中断。 不使用host-only模式和HNP/SRP功能时,DBCDNE中断可以不使用吗? 2.NAK中断 为了减少软件负载,我想通过内部定序器的自主操作进行 IN-NAK 轮询,而不是每次 IN-NAK 轮询时都生成 NAK 中断。 但不幸的是,对于连续的IN-NAK轮询,似乎NAK中断使能和中断例程清除中断是必不可少的。 是否可以在没有软件干预的情况下保持 USB 主机核心定序器运行 IN-NAK 轮询? 3. IN-NAK轮询频率 我想增加 HOST 进行 IN-NAK 轮询的频率,以便以高速和严格的时序获取数据。 不幸的是,IN-NAK 轮询每帧仅进行 20 次。 通用串行总线规范修订版 2.0 的表 5-9 指出,当数据有效载荷为 8 字节时,每帧可以发出 71 次传输。 当然,我认为轮询间隔会根据目标设备的响应性能略有变化.... 在不考虑目标设备响应性能的情况下,USBHost sequencer每帧可以发出多少次IN token? |
|
相关推荐
1个回答
|
|
1. 我不知道,从未使用过 OTG 工具,但我也没有理由在这个特定问题上怀疑 RM
2. 不,硬件中没有自动 NAK 处理,您必须在软件中进行。 3. 可能主机和设备软件都给定了。在堆栈处理(中断)开始和结束时观察主机和设备上的总线流量和切换引脚,以评估主要瓶颈在哪里。 -- 在与 OTG_USB 模块的怪癖斗争了很长一段时间后,我什至不认为它是连接两个 STM32 的可行选择。YMMV。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2344 浏览 1 评论
3097 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1665 浏览 1 评论
3482 浏览 6 评论
5835 浏览 21 评论
823浏览 4评论
1200浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
468浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1182浏览 3评论
1233浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-2 20:13 , Processed in 1.058768 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191