Enabling FIRC Clock on S32K396 in Low-Level Programming

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Enabling FIRC Clock on S32K396 in Low-Level Programming

453件の閲覧回数
Jesusear18
Contributor II

Hello everyone,

I am working with the S32K396 board and trying to enable the FIRC clock using low-level programming. However, I have found that there is limited information available, and I haven't had much success.

My goal is to enable this clock using the MC_ME and MC_CGM modules, but I haven't been able to make it work properly. I have been referring to the Reference Manual, and while I selected a suitable MUX, I'm not sure if the registers I’m using are correct.

Has anyone worked with low-level programming on the S32K396?

I’ve attached my main code for review. My plan is to first enable the FIRC clock and then proceed with configuring the PLL and FXOSC.

#include <stdint.h>
#include <stdio.h>

#define PORT_WRITE32(address, value) (*(volatile uint32_t *)(address) = (value))
#define PORT_WRITE8(address, value) (*(volatile uint8_t *)(address) = (value))
#define PORT_READ32(address) (*(volatile uint32_t *)(address))

// Base addresses for the registers (these should be adjusted based on your MCU documentation)
#define MC_CGM_BASE 0x402D8000U // Base address of the Clock Generation Module (MC_CGM)
#define MC_ME_BASE 0x402DC000U // Base address of the Clock Management Module (MC_ME)
#define SIUL2_BASE 0x40290000U // Base address of the SIUL2 for GPIO

// Registers of the MC_CGM (Clock Generation Module)
#define MC_CGM_MUX_6_CSC (MC_CGM_BASE + 0x480U)
#define MC_CGM_MUX_6_CSS (MC_CGM_BASE + 0x484U)
#define MC_CGM_MUX_6_DC_0 (MC_CGM_BASE + 0x488U)

// Registers of the MC_ME (Clock Management Module)
#define MC_ME_PRTN0_COFB1_CLKEN (MC_ME_BASE + 0x134U) //0x402DC134
#define MC_ME_PRTN0_PUPD (MC_ME_BASE + 0x104U) //0x402DC104
#define MC_ME_CTL_KEY (MC_ME_BASE + 0x000U) //0x402DC000
#define MC_ME_PRTN0_STAT (MC_ME_BASE + 0x108U) //0x402DC108
#define MC_ME_GS (MC_ME_BASE + 0x008U) //0x402DC008
#define MC_ME_PRTN0_PCONF (MC_ME_BASE + 0x100U) //0x402DC100
#define MC_ME_PRTN0_COFB1_STAT (MC_ME_BASE + 0x114U) //0x402DC114

#define MC_ME_KEY 0x5AF0U
#define MC_ME_INVKEY 0xA50FU

// Registers of the SIUL2 (GPIO Control)
#define SIUL2_MSCR231 0x402905DC
#define SIUL2_GPDO231 0x402913E4

#define asm __asm__

// Initialize the clock using direct register access
void CLOCK_InitFIRC(void)
{
// Enable FIRC
uint32_t temp;
temp = PORT_READ32(MC_ME_PRTN0_COFB1_STAT); // Read current status
if ((temp & (1 << 5)) == 0) {
PORT_WRITE32(MC_ME_PRTN0_COFB1_CLKEN, (1 << 1)); // Enable FIRC
PORT_WRITE32(MC_ME_PRTN0_PCONF, (1 << 0)); // Enable FIRC
PORT_WRITE32(MC_ME_PRTN0_PUPD, (1 << 1)); // Enable update
PORT_WRITE32(MC_ME_CTL_KEY, MC_ME_KEY); // Unlock control register
PORT_WRITE32(MC_ME_CTL_KEY, ~MC_ME_KEY); // Lock control register
}

// Wait for FIRC stabilization
do {
temp = PORT_READ32(MC_CGM_MUX_6_CSS); // Read the current clock source selection
} while ((temp & 0x0F) != 0x0); // Check if FIRC is selected (FIRC should have 0x0)

// Configure MUX6 to use FIRC as the clock source
PORT_WRITE32(MC_CGM_MUX_6_CSC, 0x0); // Select FIRC as clock source for MUX6
PORT_WRITE32(MC_CGM_MUX_6_DC_0, 0x0); // Set divisor to 1 (no division)

// Check the status of the clock
uint32_t status_clk = PORT_READ32(MC_CGM_MUX_6_CSS); // Read current clock status

}

int main(void)
{
// Initialize the clock
CLOCK_InitFIRC();

// Initialize the GPIO for the LED
PORT_WRITE32(SIUL2_MSCR231, 0x200000);

while(1)
{
PORT_WRITE8(SIUL2_GPDO231, 0x1);
for(uint32_t i = 0; i < 20e6; i++)
{
asm("nop");
}
PORT_WRITE8(SIUL2_GPDO231, 0x0);
for(uint32_t i = 0; i < 20e6; i++)
{
asm("nop");
}

}

return 0;
}

Any help or suggestions would be greatly appreciated.

Thank you in advance!

タグ(2)
0 件の賞賛
返信
1 返信

433件の閲覧回数
VaneB
NXP TechSupport
NXP TechSupport

Hi @Jesusear18 

Please note that FIRC is the default boot clock on S32K3 devices. It is always enabled in RUN mode, so there is no need to explicitly enable it. 

Also, the S32K39/S32K37/S32K36 Reference Manuals state that only SIRC_CLK and FIRC_CLK are enabled out of reset, and they remain enabled after any functional reset. All other clock sources start disabled and must be configured before use.

 

BR, VaneB

0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-2324432%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E4%BD%8E%E3%83%AC%E3%83%99%E3%83%AB%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%A7S32K396%E3%81%AEFIRC%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2324432%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%E3%81%BF%E3%82%93%E3%81%AA%E3%80%81%3C%2FP%3E%3CP%3E%E7%A7%81%E3%81%AF%20S32K396%20%E3%83%9C%E3%83%BC%E3%83%89%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%8A%E3%82%8A%E3%80%81%E4%BD%8E%E3%83%AC%E3%83%99%E3%83%AB%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%20FIRC%20%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%97%E3%82%88%E3%81%86%E3%81%A8%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E3%81%97%E3%81%8B%E3%81%97%E3%80%81%E5%85%A5%E6%89%8B%E3%81%A7%E3%81%8D%E3%82%8B%E6%83%85%E5%A0%B1%E3%81%8C%E9%99%90%E3%82%89%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E3%81%82%E3%81%BE%E3%82%8A%E6%88%90%E6%9E%9C%E3%81%8C%E5%BE%97%E3%82%89%E3%82%8C%E3%81%BE%E3%81%9B%E3%82%93%E3%81%A7%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CP%3E%E7%A7%81%E3%81%AE%E7%9B%AE%E6%A8%99%E3%81%AF%E3%80%81MC_ME%20%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%A8%20MC_CGM%20%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%93%E3%81%AE%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%A7%E3%81%99%E3%81%8C%E3%80%81%E9%81%A9%E5%88%87%E3%81%AB%E5%8B%95%E4%BD%9C%E3%81%95%E3%81%9B%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93%E3%81%A7%E3%81%97%E3%81%9F%E3%80%82%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB%E3%82%92%E5%8F%82%E7%85%A7%E3%81%97%E3%81%A6%E9%81%A9%E5%88%87%E3%81%AA%20MUX%20%E3%82%92%E9%81%B8%E6%8A%9E%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%81%8C%E3%80%81%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%81%8C%E6%AD%A3%E3%81%97%E3%81%84%E3%81%8B%E3%81%A9%E3%81%86%E3%81%8B%E3%82%8F%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%3CP%3ES32K396%20%E3%81%A7%E4%BD%8E%E3%83%AC%E3%83%99%E3%83%AB%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AB%E5%8F%96%E3%82%8A%E7%B5%84%E3%82%93%E3%81%A0%E3%81%93%E3%81%A8%E3%81%8C%E3%81%82%E3%82%8B%E4%BA%BA%E3%81%AF%E3%81%84%E3%81%BE%E3%81%99%E3%81%8B%3F%3C%2FP%3E%3CP%3E%E3%83%AC%E3%83%93%E3%83%A5%E3%83%BC%E7%94%A8%E3%81%AB%E3%83%A1%E3%82%A4%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E6%B7%BB%E4%BB%98%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%E7%A7%81%E3%81%AE%E8%A8%88%E7%94%BB%E3%81%AF%E3%80%81%E3%81%BE%E3%81%9A%20FIRC%20%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%97%E3%80%81%E6%AC%A1%E3%81%AB%20PLL%20%E3%81%A8%20FXOSC%20%E3%81%AE%E6%A7%8B%E6%88%90%E3%81%AB%E9%80%B2%E3%82%80%E3%81%93%E3%81%A8%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%23include%20%3CSTDINT.H%3E%3CBR%20%2F%3E%23include%20%3CSTDIO.H%3E%3C%2FSTDIO.H%3E%3C%2FSTDINT.H%3E%3C%2FP%3E%3CP%3E%23define%20PORT_WRITE32(%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%2C%20%E5%80%A4)%20(*(volatile%20uint32_t%20*)(%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9)%20%3D%20(%E5%80%A4))%3CBR%20%2F%3E%20%23define%20PORT_WRITE8(%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%2C%20%E5%80%A4)%20(*(volatile%20uint8_t%20*)(%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9)%20%3D%20(%E5%80%A4))%3CBR%20%2F%3E%20%23define%20PORT_READ32(%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9)%20(*(volatile%20uint32_t%20*)(%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9))%3C%2FP%3E%3CP%3E%2F%2F%20%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%81%AE%E3%83%99%E3%83%BC%E3%82%B9%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%EF%BC%88MCU%20%E3%81%AE%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AB%E5%9F%BA%E3%81%A5%E3%81%84%E3%81%A6%E8%AA%BF%E6%95%B4%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%EF%BC%89%3CBR%20%2F%3E%20%23define%20MC_CGM_BASE%200x402D8000U%20%2F%2F%20%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E7%94%9F%E6%88%90%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%EF%BC%88MC_CGM%EF%BC%89%E3%81%AE%E3%83%99%E3%83%BC%E3%82%B9%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%3CBR%20%2F%3E%23define%20MC_ME_BASE%200x402DC000U%20%2F%2F%20%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%20%E3%83%9E%E3%83%8D%E3%82%B8%E3%83%A1%E3%83%B3%E3%83%88%20%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%EF%BC%88MC_ME%EF%BC%89%E3%81%AE%E3%83%99%E3%83%BC%E3%82%B9%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%3CBR%20%2F%3E%23define%20SIUL2_BASE%200x40290000U%20%2F%2F%20GPIO%E7%94%A8%E3%81%AESIUL2%E3%81%AE%E3%83%99%E3%83%BC%E3%82%B9%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%3C%2FP%3E%3CP%3E%2F%2F%20MC_CGM%EF%BC%88%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E7%94%9F%E6%88%90%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%EF%BC%89%E3%81%AE%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%3CBR%20%2F%3E%23MC_CGM_MUX_6_CSC%20(MC_CGM_BASE%20%2B%200x480U)%20%E3%82%92%E5%AE%9A%E7%BE%A9%E3%81%97%E3%81%BE%E3%81%99%3CBR%20%2F%3E%23MC_CGM_MUX_6_CSS%20(MC_CGM_BASE%20%2B%200x484U)%20%E3%82%92%E5%AE%9A%E7%BE%A9%E3%81%97%E3%81%BE%E3%81%99%3CBR%20%2F%3E%23MC_CGM_MUX_6_DC_0%20(MC_CGM_BASE%20%2B%200x488U)%20%E3%82%92%E5%AE%9A%E7%BE%A9%E3%81%97%E3%81%BE%E3%81%99%3C%2FP%3E%3CP%3E%2F%2F%20MC_ME%EF%BC%88%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%20%E3%83%9E%E3%83%8D%E3%82%B8%E3%83%A1%E3%83%B3%E3%83%88%20%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%EF%BC%89%E3%81%AE%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%3CBR%20%2F%3E%23MC_ME_PRTN0_COFB1_CLKEN%20(MC_ME_BASE%20%2B%200x134U)%20%E3%82%92%E5%AE%9A%E7%BE%A9%E3%81%97%E3%81%BE%E3%81%99%20%2F%2F0x402DC134%3CBR%20%2F%3E%20%23MC_ME_PRTN0_PUPD%20(MC_ME_BASE%20%2B%200x104U)%20%E3%82%92%E5%AE%9A%E7%BE%A9%20%2F%2F0x402DC104%3CBR%20%2F%3E%20%23MC_ME_CTL_KEY%20(MC_ME_BASE%20%2B%200x000U)%20%E3%82%92%E5%AE%9A%E7%BE%A9%E3%81%97%E3%81%BE%E3%81%99%20%2F%2F0x402DC000%3CBR%20%2F%3E%20%23MC_ME_PRTN0_STAT%20(MC_ME_BASE%20%2B%200x108U)%20%E3%82%92%E5%AE%9A%E7%BE%A9%E3%81%97%E3%81%BE%E3%81%99%20%2F%2F0x402DC108%3CBR%20%2F%3E%20%23MC_ME_GS%20(MC_ME_BASE%20%2B%200x008U)%20%E3%82%92%E5%AE%9A%E7%BE%A9%20%2F%2F0x402DC008%3CBR%20%2F%3E%20%23MC_ME_PRTN0_PCONF%20(MC_ME_BASE%20%2B%200x100U)%20%E3%82%92%E5%AE%9A%E7%BE%A9%E3%81%97%E3%81%BE%E3%81%99%20%2F%2F0x402DC100%3CBR%20%2F%3E%20%23MC_ME_PRTN0_COFB1_STAT%20(MC_ME_BASE%20%2B%200x114U)%20%E3%82%92%E5%AE%9A%E7%BE%A9%E3%81%97%E3%81%BE%E3%81%99%20%2F%2F0x402DC114%3C%2FP%3E%3CP%3E%23MC_ME_KEY%200x5AF0U%20%E3%82%92%E5%AE%9A%E7%BE%A9%E3%81%97%E3%81%BE%E3%81%99%3CBR%20%2F%3E%23MC_ME_INVKEY%200xA50FU%20%E3%82%92%E5%AE%9A%E7%BE%A9%E3%81%97%E3%81%BE%E3%81%99%3C%2FP%3E%3CP%3E%2F%2F%20SIUL2%E3%81%AE%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%EF%BC%88GPIO%E5%88%B6%E5%BE%A1%EF%BC%89%3CBR%20%2F%3E%20%23SIUL2_MSCR231%200x402905DC%20%E3%82%92%E5%AE%9A%E7%BE%A9%E3%81%97%E3%81%BE%E3%81%99%3CBR%20%2F%3E%23SIUL2_GPDO231%200x402913E4%20%E3%82%92%E5%AE%9A%E7%BE%A9%E3%81%97%E3%81%BE%E3%81%99%3C%2FP%3E%3CP%3E%23define%20%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%AA__asm__%3C%2FP%3E%3CP%3E%2F%2F%20%E7%9B%B4%E6%8E%A5%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%82%92%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%97%E3%81%BE%E3%81%99%3CBR%20%2F%3Evoid%20CLOCK_InitFIRC(void)%3CBR%20%2F%3E%20%7B%3CBR%20%2F%3E%20%2F%2F%20FIRC%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%3CBR%20%2F%3Euint32_t%20%E6%B8%A9%E5%BA%A6%3B%3CBR%20%2F%3E%20temp%20%3D%20PORT_READ32(MC_ME_PRTN0_COFB1_STAT)%3B%20%2F%2F%20%E7%8F%BE%E5%9C%A8%E3%81%AE%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%82%92%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8B%3CBR%20%2F%3E((temp%20%26amp%3B%20(1%20%26lt%3B%26lt%3B%205))%20%3D%3D%200)%20%E3%81%AE%E5%A0%B4%E5%90%88%20%7B%3CBR%20%2F%3E%20PORT_WRITE32(MC_ME_PRTN0_COFB1_CLKEN%2C%20(1%20%26lt%3B%26lt%3B%201))%3B%20%2F%2F%20FIRC%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%3CBR%20%2F%3EPORT_WRITE32(MC_ME_PRTN0_PCONF%2C%20(1%20%26lt%3B%26lt%3B%200))%3B%20%2F%2F%20FIRC%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%3CBR%20%2F%3EPORT_WRITE32(MC_ME_PRTN0_PUPD%2C%20(1%20%26lt%3B%26lt%3B%201))%3B%20%2F%2F%20%E6%9B%B4%E6%96%B0%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%3CBR%20%2F%3EPORT_WRITE32(MC_ME_CTL_KEY%2C%20MC_ME_KEY)%3B%20%2F%2F%20%E5%88%B6%E5%BE%A1%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%81%AE%E3%83%AD%E3%83%83%E3%82%AF%E3%82%92%E8%A7%A3%E9%99%A4%E3%81%99%E3%82%8B%3CBR%20%2F%3EPORT_WRITE32(MC_ME_CTL_KEY%2C%20~MC_ME_KEY)%3B%20%2F%2F%20%E3%83%AD%E3%83%83%E3%82%AF%E5%88%B6%E5%BE%A1%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3E%2F%2F%20FIRC%E3%81%AE%E5%AE%89%E5%AE%9A%E3%82%92%E5%BE%85%E3%81%A4%3CBR%20%2F%3E%E3%81%99%E3%82%8B%20%7B%3CBR%20%2F%3E%20temp%20%3D%20PORT_READ32(MC_CGM_MUX_6_CSS)%3B%20%2F%2F%20%E7%8F%BE%E5%9C%A8%E3%81%AE%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%82%BD%E3%83%BC%E3%82%B9%E9%81%B8%E6%8A%9E%E3%82%92%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8B%3CBR%20%2F%3E%7D%20while%20((temp%20%26amp%3B%200x0F)%20!%3D%200x0)%3B%20%2F%2F%20FIRC%E3%81%8C%E9%81%B8%E6%8A%9E%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%8B%E3%81%A9%E3%81%86%E3%81%8B%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%97%E3%81%BE%E3%81%99%EF%BC%88FIRC%E3%81%AF0x0%E3%81%A7%E3%81%82%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%EF%BC%89%3C%2FP%3E%3CP%3E%2F%2F%20FIRC%E3%82%92%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%A8%E3%81%97%E3%81%A6%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%82%88%E3%81%86%E3%81%ABMUX6%E3%82%92%E6%A7%8B%E6%88%90%E3%81%99%E3%82%8B%3CBR%20%2F%3EPORT_WRITE32(MC_CGM_MUX_6_CSC%2C%200x0)%3B%20%2F%2F%20MUX6%E3%81%AE%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%A8%E3%81%97%E3%81%A6FIRC%E3%82%92%E9%81%B8%E6%8A%9E%3CBR%20%2F%3EPORT_WRITE32(MC_CGM_MUX_6_DC_0%2C%200x0)%3B%20%2F%2F%20%E9%99%A4%E6%95%B0%E3%82%921%E3%81%AB%E8%A8%AD%E5%AE%9A%EF%BC%88%E9%99%A4%E7%AE%97%E3%81%AA%E3%81%97%EF%BC%89%3C%2FP%3E%3CP%3E%2F%2F%20%E6%99%82%E8%A8%88%E3%81%AE%E7%8A%B6%E6%85%8B%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%3CBR%20%2F%3Euint32_t%20status_clk%20%3D%20PORT_READ32(MC_CGM_MUX_6_CSS)%3B%20%2F%2F%20%E7%8F%BE%E5%9C%A8%E3%81%AE%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%82%92%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8B%3CBR%20%2F%3E%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3Eint%20%E3%83%A1%E3%82%A4%E3%83%B3(void)%3CBR%20%2F%3E%20%7B%3CBR%20%2F%3E%20%2F%2F%20%E6%99%82%E8%A8%88%E3%82%92%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%99%E3%82%8B%3CBR%20%2F%3ECLOCK_InitFIRC()%3B%3C%2FP%3E%3CP%3E%2F%2F%20LED%E3%81%AEGPIO%E3%82%92%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%99%E3%82%8B%3CBR%20%2F%3EPORT_WRITE32(SIUL2_MSCR231%2C%200x200000)%3B%3C%2FP%3E%3CP%3E%E3%81%AA%E3%81%8C%E3%82%89(1)%3CBR%20%2F%3E%20%7B%3CBR%20%2F%3E%20PORT_WRITE8(SIUL2_GPDO231%E3%80%810x1)%3B%3CBR%20%2F%3E%20for(uint32_t%20i%20%3D%200%3B%20i%20%26lt%3B%2020e6%3B%20i%2B%2B)%3CBR%20%2F%3E%20%7B%3CBR%20%2F%3E%20asm(%22nop%22)%3B%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%20PORT_WRITE8(SIUL2_GPDO231%E3%80%810x0)%3B%3CBR%20%2F%3E%20for(uint32_t%20i%20%3D%200%3B%20i%20%26lt%3B%2020e6%3B%20i%2B%2B)%3CBR%20%2F%3E%20%7B%3CBR%20%2F%3E%20asm(%22nop%22)%3B%3CBR%20%2F%3E%20%7D%3C%2FP%3E%3CP%3E%7D%3C%2FP%3E%3CP%3E0%E3%82%92%E8%BF%94%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E%20%7D%3C%2FP%3E%3CP%3E%E3%81%94%E5%8D%94%E5%8A%9B%E3%82%84%E3%81%94%E6%8F%90%E6%A1%88%E3%81%8C%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%97%E3%81%9F%E3%82%89%E3%80%81%E3%81%9C%E3%81%B2%E3%81%8A%E9%A1%98%E3%81%84%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%81%8A%E6%89%8B%E6%95%B0%E3%81%A7%E3%81%99%E3%81%8C%E3%80%81%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2324480%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Enabling%20FIRC%20Clock%20on%20S32K396%20in%20Low-Level%20Programming%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2324480%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F258634%22%20target%3D%22_blank%22%3E%40Jesusear18%3C%2FA%3E%3C%2FP%3E%0A%3CP%3EFIRC%20%E3%81%AF%20S32K3%20%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%81%AE%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%81%AE%E3%83%96%E3%83%BC%E3%83%88%20%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%81%A7%E3%81%82%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AB%E6%B3%A8%E6%84%8F%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82RUN%20%E3%83%A2%E3%83%BC%E3%83%89%E3%81%A7%E3%81%AF%E5%B8%B8%E3%81%AB%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E6%98%8E%E7%A4%BA%E7%9A%84%E3%81%AB%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%0A%3CP%3E%E3%81%BE%E3%81%9F%E3%80%81S32K39%2FS32K37%2FS32K36%20%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9%20%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB%E3%81%AB%E3%81%AF%E3%80%81SIRC_CLK%20%E3%81%A8%20FIRC_CLK%20%E3%81%AE%E3%81%BF%E3%81%8C%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E5%BE%8C%E3%81%AB%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%AA%E3%82%8A%E3%80%81%E6%A9%9F%E8%83%BD%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E5%BE%8C%E3%82%82%E6%9C%89%E5%8A%B9%E3%81%AA%E3%81%BE%E3%81%BE%E3%81%A7%E3%81%82%E3%82%8B%E3%81%A8%E8%A8%98%E8%BC%89%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E4%BB%96%E3%81%AE%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%20%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AF%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E5%89%8D%E3%81%AB%E6%A7%8B%E6%88%90%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3EBR%E3%80%81%E3%83%B4%E3%82%A7%E3%82%A4%E3%83%B3B%3C%2FP%3E%3C%2FLINGO-BODY%3E