1818// division ratio will be used in the clocks block). A divisor of 1024 generates
1919// an RTC clock tick of 46875Hz. This frequency is relatively close to the
2020// customary 32 or 32.768kHz 'slow clock' crystals and provides good timing resolution.
21- #define RTC_CLOCK_FREQ_HZ (USB_CLK_MHZ * MHZ / 1024)
21+ #define RTC_CLOCK_FREQ_HZ (USB_CLK_KHZ * KHZ / 1024)
2222
2323check_hw_layout (clocks_hw_t , clk [clk_adc ].selected , CLOCKS_CLK_ADC_SELECTED_OFFSET );
2424check_hw_layout (clocks_hw_t , fc0 .result , CLOCKS_FC0_RESULT_OFFSET );
@@ -125,8 +125,8 @@ bool clock_configure(enum clock_index clk_index, uint32_t src, uint32_t auxsrc,
125125/// \end::clock_configure[]
126126
127127void clocks_init (void ) {
128- // Start tick in watchdog
129- watchdog_start_tick (XOSC_MHZ );
128+ // Start tick in watchdog, the argument is in 'cycles per microsecond' i.e. MHz
129+ watchdog_start_tick (XOSC_KHZ / KHZ );
130130
131131 // Everything is 48MHz on FPGA apart from RTC. Otherwise set to 0 and will be set in clock configure
132132 if (running_on_fpga ()) {
@@ -152,55 +152,55 @@ void clocks_init(void) {
152152 tight_loop_contents ();
153153
154154 /// \tag::pll_init[]
155- pll_init (pll_sys , PLL_COMMON_REFDIV , PLL_SYS_VCO_FREQ_MHZ * MHZ , PLL_SYS_POSTDIV1 , PLL_SYS_POSTDIV2 );
156- pll_init (pll_usb , PLL_COMMON_REFDIV , PLL_USB_VCO_FREQ_MHZ * MHZ , PLL_USB_POSTDIV1 , PLL_USB_POSTDIV2 );
155+ pll_init (pll_sys , PLL_COMMON_REFDIV , PLL_SYS_VCO_FREQ_KHZ * KHZ , PLL_SYS_POSTDIV1 , PLL_SYS_POSTDIV2 );
156+ pll_init (pll_usb , PLL_COMMON_REFDIV , PLL_USB_VCO_FREQ_KHZ * KHZ , PLL_USB_POSTDIV1 , PLL_USB_POSTDIV2 );
157157 /// \end::pll_init[]
158158
159159 // Configure clocks
160160 // CLK_REF = XOSC (usually) 12MHz / 1 = 12MHz
161161 clock_configure (clk_ref ,
162162 CLOCKS_CLK_REF_CTRL_SRC_VALUE_XOSC_CLKSRC ,
163163 0 , // No aux mux
164- XOSC_MHZ * MHZ ,
165- XOSC_MHZ * MHZ );
164+ XOSC_KHZ * KHZ ,
165+ XOSC_KHZ * KHZ );
166166
167167 /// \tag::configure_clk_sys[]
168168 // CLK SYS = PLL SYS (usually) 125MHz / 1 = 125MHz
169169 clock_configure (clk_sys ,
170170 CLOCKS_CLK_SYS_CTRL_SRC_VALUE_CLKSRC_CLK_SYS_AUX ,
171171 CLOCKS_CLK_SYS_CTRL_AUXSRC_VALUE_CLKSRC_PLL_SYS ,
172- SYS_CLK_MHZ * MHZ ,
173- SYS_CLK_MHZ * MHZ );
172+ SYS_CLK_KHZ * KHZ ,
173+ SYS_CLK_KHZ * KHZ );
174174 /// \end::configure_clk_sys[]
175175
176176 // CLK USB = PLL USB 48MHz / 1 = 48MHz
177177 clock_configure (clk_usb ,
178178 0 , // No GLMUX
179179 CLOCKS_CLK_USB_CTRL_AUXSRC_VALUE_CLKSRC_PLL_USB ,
180- USB_CLK_MHZ * MHZ ,
181- USB_CLK_MHZ * MHZ );
180+ USB_CLK_KHZ * KHZ ,
181+ USB_CLK_KHZ * KHZ );
182182
183183 // CLK ADC = PLL USB 48MHZ / 1 = 48MHz
184184 clock_configure (clk_adc ,
185185 0 , // No GLMUX
186186 CLOCKS_CLK_ADC_CTRL_AUXSRC_VALUE_CLKSRC_PLL_USB ,
187- USB_CLK_MHZ * MHZ ,
188- USB_CLK_MHZ * MHZ );
187+ USB_CLK_KHZ * KHZ ,
188+ USB_CLK_KHZ * KHZ );
189189
190190 // CLK RTC = PLL USB 48MHz / 1024 = 46875Hz
191191 clock_configure (clk_rtc ,
192192 0 , // No GLMUX
193193 CLOCKS_CLK_RTC_CTRL_AUXSRC_VALUE_CLKSRC_PLL_USB ,
194- USB_CLK_MHZ * MHZ ,
194+ USB_CLK_KHZ * KHZ ,
195195 RTC_CLOCK_FREQ_HZ );
196196
197197 // CLK PERI = clk_sys. Used as reference clock for Peripherals. No dividers so just select and enable
198198 // Normally choose clk_sys or clk_usb
199199 clock_configure (clk_peri ,
200200 0 ,
201201 CLOCKS_CLK_PERI_CTRL_AUXSRC_VALUE_CLK_SYS ,
202- SYS_CLK_MHZ * MHZ ,
203- SYS_CLK_MHZ * MHZ );
202+ SYS_CLK_KHZ * KHZ ,
203+ SYS_CLK_KHZ * KHZ );
204204}
205205
206206/// \tag::clock_get_hz[]
0 commit comments