Hello all,
I am tweaking DA14531-DA14585-586_Service_Data_Beacon for my needs and tried turning on CFG_HIGH_TEMPERATURE. The notes in da1458x_config_advanced.h and DA14585/DA14531 SW Platform Reference Manual (UM-B-119) say to undefine CFG_POWER_OPTIMIZATIONS. When I try, I get compiler errors in set_sleep_delay() and warnings in rwble_isr().
compiling arch_system.c...
C:\DiaSemi\DA145xx_SDK\6.0.14.1114\sdk\platform\arch\main\arch_system.c(519): error: #20: identifier "RCX_OTP_COPY_OVERHEAD" is undefined
twirq_set_value += RCX_OTP_COPY_OVERHEAD;
C:\DiaSemi\DA145xx_SDK\6.0.14.1114\sdk\platform\arch\main\arch_system.c(523): error: #20: identifier "XTAL32_OTP_COPY_OVERHEAD" is undefined
twirq_set_value += XTAL32_OTP_COPY_OVERHEAD;
C:\DiaSemi\DA145xx_SDK\6.0.14.1114\sdk\platform\arch\main\arch_system.c(527): error: #20: identifier "MINIMUM_SLEEP_DURATION" is undefined
delay = lld_sleep_lpcycles_2_us_sel_func(twirq_set_value) + MINIMUM_SLEEP_DURATION;
C: \DiaSemi\DA145xx\u SDK\6.0.14.1114\SDK\platform\arch\main\arch\u system.C:0个警告,3个错误
compiling rwble.c...
C:\DiaSemi\DA145xx_SDK\6.0.14.1114\sdk\ble_stack\rwble\rwble.c(929): warning: #223-D: function "dlg_finetgtim_isr" declared implicitly
dlg_finetgtim_isr();
C:\DiaSemi\DA145xx_SDK\6.0.14.1114\sdk\ble_stack\rwble\rwble.c(1014): warning: #223-D: function "dlg_slp_isr" declared implicitly
dlg_slp_isr();
C:\DiaSemi\DA145xx_SDK\6.0.14.1114\sdk\ble_stack\rwble\rwble.c(1027): warning: #223-D: function "dlg_cscnt_isr" declared implicitly
dlg_cscnt_isr();
C:\DiaSemi\DA145xx_SDK\6.0.14.1114\sdk\ble_stack\rwble\rwble.c: 3 warnings, 0 errors
Any ideas? I guess I can fall back to CFG_EXT_TEMPERATURE.
Jon
Hi Jon,
Yes you need to fall back to CFG_EXT_TEMPERATURE, as in the description of this configure flag it notes Not applicable to DA14531.
Note
High temperature support is not compatible with power optimizations. User shall undefine the CFG_POWER_OPTIMIZATIONS flag,if device is to support the high temperature range feature.
Note
Not applicable to DA14531.
Br
PW_Dialog
The online UM-B-119 documentation on the CFG_*_TEMPERATURE has 2 notes:
Neither of these state any options are not applicable to the DA14531. I interpret the second note as saying that all of the CFG_*_TEMPERATURE flags only affect hibernation on the DA14531.
有没有其他我应该参考的文件来源?
I checked all of the SDK example da1458x_config_advanced.h files and some of the downloadable examples. Of those which have a DA14531 section, all list CFG_HIGH_TEMPERATURE. The SDK examples have neither of the above notes and the downloaded examples only have the first note. If this is an invalid choice, shouldn't it be removed from the DA14531 specific section of the examples?
I am using a DA14531 and not utilizing hibernation, so this issue is not applicable to my application. I am only pointing out that following the instructions in the .h file specific to the device I am using resulted in compiler errors.
Hi Jon_ODonnell,
Apologies for our late response and thanks for your findings. Your findings are correct!
In order to enable the High Temperature configuration using the DA14531, you should just need to define the CFG_HIGH_TEMPERATURE macro in da1458x_config_advanced.h. and leave the CFG_POWER_OPTIMIZATIONS as it is.
The high temperature is valid only in hibernation mode :
Note DA14531: Temperature range selection is applicable only for hibernation and stateful hibernation. In all other modes temperature changes is handled internally by the system.
If you check the prox_reporter example of the SDK6.0.14.1114, you will see that the specific note does not exist for the DA14631. So, in case of the SW example I assume that something got wrong with the linking between the example and the SDK. I will check this internally.
The CFG_POWER_OPTIMIZATIONS macro is valid only for DA14585/586.
Thanks, PM_Dialog