USB充电器有/没有枚举

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
5个职位/ 0个新
最后发表
matthieuW
离线
最后看到:4个月,3个星期前
加入:2015-11-20 14:55
USB充电器有/没有枚举

嗨,对话框中,
我在一个定制板实现DA14681,
我的系统包括一个狮子电池和usb cdc接口。
因此,我使用usb枚举和充电器。
然而,当插入usb电缆没有枚举(例如,手机充电器)我的系统崩溃后枚举或暂定枚举,因此电池没有充电。
我应该在usb cdc回调中有一些中断吗?
谢谢你的帮助。

设备:
NV_dialog
离线
最后看到:4个月,1个星期前
工作人员
加入:2015-07-15 14:58


嗨,马修

我们已经在ProDK上测试了这个案例。
我们使用了最新的SKD v.1.0.10.1072中的usb_cdc示例。
该示例实现了CDC-Serial并为电池充电(如果存在)。
我们将一个锂电池连接到子板底部的按钮电池引线,以验证充电。
我们用以下方法进行了测试:

  • 一个充电器,
  • 一个笔记本电脑USB端口使用所有引脚并允许枚举
  • 没有枚举的笔记本电脑USB端口(仅连接VBUS/GND)


在所有情况下,操作是正确的,没有崩溃或电池充电失败观察到。
你不需要在疾病控制中心有任何中断。
一切都在充电器和USB代码中处理。

如果我们的理解是正确的,你们在黑板上有这个问题,对吗?
如果是这样,您可以使用Dialog ProDK尝试相同的场景吗?

请检查您的设计中使用的电气设计和连接器。
USB连接需要一些限制。
如果您使用的是某种支架,请注意,根据USB标准,VBUS和GND引脚必须比D+/D-长2mm,以便先连接。最后断开连接(至少在D+/D之前),以符合ESB和USB设计要求。
在没有GND的情况下,D+/D-和VBUS连接,然后硅的ESD保护将启动,你可能观察到系统复位,甚至暂时禁用USB子系统。

Concuding:1.0.10.1072 SDK中的CDC示例在CDC实现或收费方面没有问题。
在SDK 1.0.8中,在CDC中修复了拔插设备时会触发的bug,这会导致系统崩溃。
这在1.0.10 SDK中是固定的。
我们建议您转移到1.0.10 SDK,因为它包含了bug修复和改进。

致以最亲切的问候。

matthieuW
离线
最后看到:4个月,3个星期前
加入:2015-11-20 14:55
嗨,对话框中,

嗨,对话框中,
我把代码移植到sdk10没有任何改进,
然而,我确实检查了usb_cdc代码,似乎固件块在while条件下等待usb在任务开始时被配置,
删除这个循环似乎是ok在我的情况下usb有和没有枚举。
谢谢你的帮助。

NV_dialog
离线
最后看到:4个月,1个星期前
工作人员
加入:2015-07-15 14:58
嗨MathieuW。

嗨MathieuW。

你去掉了什么条件?

这些时间是有原因的。移走它们是不安全的。

你能把代码片段发布出来吗?

BR / Nikos V。

matthieuW
离线
最后看到:4个月,3个星期前
加入:2015-11-20 14:55
亲爱的尼科斯,

亲爱的尼科斯,
我不知道为什么但是system_charger启动usb cdc任务而不是枚举。

下面是我在usb_cdc任务中注释的循环,因为任务不会等待通知,并且会重复执行,一切看起来都很好。

而(1){

/*等待配置*/
// while ((USBD_GetState() & (USB_STAT_CONFIGURED | USB_STAT_SUSPENDED))!= USB_STAT_CONFIGURED)
/ / USB_OS_Delay (10);

致以最亲切的问候
马修