DA14580/DA14585 蓝牙调试记录

本文围绕DA14580芯片展开,介绍了OTP烧录方法及注意事项,如一次烧写不可随意覆盖;阐述低功耗控制参数设置,解决烧录和调试问题;说明了IO控制在低功耗模式下的开关及唤醒操作;还指出进入低功耗后RAM数据保存及外设初始化问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、OTP烧录

            1.烧写OTP image(你的代码,你会发现代码并没有烧写完0x40000到0x4ffff的地址内容...)
            2.在OTP Header界面下Read from memory 读出原有Header配置信息,直接在上面修改以下项:
            (Address)0x47F00--(Value)Yes
            (Address)0x47F04--(Value)Yes
            (Address)0x47FF4--(Value)otp at 0
           修改完后再Burn回芯片去,程序就会从otp启动了
           3.以上均为个人测试而得,有两个需要注意的:一是otp一次烧写,以后每次烧写都只能覆盖,地址里每一位置1就不能改回  0,所以烧写image需慎重;二是一旦从otp启动,蓝牙的物理id(xx.xx.xx.xx.xx.xx)将由Header表里0x47fd4,0x47fd8这两位的数据而定,而不是代码里写的了。。。这个貌似也可以在代码里修改设定,我还没找到~~
 

2、低功耗控制

1、user_config.h中将变量 改成这样const static sleep_state_t app_default_sleep_mode=ARCH_SLEEP_OFF;

2、da14580x_config_advanced.h中将  #define CFG_LP_CLK              LP_CLK_RCX20   这里宏定义很重要,如果你外部没有接32K,这里一定要配置成内部,不然进入低功耗起不来

在设完上面的参数后功耗降了很多,而且工作很正常,接着我把程序烧进flash后,能正常在工作。但是当我再次想烧录的时候就是烧不尽,而且在线调试也调不了。最后分析是因为单片机一直进入低功耗,导致下载都不行。所以 最后采用上电后前一分钟不进入低功耗,1分钟后再进入。直接调用这个函数即可arch_set_sleep_mode(ARCH_EXT_SLEEP_ON);
 

3、IO控制

DA14580 为了把功耗做的很低,在低功耗的模式的时候大部分外设都会关掉,包括IO口

arch_turn_peripherals_off()这个是睡眠之前对配置全部关掉。SetBits16(SYS_CTRL_REG, PAD_LATCH_EN, 0); 这个是锁定管脚

系统唤醒之后会调用外设初始化,periph_init()

在set_pad_functions(),获取IO口状态,然后重新设置

SetBits16(SYS_CTRL_REG, PAD_LATCH_EN, 1)  把引脚从锁死状态下 解开

 

4、进入低功耗后的问题

  在进入扩展睡眠的时候,RAM数据是不保存的,只有在变量后面加

__attribute__((section("retention_mem_area0"),zero_init))

这个变量才会休眠保存

所以在设计这个任务执行的时候要特别注意,那些变量是进入需要睡眠保存的,避免出现一些很奇怪的问题

在休眠唤醒后也需要先把外设再初始化

 

    if (GetBits16(SYS_STAT_REG, PER_IS_DOWN))
    {
        periph_init();
    }

    if (arch_ble_ext_wakeup_get())
    {
        arch_set_sleep_mode(app_default_sleep_mode);
        arch_ble_force_wakeup();
        arch_ble_ext_wakeup_off();
        app_easy_wakeup();
    }

 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值