当前位置: 首页 > news >正文

解决沁恒ch592单片机在tmos中使用USB总线时,接入USB Hub无法枚举频繁Reset的问题

开发产品时采用了沁恒ch592,做USB开发时遇到了一个奇葩的无法枚举问题。

典型症状

使用USB线直连电脑时没有问题,可以正常使用。
如果接入某些特定方案的USB Hub(例如GL3510GL3520),可能会出现以下2种情况:

  1. 无法枚举,USB Hub会频繁发送Reset请求,最后系统停止识别而报错
  2. 复位请求无法触发USB中断函数
    在这里插入图片描述

此时代码具备如下特征:

  • 使用tmos
  • 启用了低功耗
  • 设备通过USB Hub接入到主机,目前测试到GL3510GL3520会出现此问题
    在这里插入图片描述

解决方案

经过与ble翟工沟通,确认该问题由启用了芯片低功耗HAL_SLEEP导致,关闭低功耗即可。
同时翟工也跟给出2个方案:

  • 比较稳妥的办法是多加一个IO口,接到USB的外壳,外壳一般会在电脑端接地,这样IO判断到被拉低了,就直接return不去休眠。
  • 或者在触发了USB的中断之后,置标志变量,加一个事件延时一段事件后清标志变量,在一段时间内判断是否完成了USB枚举。

原因分析

本人手中有5款扩展坞,目前测试有两款会导致此问题,经过拆解后发现其主控为GL3510GL3520。经过和翟工讨论状态,推测原因为该芯片对时序要求较高,由于低功耗以及TMOS导致mcu没有及时反馈reset的响应信号,导致hub认为设备异常,从而频繁发送reset。

文章

如果各位有语音播报需求,想在组态软件、监控系统中采用语音播报、语音合成器、485语音播报器、声光报警灯、语音报警器,可以参考
Zabbix与声光报警灯语音告警语音播报
其中以典型的Zabbix为例,讲解如何使用语音通知终端对接Zabbix平台。

http://www.lryc.cn/news/332699.html

相关文章:

  • nvm保姆级安装使用教程
  • 大语言模型LLM《提示词工程指南》学习笔记02
  • 【realme x2手机解锁BootLoader(简称BL)】
  • 攻防世界 wife_wife
  • Visual Studio安装下载进度为零已解决
  • 矩阵空间秩1矩阵小世界图
  • 《QT实用小工具·十三》FlatUI辅助类之各种炫酷的控件集合
  • dm8 备份与恢复
  • Vue项目中引入html页面(vue.js中引入echarts数据大屏html [静态非数据传递!] )
  • ASTM C1186-22 纤维水泥平板
  • NoSQL概述
  • 爬虫实战一、Scrapy开发环境(Win10+Anaconda3)搭建
  • llama.cpp运行qwen0.5B
  • 【接口】HTTP(3) |GET和POST两种基本请求方法有什么区别
  • 金陵科技学院软件工程学院软件工程专业
  • Android 关于apk反编译d2j-dex2jar classes.dex失败的几种方法
  • Django--admin 后台管理站点
  • JavaScript(六)---【回调、异步、promise、Async】
  • vue2+elementUi的两个el-date-picker日期组件进行联动
  • GIN实例讲解
  • 开源充电桩设备监控系统技术解决方案
  • 环形链表--极致的简便
  • WPF中TextWrapping
  • Win10 下 git error unable to create file Invalid argument 踩坑实录
  • 简化备案域名查询的最新API接口
  • 基于SpringBoot和Vue的校园周边美食探索以及分享系统
  • TiDB单机版安装和连接访问
  • Spark-Scala语言实战(13)
  • Android compose 使用指纹验证
  • 开源模型应用落地-chatglm3-6b模型小试-入门篇(一)