Release date: November 3, 2017
New features
- Changes that apply to all devices
- [DRV_API] New functions in rfc.c and rfc.h:
- __STATIC_INLINE void RFCCpe0IntSelect(uint32_t ui32Mask): This function maps the interrupt lines provided within the argument to CPE0.
- __STATIC_INLINE void RFCCpe1IntSelect(uint32_t ui32Mask): This function maps the interrupt lines provided within the argument to CPE1.
- [DRV_SRC] OSC: Add debug/test function OSC_AdjustXoscHfCapArray(). Useful for production preparations when trying to find optimal HF XOSC Cap Array setting for a specific design. Ref. SET_CCFG_MODE_CONF_XOSC_CAP... in ccfg.c
- [DRV_SRC] PowerCtrl: Added the following functions:
- PowerCtrlPadSleepEnable()
- PowerCtrlPadSleepDisable()
- CC13x0
- [RF_PATCH] MCE: Added new MCE patch for Generic FSK with CC1101-compatible FEC and interleaver ("genfsk_fec_cc1101").
- CC26x0R2
- [RF_API] BLE5: Updated Bluetooth 5 command API ("BLE5"): Added Bluetooth 5 variants of legacy advertiser commands (CMD_BLE5_ADV, CMD_BLE5_ADV_DIR, CMD_BLE5_ADV_NC, CMD_BLE5_ADV_SCAN). These new commands are only available when using an updated CPE BT5 patch.
- [RF_API] PROP: In PROP API command CMD_PROP_RADIO_SETUP the bit-fields "symbolRate.bPdifDecim" and "symbolRate.pdifDecim" have been merged into one new bit-field ".symbolRate.decimMode". This is to make the CC2640R2F API the same as for CC13x0.
- [RF_PATCH] CPE BT5: Updated CPE BT5 patch to include Bluetooth 5 variants of legacy advertiser commands (CMD_BLE5_ADV, CMD_BLE5_ADV_DIR, CMD_BLE5_ADV_NC, CMD_BLE5_ADV_SCAN).
- CC13x2_CC26x2
- [RF_API] BLE5: Updated Bluetooth 5 command API ("BLE5"): Added Bluetooth 5 variants of legacy advertiser commands (CMD_BLE5_ADV, CMD_BLE5_ADV_DIR, CMD_BLE5_ADV_NC, CMD_BLE5_ADV_SCAN). These new commands are only available when using an updated CPE BT5 or CPE multi-protocol patch.
- [RF_API] PROP: In PROP API commands CMD_PROP_RADIO_SETUP and CMD_PROP_RADIO_DIV_SETUP a new bit-field "modulation.deviationStepSz" has been added. This can be used to configure the resolution of the existing bit-field "modulation.deviation".
- [RF_PATCH] CPE: Updated CPE BT5 and CPE multi-protocol patches to include Bluetooth 5 variants of legacy advertiser commands (CMD_BLE5_ADV, CMD_BLE5_ADV_DIR, CMD_BLE5_ADV_NC, CMD_BLE5_ADV_SCAN).
- [RF_PATCH] CPE: The CPE patch files "rf_patch_cpe_sl_longrange.h" and "rf_patch_cpe_genfsk.h" have been removed. The CPE PROP patch ("rf_patch_cpe_prop.h") already covers these cases and should be used instead. Alternatively, the CPE multi-protocol patch may be used.
- [DRV_SRC] Setup: Added support in SetupTrimDevice() to enable "Boost mode" during boot, boosting VDDR to support +14dBm.
- [DRV_SRC] sys_ctrl: Added SysCtrlShutdownWithAbort() as a workaround to detect pre-shutdown wakeup events.
- [DRV_SRC] sys_ctrl: Added handling of optional temperature compensation of the recharge level (enabled by setting CCFG_MODE_CONF_VDDR_TRIM_SLEEP_TC = 0).
- [DRV_SRC] Crypto PKA: Added subtraction function to PKA module and EC-JPAKE updates.
Improvements
- Changes that apply to all devices
- [DRV_SRC] Eliminated functions in rfc.c and rfc.h:
These functions did not provided a safe way to handle clock management, hence they have been removed from the rfc.h file.
It is recommended that enabling/disabling clocks in the RF core should be requested through radio commands instead.
- __STATIC_INLINE void RFCClockSet(uint32_t ui32Mask)
- __STATIC_INLINE void RFCClockClear(uint32_t ui32Mask)
- [HW_INC] General: Updated/improved hardware register descriptions (inc/hw_*.h and doc/../*.html files).
- [DRV_SRC] PowerCtrl: The following functions are either removed or marked as derprecated:
- PowerCtrlIOFreezeEnable() removed
- PowerCtrlIOFreezeDisable() removed
- PowerCtrlResetSourceGet() marked as deprecated. It will be removed in a future release. Use SysCtrlResetSourceGet() instead.
- CC13x0
- [RF_PATCH] MCE: Updated MCE bit-repeat patch ("brepeat") to add support for very long or infinite preamble.
- CC26x0R2
- [RF_PATCH] CPE BT5: Updated CPE BT5 patch for Bluetooth 5 to implement that CPE re-reads the "pConnectReqData" parameter pointer before sending AUX_CONNECT_REQ.
- CC13x2_CC26x2
- [RF_PATCH] CPE BT5: Updated CPE BT5 patch for Bluetooth 5 to implement that CPE re-reads the "pConnectReqData" parameter pointer before sending AUX_CONNECT_REQ.
- [RF_PATCH] CPE: Updated CPE BLE, CPE BT5, CPE PROP, and CPE multi-protocol patches with improvement to make the (G)FSK deviation in Tx constant over the frequency band by recalculating the Tx shape when RF synth is programmed to a new frequency.
- [DRV_SRC] The following functions are not applicable on these devices and hence been removed from rfc.c and rfc.h:
- void RFCRfTrimRead(rfc_radioOp_t *pOpSetup, rfTrim_t* pRfTrim)
- void RFCRTrim(rfc_radioOp_t *pOpSetup)
- void RFCRfTrimSet(rfTrim_t* pRfTrim)
- void RFCAdi3VcoLdoVoltageMode(bool bEnable)
- [DRV_SRC] Crypto SHA2: Updated SHA2 driverlib to support partial hashing of multiple blocks at a time.
- [DRV_SRC] sys_ctrl: SysCtrlShutdown() now terminates in a while(1) to make sure it never returns.
- [DRV_SRC] AON/sys_ctrl: Removed function AONPMCTLShutDownEnable(), use SysCtrlShutdown() instead.
Bug fixes
- Changes that apply to all devices
- [RF_API] General: In all API files, resolved a syntax problem with the struct attribute when compiling with GCC or CCS.
- [DRV_SRC] Behavioural change in rfc.c and rfc.h:
- __STATIC_INLINE void RFCClockEnable(void): This function only enables the interrupts which are needed to get the CM0 running. This is to optimize consumption.
- __STATIC_INLINE void RFCHwIntEnable(uint32_t ui32Mask): The old function was clearing the interrupts before enabling.
- __STATIC_INLINE void RFCCpeIntEnable(uint32_t ui32Mask): This function only enables the interrupts, regardless if it is mapped to CPE0 or CPE1. It does not modify the pending interrupt flags.
- [DRV_API] Function prototype changes in rfc.c and rfc.h:
- uint32_t RFCCpeIntGetAndClear(uint32_t ui32Mask): This function was reading and clearing all the CPE interrupt flags, regardless if the handler routine has actually the right to do so. This could cause problems in applications where multiple users share the CPE interrupts. The new function only handles the interrupts which match the provided bitmask.
- void RFCCpePatchReset(void): The function name was aligned with the camel-case naming convention of driverlib functions.
- void RFCSynthPowerDown(void): This function is now explicitly takes no argument.
- RFCHwIntGetAndClear(uint32_t ui32Mask): The function name was aligned with the camel-case naming convention of driverlib functions.
- __STATIC_INLINE void RFCCpe0IntSelectClearEnable(uint32_t ui32Mask): The function was renamed to reflect its internal behavior.
- __STATIC_INLINE void RFCCpe1IntSelectClearEnable(uint32_t ui32Mask): The function was renamed to reflect its internal behavior.
- CC13x2_CC26x2
- [RF_API] IEEE: In API for "IEEE" commands, a type problem for the struct member "CMD_IEEE_RX.pShortEntryList" was fixed. This fix aligns the API structs with the existing API for CC26x0.
- [RF_PATCH] CPE: Updated CPE PROP and CPE multi-protocol patches with bug fix: if a packet is received with a proprietary mode Rx command (CMD_PROP_RX*) and a partial read Rx buffer is used, the CPE will hang if an abort command is received while a packet is being received.
- [DRV_SRC] Crypto PKA: Fixed issue where PKAGetECCResult would read and uninitialized variable when not copying back the x coordinate.
- [DRV_SRC] Crypto PKA: Fixed bug where PKAGetECCResult would calculate an incorrect offset for curvePointY in PKA RAM and copy back an incorrect result.
- [DRV_SRC] Setup: SetupTrimDevice(): Include the LPM_BIAS trims in the boot sequence.
Known issues
- CC26x0
- [RF_PATCH] General: CMD_SCH_IMM could cause loss of commands.
- CC26x0R2
- [RF_API] General: The CPEGPO1 output signal, available in IO Controller as "RFC_GPO1", signalling the "PA_EN" status signal is not functional. The signal does not go low at end of transmission.
- [RF_SETTING] BT5: All Bluetooth 5 radio settings so far support only differential front-end mode only, and will need a run-time modification (not yet implemented) of trim value in override list to achieve correct settings.
- For an updated list of known issues (including issues found after the release), see CC13xx_CC26xx_driverlib on the Texas Instruments wiki.