CC26xxWare

From Texas Instruments Wiki
(Redirected from CC26xxware)
Jump to: navigation, search

Note! Please go to CC13xx CC26xx driverlib for information about newer releases.

NOTE

CC26xxWare is no longer released as a standalone software package.

CC26xxWare is included in TI-RTOS, to get the latest CC26xxWare/CC13xxWare please download the latest TI-RTOS here: TI-RTOS for CC13xx/CC26xx.

Introduction

CC26xxWare is a collection of software libraries and collateral for the CC26xx family of devices - an ARM Cortex-M3 based ultra-low power wireless MCU platform.

The CC26xxWare is the minimum of software recommended for software development on the CC26xx family of devices.

Components

CC26xxWare contains the following components:

  • driverlib: This is the low level peripheral driver library for easy access to all modules on the CC26xx devices. In addition to defining all the hardware registers and bit masks, it contains functions for configuration and controlling of modules like the ADC, GPIO, I2C, SSI, UART, DMA, Timers, and the system controller. Driverlib comes with an extensive HTML documentation showing how to use the driverlib to operate the peripherals on the device.
  • Radio firmware: Radio firmware for configuring the radio core on the CC26xx family of devices.
  • Startup files: Default startup files needed for the device to boot correctly.
  • Linker files: Default linker files for CC26xx family of devices for Texas Instruments Code Composer Studio, IAR Embedded Workbench for ARM, Keil MDK-ARM and for GCC tool chain.

The firmware is written in C (C99) to make development and deployment efficient and easy. The use of compiler specific intrinsic functions and directives (pragmas) is limited to a minimum to support a wide variety of compilers and software development tools. Out-of-the box, Code Composer Studio and IAR Embedded Workbench is supported. The code is provided in source code and is licensed under a TI BSD open source software license.

Versions

This section lists the release notes of all versions of CC26xxWare.

Version Notes
2.23.00.16374

Bugfixes and new features:

  • See release notes here.

Known issues (at release):

  • None
2.22.00.16101

Bugfixes and new features:

  • See release notes here.

Known issues (at release):

  • None
2.21.01.15602

This is a patch release for 2.21.01.15600.

Bugfixes and new features:

  • [DRV_SRC] DDI: Added missing semaphore wrapper around function call HapiHFSourceSafeSwitch().
    This addresses a bus lock-up issue triggered when System CPU calls OSCHfSourceSwitch() at the same time as Sensor Controller calls tdcSetCntSource().
  • [DRV_SRC] SysCtrl: Added temperature compensation to the VDDR sleep trim.

Known issues (at release):

  • None
2.21.03.15980

Bugfixes and new features:

  • See release notes here.

Known issues (at release):

  • None
2.21.01.15600

Bugfixes and new features:

  • See release notes here.

Known issues (at release):

  • None

Known issues found after release:

  • None
2.20.06.14829

Known issues (at release):

  • [DRV_SRC] - High STANDBY current consumption when using external regulator mode (6463)
    • The driverlib function used to setup the recharge rate before entering the STANDBY power mode does not turn off the adaptive rate calculation when in external regulator mode and ends up with minimum recharge rate and a current consumption of approximately 100 micro amps (while expecting approximately 1 micro amps).
    • The fix to this issue can be found here.

Known issues found after release:

  • None


Release notes v2.23.00.16374

Version Notes
2.23.00.16374

This lists the changes introduced in CC26xxWare version 2.23.00.16374.

New features:

  • [DRV_SRC] GPIO: The entire GPIO module is rewritten (The new GPIO module is not backwards compatible).
  • [DRV_SRC] HW_INTS: All interrupt defines are renamed (Just some of the old defines are kept temporarily for backwards compatibility with Sensor Controller Studio 1.1.0).
  • [DRV_SRC] HPOSC: Added support for HPOSC chips in boot sequence and HPOSC offset adjustment functions.
  • [RF_SRC] New common command: CMD_READ_RFREG

Improvements:

  • [DRV_SRC] CCFG: Added option to configure defines in ccfg.c outside ccfg.c itself.
  • [DRV_SRC] General: Removed unused/unsupported functions and defines:
  • [flashsafe] Removed the entire flashsafe module (all Flashsafe...() functions).
  • [IOC] Removed function IOCPinTypeSpis() and defines: IOC_PORT_AON_SCS, IOC_PORT_AON_SCK, IOC_PORT_AON_SDI and IOC_PORT_AON_SDO
  • [Timer] Removed functions: TimerRtcEnable(), TimerRtcDisable() and defines: TIMER_RTC_MATCH, TIMER_CFG_RTC
  • [ADI] Removed functions: ADIStatusGet(), ADIConfigSet(), ADISync() and ADIProtect()
  • [DRV_LIB] GNU/GCC: Corrected problems with the linker files.
  • [DRV_DOC] Doxygen: Added introduction chapters for most of the modules.

Bug fixes:

  • [RF_SRC] BLE support: Fixed typo in CPE patch function name

Release notes v2.22.00.16101

Version Notes
2.22.00.16101

This lists the changes introduced in CC26xxWare version 2.22.00.16101.

New features:

  • [DRV_LIB] GCC: Added GCC prebuilt library (Now supporting: IAR, CCS, Keil/ARM and GCC).
  • [DRV_SRC] OSC: Added functions to enable and disable clock loss reset functionality (New functions: OSCClockLossEventEnable() and OSCClockLossEventDisable()).
    Note that for TI-RTOS users, clock loss reset is now enabled automatically when all clocks are stable after power up/reset.
  • [DRV_SRC] VIMS: Renamed function VIMSModeSetBlocking() to VIMSModeSafeSet() and changed the function's API. Added a new parameter ('blocking') to be set if the function shall wait until the change has completed.
  • [DRV_SRC] AON: Changed API and renamed input parameters for functions AONIOCDriveStrengthGet() and AONIOCDriveStrengthSet(). See documentation for usage.
  • [DRV_SRC] General: Cleaned up defines. Applies to the following defines:
    • Removed XoscInHighPowerMode (replaced by XOSC_IN_HIGH_POWER_MODE)
    • Removed XoscInLowPowerMode (replaced by XOSC_IN_LOW_POWER_MODE)
    • Removed AUX_TDC_SATCFG_LIMIT_ROVF (replaced by AUX_TDC_SATCFG_LIMIT_R24)
    • Removed IOC_CURRENT_16MA (not valid)

Improvements:

  • [DRV_SRC] OSC: Optimized RTC accuracy in standby when running on internal RC-oscillator (RCOSC_LF).
  • [DRV_DOC] General: Documentation for all IntClear() functions updated to clarify how to safely clear an event in an Interrupt Service Routine (ISR).

Bug fixes:

  • [DRV_SRC] SysCtrl: Corrected typo in the initial recharge period calculation when entering standby, lowering power consumption in some scenarios.

Release notes v2.21.03.15980

Version Notes
2.21.03.15980

This lists the changes introduced in CC26xxWare version 2.21.03.15980.

New features:

  • [DRV_SRC] Event: Added functions to set and clear software events (EventSwEventSet, EventSwEventClear and EventSwEventGet).
  • [DRV_SRC] AON_RTC: Added function AONRTCCurrent64BitValueGet(), returning the SEC and SUB_SEC registers as one 64 bits result.
  • [DRV_SRC] CCFGRead: Added new module with a set of functions returning most of the CCFG bit fields.
  • [DRV_SRC] CCFG: Add CCFG configuration option to use CACHE RAM as general purpose RAM (GPRAM) - (Choosing between having cache or having 8 K-bytes of extra RAM).
  • [DRV_SRC] CCFG: Added ability to change the CCFG struct location. This is a special functionality needed only if executing entirely from RAM. Note that the prebuilt library is built with default CCFG location and will not work properly if CCFG location is changed.

Improvements:

  • [DRV_SRC] AON_RTC: Changed function AONRTCCurrentCompareValueGet() to avoid disabling interrupts.
  • [DRV_SRC] General: Code size optimization of several modules.

Bug fixes:

  • [DRV_SRC] OSC: XOSC startup time calculation done by function OSCHF_GetStartupTime() returned maximum startup time too early.
  • [DRV_SRC] CPU: Corrected compiler error when compiled with GCC.


Release notes v2.21.01.15600

Version Notes
2.21.01.15600

This lists the changes introduced in CC26xxWare version 2.21.01.15600.

New features:

  • [DRV_SRC] PRCM: Converting warm reset to pin reset (configured in the boot sequence), giving full system reset upon e.g. watchdog resets.
  • [DRV_SRC] Timer Added new driverlib timer configuration functions: TimerCcpCombineEnable, TimerCcpCombineDisable, TimerMatchUpdateMode TimerIntervalLoadMode.
  • [DRV_SRC] UART: Extending the UART module. Adding functions to enable and disable hardware flow control (UARTHwFlowControlEnable() and UARTHwFlowControlDisbale().
  • [DRV_SRC] SysCtrl: Added driverlib function doing system/chip reset (Achieved by calling function SysCtrlSystemReset() ).
  • [DRV_SRC] VIMS: Enhancing cache usage. 1: Make sure cache is enabled also when executing in the debugger. 2: Enabled cache TAG RAM prefetching permanently at boot - increasing CPU execution speed (between 5% and 20% depending of usage).
  • [DRV_SRC] CCFG: Made use of external Low Frequency (32 KHz) clock easier (Now configurable through Customer Configuration (CCFG)).
  • [DRV_SRC] CCFG: Corrected bug when using HF XTAL as source to the Low Frequency clock (Set/controlled by the Customer Configuration (CCFG)).
  • [DRV_SRC] AUX_ADC: Extending module AUX_ADC with more functionality (Now supporting conversion from raw samples to millivolt in both absolute and relative mode).
  • [DRV_SRC] CCFG: Removed hard coding of XTAL type used (24/48MHz). XTAL type used is now configurable through Customer Configuration (CCFG)
  • [DRV_LIB] CCS: Corrected problem related to linking/using pre-built library, built for Code Composer Studio
  • [DRV_DOC] CCFG: Enhancing the Customer Configuration description (CCFG).
  • [DRV_DOC] General: Improvements in the documentation. Added documentation of new modules, added missing documentation at function level and aligned documentation styling between modules.

Improvements:

  • [DRV_SRC] SysCtrl: Changed adaptive recharge calculation algorithm to adapt faster.
  • [DRV_SRC] ChipInfo: Made hardware revision check future proof. Changes relate to functions: ChipInfo_GetChipFamily and ChipInfo_GetHwRevision
  • [DRV_SRC] General: A lot of the initial functions available could be dangerous to use and the following functions are therefore either removed, renamed or replaced:
    • Removed function DDIStatusGet(), DDIConfigSet(), DDISync() and DDIProtect()
    • Removed function PRCMClockConfigureSet() and PRCMClockConfigureGet()
    • Removed function PRCMRetentionEnable(). Calling PRCMRetentionEnable(PRCM_DOMAIN_VIMS) is done by calling new function PRCMCacheRetentionEnable()
    • Removed function PRCMRetentionDisable(). Calling PRCMRetentionDisbale(PRCM_DOMAIN_VIMS) is done by calling new function PRCMCacheRetentionDisable()
    • Removed function PowerCtrlIoConfigSet()
    • Removed function SysCtrlPeripheralClockGet()
    • Removed function IOCIOJTagSet()
    • Removed function AONBatMonTemperatureGet() (Use AONBatMonTemperatureGetDegC() instead).
    • Removed function AONBatMonMeasurementCycleSet()
    • Removed function AONBatMonMeasurementCycleGet()
    • Removed function AONBatMonBatteryTrimSet()
    • Removed function AONBatMonTemperatureTrimSet()
    • Removed function AONWUCAuxClockConfigSet()
    • Removed function AONWUCAuxPowerOffConfig()
    • Renamed Function AONWUCPowerStatus() to AONWUCPowerStatusGet()
    • Renamed Function AONWUCMcuResetStatus() to AONWUCMcuResetStatusGet()
    • Changed possible return parameter from function VIMSModeGet() from VIMS_MODE_INVALIDATE to VIMS_MODE_CHANGING (function checks different bit in VIMS from now)
    • Removed entire module obs (obs.h and obs.c).
  • [DRV_SRC] UART: Removing unsupported functionality (removed functions UARTTxIntModeSet() and UARTTxIntModeGet() ).
  • [DRV_SRC] drivelib_release: Renamed release consistency checker module (Renamed driverlib_ver.h/.c to drivelib_release.h/.c and renamed macro/function DRIVERLIB_ASSERT_CURR_VERSION() to DRIVERLIB_ASSERT_CURR_RELEASE() ).
  • [DRV_SRC] AON_BatMon: Renamed driverlib function AON_BatmonTempGetDegC() to AONBatMonTemperatureGetDegC() (to align with coding style).
  • [HW_INC] General: Enhancing the hardware interface description (Removed description of register not recommended to be used by the customers and improved description of remaining registers and register fields).

Bug fixes:

  • [DRV_SRC] AUX_ADC: Corrected raw ADC sample to millivolt calculation and parameter handling in function AUXADCEnableSync.
  • [DRV_SRC] SysCtrl: Corrected bugs giving too high current consumption in STANDBY (Two bugs: 1: When running in External Regulator mode. 2: When having multiple events waking up from standby asynchrounesly).
  • [DRV_SRC] AON_RTC: Enhanced reading of the RTC clock (Reading the RTC clock could be interrupted giving wrong result. Function AONRTCCurrentCompareValueGet() is now made thread/interrupt safe).
  • [DRV_SRC] CRYPTO: Corrected minor bug in function CRYPTOCcmAuthEncrypt() results in sometimes giving wrong result).
  • [DRV_SRC] SysCtrl: Added minor extension to battery monitoring function SysCtrl_DCDC_VoltageConditionalControl() (Do not changed DCDC setting before battery voltage measurement is available. This function is called regularly by TI-RTOS).


Fixes for known issues

This section lists workarounds for known issues. The workarounds should only be applied to the CC26xxware version it is listed for.

Version Notes
2.20.06.14829
Fix for High STANDBY current consumption when using external regulator mode (6463)

1. Include file driverlib/sys_ctrl.c in your project (This will override the functions in the prebuilt library).

2. Add the following lines at the very beginning of function SysCtrlSetRechargeBeforePowerDown(..):

 //
 // If external regulator mode we shall:
 // - Disable adaptive recharge (bit[31]=0) in AON_WUC_O_RECHARGECFG
 // - Set recharge period to approximately 500 mS (perM=31, perE=5 => 0xFD)
 //
 if ( HWREG( AON_SYSCTL_BASE + AON_SYSCTL_O_PWRCTL ) & AON_SYSCTL_PWRCTL_EXT_REG_MODE ) {
    HWREG( AON_WUC_BASE + AON_WUC_O_RECHARGECFG  ) = 0x00A4FDFD;
    return;
 }

3. Rebuild your project.