嗨,对话框中,我在一个定制板实现DA14681,我的系统包括一个狮子电池和usb cdc接口。因此,我使用usb枚举和充电器。然而,当插入usb电缆没有枚举(例如,手机充电器)我的系统崩溃后枚举或暂定枚举,因此电池没有充电。我应该在usb cdc回调中有一些中断吗?谢谢你的帮助。
嗨,马修我们已经在ProDK上测试了这个案例。我们使用了最新的SKD v.1.0.10.1072中的usb_cdc示例。该示例实现了CDC-Serial并为电池充电(如果存在)。我们将一个锂电池连接到子板底部的按钮电池引线,以验证充电。我们用以下方法进行了测试:
在所有情况下,操作是正确的,没有崩溃或电池充电失败观察到。你不需要在疾病控制中心有任何中断。一切都在充电器和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修复和改进。致以最亲切的问候。
嗨,对话框中,我把代码移植到sdk10没有任何改进,然而,我确实检查了usb_cdc代码,似乎固件块在while条件下等待usb在任务开始时被配置,删除这个循环似乎是ok在我的情况下usb有和没有枚举。谢谢你的帮助。
嗨MathieuW。
你去掉了什么条件?
这些时间是有原因的。移走它们是不安全的。
你能把代码片段发布出来吗?
BR / Nikos V。
亲爱的尼科斯,我不知道为什么但是system_charger启动usb cdc任务而不是枚举。
下面是我在usb_cdc任务中注释的循环,因为任务不会等待通知,并且会重复执行,一切看起来都很好。
而(1){…
/*等待配置*/// while ((USBD_GetState() & (USB_STAT_CONFIGURED | USB_STAT_SUSPENDED))!= USB_STAT_CONFIGURED)/ / USB_OS_Delay (10);
致以最亲切的问候马修
嗨,马修
我们已经在ProDK上测试了这个案例。
我们使用了最新的SKD v.1.0.10.1072中的usb_cdc示例。
该示例实现了CDC-Serial并为电池充电(如果存在)。
我们将一个锂电池连接到子板底部的按钮电池引线,以验证充电。
我们用以下方法进行了测试:
在所有情况下,操作是正确的,没有崩溃或电池充电失败观察到。
你不需要在疾病控制中心有任何中断。
一切都在充电器和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修复和改进。
致以最亲切的问候。
嗨,对话框中,
我把代码移植到sdk10没有任何改进,
然而,我确实检查了usb_cdc代码,似乎固件块在while条件下等待usb在任务开始时被配置,
删除这个循环似乎是ok在我的情况下usb有和没有枚举。
谢谢你的帮助。
嗨MathieuW。
你去掉了什么条件?
这些时间是有原因的。移走它们是不安全的。
你能把代码片段发布出来吗?
BR / Nikos V。
亲爱的尼科斯,
我不知道为什么但是system_charger启动usb cdc任务而不是枚举。
下面是我在usb_cdc任务中注释的循环,因为任务不会等待通知,并且会重复执行,一切看起来都很好。
而(1){
…
/*等待配置*/
// while ((USBD_GetState() & (USB_STAT_CONFIGURED | USB_STAT_SUSPENDED))!= USB_STAT_CONFIGURED)
/ / USB_OS_Delay (10);
致以最亲切的问候
马修