some question about sleep

12个帖子/ 0新
最后一篇
兰迪宇
离线
最后一次露面:2 years 10 months ago
加入:2015-01-28 08:49
some question about sleep

我的项目从DSP修改,我希望在将10个报文数据发送到主机后,我的从设备转到睡眠模式。并在几分钟后唤醒它,重复该过程。
1.I want to know how to achieve this function.I have browsing the the datasheet-UM-B-006 and training_04,I am very confused about the two files relation.The first datasheet seems very complex,and the second only use some steps can realize sleep.Is there have a more easy understand and Exactly sheet.

谢谢你

Device:
mt_dialog.
离线
最后一次露面:3个月17小时前
职员
加入:2015-06-08 11:34
Hi RandyYu,

Hi RandyYu,

580睡在广告和连接间隔之间,你想落在永久睡眠状态?或者你在间隔之间睡眠不到(你禁用了睡眠功能),你想通过再次启用睡眠来保持连接?为了启用睡眠功能,如果您不睡眠,可以调用Arch_set_extended睡眠,这将允许您在连接和广告间隔之间睡眠,以防您想要断开与中央的连接并落入永久睡眠状态将不得不发出断开连接,以便停止所有BLE活动(不要启动广告)并调用ARCH_BLE_EXT_WAKEUP_ON(),然后您必须设置一个ke_timer或外部中断,以便以特定量唤醒时间或通过外部中断。

谢谢mt_dialog.

兰迪宇
离线
最后一次露面:2 years 10 months ago
加入:2015-01-28 08:49
1.我的问题是我不知道

1.我的问题是我不知道如何进入深度睡眠模式并由ke_timer唤醒。我觉得细节对话框提供了非常杂乱。你有一个例子,一个例子可以通过一步一步地帮助我实现它
2.当函数是ke_timer(可以在深模式下唤醒设备)?
3.我想要发送10次数据,之后我希望它进入深度睡眠模式。当我调用Arch_ble_ext_wakeup_on()时,它的均值是您的意思,它将进入深度模式?
4.如果我想要深睡眠,外部水晶32MHz必须存在?

mt_dialog.
离线
最后一次露面:3个月17小时前
职员
加入:2015-06-08 11:34
Hi RandyYu,

Hi RandyYu,

1.您可以通过Kenrel计时器作为我之前的帖子指示http://support.dialog-semiconductor.com/deep-sleep-mode

2.没有特定的功能,以便通过内核计时器从睡眠中唤醒,只需在睡眠前设置一个计时器并在定时器处理程序开始广告。

3. You mentioned that you want to send 10 values and then fall in permanent sleep, you can not fall in permanent sleep while you are connected, you will have to disconnect and then fall in permanent sleep. The arch_ble_ext_wakeup_on() is used before sleeping and in order to declare to your system that he has to wait for an external signal in order to wake up. Its the same function in SDK3 described in the UM-B-006 document on page 12.

4. The external XTAL32 oscillator is mandatory only on boost mode, please check at the link below the related FAQ:

http://support.dialog-semicondiondiondiondum/guide/faq-hardware-peripherals.

谢谢mt_dialog.

兰迪宇
离线
最后一次露面:2 years 10 months ago
加入:2015-01-28 08:49
2.does your mean any time

2.does your mean any time call back function can wake the device from deep sleep mode?I have use the function app_easy_timer many times in project,if I don't want this timer handler to wake up device.Need I cancel it before sleeping??
3.使用ARCH_BLE_EXT_WAKEUP_ON()时,只有外部事件可以唤醒它?我想要ke_timer唤醒它

mt_dialog.
离线
最后一次露面:3个月17小时前
职员
加入:2015-06-08 11:34
Hi RandyYu,

Hi RandyYu,

2.是,任何内核定时器回调可以从睡眠模式唤醒您的设备,如果您正在睡觉,您不希望将特定的计时器处理程序唤醒您的设备,您将不得不取消它。

3. If you have set a kernel timer before going to permanent sleep you will wake up from the timer, you dont have to use the arch_ble_ext_wakeup_on().

谢谢mt_dialog.

兰迪宇
离线
最后一次露面:2 years 10 months ago
加入:2015-01-28 08:49
我的设备可以睡觉和

我的设备可以睡觉和唤醒,还有其他问题
1.what's the status of Peripherals(GPIO UART ADC ect.),does them correspond to the status after reset?
2.如果我的设备使用睡眠模式,请使用看门狗?他们会发生冲突?

mt_dialog.
离线
最后一次露面:3个月17小时前
职员
加入:2015-06-08 11:34
Hi RandyYu,

Hi RandyYu,

1.我没有提出你的问题,你是什么意思是外围设备的状态是什么,当你处于睡眠模式时,外围设备被停用。

2.您可以在睡眠模式下使用看门狗,当您的设备处于睡眠模式时,它会停用,但在设备退出睡眠模式时将激活。

谢谢mt_dialog.

兰迪宇
离线
最后一次露面:2 years 10 months ago
加入:2015-01-28 08:49
1.我的平均状态下拉

1.我的平均状态下拉/up,input/output, high resistance.
唤醒时,需要我重新初始化所有这些吗?
I have got a problem,
Q1
.i希望P03输出高,连接到主机时。
Then I set in
gpio_reservation(){
RESERVE_GPIO(STBY,GPIO_PORT_0,GPIO_PIN_3,PID_GPIO);
......
}

void set_pad_function()
{
gpio_configurepin(gpio_port_0,gpio_pin_3,输出,pid_gpio,true);
......
}
user_on_init()
{
GPIO_ConfigurePin(GPIO_PORT_0,GPIO_PIN_3,OUTPUT,PID_GPIO,false);//set output
......
}

user_on_connection()
{
GPIO_CONFIGUREPIN(GPIO_PORT_0,GPIO_PIN_3,输出,PID_GPIO,TRUE); //当连接设置高时
......
}
user_before_sleep(void)
{
ARCH_SET_EXTEDDE_SLEEP();
GPIO_ConfigurePin(GPIO_PORT_0,GPIO_PIN_3,OUTPUT,PID_GPIO,false);//if delete always high,else 0.916V.
}
P03 is always high if GPIO_ConfigurePin(GPIO_PORT_0,GPIO_PIN_3,OUTPUT,PID_GPIO,false);delete from
user_before_sleep(void),它表明我的设备不是睡觉状态吗?
But I have measued my device current is 2.5μA,when send advertise the current is about 100-200μA,when connected the current
是600-800μA。
这些不确定是否已经睡觉了?如果不是我如何确定?在我看到的弗鲁姆斯,使用smartsnippet来制作。但是我不知道如何使用它,
does it need any other hardware?

有什么问题,请给我一个帮助。
Q2:
I use JATG to debug step by step,I found,
sleep_mode = rwip_sleep();在Arch_Main.
Sleep_Mode的值始终在mode_active上。
因为这句话
if(check_sys_startup_period())
休息;///在这里休息
Ifind it's always have break here.
does the debug method of mine is wrong? Or this normal.

mt_dialog.
离线
最后一次露面:3个月17小时前
职员
加入:2015-06-08 11:34
Hi RandyYu,

Hi RandyYu,

Q1。When i say that the peripherals are deactivated it means that you can't use the ADC the timers etc, regarding the GPIO's (regardless if you are connected or not) when the 580 falls to sleep the GPIOs are latched in order to maintain their status when you fall back to sleep. When waking up the periph_init runs again and initializes the GPIO's in their original state. So you will have to place a variable in the periph_init function that holds the status of the pin before going to sleep and when the periph_init() re-runs set the GPIO according to that variable.

从代码我可以告诉你' ve粘贴,you configure your pin to be true every time that the peripheral initialization runs, so regardless if you are connected or not your pin is hign if extended sleep is enabled. Smart Snippets requires the pro kit in order to operate, and its a good way to make sure that the device is sleeping or not.

Q2。如果您处于睡眠模式,则无法调试设备,因为调试器已分离,因此您必须禁用睡眠,如果禁用睡眠,您的设备将一直处于活动状态。

谢谢mt_dialog.

兰迪宇
离线
最后一次露面:2 years 10 months ago
加入:2015-01-28 08:49
Q1:user_before_sleep()有

Q1:
I want to know the pin voltage ,if I use a multimeter measuring it ,when go to sleep.does it keep the voltage before sleep
user_before_sleep()已将其设置为低位
Q2:之前无法执行WFI()吗?

mt_dialog.
离线
最后一次露面:3个月17小时前
职员
加入:2015-06-08 11:34
Hi RandyYu,

Hi RandyYu,

Q1。在这篇文章中解释了所看到别针的原因http://support.dialog-semiconductor.com/my-gpio-cant-change-state-after-...

Q2。我认为,当您被广告时,您已经误解了BLE和睡眠功能,并且您的连接到您的连接580往往会在广告活动和连接事件之间睡眠。WFI()是580所粘所并等待BLE中断的命令(此中断将在下一个BLE事件的时间发生)。

谢谢mt_dialog.