跳转到主要内容

DA14531宏家HJ-531imf

hj - 531国际货币基金组织(imf)

唐山宏佳电子科技有限公司与Dialog合作开发了一款超小型、超低功耗的蓝牙5.1 SIP模块SmartBond DA14531小它是世界上最小、最节能的蓝牙5.1 SoC。HJ-531IMF内置高性能天线,尺寸为5 x 4.75 x 1.3mm,采用LGA25封装。

特性

尺寸:5 x 4.75 x 1.3毫米

包:LGA25

GPIOs: 12

电源电压:1.1 v - 3.6 v

马TX < 3.5;RX < 2.2 mA

内置高性能天线(也可以使用外部天线)

车载天线范围:5-10m;外置天线范围:40-80m

支持BLE 5.1,支持微信和用户开发

内置1MB闪存,支持OTA,存储用户数据

工作温度:-40℃~ +85℃

亚博国际官网平台网址

微小的医学应用亚博国际官网平台网址

信标

智能玩具

智能锁

遥控器

工业智能设备

每个季度,我们将关于我们的产品、软件开发主题、培训、活动的最佳技术信息打包发送到您的收件箱。亚博电竞菠菜

签我
查看以前的版本

保持联系

直接通过我们的全球销售办事处与我们联系,或与我们的全球分销商和代表联系。

调查 经销商和代表 注册新闻通讯
数据表
的名字 日期 版本
DA14531宏家HJ-531imf数据表(855.99 KB) 12/05/2020 1.2

订购信息

样品可用。请与当地的Dialog销售代表联系。

联系红嘉:liujiahang@tshjdz.comwujunwei@tshjdz.com

回的结果

DA14530和DA14531.

1周前

深度睡眠模式下的唤醒功能。

张贴了Bas32180点 4回复
0旋转

我的目标是在我的源代码中实现深度睡眠模式的自定义时间。
在做同样的事情之前,我首先尝试实现ble_button_wakeup项目;使用RTC使能中断。
相同的目前状况如下。
1.)流量是启用RTC中断,定义中断处理程序,在中断处理程序调用时唤醒设备
2.)完成启用RTC中断,能够使用中断处理程序接收中断并调用唤醒功能。但该设备没有醒来
3.)基本上,在白蚁,我能够看到计时器运行10秒,然后睡眠模式ON消息,但设备不会唤醒基于RTC使能中断。
我已经附上了代码的重要部分供评估,请告诉我如果我错过了一些东西,请告诉我。

代码部分:对于RTC使能中断

void initialize_alarm(rtc_time_t时间)

rtc_time_t alarm_time;

armar_time =时间;
alarm_time。秒+ = RTC_TIMEOUT;

rtc_set_alarm (&alarm_time NULL, RTC_ALARM_EN_SEC);

//清除挂起的中断
rtc_get_event_flags ();
rtc_register_intr (rtc_interrupt_hdlr RTC_INTR_ALRM);


代码部分:中断处理程序
静态void rtc_interrupt_hdlr(uint8_t事件)

/ /存根函数
rtc_wake_flag = 1;

if(rtc_wake_flag) //休眠模式10s后关闭

printf_string(UART2,“睡眠模式关闭\ n”);
sprintf(时间,“\ nT: % d % d: % d r \ n \”,mytime.hour, mytime.minute, mytime.sec);
printf_string (UART2、时间);
rtc_wake_flag = 0;
arch_set_sleep_mode (ARCH_SLEEP_OFF);//关闭睡眠模式
arch_ble_force_wakeup ();//强制BLE唤醒
arch_ble_ext_wakeup_off ();//关闭永久休眠标志
app_easy_wakeup ();//一旦BLE被唤醒,就调用相应的动作
user_app_init();


您的投入和方向,效果有助于迅速原型设计。期待您的宝贵建议

1周前

PM_Dialog

嗨Bas321,

谢谢你发布了一个新的论坛帖子。我已经在下面的论坛门票上回复了你,因为你已经添加了评论:

https://www.dialog-seminile.com/support-posts/how -keep-rtc-working-deep-sleep-mode.

请查收我的回复:

建议看看SDK的PXP_Reporter示例。

当CFG_EXT_SLEEP_WAKEUP_RTC或CFG_DEEP_SLEEP_WAKEUP_RTC时,DA14531从扩展睡眠或深度睡眠时唤醒。

configure_rtc_wakeup()将RTC配置为唤醒源,这样芯片在10秒(alarm_time)后醒来。秒+ = 10)。

在睡觉之前,您应该确保PD_TIM打开。请检查app_advertise_complete()。

一旦设备接受RTC中断,rtc_interrupt_hlr()就会被执行,以便从睡眠中恢复和唤醒。rtc_interrupt_hlr()应该注册在rtc_register_intr()中

注意:让我们继续在这个论坛线程上讨论。

谢谢,PM_Dialog

接受答案!

1周前

PM_Dialog

嗨Bas321,

让我们在你的新论坛继续讨论:

//www.xmece.com/support-posts/wake-function-during..。

谢谢,PM_Dialog

5天前

Bas321 80点

亲爱的团队

谢谢你的回复,

(1) CFG_DEEP_SLEEP_WAKEUP_RTC

在user_proxr.h中,我找到了这个函数。

但是,具体应该在哪里定义它(在代理报告程序项目的哪一行和哪个文件中)

(2)在configure_rtc_wakeup ()

如果我们希望系统深入入睡1小时,那么就足以提及

alarm_time。秒+ = 3600

(3)下面是app_advertise_complete()对应的函数。

你能告诉我如何确保PD_TIM是打开的吗

void app_advertise_complete(const uint8_t状态)

if (status == GAP_ERR_NO_ERROR) || (status == GAP_ERR_CANCELED)

#if(ble_prox_reporter)
app_proxr_alert_stop();
#万一

if (status == GAP_ERR_CANCELED) / /取消取消

arch_ble_ext_wakeup_on ();

#如果定义(__DA14531__)
/ /配置PD_TIM
#f定义(cfg_ext_sleep_wakeup_rtc)||定义(cfg_ext_sleep_wakeup_timer1)||\
定义(CFG_DEEP_SLEEP_WAKEUP_RTC) || defined (CFG_DEEP_SLEEP_WAKEUP_TIMER1)
//确保PD_TIM已打开
setbits16(pmu_ctrl_reg,tim_sleep,0);
//请等待PD_TIM文件打开
while (GetWord16(SYS_STAT_REG) & TIM_IS_UP) !
#别的
//关闭pd_tim.
setBits16(PMU_CTRL_REG,TIM_SLEEP,1);
//等待PD_TIM关闭
while (GetWord16(SYS_STAT_REG) & TIM_IS_DOWN) !
#万一
#万一

注意:通过RTC配置深度睡眠模式是否有其他指令?

谢谢你!

4天前

PM_Dialog

嗨Bas321,

  1. 这是正确的——应该定义CFG_DEEP_SLEEP_WAKEUP_RTC宏,以便通过RTC从深度睡眠中唤醒。
  2. 请查看rtc_time_t结构。1小时时,可使用alarm_time。小时+ = 1。
  3. 什么时候需要打开PD_TIM ?正如您在app_advertise_complete()回调中所看到的,代码会一直等待PD_TIM被打开。

while (GetWord16(SYS_STAT_REG) & TIM_IS_UP) !

如果未打开PD_TIM,则代码将堆叠到while()循环中。

关于深度睡眠并通过RTC唤醒,应遵循以下教程:

http://lpccs-docs.dialog-semiconductor.com/DA14531_Sleep_Mode/deepsleep_config.html

谢谢,PM_Dialog