PSoC 6 Peripheral Driver Library
BLE ECO (BLE ECO Clock)

General Description

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).

Configuration Considerations

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 */
/* In case if there is a need to get the BLE ECO frequency */
uint32_t bleEcoFreq = Cy_SysClk_AltHfGetFrequency();

More Information

See the BLE chapter of the device technical reference manual (TRM).

MISRA-C Compliance

The BLE ECO clock driver has the following specific deviations:

MISRA rule Rule Class (Required/ Advisory) Rule Description Description of Deviation(s)
10.1 R The value of an expression of integer type shall not be implicitly converted to a different underlying type under some circumstances. An operand of essentially enum type is being converted to unsigned type as a result of an arithmetic or conditional operation. The conversion does not have any unintended effect.

This driver does not contains any driver-specific MISRA violations.

Changelog

VersionChangesReason of Change
3.50 Updated Cy_BLE_EcoConfigure, Cy_BLE_EcoReset functions for PSoC 64 devices. Now the Cy_BLE_EcoConfigure function can return PRA driver status value for PSoC 64 devices. 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.
3.40.1 Minor documentation updates. Documentation enhancement.
3.40 A new API function Cy_BLE_EcoIsEnabled() is added. API enhancement.
3.30 Updated the Cy_BLE_EcoConfigure() to reuse the Cy_SysClk_ClkPeriGetFrequency(). API enhancement.
3.20 Updated the Cy_BLE_EcoConfigure(): it stores the ECO frequency for possible frequency calculation by the Cy_SysClk_ClkHfGetFrequency(). API enhancement.
3.10 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.
3.0 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.

API Reference

 Functions
 
 Enumerated Types
 
 Macros