Hi Sir,
我们正在计划使用DA14586 microcontroller. Currently we have disable BLE part and using CP2102N uart to usb bridge for communication with PC tool as COM port. DA14586 1-GPIO interrupt is connected to CP2102N gpio for USB detection (Connect-Disconnect) identification. Device is working fine as alraedy in production.
Recentlay we observed device hang issue in field at customer end. During RCA we found that wakeup interrupts are working here RTC interrupts getting detects but app_on_system_powered callback routines not executing. So device bacomes non responsive mode.
During analsis we found that during USB connect-disconnect it happens sometimes.
请指出我们如何尽快解决这种非响应问题。
谢谢& Regards,
Bhavik.
Device:
It sounds like a brown-out issue. Is the DA14586 powered from USB or does it have it's own power source or battery?
/MHv
When connected with USB it will take power from USB and once disconnected from USB it will work on 3v battery coin cell.
谢谢
是否有任何电压point drop below the recommended voltage range? Is there a potential issue with a bouncing GPIO at the time you insert the USB? If your interrupt is not immediately disabled on the first GPIO level transition, you may overload the device with interrupts.
我们没有发现低于推荐电压范围的下降电压,而GPIO电压水平仍然稳定,而USB连接断开连接。
Four GPIOs are used for wake up interrupts . On any of these 4 GPIO interruptsvoid wkup_ad_cb(void)function is called as this is call back function for wake up adapter. Within this call back function interrupt is identified and served it.
As we are mannualy segregating by polling the port pins the debouncing is taken care.
谢谢
在调试期间,我们观察到when the USB connect and disconnect, UART BUSY Detect error was there and it was not clearing error interrupt. With the help of dialog we got below code to clear the Busy Detect error.
case BUSY_DETECT:
//Read UART2_USR_REG to clear any pending busy interrupt
GetBits16(UART2_USR_REG, UART_TFE);
break;
We are facing two issues
1. when UART transaction is happening and removed from USB, microcontroller entered into non-responsive mode.
Below is the code for registering GPIO interrupt for USB connect-disconnect at start-up the code
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);
please let us know what could be the cause for not detection USB GPIO interrupts?
2. when UART transaction is happening and removed from USB, microcontroller gets HARD RESET.
Please let us know the what could be the cause microcontroller gets HARD RESET. ?
NOTE : When USB is connected USB power takes over from Coin Cell battery and internal 16 MHZ switched to external 16 MHZ crystal for accurate UART baurd rate. On disconnect from USB, it's vice-versa.
谢谢
Hi Bhavik,
谢谢for your comment. This issue was already addressed with the NPI team and someone from Cytech will reach out to you directly.
谢谢, PM_Dialog
谢谢for your quick response.
Can anyone reach us as soon as possible as our device is already in production and need to clarify it.
谢谢
Hi Bhavik,
We have already asked someone from Cytech to reach out to you directly. Please let me know if you haven’t received anything yet.
谢谢, PM_Dialog