你好先生,
我们正在使用DA14586微控制器进行项目。目前我们已经禁用了BLE部分,并使用CP2102N接口作为usb桥接与PC机工具通信的COM端口。DA14586 1-GPIO中断连接到CP2102N gpio,用于USB检测(连接-断开)识别。设备工作正常,已经投入生产。
最近我们在客户端现场观察到设备挂起问题。在RCA期间,我们发现唤醒中断在这里工作RTC中断得到检测,但app_on_system_powered回调例程没有执行。所以设备变成了无响应模式。
在分析过程中,我们发现,在USB连接断开有时会发生。
请指导我们如何尽快解决这个无响应的问题。
谢谢!
Bhavik
设备:
听起来像是停电的问题。DA14586是由USB供电还是有自己的电源或电池?
/ MHv
当与USB连接时,它将从USB获取电源,一旦与USB断开,它将在3v电池硬币电池上工作。
谢谢
是否有任何一点的电源电压低于推荐的电压范围?在插入USB时,是否存在反弹GPIO的潜在问题?如果你的中断没有在第一个GPIO电平转换上立即禁用,你可能会用中断使设备过载。
我们没有发现任何低于推荐电压范围的电压下降,并且在USB连接-断开时GPIO电压水平保持稳定。
4个gpio用于唤醒中断。在这4个GPIO中断中的任何一个上空白wkup_ad_cb(空白)函数被调用,因为这是唤醒适配器的回调函数。在这个回调函数中,中断被识别并服务于它。
当我们通过轮询端口引脚来手动分离时,会注意到脱扣。
谢谢
在调试期间,我们观察到当USB连接和断开连接时,UART BUSY检测错误存在,并且没有清除错误中断。在对话框的帮助下,我们得到了下面的代码来清除繁忙检测错误。
案例BUSY_DETECT:
//读取UART2_USR_REG来清除任何挂起的繁忙中断
GetBits16 (UART2_USR_REG UART_TFE);
打破;
我们面临两个问题
1.当UART事务发生并从USB移除时,微控制器进入无响应模式。
下面是在启动代码时为USB连接断开注册GPIO中断的代码
user_global_irq_deinit ();
wkup_ad_init ();
wkup_ad_register_gpio(CUST_USB_INT_PORT, WKUPCT_PIN_SELECT(CUST_USB_INT_PORT, CUST_USB_INT_PIN),
Wkupct_pin_polarity (cust_usb_int_port, cust_usb_int_pin, wkupct_pin_polarity_high),
user_usb_connected user_usb_disconnected);
请让我们知道没有检测到USB GPIO中断的原因是什么?
2.当UART事务发生并从USB移除时,微控制器得到硬复位。
请让我们知道什么可能是微控制器硬复位的原因。?
注意:当USB连接USB电源接管硬币电池和内部16兆赫兹切换到外部16兆赫兹晶体准确的UART波特率。当与USB断开连接时,反之亦然。
谢谢
嗨Bhavik,
谢谢你的评论。这个问题已经与NPI团队解决了,Cytech的人会直接与您联系。
谢谢,PM_Dialog
谢谢你的快速回复。
谁能尽快联系我们,因为我们的设备已经在生产中,需要澄清一下。
谢谢
嗨Bhavik,
我们已经让Cytech的人直接联系你了。如果你还没有收到任何东西,请告诉我。
谢谢,PM_Dialog