1 /****************************************************************************
2 * @file nutool_modclkcfg.c
3 * @version V1.05
4 * @Date 2020/04/15-11:28:38
5 * @brief NuMicro generated code file
6 *
7 * SPDX-License-Identifier: Apache-2.0
8 * Copyright (C) 2013-2020 Nuvoton Technology Corp. All rights reserved.
9 *****************************************************************************/
10
11 /********************
12 MCU:M487JIDAE(LQFP144)
13 Base Clocks:
14 HIRC:12MHz
15 LXT:32.7680kHz
16 HXT:12MHz
17 PLL:192MHz
18 HSUSB_OTG_PHY:30MHz
19 HCLK:192MHz
20 PCLK0:96MHz
21 PCLK1:96MHz
22 Enabled-Module Frequencies:
23 ACMP01=Bus Clock(PCLK1):96MHz
24 BPWM0=Bus Clock(PCLK0):96MHz/Engine Clock:96MHz
25 BPWM1=Bus Clock(PCLK1):96MHz/Engine Clock:96MHz
26 CAN0=Bus Clock(PCLK0):96MHz
27 CAN1=Bus Clock(PCLK1):96MHz
28 CRC=Bus Clock(HCLK):192MHz
29 CRPT=Bus Clock(HCLK):192MHz
30 DAC=Bus Clock(PCLK1):96MHz
31 EADC=Bus Clock(PCLK1):96MHz/Engine Clock:12MHz
32 EBI=Bus Clock(HCLK):192MHz
33 ECAP0=Bus Clock(PCLK0):96MHz
34 ECAP1=Bus Clock(PCLK1):96MHz
35 EMAC=Bus Clock(HCLK):192MHz/Engine Clock:1.5118MHz
36 EPWM0=Bus Clock(PCLK0):96MHz/Engine Clock:96MHz
37 EPWM1=Bus Clock(PCLK1):96MHz/Engine Clock:96MHz
38 FMCIDLE=Bus Clock(HCLK):192MHz/Engine Clock:12MHz
39 HSOTG=Bus Clock(PCLK1):96MHz/Engine Clock:30MHz
40 HSUSBD=Bus Clock(HCLK):192MHz/Engine Clock:30MHz
41 HSUSBH=Bus Clock(HCLK):192MHz/Engine Clock:30MHz
42 I2C0=Bus Clock(PCLK0):96MHz
43 I2C1=Bus Clock(PCLK1):96MHz
44 I2C2=Bus Clock(PCLK0):96MHz
45 I2S0=Bus Clock(PCLK0):96MHz/Engine Clock:12MHz
46 ISP=Bus Clock(HCLK):192MHz/Engine Clock:12MHz
47 OPA=Bus Clock(PCLK0):96MHz
48 OTG=Bus Clock(PCLK1):96MHz/Engine Clock:192MHz
49 PDMA=Bus Clock(HCLK):192MHz
50 QEI0=Bus Clock(PCLK0):96MHz
51 QEI1=Bus Clock(PCLK1):96MHz
52 QSPI0=Bus Clock(PCLK0):96MHz/Engine Clock:96MHz
53 RTC=Bus Clock(PCLK1):96MHz/Engine Clock:32.7680kHz
54 SC0=Bus Clock(PCLK0):96MHz/Engine Clock:12MHz
55 SC1=Bus Clock(PCLK1):96MHz/Engine Clock:12MHz
56 SC2=Bus Clock(PCLK0):96MHz/Engine Clock:12MHz
57 SDH0=Bus Clock(HCLK):192MHz/Engine Clock:192MHz
58 SDH1=Bus Clock(HCLK):192MHz/Engine Clock:192MHz
59 SPI0=Bus Clock(PCLK1):96MHz/Engine Clock:96MHz
60 SPI1=Bus Clock(PCLK0):96MHz/Engine Clock:96MHz
61 SPI2=Bus Clock(PCLK1):96MHz/Engine Clock:96MHz
62 SPI3=Bus Clock(PCLK0):96MHz/Engine Clock:96MHz
63 SPIM=Bus Clock(HCLK):192MHz
64 SYSTICK=Bus Clock(HCLK):192MHz/Engine Clock:192MHz
65 TMR0=Bus Clock(PCLK0):96MHz/Engine Clock:12MHz
66 TMR1=Bus Clock(PCLK0):96MHz/Engine Clock:12MHz
67 TMR2=Bus Clock(PCLK1):96MHz/Engine Clock:12MHz
68 TMR3=Bus Clock(PCLK1):96MHz/Engine Clock:12MHz
69 UART0=Bus Clock(PCLK0):96MHz/Engine Clock:12MHz
70 UART1=Bus Clock(PCLK1):96MHz/Engine Clock:12MHz
71 UART2=Bus Clock(PCLK0):96MHz/Engine Clock:12MHz
72 UART3=Bus Clock(PCLK1):96MHz/Engine Clock:12MHz
73 UART4=Bus Clock(PCLK0):96MHz/Engine Clock:12MHz
74 UART5=Bus Clock(PCLK1):96MHz/Engine Clock:12MHz
75 USBD=Bus Clock(PCLK0):96MHz/Engine Clock:48MHz
76 USBH=Bus Clock(HCLK):192MHz/Engine Clock:48MHz
77 USCI0=Bus Clock(PCLK0):96MHz
78 USCI1=Bus Clock(PCLK1):96MHz
79 WDT=Bus Clock(PCLK0):96MHz/Engine Clock:32.7680kHz
80 WWDT=Bus Clock(PCLK0):96MHz/Engine Clock:93.7500kHz
81 ********************/
82
83 #include "M480.h"
84 #include "rtconfig.h"
85
nutool_modclkcfg_init_acmp01(void)86 void nutool_modclkcfg_init_acmp01(void)
87 {
88 CLK_EnableModuleClock(ACMP01_MODULE);
89
90 return;
91 }
92
nutool_modclkcfg_deinit_acmp01(void)93 void nutool_modclkcfg_deinit_acmp01(void)
94 {
95 CLK_DisableModuleClock(ACMP01_MODULE);
96
97 return;
98 }
99
nutool_modclkcfg_init_bpwm0(void)100 void nutool_modclkcfg_init_bpwm0(void)
101 {
102 CLK_EnableModuleClock(BPWM0_MODULE);
103 CLK_SetModuleClock(BPWM0_MODULE, CLK_CLKSEL2_BPWM0SEL_PCLK0, MODULE_NoMsk);
104
105 return;
106 }
107
nutool_modclkcfg_deinit_bpwm0(void)108 void nutool_modclkcfg_deinit_bpwm0(void)
109 {
110 CLK_DisableModuleClock(BPWM0_MODULE);
111
112 return;
113 }
114
nutool_modclkcfg_init_bpwm1(void)115 void nutool_modclkcfg_init_bpwm1(void)
116 {
117 CLK_EnableModuleClock(BPWM1_MODULE);
118 CLK_SetModuleClock(BPWM1_MODULE, CLK_CLKSEL2_BPWM1SEL_PCLK1, MODULE_NoMsk);
119
120 return;
121 }
122
nutool_modclkcfg_deinit_bpwm1(void)123 void nutool_modclkcfg_deinit_bpwm1(void)
124 {
125 CLK_DisableModuleClock(BPWM1_MODULE);
126
127 return;
128 }
129
nutool_modclkcfg_init_can0(void)130 void nutool_modclkcfg_init_can0(void)
131 {
132 CLK_EnableModuleClock(CAN0_MODULE);
133
134 return;
135 }
136
nutool_modclkcfg_deinit_can0(void)137 void nutool_modclkcfg_deinit_can0(void)
138 {
139 CLK_DisableModuleClock(CAN0_MODULE);
140
141 return;
142 }
143
nutool_modclkcfg_init_can1(void)144 void nutool_modclkcfg_init_can1(void)
145 {
146 CLK_EnableModuleClock(CAN1_MODULE);
147
148 return;
149 }
150
nutool_modclkcfg_deinit_can1(void)151 void nutool_modclkcfg_deinit_can1(void)
152 {
153 CLK_DisableModuleClock(CAN1_MODULE);
154
155 return;
156 }
157
nutool_modclkcfg_init_crc(void)158 void nutool_modclkcfg_init_crc(void)
159 {
160 CLK_EnableModuleClock(CRC_MODULE);
161
162 return;
163 }
164
nutool_modclkcfg_deinit_crc(void)165 void nutool_modclkcfg_deinit_crc(void)
166 {
167 CLK_DisableModuleClock(CRC_MODULE);
168
169 return;
170 }
171
nutool_modclkcfg_init_crpt(void)172 void nutool_modclkcfg_init_crpt(void)
173 {
174 CLK_EnableModuleClock(CRPT_MODULE);
175
176 return;
177 }
178
nutool_modclkcfg_deinit_crpt(void)179 void nutool_modclkcfg_deinit_crpt(void)
180 {
181 CLK_DisableModuleClock(CRPT_MODULE);
182
183 return;
184 }
185
nutool_modclkcfg_init_dac(void)186 void nutool_modclkcfg_init_dac(void)
187 {
188 CLK_EnableModuleClock(DAC_MODULE);
189
190 return;
191 }
192
nutool_modclkcfg_deinit_dac(void)193 void nutool_modclkcfg_deinit_dac(void)
194 {
195 CLK_DisableModuleClock(DAC_MODULE);
196
197 return;
198 }
199
nutool_modclkcfg_init_eadc(void)200 void nutool_modclkcfg_init_eadc(void)
201 {
202 CLK_EnableModuleClock(EADC_MODULE);
203 CLK_SetModuleClock(EADC_MODULE, MODULE_NoMsk, CLK_CLKDIV0_EADC(8));
204
205 return;
206 }
207
nutool_modclkcfg_deinit_eadc(void)208 void nutool_modclkcfg_deinit_eadc(void)
209 {
210 CLK_DisableModuleClock(EADC_MODULE);
211
212 return;
213 }
214
nutool_modclkcfg_init_ebi(void)215 void nutool_modclkcfg_init_ebi(void)
216 {
217 CLK_EnableModuleClock(EBI_MODULE);
218
219 return;
220 }
221
nutool_modclkcfg_deinit_ebi(void)222 void nutool_modclkcfg_deinit_ebi(void)
223 {
224 CLK_DisableModuleClock(EBI_MODULE);
225
226 return;
227 }
228
nutool_modclkcfg_init_ecap0(void)229 void nutool_modclkcfg_init_ecap0(void)
230 {
231 CLK_EnableModuleClock(ECAP0_MODULE);
232
233 return;
234 }
235
nutool_modclkcfg_deinit_ecap0(void)236 void nutool_modclkcfg_deinit_ecap0(void)
237 {
238 CLK_DisableModuleClock(ECAP0_MODULE);
239
240 return;
241 }
242
nutool_modclkcfg_init_ecap1(void)243 void nutool_modclkcfg_init_ecap1(void)
244 {
245 CLK_EnableModuleClock(ECAP1_MODULE);
246
247 return;
248 }
249
nutool_modclkcfg_deinit_ecap1(void)250 void nutool_modclkcfg_deinit_ecap1(void)
251 {
252 CLK_DisableModuleClock(ECAP1_MODULE);
253
254 return;
255 }
256
nutool_modclkcfg_init_emac(void)257 void nutool_modclkcfg_init_emac(void)
258 {
259 CLK_EnableModuleClock(EMAC_MODULE);
260 CLK_SetModuleClock(EMAC_MODULE, MODULE_NoMsk, CLK_CLKDIV3_EMAC(127));
261
262 return;
263 }
264
nutool_modclkcfg_deinit_emac(void)265 void nutool_modclkcfg_deinit_emac(void)
266 {
267 CLK_DisableModuleClock(EMAC_MODULE);
268
269 return;
270 }
271
nutool_modclkcfg_init_epwm0(void)272 void nutool_modclkcfg_init_epwm0(void)
273 {
274 CLK_EnableModuleClock(EPWM0_MODULE);
275 CLK_SetModuleClock(EPWM0_MODULE, CLK_CLKSEL2_EPWM0SEL_PCLK0, MODULE_NoMsk);
276
277 return;
278 }
279
nutool_modclkcfg_deinit_epwm0(void)280 void nutool_modclkcfg_deinit_epwm0(void)
281 {
282 CLK_DisableModuleClock(EPWM0_MODULE);
283
284 return;
285 }
286
nutool_modclkcfg_init_epwm1(void)287 void nutool_modclkcfg_init_epwm1(void)
288 {
289 CLK_EnableModuleClock(EPWM1_MODULE);
290 CLK_SetModuleClock(EPWM1_MODULE, CLK_CLKSEL2_EPWM1SEL_PCLK1, MODULE_NoMsk);
291
292 return;
293 }
294
nutool_modclkcfg_deinit_epwm1(void)295 void nutool_modclkcfg_deinit_epwm1(void)
296 {
297 CLK_DisableModuleClock(EPWM1_MODULE);
298
299 return;
300 }
301
nutool_modclkcfg_init_fmcidle(void)302 void nutool_modclkcfg_init_fmcidle(void)
303 {
304 CLK_EnableModuleClock(FMCIDLE_MODULE);
305
306 return;
307 }
308
nutool_modclkcfg_deinit_fmcidle(void)309 void nutool_modclkcfg_deinit_fmcidle(void)
310 {
311 CLK_DisableModuleClock(FMCIDLE_MODULE);
312
313 return;
314 }
315
nutool_modclkcfg_init_hsotg(void)316 void nutool_modclkcfg_init_hsotg(void)
317 {
318 CLK_EnableModuleClock(HSOTG_MODULE);
319
320 return;
321 }
322
nutool_modclkcfg_deinit_hsotg(void)323 void nutool_modclkcfg_deinit_hsotg(void)
324 {
325 CLK_DisableModuleClock(HSOTG_MODULE);
326
327 return;
328 }
329
nutool_modclkcfg_init_hsusbd(void)330 void nutool_modclkcfg_init_hsusbd(void)
331 {
332 CLK_EnableModuleClock(HSUSBD_MODULE);
333
334 return;
335 }
336
nutool_modclkcfg_deinit_hsusbd(void)337 void nutool_modclkcfg_deinit_hsusbd(void)
338 {
339 CLK_DisableModuleClock(HSUSBD_MODULE);
340
341 return;
342 }
343
nutool_modclkcfg_init_i2c0(void)344 void nutool_modclkcfg_init_i2c0(void)
345 {
346 CLK_EnableModuleClock(I2C0_MODULE);
347
348 return;
349 }
350
nutool_modclkcfg_deinit_i2c0(void)351 void nutool_modclkcfg_deinit_i2c0(void)
352 {
353 CLK_DisableModuleClock(I2C0_MODULE);
354
355 return;
356 }
357
nutool_modclkcfg_init_i2c1(void)358 void nutool_modclkcfg_init_i2c1(void)
359 {
360 CLK_EnableModuleClock(I2C1_MODULE);
361
362 return;
363 }
364
nutool_modclkcfg_deinit_i2c1(void)365 void nutool_modclkcfg_deinit_i2c1(void)
366 {
367 CLK_DisableModuleClock(I2C1_MODULE);
368
369 return;
370 }
371
nutool_modclkcfg_init_i2c2(void)372 void nutool_modclkcfg_init_i2c2(void)
373 {
374 CLK_EnableModuleClock(I2C2_MODULE);
375
376 return;
377 }
378
nutool_modclkcfg_deinit_i2c2(void)379 void nutool_modclkcfg_deinit_i2c2(void)
380 {
381 CLK_DisableModuleClock(I2C2_MODULE);
382
383 return;
384 }
385
nutool_modclkcfg_init_i2s0(void)386 void nutool_modclkcfg_init_i2s0(void)
387 {
388 CLK_EnableModuleClock(I2S0_MODULE);
389 CLK_SetModuleClock(I2S0_MODULE, CLK_CLKSEL3_I2S0SEL_HXT, MODULE_NoMsk);
390
391 return;
392 }
393
nutool_modclkcfg_deinit_i2s0(void)394 void nutool_modclkcfg_deinit_i2s0(void)
395 {
396 CLK_DisableModuleClock(I2S0_MODULE);
397
398 return;
399 }
400
nutool_modclkcfg_init_isp(void)401 void nutool_modclkcfg_init_isp(void)
402 {
403 CLK_EnableModuleClock(ISP_MODULE);
404
405 return;
406 }
407
nutool_modclkcfg_deinit_isp(void)408 void nutool_modclkcfg_deinit_isp(void)
409 {
410 CLK_DisableModuleClock(ISP_MODULE);
411
412 return;
413 }
414
nutool_modclkcfg_init_opa(void)415 void nutool_modclkcfg_init_opa(void)
416 {
417 CLK_EnableModuleClock(OPA_MODULE);
418
419 return;
420 }
421
nutool_modclkcfg_deinit_opa(void)422 void nutool_modclkcfg_deinit_opa(void)
423 {
424 CLK_DisableModuleClock(OPA_MODULE);
425
426 return;
427 }
428
nutool_modclkcfg_init_otg(void)429 void nutool_modclkcfg_init_otg(void)
430 {
431 CLK_EnableModuleClock(OTG_MODULE);
432 CLK_SetModuleClock(OTG_MODULE, MODULE_NoMsk, CLK_CLKDIV0_USB(1));
433
434 return;
435 }
436
nutool_modclkcfg_deinit_otg(void)437 void nutool_modclkcfg_deinit_otg(void)
438 {
439 CLK_DisableModuleClock(OTG_MODULE);
440
441 return;
442 }
443
nutool_modclkcfg_init_pdma(void)444 void nutool_modclkcfg_init_pdma(void)
445 {
446 CLK_EnableModuleClock(PDMA_MODULE);
447
448 return;
449 }
450
nutool_modclkcfg_deinit_pdma(void)451 void nutool_modclkcfg_deinit_pdma(void)
452 {
453 CLK_DisableModuleClock(PDMA_MODULE);
454
455 return;
456 }
457
nutool_modclkcfg_init_qei0(void)458 void nutool_modclkcfg_init_qei0(void)
459 {
460 CLK_EnableModuleClock(QEI0_MODULE);
461
462 return;
463 }
464
nutool_modclkcfg_deinit_qei0(void)465 void nutool_modclkcfg_deinit_qei0(void)
466 {
467 CLK_DisableModuleClock(QEI0_MODULE);
468
469 return;
470 }
471
nutool_modclkcfg_init_qei1(void)472 void nutool_modclkcfg_init_qei1(void)
473 {
474 CLK_EnableModuleClock(QEI1_MODULE);
475
476 return;
477 }
478
nutool_modclkcfg_deinit_qei1(void)479 void nutool_modclkcfg_deinit_qei1(void)
480 {
481 CLK_DisableModuleClock(QEI1_MODULE);
482
483 return;
484 }
485
nutool_modclkcfg_init_qspi0(void)486 void nutool_modclkcfg_init_qspi0(void)
487 {
488 CLK_EnableModuleClock(QSPI0_MODULE);
489 CLK_SetModuleClock(QSPI0_MODULE, CLK_CLKSEL2_QSPI0SEL_PCLK0, MODULE_NoMsk);
490
491 return;
492 }
493
nutool_modclkcfg_deinit_qspi0(void)494 void nutool_modclkcfg_deinit_qspi0(void)
495 {
496 CLK_DisableModuleClock(QSPI0_MODULE);
497
498 return;
499 }
500
nutool_modclkcfg_init_rtc(void)501 void nutool_modclkcfg_init_rtc(void)
502 {
503 CLK_EnableModuleClock(RTC_MODULE);
504 CLK_SetModuleClock(RTC_MODULE, CLK_CLKSEL3_RTCSEL_LXT, MODULE_NoMsk);
505
506 return;
507 }
508
nutool_modclkcfg_deinit_rtc(void)509 void nutool_modclkcfg_deinit_rtc(void)
510 {
511 CLK_DisableModuleClock(RTC_MODULE);
512
513 return;
514 }
515
nutool_modclkcfg_init_sc0(void)516 void nutool_modclkcfg_init_sc0(void)
517 {
518 CLK_EnableModuleClock(SC0_MODULE);
519 CLK_SetModuleClock(SC0_MODULE, CLK_CLKSEL3_SC0SEL_HXT, CLK_CLKDIV1_SC0(1));
520
521 return;
522 }
523
nutool_modclkcfg_deinit_sc0(void)524 void nutool_modclkcfg_deinit_sc0(void)
525 {
526 CLK_DisableModuleClock(SC0_MODULE);
527
528 return;
529 }
530
nutool_modclkcfg_init_sc1(void)531 void nutool_modclkcfg_init_sc1(void)
532 {
533 CLK_EnableModuleClock(SC1_MODULE);
534 CLK_SetModuleClock(SC1_MODULE, CLK_CLKSEL3_SC1SEL_HXT, CLK_CLKDIV1_SC1(1));
535
536 return;
537 }
538
nutool_modclkcfg_deinit_sc1(void)539 void nutool_modclkcfg_deinit_sc1(void)
540 {
541 CLK_DisableModuleClock(SC1_MODULE);
542
543 return;
544 }
545
nutool_modclkcfg_init_sc2(void)546 void nutool_modclkcfg_init_sc2(void)
547 {
548 CLK_EnableModuleClock(SC2_MODULE);
549 CLK_SetModuleClock(SC2_MODULE, CLK_CLKSEL3_SC2SEL_HXT, CLK_CLKDIV1_SC2(1));
550
551 return;
552 }
553
nutool_modclkcfg_deinit_sc2(void)554 void nutool_modclkcfg_deinit_sc2(void)
555 {
556 CLK_DisableModuleClock(SC2_MODULE);
557
558 return;
559 }
560
nutool_modclkcfg_init_sdh0(void)561 void nutool_modclkcfg_init_sdh0(void)
562 {
563 CLK_EnableModuleClock(SDH0_MODULE);
564 CLK_SetModuleClock(SDH0_MODULE, CLK_CLKSEL0_SDH0SEL_HCLK, CLK_CLKDIV0_SDH0(4));
565
566 return;
567 }
568
nutool_modclkcfg_deinit_sdh0(void)569 void nutool_modclkcfg_deinit_sdh0(void)
570 {
571 CLK_DisableModuleClock(SDH0_MODULE);
572
573 return;
574 }
575
nutool_modclkcfg_init_sdh1(void)576 void nutool_modclkcfg_init_sdh1(void)
577 {
578 CLK_EnableModuleClock(SDH1_MODULE);
579 CLK_SetModuleClock(SDH1_MODULE, CLK_CLKSEL0_SDH1SEL_HCLK, CLK_CLKDIV3_SDH1(1));
580
581 return;
582 }
583
nutool_modclkcfg_deinit_sdh1(void)584 void nutool_modclkcfg_deinit_sdh1(void)
585 {
586 CLK_DisableModuleClock(SDH1_MODULE);
587
588 return;
589 }
590
nutool_modclkcfg_init_spi0(void)591 void nutool_modclkcfg_init_spi0(void)
592 {
593 CLK_EnableModuleClock(SPI0_MODULE);
594 CLK_SetModuleClock(SPI0_MODULE, CLK_CLKSEL2_SPI0SEL_PCLK1, MODULE_NoMsk);
595
596 return;
597 }
598
nutool_modclkcfg_deinit_spi0(void)599 void nutool_modclkcfg_deinit_spi0(void)
600 {
601 CLK_DisableModuleClock(SPI0_MODULE);
602
603 return;
604 }
605
nutool_modclkcfg_init_spi1(void)606 void nutool_modclkcfg_init_spi1(void)
607 {
608 CLK_EnableModuleClock(SPI1_MODULE);
609 CLK_SetModuleClock(SPI1_MODULE, CLK_CLKSEL2_SPI1SEL_PCLK0, MODULE_NoMsk);
610
611 return;
612 }
613
nutool_modclkcfg_deinit_spi1(void)614 void nutool_modclkcfg_deinit_spi1(void)
615 {
616 CLK_DisableModuleClock(SPI1_MODULE);
617
618 return;
619 }
620
nutool_modclkcfg_init_spi2(void)621 void nutool_modclkcfg_init_spi2(void)
622 {
623 CLK_EnableModuleClock(SPI2_MODULE);
624 CLK_SetModuleClock(SPI2_MODULE, CLK_CLKSEL2_SPI2SEL_PCLK1, MODULE_NoMsk);
625
626 return;
627 }
628
nutool_modclkcfg_deinit_spi2(void)629 void nutool_modclkcfg_deinit_spi2(void)
630 {
631 CLK_DisableModuleClock(SPI2_MODULE);
632
633 return;
634 }
635
nutool_modclkcfg_init_spi3(void)636 void nutool_modclkcfg_init_spi3(void)
637 {
638 CLK_EnableModuleClock(SPI3_MODULE);
639 CLK_SetModuleClock(SPI3_MODULE, CLK_CLKSEL2_SPI3SEL_PCLK0, MODULE_NoMsk);
640
641 return;
642 }
643
nutool_modclkcfg_deinit_spi3(void)644 void nutool_modclkcfg_deinit_spi3(void)
645 {
646 CLK_DisableModuleClock(SPI3_MODULE);
647
648 return;
649 }
650
nutool_modclkcfg_init_spim(void)651 void nutool_modclkcfg_init_spim(void)
652 {
653 CLK_EnableModuleClock(SPIM_MODULE);
654
655 return;
656 }
657
nutool_modclkcfg_deinit_spim(void)658 void nutool_modclkcfg_deinit_spim(void)
659 {
660 CLK_DisableModuleClock(SPIM_MODULE);
661
662 return;
663 }
664
nutool_modclkcfg_init_systick(void)665 void nutool_modclkcfg_init_systick(void)
666 {
667 CLK_EnableSysTick(CLK_CLKSEL0_STCLKSEL_HCLK, 0);
668
669 return;
670 }
671
nutool_modclkcfg_deinit_systick(void)672 void nutool_modclkcfg_deinit_systick(void)
673 {
674 CLK_DisableSysTick();
675
676 return;
677 }
678
nutool_modclkcfg_init_tmr0(void)679 void nutool_modclkcfg_init_tmr0(void)
680 {
681 CLK_EnableModuleClock(TMR0_MODULE);
682 CLK_SetModuleClock(TMR0_MODULE, CLK_CLKSEL1_TMR0SEL_HXT, MODULE_NoMsk);
683
684 return;
685 }
686
nutool_modclkcfg_deinit_tmr0(void)687 void nutool_modclkcfg_deinit_tmr0(void)
688 {
689 CLK_DisableModuleClock(TMR0_MODULE);
690
691 return;
692 }
693
nutool_modclkcfg_init_tmr1(void)694 void nutool_modclkcfg_init_tmr1(void)
695 {
696 CLK_EnableModuleClock(TMR1_MODULE);
697 CLK_SetModuleClock(TMR1_MODULE, CLK_CLKSEL1_TMR1SEL_HXT, MODULE_NoMsk);
698
699 return;
700 }
701
nutool_modclkcfg_deinit_tmr1(void)702 void nutool_modclkcfg_deinit_tmr1(void)
703 {
704 CLK_DisableModuleClock(TMR1_MODULE);
705
706 return;
707 }
708
nutool_modclkcfg_init_tmr2(void)709 void nutool_modclkcfg_init_tmr2(void)
710 {
711 CLK_EnableModuleClock(TMR2_MODULE);
712 CLK_SetModuleClock(TMR2_MODULE, CLK_CLKSEL1_TMR2SEL_HXT, MODULE_NoMsk);
713
714 return;
715 }
716
nutool_modclkcfg_deinit_tmr2(void)717 void nutool_modclkcfg_deinit_tmr2(void)
718 {
719 CLK_DisableModuleClock(TMR2_MODULE);
720
721 return;
722 }
723
nutool_modclkcfg_init_tmr3(void)724 void nutool_modclkcfg_init_tmr3(void)
725 {
726 CLK_EnableModuleClock(TMR3_MODULE);
727 CLK_SetModuleClock(TMR3_MODULE, CLK_CLKSEL1_TMR3SEL_HXT, MODULE_NoMsk);
728
729 return;
730 }
731
nutool_modclkcfg_deinit_tmr3(void)732 void nutool_modclkcfg_deinit_tmr3(void)
733 {
734 CLK_DisableModuleClock(TMR3_MODULE);
735
736 return;
737 }
738
nutool_modclkcfg_init_uart0(void)739 void nutool_modclkcfg_init_uart0(void)
740 {
741 CLK_EnableModuleClock(UART0_MODULE);
742 CLK_SetModuleClock(UART0_MODULE, CLK_CLKSEL1_UART0SEL_HXT, CLK_CLKDIV0_UART0(1));
743
744 return;
745 }
746
nutool_modclkcfg_deinit_uart0(void)747 void nutool_modclkcfg_deinit_uart0(void)
748 {
749 CLK_DisableModuleClock(UART0_MODULE);
750
751 return;
752 }
753
nutool_modclkcfg_init_uart1(void)754 void nutool_modclkcfg_init_uart1(void)
755 {
756 CLK_EnableModuleClock(UART1_MODULE);
757 CLK_SetModuleClock(UART1_MODULE, CLK_CLKSEL1_UART1SEL_HXT, CLK_CLKDIV0_UART1(1));
758
759 return;
760 }
761
nutool_modclkcfg_deinit_uart1(void)762 void nutool_modclkcfg_deinit_uart1(void)
763 {
764 CLK_DisableModuleClock(UART1_MODULE);
765
766 return;
767 }
768
nutool_modclkcfg_init_uart2(void)769 void nutool_modclkcfg_init_uart2(void)
770 {
771 CLK_EnableModuleClock(UART2_MODULE);
772 CLK_SetModuleClock(UART2_MODULE, CLK_CLKSEL3_UART2SEL_HXT, CLK_CLKDIV4_UART2(1));
773
774 return;
775 }
776
nutool_modclkcfg_deinit_uart2(void)777 void nutool_modclkcfg_deinit_uart2(void)
778 {
779 CLK_DisableModuleClock(UART2_MODULE);
780
781 return;
782 }
783
nutool_modclkcfg_init_uart3(void)784 void nutool_modclkcfg_init_uart3(void)
785 {
786 CLK_EnableModuleClock(UART3_MODULE);
787 CLK_SetModuleClock(UART3_MODULE, CLK_CLKSEL3_UART3SEL_HXT, CLK_CLKDIV4_UART3(1));
788
789 return;
790 }
791
nutool_modclkcfg_deinit_uart3(void)792 void nutool_modclkcfg_deinit_uart3(void)
793 {
794 CLK_DisableModuleClock(UART3_MODULE);
795
796 return;
797 }
798
nutool_modclkcfg_init_uart4(void)799 void nutool_modclkcfg_init_uart4(void)
800 {
801 CLK_EnableModuleClock(UART4_MODULE);
802 CLK_SetModuleClock(UART4_MODULE, CLK_CLKSEL3_UART4SEL_HXT, CLK_CLKDIV4_UART4(1));
803
804 return;
805 }
806
nutool_modclkcfg_deinit_uart4(void)807 void nutool_modclkcfg_deinit_uart4(void)
808 {
809 CLK_DisableModuleClock(UART4_MODULE);
810
811 return;
812 }
813
nutool_modclkcfg_init_uart5(void)814 void nutool_modclkcfg_init_uart5(void)
815 {
816 CLK_EnableModuleClock(UART5_MODULE);
817 CLK_SetModuleClock(UART5_MODULE, CLK_CLKSEL3_UART5SEL_HXT, CLK_CLKDIV4_UART5(1));
818
819 return;
820 }
821
nutool_modclkcfg_deinit_uart5(void)822 void nutool_modclkcfg_deinit_uart5(void)
823 {
824 CLK_DisableModuleClock(UART5_MODULE);
825
826 return;
827 }
828
nutool_modclkcfg_init_usbd(void)829 void nutool_modclkcfg_init_usbd(void)
830 {
831 CLK_EnableModuleClock(USBD_MODULE);
832 CLK_SetModuleClock(USBD_MODULE, CLK_CLKSEL0_USBSEL_PLL, CLK_CLKDIV0_USB(4));
833
834 return;
835 }
836
nutool_modclkcfg_deinit_usbd(void)837 void nutool_modclkcfg_deinit_usbd(void)
838 {
839 CLK_DisableModuleClock(USBD_MODULE);
840
841 return;
842 }
843
nutool_modclkcfg_init_usbh(void)844 void nutool_modclkcfg_init_usbh(void)
845 {
846 CLK_EnableModuleClock(USBH_MODULE);
847 CLK_SetModuleClock(USBH_MODULE, CLK_CLKSEL0_USBSEL_PLL, CLK_CLKDIV0_USB(4));
848
849 return;
850 }
851
nutool_modclkcfg_deinit_usbh(void)852 void nutool_modclkcfg_deinit_usbh(void)
853 {
854 CLK_DisableModuleClock(USBH_MODULE);
855
856 return;
857 }
858
nutool_modclkcfg_init_usci0(void)859 void nutool_modclkcfg_init_usci0(void)
860 {
861 CLK_EnableModuleClock(USCI0_MODULE);
862
863 return;
864 }
865
nutool_modclkcfg_deinit_usci0(void)866 void nutool_modclkcfg_deinit_usci0(void)
867 {
868 CLK_DisableModuleClock(USCI0_MODULE);
869
870 return;
871 }
872
nutool_modclkcfg_init_usci1(void)873 void nutool_modclkcfg_init_usci1(void)
874 {
875 CLK_EnableModuleClock(USCI1_MODULE);
876
877 return;
878 }
879
nutool_modclkcfg_deinit_usci1(void)880 void nutool_modclkcfg_deinit_usci1(void)
881 {
882 CLK_DisableModuleClock(USCI1_MODULE);
883
884 return;
885 }
886
nutool_modclkcfg_init_wdt(void)887 void nutool_modclkcfg_init_wdt(void)
888 {
889 CLK_EnableModuleClock(WDT_MODULE);
890 CLK_SetModuleClock(WDT_MODULE, CLK_CLKSEL1_WDTSEL_LXT, MODULE_NoMsk);
891
892 return;
893 }
894
nutool_modclkcfg_deinit_wdt(void)895 void nutool_modclkcfg_deinit_wdt(void)
896 {
897 CLK_DisableModuleClock(WDT_MODULE);
898
899 return;
900 }
901
nutool_modclkcfg_init_wwdt(void)902 void nutool_modclkcfg_init_wwdt(void)
903 {
904 CLK_EnableModuleClock(WWDT_MODULE);
905 CLK_SetModuleClock(WWDT_MODULE, CLK_CLKSEL1_WWDTSEL_HCLK_DIV2048, MODULE_NoMsk);
906
907 return;
908 }
909
nutool_modclkcfg_deinit_wwdt(void)910 void nutool_modclkcfg_deinit_wwdt(void)
911 {
912 CLK_DisableModuleClock(WWDT_MODULE);
913
914 return;
915 }
916
nutool_modclkcfg_init_base(void)917 void nutool_modclkcfg_init_base(void)
918 {
919 /* Set XT1_OUT(PF.2) and XT1_IN(PF.3) to input mode */
920 PF->MODE &= ~(GPIO_MODE_MODE2_Msk | GPIO_MODE_MODE3_Msk);
921
922 /* Enable clock source */
923 CLK_EnableXtalRC(CLK_PWRCTL_HIRCEN_Msk | CLK_PWRCTL_LXTEN_Msk | CLK_PWRCTL_HXTEN_Msk);
924
925 /* Waiting for clock source ready */
926 CLK_WaitClockReady(CLK_STATUS_HIRCSTB_Msk | CLK_STATUS_LXTSTB_Msk | CLK_STATUS_HXTSTB_Msk);
927
928 /* Disable PLL first to avoid unstable when setting PLL */
929 CLK_DisablePLL();
930
931 /* Set PLL frequency */
932 CLK->PLLCTL = (CLK->PLLCTL & ~(0x000FFFFFul)) | 0x0000421Eul;
933
934 /* Waiting for PLL ready */
935 CLK_WaitClockReady(CLK_STATUS_PLLSTB_Msk);
936
937 /* If the defines do not exist in your project, please refer to the related clk.h in the Header folder appended to the tool package. */
938 /* Set HCLK clock */
939 CLK_SetHCLK(CLK_CLKSEL0_HCLKSEL_PLL, CLK_CLKDIV0_HCLK(1));
940
941 /* Set PCLK-related clock */
942 CLK->PCLKDIV = (CLK_PCLKDIV_PCLK0DIV2 | CLK_PCLKDIV_PCLK1DIV2);
943
944 return;
945 }
946
nutool_modclkcfg_init(void)947 void nutool_modclkcfg_init(void)
948 {
949 /*---------------------------------------------------------------------------------------------------------*/
950 /* Init System Clock */
951 /*---------------------------------------------------------------------------------------------------------*/
952 //CLK->PWRCTL = (CLK->PWRCTL & ~(0x0000000Ful)) | 0x00000017ul;
953 //CLK->PLLCTL = (CLK->PLLCTL & ~(0x000FFFFFul)) | 0x0000421Eul;
954 //CLK->CLKDIV0 = (CLK->CLKDIV0 & ~(0xFFFFFFFFul)) | 0x00070000ul;
955 //CLK->CLKDIV1 = (CLK->CLKDIV1 & ~(0x00FFFFFFul)) | 0x00000000ul;
956 //CLK->CLKDIV3 = (CLK->CLKDIV3 & ~(0xFFFF0000ul)) | 0x007E0000ul;
957 //CLK->CLKDIV4 = (CLK->CLKDIV4 & ~(0x0000FFFFul)) | 0x00000000ul;
958 //CLK->PCLKDIV = (CLK->PCLKDIV & ~(0x00000077ul)) | 0x00000011ul;
959 //CLK->CLKSEL0 = (CLK->CLKSEL0 & ~(0x00F0003Ful)) | 0x00A30102ul;
960 //CLK->CLKSEL1 = (CLK->CLKSEL1 & ~(0xFF777703ul)) | 0xB0000001ul;
961 //CLK->CLKSEL2 = (CLK->CLKSEL2 & ~(0x00003FFFul)) | 0x00002BABul;
962 //CLK->CLKSEL3 = (CLK->CLKSEL3 & ~(0xFF03023Ful)) | 0x00000000ul;
963 //CLK->AHBCLK = (CLK->AHBCLK & ~(0x0003D4EEul)) | 0x0003D4EEul;
964 //CLK->APBCLK0 = (CLK->APBCLK0 & ~(0x7F3FF7FFul)) | 0x7F3FF7BFul;
965 //CLK->APBCLK1 = (CLK->APBCLK1 & ~(0x4CCF1347ul)) | 0x4CCF1347ul;
966 //CLK->CLKOCTL = (CLK->CLKOCTL & ~(0x0000007Ful)) | 0x00000000ul;
967 //SysTick->CTRL = (SysTick->CTRL & ~(0x00000005ul)) | 0x00000005ul;
968
969 /* Unlock protected registers */
970 SYS_UnlockReg();
971
972 /* Enable base clock */
973 nutool_modclkcfg_init_base();
974
975 /* Enable module clock and set clock source */
976 #if defined(BSP_USING_ACMP01)
977 nutool_modclkcfg_init_acmp01();
978 #endif
979 #if defined(BSP_USING_BPWM0)
980 nutool_modclkcfg_init_bpwm0();
981 #endif
982 #if defined(BSP_USING_BPWM1)
983 nutool_modclkcfg_init_bpwm1();
984 #endif
985 #if defined(BSP_USING_CAN0)
986 nutool_modclkcfg_init_can0();
987 #endif
988 #if defined(BSP_USING_CAN1)
989 nutool_modclkcfg_init_can1();
990 #endif
991 #if defined(BSP_USING_CRC)
992 nutool_modclkcfg_init_crc();
993 #endif
994 #if defined(BSP_USING_CRYPTO)
995 nutool_modclkcfg_init_crpt();
996 #endif
997 #if defined(BSP_USING_DAC)
998 nutool_modclkcfg_init_dac();
999 #endif
1000 #if defined(BSP_USING_EADC)
1001 nutool_modclkcfg_init_eadc();
1002 #endif
1003 #if defined(BSP_USING_EBI)
1004 nutool_modclkcfg_init_ebi();
1005 #endif
1006 #if defined(BSP_USING_ECAP0)
1007 nutool_modclkcfg_init_ecap0();
1008 #endif
1009 #if defined(BSP_USING_ECAP1)
1010 nutool_modclkcfg_init_ecap1();
1011 #endif
1012 #if defined(BSP_USING_EMAC)
1013 nutool_modclkcfg_init_emac();
1014 #endif
1015 #if defined(BSP_USING_EPWM0)
1016 nutool_modclkcfg_init_epwm0();
1017 #endif
1018 #if defined(BSP_USING_EPWM1)
1019 nutool_modclkcfg_init_epwm1();
1020 #endif
1021 #if defined(BSP_USING_FMC)
1022 nutool_modclkcfg_init_fmcidle();
1023 #endif
1024 #if defined(BSP_USING_HSOTG)
1025 nutool_modclkcfg_init_hsotg();
1026 #endif
1027 #if defined(BSP_USING_HSUSBD)
1028 nutool_modclkcfg_init_hsusbd();
1029 #endif
1030 #if defined(BSP_USING_I2C0)
1031 nutool_modclkcfg_init_i2c0();
1032 #endif
1033 #if defined(BSP_USING_I2C1)
1034 nutool_modclkcfg_init_i2c1();
1035 #endif
1036 #if defined(BSP_USING_I2C2)
1037 nutool_modclkcfg_init_i2c2();
1038 #endif
1039 #if defined(BSP_USING_I2S)
1040 nutool_modclkcfg_init_i2s0();
1041 #endif
1042 #if defined(BSP_USING_FMC)
1043 nutool_modclkcfg_init_isp();
1044 #endif
1045 #if defined(BSP_USING_OPA)
1046 nutool_modclkcfg_init_opa();
1047 #endif
1048 #if defined(BSP_USING_OTG) || defined(BSP_USING_USBH)
1049 nutool_modclkcfg_init_otg();
1050 #endif
1051 #if defined(BSP_USING_PDMA)
1052 nutool_modclkcfg_init_pdma();
1053 #endif
1054 #if defined(BSP_USING_QEI0)
1055 nutool_modclkcfg_init_qei0();
1056 #endif
1057 #if defined(BSP_USING_QEI1)
1058 nutool_modclkcfg_init_qei1();
1059 #endif
1060 #if defined(BSP_USING_QSPI0)
1061 nutool_modclkcfg_init_qspi0();
1062 #endif
1063 #if defined(BSP_USING_RTC)
1064 nutool_modclkcfg_init_rtc();
1065 #endif
1066 #if defined(BSP_USING_SCUART0)
1067 nutool_modclkcfg_init_sc0();
1068 #endif
1069 #if defined(BSP_USING_SCUART1)
1070 nutool_modclkcfg_init_sc1();
1071 #endif
1072 #if defined(BSP_USING_SCUART2)
1073 nutool_modclkcfg_init_sc2();
1074 #endif
1075 #if defined(BSP_USING_SDH0)
1076 nutool_modclkcfg_init_sdh0();
1077 #endif
1078 #if defined(BSP_USING_SDH1)
1079 nutool_modclkcfg_init_sdh1();
1080 #endif
1081 #if defined(BSP_USING_SPI0) || defined(BSP_USING_SPII2S0)
1082 nutool_modclkcfg_init_spi0();
1083 #endif
1084 #if defined(BSP_USING_SPI1) || defined(BSP_USING_SPII2S1)
1085 nutool_modclkcfg_init_spi1();
1086 #endif
1087 #if defined(BSP_USING_SPI2) || defined(BSP_USING_SPII2S2)
1088 nutool_modclkcfg_init_spi2();
1089 #endif
1090 #if defined(BSP_USING_SPI3) || defined(BSP_USING_SPII2S3)
1091 nutool_modclkcfg_init_spi3();
1092 #endif
1093 nutool_modclkcfg_init_systick();
1094 #if defined(BSP_USING_TMR0)
1095 nutool_modclkcfg_init_tmr0();
1096 #endif
1097 #if defined(BSP_USING_TMR1)
1098 nutool_modclkcfg_init_tmr1();
1099 #endif
1100 #if defined(BSP_USING_TMR2)
1101 nutool_modclkcfg_init_tmr2();
1102 #endif
1103 #if defined(BSP_USING_TMR3)
1104 nutool_modclkcfg_init_tmr3();
1105 #endif
1106 #if defined(BSP_USING_UART0)
1107 nutool_modclkcfg_init_uart0();
1108 #endif
1109 #if defined(BSP_USING_UART1)
1110 nutool_modclkcfg_init_uart1();
1111 #endif
1112 #if defined(BSP_USING_UART2)
1113 nutool_modclkcfg_init_uart2();
1114 #endif
1115 #if defined(BSP_USING_UART3)
1116 nutool_modclkcfg_init_uart3();
1117 #endif
1118 #if defined(BSP_USING_UART4)
1119 nutool_modclkcfg_init_uart4();
1120 #endif
1121 #if defined(BSP_USING_UART5)
1122 nutool_modclkcfg_init_uart5();
1123 #endif
1124 #if defined(BSP_USING_USBD) || defined(BSP_USING_USBH)
1125 nutool_modclkcfg_init_usbd();
1126 #endif
1127 #if defined(BSP_USING_USBH) || defined(BSP_USING_HSUSBH)
1128 nutool_modclkcfg_init_usbh();
1129 #endif
1130 #if defined(BSP_USING_USCI0)
1131 nutool_modclkcfg_init_usci0();
1132 #endif
1133 #if defined(BSP_USING_USCI1)
1134 nutool_modclkcfg_init_usci1();
1135 #endif
1136 #if defined(BSP_USING_WDT)
1137 nutool_modclkcfg_init_wdt();
1138 #endif
1139 #if defined(BSP_USING_WWDT)
1140 nutool_modclkcfg_init_wwdt();
1141 #endif
1142
1143 /* Update System Core Clock */
1144 /* User can use SystemCoreClockUpdate() to calculate SystemCoreClock. */
1145 SystemCoreClockUpdate();
1146
1147 /* Lock protected registers */
1148 SYS_LockReg();
1149
1150 return;
1151 }
1152
1153 /*** (C) COPYRIGHT 2013-2020 Nuvoton Technology Corp. ***/
1154