Hello,
I have a few questions:
1. How to add a prj.conf or an overlay file to enable peripherals to use an external high-frequency crystal oscillator as the clock source?
I tested by configuring the device tree as follows, but the high-frequency clock did not take effect. It only works when I add the following code to the application code.
&clock { status = "okay"; lfxo: lfxo { // source = "LFXO"; compatible = "nordic,nrf-lfxo"; #clock-cells = <0>; clock-frequency = <32768>; // zephyr,pm-device-runtime-auto; status = "okay"; }; hfxo: hfxo { // source = "HFXO"; compatible = "nordic,nrf-hfxo"; #clock-cells = <0>; clock-frequency = <DT_FREQ_M(32)>; // zephyr,pm-device-runtime-auto; status = "okay"; }; };
void hfxo_start(void) { // Enable external high-speed 32MHz crystal oscillator nrf_clock_task_trigger(NRF_CLOCK, NRF_CLOCK_TASK_HFCLKSTART); // Wait for the HFXO to stabilize while (!nrf_clock_event_check(NRF_CLOCK, NRF_CLOCK_EVENT_HFCLKSTARTED)) { // Wait for the event flag } }
2. How can I configure the system to enable the high-frequency external clock to automatically turn on when peripherals are in use and turn off when not in use for low-power management?