0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

USB Host不停NAK的问题

冬至子 来源:huo2023 作者:huo2023 2023-10-12 15:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

我用U盘导出数据,现象是第一次导出成功,不拔出U盘的情况下,直接导出第二次失败,之后的每一次都失败。拔出U盘后重新插入,仍是第一次正常,之后每一次失败。

查到是drv_usbh.c文件中的drv_pipe_xfer()函数,NAK死循环。

1、增加了NAK后重试的代码

论坛中其他方法效果不明显,还是会NAK。

if (++retry_times >= 100)
{
return -2;
}
continue;

2、增加延时

打开RT_DEBUG_USB后发现,U盘读写正常了,但是枚举有时不正确,概率大概是插入5次,会有1次枚举不成功。

所以在rt_usb_hcd_pipe_xfer()函数内打印处增加延时,关闭RT_DEBUG_USB后,读写、枚举全部正常。

RT_DEBUG_LOG(RT_DEBUG_USB,("pipe transform remain size,: %dn", remain_size));
if (!RT_DEBUG_USB)
{
rt_thread_mdelay(5);
}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • USB接口
    +关注

    关注

    9

    文章

    712

    浏览量

    58520
  • DRV
    DRV
    +关注

    关注

    0

    文章

    18

    浏览量

    20930
  • DEBUG
    +关注

    关注

    3

    文章

    95

    浏览量

    21258
  • RT-Thread
    +关注

    关注

    32

    文章

    1540

    浏览量

    44280
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用nRF52840芯片的USB Host 功能参考例程

    在使用 Nordic nRF52840 芯片的 USB Host 功能时,推荐参考 Nordic 官方提供的USB Host 示例代码 ,具体可重点关注以下资源: 1. 官方 SDK
    发表于 10-31 12:47

    USB读RAM buffer使用规范建议

    USBNAK USB 中断不能及时响应,此时软件再次将 USB 置 Valid,开总中断 此时 USB 中断产生,软件读取接收 RA
    发表于 09-22 17:27

    CherryUSB Host必须要DMA而Device就可以选择是否使用DMA?

    因为从ST F4的USB协议栈迁移到CherryUSB,在看两个协议栈的代码时发现CherryUSB作为HOST使用时,只能使用HS,因为HS支持DMA,但是作为Device时却不需要,故有
    发表于 09-10 06:58

    CH582M HOST发送数到设备后,提交IN一直是2A是什么问题?

    CH582M HOST发送数到设备后,提交IN一直是2A是什么问题? // 发送CNXN包头到ADB OUT端点 uint8_t ep_out = g_adb_info.adb_ep_out
    发表于 08-20 19:36

    STM32H750 USB HS HOST 加 DCMI 接口不能正常工作怎么解决?

    我目前使用STM32H750加USB3300用做USB高速host,然后通过通过DCMI接口读取摄像头数据,摄像头的分辨率是640480(640480*2bytes)。 单独打开USB
    发表于 07-25 07:22

    USB_CDC_HOST 标准库里边USBH_DeAllocate_AllChannel()函数的疑问求解

    /*** @briefUSBH_DeAllocate_AllChannel*Free all USB host channel* @parampdev : core instance
    发表于 07-24 07:27

    高速信号抗浪涌“神器”,适用于USB 2.0、USB 3.X(Gen1/Gen2)、HDMI

    usb
    jf_15747056
    发布于 :2025年07月23日 19:08:12

    6.18年终狂欢购!满额即赠,惊喜享不停!

    6.18年终狂欢购!满额即赠,惊喜享不停!
    的头像 发表于 05-30 18:04 496次阅读
    6.18年终狂欢购!满额即赠,惊喜享<b class='flag-5'>不停</b>!

    USB4和TBT4平台的ccg6sf/df配置设置有何不同?

    我使用的是 Host SDK3.6 如果客户的平台希望支持 USB4,我是否需要修改默认配置文件(例如
    发表于 05-22 06:27

    CYUSB3014在host开机后不识别是怎么回事?

    设备 管理器中有未知设备。 使用USB逻辑分析仪查看开机过程中的通信情况,显示HOST发了 进入低功耗模式 又 退出低功耗的 USB EVENT ,之后的事务中只有setup的包有ack,其他包没有
    发表于 05-19 06:27

    如何区分usb-typec是插入电脑还是插入其他电源?

    ./canaan-camera.sh start otg0这个脚本吗? 默认情况下,K230 板以 USB Host 模式运行。当有 USB 设备插入 K230 的 USB
    发表于 04-24 08:23

    是否可以将PTN3222配置为Host-USB2到eUSB2主机?

    是否可以将PTN3222配置为 Host-USB2 到 eUSB2 主机? 换句话说,PTN3222可以将普通的 USB2 主机端口转换为 eUSB2 主机吗?
    发表于 03-27 06:09

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-开发板适配之USB_OTG

    的ID脚是对地短接的, CPU检测到ID引脚是低电平,CPU就工作在HOST模式,同时通过USB座子1脚(连接到VBUS)为设备端供电。 ELF 1开发板使用TYPE C座将USB_OTG1功能引出
    发表于 02-28 09:29

    飞凌嵌入式ElfBoard ELF 1板卡-开发板适配之USB_OTG

    脚是对地短接的, CPU检测到ID引脚是低电平,CPU就工作在HOST模式,同时通过USB座子1脚(连接到VBUS)为设备端供电。ELF 1开发板使用TYPE C座将USB_OTG1功能引出
    发表于 02-27 09:16

    不停的malloc程序会异常吗

    把 malloc 放在死循环里面,会是什么样的现象? 比如这样的代码,每次使用 malloc 申请 1M 大小的内存,其他什么操作也不做。 理论上来说,堆内存是有限的,如果不停的申请,迟早内存会被
    的头像 发表于 01-14 09:17 843次阅读