BLE ECO (BLE ECO Clock)¶
This driver provides an API to manage the BLE ECO clock block.
The functions and other declarations used in this driver are in cy_ble_clk.h. You can include cy_pdl.h to get access to all functions and declarations in the PDL.
The BLE ECO clock is a high-accuracy high-frequency clock that feeds the link-layer controller and the radio Phy.
This clock is also an input to the system resources subsystem as an alternative high-frequency clock source (ALTHF).
To configure the BLE ECO clock, call Cy_BLE_EcoConfigure().
The following code shows how to configure the BLE ECO clock:
/* BLE ECO configuration: ECO Frequency: 32 MHZ, Divider: 2 */ /* Start-up time(uS): 1500, Load cap(pF): 9.9 */ uint32_t startTime = (uint32_t)(1500 / 31.25); uint32_t loadCap = (uint32_t)((9.9 - 7.5) / 0.075); /* Configure the BLE ECO clock */ (void) Cy_BLE_EcoConfigure(CY_BLE_BLESS_ECO_FREQ_32MHZ, CY_BLE_SYS_ECO_CLK_DIV_2, loadCap, startTime, CY_BLE_ECO_VOLTAGE_REG_AUTO); /* In case if there is a need to get the BLE ECO frequency */ uint32_t bleEcoFreq = Cy_SysClk_AltHfGetFrequency();
See the BLE chapter of the device technical reference manual (TRM).
Reason of Change
Resolve MISRA 2012 standard defects.
The BLE ECO clock driver uses the PRA driver to change the frequency value on the protected side. A BLE ECO clock driver function that calls a PRA driver function will return the PRA error status code if the called PRA function returns an error. In these cases, refer to PRA return statuses. Refer to functions description for details.
Minor documentation updates.
A new API function Cy_BLE_EcoIsEnabled() is added.
Updated the Cy_BLE_EcoConfigure() use case, when the voltageReg parameter is CY_BLE_ECO_VOLTAGE_REG_BLESSLDO and the Buck core regulator is enabled.
Defect fixing: Before, when the Cy_BLE_EcoConfigure() function included the BLE LDO regulator option, the function returned CY_BLE_ECO_HARDWARE_ERROR if the Buck core regulator had been enabled.
The initial version.
The functionality of the BLE ECO clock is migrated from the BLE Middleware to the separated driver (ble_clk).
Independent usage of BLE ECO clock without BLE Middleware.