Can I use an external oscillator for the watch crystal oscillator (WCO) of PSoC 4/PRoC BLE?
Yes, you can use an external oscillator for the WCO.
Make the following settings in the hardware:
- Connect the external clock source to the XTAL32O pin.
- Leave the XTAL32I pad floating. If floating is not desirable, ensure to have an impedance of at least 500 kW between the XTAL32I pad and ground.
- Provide an external clock source that toggles from 0 V to a minimum of 1.0 V, or 0 V to a maximum of 1.6 V.
- Ensure that the duty cycle of the external clock is between 20 and 80 percent.
To use an external clock in firmware, do the following:
- Disable WCO and select ILO for LFCLK in the Low Frequency Clocks tab of the Configure System Clock window in the .cydwr file.
- Set the EXT_INPUT_EN (bit 2) bit to ‘1’ in the BLE_BLESS_WCO_CONFIG register in firmware before enabling the WCO.
- Start WCO by calling the CySysClkWcoStart(); API.
- Select WCO as the LFCLK source by calling the CySysClkSetLfclkSource(CY_SYS_CLK_LFCLK_SRC_WCO); API.
- Stop ILO by calling the CySysClkIloStop(); API.
A sample code for using the external clock source for WCO is given below:
/*Enable External Clock*/
CY_SYS_CLK_WCO_CONFIG_REG |= CY_SYS_CLK_WCO_EXT_INPUT_EN;
/*Start WCO */
/*Select WCO as the clock source*/
/* Stack Initialization */