Hi:
when supplying more than 3.2V, the devices boot and advertise one time then stop advertise, but the key still works. if supplying less than 3.2V, the device will keep advertising and LightBlue could connect to it. If firstly supplying less than 3.2V, it will keep advertising, then change to more than 3.2V, the advertising signal will disppear.
my program was based on proxr_reporter. I also try to burn original ble_app_barebone project to device. the problem still exists. we produce hundreds of devices, and about twenty devices have this problem. But if set app_default_sleep_mode to ARCH_SLEEP_OFF, the problem disppears.
Device:
Hi ericxiong,
Can you please share some additional information about the setup, you are booting from OTP or FLASH ? you are able to see that the device goes to sleep and then it never wakes up ? What is the state of the device when that happens (it stays in sleep ? is it idle ? there is a reset or halt due to a hard fault or due to watchdog ? it just runs without doing anything ? does the device hits any ERROR ASSERTION ?) Are you using the RCX or an XTAL32 as a Low Power clock ? I suppose that most probably that has something to do with the low power clock although i am not able to tell exactly why this happens over 3.2V. How do you recover the device, you reset it ? Also at the case when the device is running properly and by increasing the voltage the advertising stops, how exactly do you increase the voltage ? Please share the above information in order to figure out possible reasons for this kind of issue.
Thanks MT_dialog
Hi MT_dialog:
1.我的设备从FLASH引导。
2. I set the key as a wakeup source. when key event happen, device will set led on. when the problem happens, the key can wakeup it and led on.
3. the device is ARCH_EXT_SLEEP_ON, it is idle for timer or key event.
4. If there is a halt, the device will output exception by UART. when it happens, I see nothing.
5. If don't power off, the device will keep in this state. the device has no reset key.
6. I don't change setting about Low Power clock, CFG_LP_CLK is LP_CLK_XTAL32.
7. when that happens, I have to power off the device to recover.
8 I use a DC power supply to power the device for testing, so could increase voltage.
Hi ericxiong,
1) So your device boots from flash properly (when booting up your can see that the 580 downloads the fw from flash) ?
2) As far as i could understand is that when the device boots up and has the fw, it enters in sleep mode and wakes up either via timer or external interrupt and when the voltage is more than 3.2 Volts the devices wakes up (turns on a led) but the advertising never starts ? Is that correct ?
4) The printing message that the device should output where is located ? Perhaps the device is stuck in a breakpoint (other than the watchdog or a hardfault (is that where the printing message is located ? - there are ASSERT_ERROR in the SDK that just make the device idle and stuck the fw in a breakepoint). If i am not aware where exactly the code halts i am not going to be able to help you, so it would help a lot if we have a Smart Snippets capture to see the timeline of the power consumption (perhaps this will help) and also if you could hot attach the debugger and trace where exactly the code has halted. In the latest SDK you will be able to attach the debugger while in sleep mode, in case of an older one you will be able to enable the debugger module when in sleep, in order to do that you have to make sure that the SetBits16(SYS_CTRL_REG, DEBUGGER_ENABLE, 0); isn't invoked anywhere in your code.
6) So the low power clock of your device is an XTAL32 and your PCB has an XTAL32 ?
So far the only suspect i can think of, for this kind of behaviour is the XTAL32.
Thansk MT_dialog