nutool_modclkcfg.c 23 KB

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