Reset dan Pengaturan Clock pada NUC140

Reset Sistem

Reset sistem dapat terjadi atau dapat dilakukan dengan salah satu sebab berikut ini (flags untuk reset ini dapat dibaca pada register RSTSCR):

  • The Power-On Reset (reset saat chip diberikan catu daya alias di-ON-kan);
  • The low level on the /RESET pin (level LOW pada masukan pin RESET);
  • Watchdog Time Out Reset (reset karena time out pada pewaktu watchdog)
  • Low Voltage Reset (reset karena terjadi tegangan rendah);
  • Brown-Out Detector Reset (reset karena terdeteksi brown-out alias terjadi drop pada catu daya);
  • CPU Reset; dan
  • System Reset (Reset Sistem).

Reset sistem dan reset Power-On akan me-reset chip dan semua periferal. Bedanya terletak pada rangkaian eksternal kristal dan bit ISPCON.BS. Reset sistem tidak akan me-reset rangkaian kristal eksternal maupun bit ISPCON.BS, tetapi reset power-on yang akan me-reset keduanya.

The clock controller generates the clocks for the whole chip, including system clocks and all peripheral clocks. The clock controller also implements the power control function with the individually clock ON/OFF control, clock source selection and a clock divider. The chip will not enter power down mode until CPU sets the power down enable bit (PWR_DOWN_EN) and Cortex-M0 core executes the WFI instruction. After that, chip enter power down mode and wait for wake-up interrupt source triggered to leave power down mode. In the power down mode, the clock controller turns off the external 4~24 MHz high speed crystal and internal 22.1184 MHz high speed oscillator to reduce the overall system power consumption.

Generator Detak (Clock Generator)

Terdapat 5 sumber Generator detak pada NUC140VE3CN (perhatikan juga gambarnya), yaitu:

  • Satu krital 32.768 kHz low speed eksternal (XTAL32K);
  • Satu kristal 4-24 MHz high speed eksternal (XTAL12M);
  • Satu osilator 22.1184 MHz high speed internal (OSC22M), dan
  • Satu osilator 10 kHz low speed internal (OSC10K).
  • Satu PLL FOUT  terprogram (sumber PLL memiliki kristal 4-24 MHz high speed eksternal dan osilator 22.1184 MHz high speed internal);

clock_01

Langkah mengatur Clock

Langkah mengatur CLOCK ini cukup sekali saja, yaitu pada program pertama yang akan dijalankan pada suatu board/chip (perhatikan juga gambarnya):

  1. Buka KUNCI register-register yang terproteksi (baris 5);
  2. Aktifkan sumber Clock yang dikehendaki (XTAL12M, XTAL32K, OSC22M atau OSC10K) – dimisalkan menggunakan XTAL 12 MHz (sesuai NUC140LB, baris 8);
  3. Tunggulah agar Clock-nya stabil (baris 9);
  4. Atur clock-nya 50 MHz sesuai board NUC140LB-nya (baris 10);
  5. KUNCI kembali register-register yang terproteksi (baris 13).

clock_02

Berikut ini beberapa fungsi yang digunakan pada potongan pengaturan CLOCK tersebut, masing-masing dengan sebuah parameter:

  • CLK_EnableXtalRC(uint32_t u32ClkMask);
  • CLK_WaitClockReady(uint32_t u32ClkMask), dan
  • CLK_SetCoreClock(uint32_t u32Hclk).

Pilihan masukan parameter u32ClkMask pada fungsi CLK_EnableXtalRC() adalah:

  • CLK_PWRCON_XTL12M_EN_Msk,
  • CLK_PWRCON_XTL32K_EN_Msk,
  • CLK_PWRCON_OSC22M_EN_Msk atau
  • CLK_PWRCON_OSC10K_EN_Msk

Pilihan masukan parameter u32ClkMask pada fungsi CLK_WaitClockReady() adalah:

  • CLK_CLKSTATUS_XTL12M_STB_Msk,
  • CLK_CLKSTATUS_XTL32K_STB_Msk,
  • CLK_CLKSTATUS_OSC22M_STB_Msk,
  • CLK_CLKSTATUS_OSC10K_STB_Msk atau
  • CLK_CLKSTATUS_PLL_STB_Msk

Pilihan masukan parameter u32Hclk pada fungsi CLK_SetCoreClock() adalah nilai frekuensi antara 25 hingga 50 MHz dalam satuan Hz.

Advertisements
This entry was posted in clock, learning board, nuc140 and tagged , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s