S32K396 - Asynchronous Bus Fault during ADC0 and LPUART2 Initialization

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

S32K396 - Asynchronous Bus Fault during ADC0 and LPUART2 Initialization

684件の閲覧回数
Jesusear18
Contributor II

Hello NXP Community,

I am currently working on a project using the S32K396 (RTD 3.0.0, AUTOSAR 4.7) and I am facing a persistent Asynchronous Bus Fault (HardFault) during the peripheral initialization phase.

Objective:
My goal is to configure PTD1 as an analog input (ADC0_AN1) to read a sensor and transmit the converted data via LPUART2 (using PTH8 for TX). I am working in low-level because is something that I think is easy in low-level.

Current Implementation Details:
I have implemented a Hardware_Init() function that follows the MC_ME sequence for clock distribution across different partitions:

Partition 0 Initialization: I am enabling ADC0 (REQ40) by setting bit 8 in MC_ME_PRTN0_COFB1_CLKEN.

Partition 1 Initialization: I am enabling FXOSC (REQ53, bit 21 in COFB1) and LPUART2 (REQ76, bit 12 in COFB2).

Clock Commitment: For both partitions, I am using the standard PCONF/PUPD sequence followed by writing the keys (0x5AF05AF0 and 0xA50FA50F) to the MC_ME_CTL_KEY register.

Peripheral Config: * LPUART2: Using base address 0x40330000 as per the memory map.

ADC0: Attempting to clear the PWDN bit (bit 0) in ADC0_MCR.

The Problem:
Even though I am following the commit sequence and waiting for the PUPD bits to clear, the system triggers an asynchronous Bus Fault. This usually happens when the code attempts to access a peripheral register (like ADC0_MCR or LPUART_CTRL) while the module is still clock-gated or if there's a memory access violation.

I have verified the following:

The base address for LPUART2 is 0x4033_0000h.

The ADC0 clock enable is indeed in Partition 0, COFB1, Bit 8.

The LPUART2 clock enable is in Partition 1, COFB2, Bit 12.

Code Snippet:

#include <stdint.h>
#include <stdio.h>
 
#define REG_WRITE32(addr, val)  (*(volatile uint32_t *)(addr) = (val))
#define REG_READ32(addr)         (*(volatile uint32_t *)(addr))
 
/* --- SIUL2 (Pins) --- */
#define SIUL2_MSCR97            0x402903C4  /* PTD1 - ADC0_AN1 */
#define SIUL2_MSCR232           0x402905E0  /* PTH8 - LPUART0_TX */
 
/* --- MC_ME (Clocks) --- */
#define MC_ME_BASE              0x402DC000
#define MC_ME_CTL_KEY           (MC_ME_BASE + 0x00)
#define MC_ME_PRTN1_PCONF       (MC_ME_BASE + 0x300)
#define MC_ME_PRTN1_PUPD        (MC_ME_BASE + 0x304)
#define MC_ME_PRTN0_PCONF       (MC_ME_BASE + 0x100)
#define MC_ME_PRTN0_PUPD        (MC_ME_BASE + 0x104)
#define MC_ME_PRTN1_STAT        (MC_ME_BASE + 0x308)
#define MC_ME_PRTN1_COFB2_CLKEN (MC_ME_BASE + 0x338) // LPUART_2 - REQ76, bit 12
#define MC_ME_PRTN0_COFB1_CLKEN (MC_ME_BASE + 0x134) // ADC_0 - REQ 40, bit 8
#define MC_ME_PRTN1_COFB1_CLKEN (MC_ME_BASE + 0x334) // FXOSC - REQ 53, bit 21
 
/* --- ADC0 --- */
#define ADC0_BASE               0x400A0000
#define ADC0_MCR                (ADC0_BASE + 0x00)
#define ADC0_MSR                (ADC0_BASE + 0x04)
#define ADC0_NCMR0              (ADC0_BASE + 0xA4)
#define ADC0_PCDR1              (ADC0_BASE + 0x104)
 
/* --- LPUART_2 --- */
#define LPUART_2_BASE            0x40330000
#define LPUART_2_BAUD            (LPUART_2_BASE + 0x10)
#define LPUART_2_STAT            (LPUART_2_BASE + 0x14)
#define LPUART_2_CTRL            (LPUART_2_BASE + 0x18)
#define LPUART_2_DATA            (LPUART_2_BASE + 0x1C)
 
#define MC_ME_KEY     0x5AF05AF0
#define MC_ME_INVKEY  0xA50FA50F
 
void Hardware_Init(void) {
/* Habilitar Relojes en Partición 1 (ADC_0 - REQ 40, bit */
uint32_t clk_ADC = REG_READ32(MC_ME_PRTN0_COFB1_CLKEN);
REG_WRITE32(MC_ME_PRTN0_COFB1_CLKEN, clk_ADC | (1 << 8));
 
/* Commit clock changes */
REG_WRITE32(MC_ME_PRTN0_PCONF, 0x01);
REG_WRITE32(MC_ME_PRTN0_PUPD, 0x01);
REG_WRITE32(MC_ME_CTL_KEY, MC_ME_KEY);
REG_WRITE32(MC_ME_CTL_KEY, MC_ME_INVKEY);
while(REG_READ32(MC_ME_PRTN0_PUPD) & 0x01);
 
/* Habilitar Relojes en Partición 1 (FXOSC - REQ 53, bit 21) */
uint32_t clk_FXOSC = REG_READ32(MC_ME_PRTN1_COFB1_CLKEN);
REG_WRITE32(MC_ME_PRTN1_COFB1_CLKEN, clk_FXOSC | (1 << 21));
 
/* Habilitar Relojes en Partición 1 (LPUART_2 bit 21 - REQ53) */
    uint32_t clk_UART = REG_READ32(MC_ME_PRTN1_COFB2_CLKEN);
    REG_WRITE32(MC_ME_PRTN1_COFB2_CLKEN, clk_UART | (1 << 12));
 
    /* Commit clock changes */
    REG_WRITE32(MC_ME_PRTN1_PCONF, 0x01);
    REG_WRITE32(MC_ME_PRTN1_PUPD, 0x01);
    REG_WRITE32(MC_ME_CTL_KEY, MC_ME_KEY);
    REG_WRITE32(MC_ME_CTL_KEY, MC_ME_INVKEY);
    while(REG_READ32(MC_ME_PRTN1_PUPD) & 0x01);
 
    /* 2. Configurar Pines */
    REG_WRITE32(SIUL2_MSCR97, 0x200000);    /* PTD1 como Analógico */
    REG_WRITE32(SIUL2_MSCR232, 0x00210001); /* LPUART2 TX */
 
    /* 3. Configurar LPUART2 */
    REG_WRITE32(LPUART_2_BAUD, 26);          /* 115200 Baud */
    REG_WRITE32(LPUART_2_CTRL, 0x00080000); /* TX Enable */
 
    /* 4. Inicializar ADC0 (Solo si el reloj ya es estable) */
    /* Salir de Power Down: PWDN = 0 */
    uint32_t mcr = REG_READ32(ADC0_MCR);
    REG_WRITE32(ADC0_MCR, mcr & ~(1 << 0));
 
    for(volatile int i=0; i<1000; i++);
}
 
void UART_SendChar(char c) {
    while(!(REG_READ32(LPUART_2_STAT) & (1 << 23))); //Transmit Data Register Empty Flag, bit 23
    REG_WRITE32(LPUART_2_DATA, (uint32_t)c);
}
 
void UART_SendString(char* str) {
    while(*str) UART_SendChar(*str++);
}
 
void UART_SendInt(uint32_t val) {
    if (val == 0) { UART_SendChar('0'); return; }
    char buffer[10];
    int i = 0;
    while (val > 0) {
        buffer[i++] = (val % 10) + '0';
        val /= 10;
    }
    while (i > 0) UART_SendChar(buffer[--i]);
}
 
int main(void) {
    Hardware_Init();
 
    while(1) {
        /* Configurar canal y disparar conversión */
        REG_WRITE32(ADC0_NCMR0, (1 << 1)); /* Seleccionar Canal 1 */
        REG_WRITE32(ADC0_MCR, REG_READ32(ADC0_MCR) | (1 << 24)); /* NSTART = 1 */
 
        /* Esperar fin de conversión (NEND en MSR) */
        while(!(REG_READ32(ADC0_MSR) & (1 << 1)));
 
        /* LEER DATOS: Usando el PCDR1 (Precision Data Register) */
        uint32_t val_pcdr = REG_READ32(ADC0_PCDR1);
 
        /* Verificar si el dato es válido (Bit 31) */
        if (val_pcdr & (1 << 31)) {
            uint32_t sensor = val_pcdr & 0x7FFF; /* Máscara para 15 bits de datos */
 
            UART_SendString("Sensor Value: ");
            UART_SendInt(sensor);
            UART_SendString("\r\n");
        }
 
        /* Limpiar bandera NEND escribiendo un 1 */
        REG_WRITE32(ADC0_MSR, (1 << 1));
 
        for(volatile uint32_t i = 0; i < 2000000; i++);
    }
}
 

Question:
Is there a specific dependency between Partition 0 and Partition 1 that I am missing? Or is there a specific delay required beyond the PUPD polling before the peripheral registers become accessible on the IPS bus?

Any insights on why this register access would trigger a Bus Fault on the S32K3xx would be greatly appreciated.

Best regards,

Jesus A

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

448件の閲覧回数
komijok913
Contributor I

Hello,

You’re accessing ADC0 and LPUART2 before their clocks are fully active; clearing PUPD only confirms the MC_ME accepted the request, not that the peripheral’s internal clock is stable. Each partition has its own clock domain, so after enabling clocks, you must wait for the partition’s STAT register to indicate it’s running before touching peripheral registers. 

0 件の賞賛
返信

653件の閲覧回数
PetrS
NXP TechSupport
NXP TechSupport

Hi,

I have tried your code on empty RTD project. I see no issue in clock init for ADC and LPUART, both modules can be initialized. What does not work is checking ADC end of conversion using while(!(REG_READ32(ADC0_MSR) & (1 << 1))); you should rather use ISR register. 
But seems this is not main issue in your case, anyway clock init you have does not cause it.

Could an exception be caused by MPU, XRDC,...? Try to analyze the fault exception, refer e.g. to https://community.nxp.com/t5/S32K-Knowledge-Base/How-To-Debug-A-Fault-Exception-On-ARM-Cortex-M-V7M-... for more info.

BR, Petr

0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-2335237%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ES32K396%20-%20ADC0%E3%81%8A%E3%82%88%E3%81%B3LPUART2%E3%81%AE%E5%88%9D%E6%9C%9F%E5%8C%96%E4%B8%AD%E3%81%AB%E9%9D%9E%E5%90%8C%E6%9C%9F%E3%83%90%E3%82%B9%E9%9A%9C%E5%AE%B3%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2335237%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3ENXP%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E3%81%AE%E7%9A%86%E6%A7%98%E3%80%81%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%82%3C%2FP%3E%3CP%3E%E7%A7%81%E3%81%AF%E7%8F%BE%E5%9C%A8%E3%80%81S32K396%20(RTD%203.0.0%E3%80%81AUTOSAR%204.7)%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E3%83%9A%E3%83%AA%E3%83%95%E3%82%A7%E3%83%A9%E3%83%AB%E3%81%AE%E5%88%9D%E6%9C%9F%E5%8C%96%E3%83%95%E3%82%A7%E3%83%BC%E3%82%BA%E4%B8%AD%E3%81%AB%E3%80%81%E6%8C%81%E7%B6%9A%E7%9A%84%E3%81%AA%E9%9D%9E%E5%90%8C%E6%9C%9F%E3%83%90%E3%82%B9%E9%9A%9C%E5%AE%B3%20(%E3%83%8F%E3%83%BC%E3%83%89%E9%9A%9C%E5%AE%B3)%20%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E5%AE%A2%E8%A6%B3%E7%9A%84%EF%BC%9A%3CBR%20%2F%3E%E7%A7%81%E3%81%AE%E7%9B%AE%E6%A8%99%E3%81%AF%E3%80%81PTD1%E3%82%92%E3%82%A2%E3%83%8A%E3%83%AD%E3%82%B0%E5%85%A5%E5%8A%9B%EF%BC%88ADC0_AN1%EF%BC%89%E3%81%A8%E3%81%97%E3%81%A6%E8%A8%AD%E5%AE%9A%E3%81%97%E3%80%81%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC%E3%82%92%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8A%E3%80%81%E5%A4%89%E6%8F%9B%E3%81%95%E3%82%8C%E3%81%9F%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92LPUART2%E7%B5%8C%E7%94%B1%E3%81%A7%E9%80%81%E4%BF%A1%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%A7%E3%81%99%EF%BC%88%E9%80%81%E4%BF%A1%E3%81%AB%E3%81%AFPTH8%E3%82%92%E4%BD%BF%E7%94%A8%EF%BC%89%E3%80%82%E4%BD%8E%E3%83%AC%E3%83%99%E3%83%AB%E3%81%A7%E4%BD%9C%E6%A5%AD%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%AF%E3%80%81%E4%BD%8E%E3%83%AC%E3%83%99%E3%83%AB%E3%81%A7%E4%BD%9C%E6%A5%AD%E3%81%99%E3%82%8B%E6%96%B9%E3%81%8C%E5%AE%B9%E6%98%93%E3%81%A0%E3%81%A8%E8%80%83%E3%81%88%E3%81%A6%E3%81%84%E3%82%8B%E3%81%8B%E3%82%89%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E7%8F%BE%E5%9C%A8%E3%81%AE%E5%AE%9F%E8%A3%85%E3%81%AE%E8%A9%B3%E7%B4%B0%EF%BC%9A%3CBR%20%2F%3E%E7%95%B0%E3%81%AA%E3%82%8B%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%93%E3%81%A7%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%82%92%E5%88%86%E9%85%8D%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E3%80%81MC_ME%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9%E3%81%AB%E5%BE%93%E3%81%86Hardware_Init()%E9%96%A2%E6%95%B0%E3%82%92%E5%AE%9F%E8%A3%85%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CP%3E%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%B3%200%20%E3%81%AE%E5%88%9D%E6%9C%9F%E5%8C%96%3A%20MC_ME_PRTN0_COFB1_CLKEN%20%E3%81%AE%E3%83%93%E3%83%83%E3%83%88%208%20%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AB%E3%82%88%E3%82%8A%E3%80%81ADC0%20(REQ40)%20%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%B3%201%20%E3%81%AE%E5%88%9D%E6%9C%9F%E5%8C%96%3A%20FXOSC%20(REQ53%E3%80%81COFB1%20%E3%81%AE%E3%83%93%E3%83%83%E3%83%88%2021)%20%E3%81%A8%20LPUART2%20(REQ76%E3%80%81COFB2%20%E3%81%AE%E3%83%93%E3%83%83%E3%83%88%2012)%20%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88%E3%83%A1%E3%83%B3%E3%83%88%3A%20%E4%B8%A1%E6%96%B9%E3%81%AE%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AB%E5%AF%BE%E3%81%97%E3%81%A6%E3%80%81%E6%A8%99%E6%BA%96%E3%81%AE%20PCONF%2FPUPD%20%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%80%81%E3%81%9D%E3%81%AE%E5%BE%8C%E3%80%81%E3%82%AD%E3%83%BC%20(0x5AF05AF0%20%E3%81%A8%200xA50FA50F)%20%E3%82%92%20MC_ME_CTL_KEY%20%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%81%AB%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%83%9A%E3%83%AA%E3%83%95%E3%82%A7%E3%83%A9%E3%83%AB%E8%A8%AD%E5%AE%9A%3A%20*%20LPUART2%3A%20%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%9E%E3%83%83%E3%83%97%E3%81%AB%E5%BE%93%E3%81%A3%E3%81%A6%E3%83%99%E3%83%BC%E3%82%B9%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B90x40330000%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3EADC0%3A%20ADC0_MCR%20%E3%81%AE%20PWDN%20%E3%83%93%E3%83%83%E3%83%88%20(%E3%83%93%E3%83%83%E3%83%88%200)%20%E3%82%92%E3%82%AF%E3%83%AA%E3%82%A2%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%3C%2FP%3E%3CP%3E%E5%95%8F%E9%A1%8C%EF%BC%9A%3CBR%20%2F%3E%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9%E3%81%AB%E5%BE%93%E3%81%A3%E3%81%A6PUPD%E3%83%93%E3%83%83%E3%83%88%E3%81%8C%E3%82%AF%E3%83%AA%E3%82%A2%E3%81%95%E3%82%8C%E3%82%8B%E3%81%AE%E3%82%92%E5%BE%85%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AB%E3%82%82%E3%81%8B%E3%81%8B%E3%82%8F%E3%82%89%E3%81%9A%E3%80%81%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AF%E9%9D%9E%E5%90%8C%E6%9C%9F%E3%83%90%E3%82%B9%E9%9A%9C%E5%AE%B3%E3%82%92%E7%99%BA%E7%94%9F%E3%81%95%E3%81%9B%E3%81%BE%E3%81%99%E3%80%82%E3%81%93%E3%82%8C%E3%81%AF%E9%80%9A%E5%B8%B8%E3%80%81%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%8C%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%82%B2%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E9%96%93%E3%81%AB%E3%82%B3%E3%83%BC%E3%83%89%E3%81%8C%E3%83%9A%E3%83%AA%E3%83%95%E3%82%A7%E3%83%A9%E3%83%AB%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%EF%BC%88ADC0_MCR%E3%82%84LPUART_CTRL%E3%81%AA%E3%81%A9%EF%BC%89%E3%81%AB%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%97%E3%82%88%E3%81%86%E3%81%A8%E3%81%97%E3%81%9F%E5%A0%B4%E5%90%88%E3%80%81%E3%81%BE%E3%81%9F%E3%81%AF%E3%83%A1%E3%83%A2%E3%83%AA%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E9%81%95%E5%8F%8D%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%9F%E5%A0%B4%E5%90%88%E3%81%AB%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E4%BB%A5%E4%B8%8B%E3%81%AE%E7%82%B9%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CP%3ELPUART2%E3%81%AE%E3%83%99%E3%83%BC%E3%82%B9%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%AF0x4033_0000h%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3EADC0%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%82%A4%E3%83%8D%E3%83%BC%E3%83%96%E3%83%AB%E3%81%AF%E3%80%81%E7%A2%BA%E3%81%8B%E3%81%AB%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%B30%E3%80%81COFB1%E3%80%81%E3%83%93%E3%83%83%E3%83%888%E3%81%AB%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3ELPUART2%E3%81%AE%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%82%A4%E3%83%8D%E3%83%BC%E3%83%96%E3%83%AB%E3%81%AF%E3%80%81%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%B31%E3%80%81COFB2%E3%80%81%E3%83%93%E3%83%83%E3%83%8812%E3%81%AB%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%82%B3%E3%83%BC%E3%83%89%E3%82%B9%E3%83%8B%E3%83%9A%E3%83%83%E3%83%88%3A%3C%2FP%3E%3CDIV%3E%23include%20%3CSTDINT.H%3E%3C%2FSTDINT.H%3E%3C%2FDIV%3E%3CDIV%3E%23include%20%3CSTDIO.H%3E%3C%2FSTDIO.H%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%23define%20REG_WRITE32(addr%2C%20val)%20(*(volatile%20uint32_t%20*)(addr)%20%3D%20(val))%3C%2FDIV%3E%3CDIV%3E%23define%20REG_READ32(addr)%20(*(volatile%20uint32_t%20*)(addr))%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%2F*%20---%20SIUL2%20(%E3%83%94%E3%83%B3)%20---%20*%2F%3C%2FDIV%3E%3CDIV%3E%23define%20SIUL2_MSCR97%200x402903C4%20%2F*%20PTD1%20-%20ADC0_AN1%20*%2F%3C%2FDIV%3E%3CDIV%3E%23define%20SIUL2_MSCR232%200x402905E0%20%2F*%20PTH8%20-%20LPUART0_TX%20*%2F%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%2F*%20---%20MC_ME%20(%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF)%20---%20*%2F%3C%2FDIV%3E%3CDIV%3E%23define%20MC_ME_BASE%200x402DC000%3C%2FDIV%3E%3CDIV%3E%23define%20MC_ME_CTL_KEY%20(MC_ME_BASE%20%2B%200x00)%3C%2FDIV%3E%3CDIV%3E%23define%20MC_ME_PRTN1_PCONF%20(MC_ME_BASE%20%2B%200x300)%3C%2FDIV%3E%3CDIV%3E%23define%20MC_ME_PRTN1_PUPD%20(MC_ME_BASE%20%2B%200x304)%3C%2FDIV%3E%3CDIV%3E%23define%20MC_ME_PRTN0_PCONF%20(MC_ME_BASE%20%2B%200x100)%3C%2FDIV%3E%3CDIV%3E%23define%20MC_ME_PRTN0_PUPD%20(MC_ME_BASE%20%2B%200x104)%3C%2FDIV%3E%3CDIV%3E%23define%20MC_ME_PRTN1_STAT%20(MC_ME_BASE%20%2B%200x308)%3C%2FDIV%3E%3CDIV%3E%23define%20MC_ME_PRTN1_COFB2_CLKEN%20(MC_ME_BASE%20%2B%200x338)%20%2F%2F%20LPUART_2%20-%20REQ76%E3%80%81%E3%83%93%E3%83%83%E3%83%8812%3C%2FDIV%3E%3CDIV%3E%23define%20MC_ME_PRTN0_COFB1_CLKEN%20(MC_ME_BASE%20%2B%200x134)%20%2F%2F%20ADC_0%20-%20REQ%2040%E3%80%81%E3%83%93%E3%83%83%E3%83%88%208%3C%2FDIV%3E%3CDIV%3E%23define%20MC_ME_PRTN1_COFB1_CLKEN%20(MC_ME_BASE%20%2B%200x334)%20%2F%2F%20FXOSC%20-%20REQ%2053%E3%80%81%E3%83%93%E3%83%83%E3%83%88%2021%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%2F*%20---%20ADC0%20---%20*%2F%3C%2FDIV%3E%3CDIV%3E%23define%20ADC0_BASE%200x400A0000%3C%2FDIV%3E%3CDIV%3E%23define%20ADC0_MCR%20(ADC0_BASE%20%2B%200x00)%3C%2FDIV%3E%3CDIV%3E%23define%20ADC0_MSR%20(ADC0_BASE%20%2B%200x04)%3C%2FDIV%3E%3CDIV%3E%23define%20ADC0_NCMR0%20(ADC0_BASE%20%2B%200xA4)%3C%2FDIV%3E%3CDIV%3E%23define%20ADC0_PCDR1%20(ADC0_BASE%20%2B%200x104)%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%2F*%20---%20LPUART_2%20---%20*%2F%3C%2FDIV%3E%3CDIV%3E%23define%20LPUART_2_BASE%200x40330000%3C%2FDIV%3E%3CDIV%3E%23define%20LPUART_2_BAUD%20(LPUART_2_BASE%20%2B%200x10)%3C%2FDIV%3E%3CDIV%3E%23define%20LPUART_2_STAT%20(LPUART_2_BASE%20%2B%200x14)%3C%2FDIV%3E%3CDIV%3E%23define%20LPUART_2_CTRL%20(LPUART_2_BASE%20%2B%200x18)%3C%2FDIV%3E%3CDIV%3E%23define%20LPUART_2_DATA%20(LPUART_2_BASE%20%2B%200x1C)%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%23define%20MC_ME_KEY%200x5AF05AF0%3C%2FDIV%3E%3CDIV%3E%23define%20MC_ME_INVKEY%200xA50FA50F%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3Evoid%20Hardware_Init(void)%20%7B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%2F*%20%E5%8F%82%E5%8A%A0%E8%80%85%E5%90%91%E3%81%91%E3%83%AA%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%B9%201%20(ADC_0%20-%20REQ%2040%E3%80%81%E3%83%93%E3%83%83%E3%83%88)%20%3CLI-EMOJI%20id%3D%22lia_smiling-face-with-sunglasses%22%20title%3D%22%3Asmiling_face_with_sunglasses%3A%22%3E%3C%2FLI-EMOJI%3E%20*%2F%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20clk_ADC%20%3D%20REG_READ32(MC_ME_PRTN0_COFB1_CLKEN)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3EREG_WRITE32(MC_ME_PRTN0_COFB1_CLKEN%2C%20clk_ADC%20%7C%20(1%20%26lt%3B%26lt%3B%208))%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%2F*%20%E6%99%82%E8%A8%88%E3%81%AE%E5%A4%89%E6%9B%B4%E3%82%92%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88%E3%81%97%E3%81%BE%E3%81%99%20*%2F%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3EREG_WRITE32(MC_ME_PRTN0_PCONF%2C%200x01)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3EREG_WRITE32(MC_ME_PRTN0_PUPD%2C%200x01)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3EREG_WRITE32(MC_ME_CTL_KEY%2C%20MC_ME_KEY)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3EREG_WRITE32(MC_ME_CTL_KEY%2C%20MC_ME_INVKEY)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Ewhile(REG_READ32(MC_ME_PRTN0_PUPD)%20%26amp%3B%200x01)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%2F*%20Habilitar%20Relojes%20en%20Partici%C3%B3n%201%20(FXOSC%20-%20REQ%2053%E3%80%81%E3%83%93%E3%83%83%E3%83%88%2021)%20*%2F%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Euint32_t%20clk_FXOSC%20%3D%20REG_READ32(MC_ME_PRTN1_COFB1_CLKEN)%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3EREG_WRITE32(MC_ME_PRTN1_COFB1_CLKEN%2C%20clk_FXOSC%20%7C%20(1%20%26lt%3B%26lt%3B%2021))%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%2F*%20%E5%8F%82%E5%8A%A0%E8%80%85%E5%90%91%E3%81%91%E3%83%AA%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%B9%201%20(LPUART_2%20%E3%83%93%E3%83%83%E3%83%88%2021%20-%20REQ53)%20*%2F%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3Euint32_t%20clk_UART%20%3D%20REG_READ32(MC_ME_PRTN1_COFB2_CLKEN)%3B%3C%2FDIV%3E%3CDIV%3EREG_WRITE32(MC_ME_PRTN1_COFB2_CLKEN%2C%20clk_UART%20%7C%20(1%20%26lt%3B%26lt%3B%2012))%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%2F*%20%E6%99%82%E8%A8%88%E3%81%AE%E5%A4%89%E6%9B%B4%E3%82%92%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88%E3%81%97%E3%81%BE%E3%81%99%20*%2F%3C%2FDIV%3E%3CDIV%3EREG_WRITE32(MC_ME_PRTN1_PCONF%2C%200x01)%3B%3C%2FDIV%3E%3CDIV%3EREG_WRITE32(MC_ME_PRTN1_PUPD%2C%200x01)%3B%3C%2FDIV%3E%3CDIV%3EREG_WRITE32(MC_ME_CTL_KEY%2C%20MC_ME_KEY)%3B%3C%2FDIV%3E%3CDIV%3EREG_WRITE32(MC_ME_CTL_KEY%2C%20MC_ME_INVKEY)%3B%3C%2FDIV%3E%3CDIV%3Ewhile(REG_READ32(MC_ME_PRTN1_PUPD)%20%26amp%3B%200x01)%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%2F*%202.%20Pines%20%E3%81%AE%E8%A8%AD%E5%AE%9A%20*%2F%3C%2FDIV%3E%3CDIV%3EREG_WRITE32(SIUL2_MSCR97%E3%80%810x200000)%3B%20%20%2F*%20%E3%82%A2%E3%83%8A%E3%83%AD%E3%82%B0%E3%81%AE%20PTD1%20*%2F%3C%2FDIV%3E%3CDIV%3EREG_WRITE32(SIUL2_MSCR232%2C%200x00210001)%3B%20%2F*%20LPUART2%20TX%20*%2F%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%2F*%203.%20LPUART2%20%E3%81%AE%E8%A8%AD%E5%AE%9A%20*%2F%3C%2FDIV%3E%3CDIV%3EREG_WRITE32(LPUART_2_BAUD%2C%2026)%3B%20%2F*%20115200%E3%83%9C%E3%83%BC%20*%2F%3C%2FDIV%3E%3CDIV%3EREG_WRITE32(LPUART_2_CTRL%2C%200x00080000)%3B%20%2F*%20TX%20%E6%9C%89%E5%8A%B9%E5%8C%96%20*%2F%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%2F*%204.%20ADC0%20%E3%81%AE%E5%88%9D%E6%9C%9F%E5%8C%96%20(%E3%82%BD%E3%83%AD%20si%20el%20reloj%20ya%20es%20estable)%20*%2F%3C%2FDIV%3E%3CDIV%3E%2F*%20%E3%83%91%E3%83%AF%E3%83%BC%E3%83%80%E3%82%A6%E3%83%B3%E3%81%AE%E3%82%B5%E3%83%AA%E3%83%BC%E3%83%AB%3A%20PWDN%20%3D%200%20*%2F%3C%2FDIV%3E%3CDIV%3Euint32_t%20mcr%20%3D%20REG_READ32(ADC0_MCR)%3B%3C%2FDIV%3E%3CDIV%3EREG_WRITE32(ADC0_MCR%2C%20mcr%20%26amp%3B%20~(1%20%26lt%3B%26lt%3B%200))%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3Efor(volatile%20int%20i%3D0%3B%20i%26lt%3B1000%3B%20i%2B%2B)%3B%3C%2FDIV%3E%3CDIV%3E%7D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3Evoid%20UART_SendChar(char%20c)%20%7B%3C%2FDIV%3E%3CDIV%3Ewhile(!(REG_READ32(LPUART_2_STAT)%20%26amp%3B%20(1%20%26lt%3B%26lt%3B%2023)))%3B%20%2F%2F%E9%80%81%E4%BF%A1%E3%83%87%E3%83%BC%E3%82%BF%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%81%AE%E7%A9%BA%E3%83%95%E3%83%A9%E3%82%B0%E3%80%81%E3%83%93%E3%83%83%E3%83%8823%3C%2FDIV%3E%3CDIV%3EREG_WRITE32(LPUART_2_DATA%2C%20(uint32_t)c)%3B%3C%2FDIV%3E%3CDIV%3E%7D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3Evoid%20UART_SendString(char*%20str)%20%7B%3C%2FDIV%3E%3CDIV%3Ewhile(*str)%20UART_SendChar(*str%2B%2B)%3B%3C%2FDIV%3E%3CDIV%3E%7D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3Evoid%20UART_SendInt(uint32_t%20val)%20%7B%3C%2FDIV%3E%3CDIV%3Eif%20(val%20%3D%3D%200)%20%7B%20UART_SendChar('0')%3B%20return%3B%20%7D%3C%2FDIV%3E%3CDIV%3E%E6%96%87%E5%AD%97%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%5B10%5D%3B%3C%2FDIV%3E%3CDIV%3Eint%20i%20%3D%200%3B%3C%2FDIV%3E%3CDIV%3Ewhile%20(val%20%26gt%3B%200)%20%7B%3C%2FDIV%3E%3CDIV%3Ebuffer%5Bi%2B%2B%5D%20%3D%20(val%20%25%2010)%20%2B%20'0'%3B%3C%2FDIV%3E%3CDIV%3Eval%20%2F%3D%2010%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%26nbsp%3B%20%7D%3C%2FDIV%3E%3CDIV%3Ewhile%20(i%20%26gt%3B%200)%20UART_SendChar(buffer%5B--i%5D)%3B%3C%2FDIV%3E%3CDIV%3E%7D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3Eint%20main(void)%20%7B%3C%2FDIV%3E%3CDIV%3E%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E5%88%9D%E6%9C%9F%E5%8C%96()%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3Ewhile(1)%20%7B%3C%2FDIV%3E%3CDIV%3E%2F*%20%E3%82%AB%E3%83%8A%E3%83%AB%E3%81%A8%E7%95%B0%E7%A8%AE%E9%96%93%E3%81%AE%E5%A4%89%E6%8F%9B%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%97%E3%81%BE%E3%81%99%20*%2F%3C%2FDIV%3E%3CDIV%3EREG_WRITE32(ADC0_NCMR0%2C%20(1%20%26lt%3B%26lt%3B%201))%3B%20%2F*%20%E9%81%8B%E6%B2%B3%E3%81%AE%E9%81%B8%E6%8A%9E%201%20*%2F%3C%2FDIV%3E%3CDIV%3EREG_WRITE32(ADC0_MCR%2C%20REG_READ32(ADC0_MCR)%20%7C%20(1%20%26lt%3B%26lt%3B%2024))%3B%20%2F*%20NSTART%20%3D%201%20*%2F%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%2F*%20%E5%A4%89%E6%8F%9B%E3%81%AE%E3%82%A8%E3%82%B9%E3%83%9A%E3%83%A9%20(NEND%20%E3%81%A8%20MSR)%20*%2F%3C%2FDIV%3E%3CDIV%3Ewhile(!(REG_READ32(ADC0_MSR)%20%26amp%3B%20(1%20%26lt%3B%26lt%3B%201)))%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%2F*%20LEER%20DATOS%3A%20Usando%20el%20PCDR1%20(%E9%AB%98%E7%B2%BE%E5%BA%A6%E3%83%87%E3%83%BC%E3%82%BF%20%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF)%20*%2F%3C%2FDIV%3E%3CDIV%3Euint32_t%20val_pcdr%20%3D%20REG_READ32(ADC0_PCDR1)%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%2F*%20%E6%9C%89%E5%8A%B9%E3%81%AA%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E6%A4%9C%E8%A8%BC%20(%E3%83%93%E3%83%83%E3%83%88%2031)%20*%2F%3C%2FDIV%3E%3CDIV%3Eif%20(val_pcdr%20%26amp%3B%20(1%20%26lt%3B%26lt%3B%2031))%20%7B%3C%2FDIV%3E%3CDIV%3Euint32_t%20%E3%82%BB%E3%83%B3%E3%82%B5%20%3D%20val_pcdr%20%26amp%3B%200x7FFF%3B%20%2F*%2015%20%E3%83%93%E3%83%83%E3%83%88%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E3%83%9E%E3%82%B9%E3%82%AB%E3%83%A9%20*%2F%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3EUART_SendString(%22%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC%E5%80%A4%3A%20%22)%3B%3C%2FDIV%3E%3CDIV%3EUART_SendInt(sensor)%3B%3C%2FDIV%3E%3CDIV%3EUART_SendString(%22%5Cr%5Cn%22)%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%2F*%20Limpiar%20Bandera%20NEND%20escribiendo%20un%201%20*%2F%3C%2FDIV%3E%3CDIV%3EREG_WRITE32(ADC0_MSR%2C%20(1%20%26lt%3B%26lt%3B%201))%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3Efor(volatile%20uint32_t%20i%20%3D%200%3B%20i%20%26lt%3B%202000000%3B%20i%2B%2B)%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%26nbsp%3B%20%7D%3C%2FDIV%3E%3CDIV%3E%7D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CP%3E%E8%B3%AA%E5%95%8F%EF%BC%9A%3CBR%20%2F%3E%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%B30%E3%81%A8%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%B31%E3%81%AE%E9%96%93%E3%81%AB%E3%80%81%E7%A7%81%E3%81%8C%E8%A6%8B%E8%90%BD%E3%81%A8%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E7%89%B9%E5%AE%9A%E3%81%AE%E4%BE%9D%E5%AD%98%E9%96%A2%E4%BF%82%E3%81%8C%E3%81%82%E3%82%8B%E3%81%AE%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%EF%BC%9F%E3%81%9D%E3%82%8C%E3%81%A8%E3%82%82%E3%80%81%E3%83%9A%E3%83%AA%E3%83%95%E3%82%A7%E3%83%A9%E3%83%AB%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%81%8CIPS%E3%83%90%E3%82%B9%E4%B8%8A%E3%81%A7%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E5%8F%AF%E8%83%BD%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%BE%E3%81%A7%E3%81%AB%E3%80%81PUPD%E3%83%9D%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0%E4%BB%A5%E9%99%8D%E3%81%AB%E7%89%B9%E5%AE%9A%E3%81%AE%E9%81%85%E5%BB%B6%E6%99%82%E9%96%93%E3%81%8C%E5%BF%85%E8%A6%81%E3%81%AA%E3%81%AE%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%EF%BC%9F%3C%2FP%3E%3CP%3ES32K3xx%E3%81%A7%E3%81%93%E3%81%AE%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%81%8C%E3%83%90%E3%82%B9%E9%9A%9C%E5%AE%B3%E3%82%92%E5%BC%95%E3%81%8D%E8%B5%B7%E3%81%93%E3%81%99%E7%90%86%E7%94%B1%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E4%BD%95%E3%81%8B%E3%81%94%E5%AD%98%E7%9F%A5%E3%81%AE%E6%96%B9%E3%81%8C%E3%81%84%E3%82%89%E3%81%A3%E3%81%97%E3%82%83%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%94%E6%95%99%E7%A4%BA%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%3C%2FP%3E%3CP%3E%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%3CP%3E%E3%82%A4%E3%82%A8%E3%82%B9%E3%83%BBA%3C%2FP%3E%3C%2FDIV%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2335936%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K396%20-%20Asynchronous%20Bus%20Fault%20during%20ADC0%20and%20LPUART2%20Initialization%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2335936%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%3C%2FP%3E%0A%3CP%3E%E7%A9%BA%E3%81%AERTD%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%A7%E3%81%82%E3%81%AA%E3%81%9F%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E8%A9%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3CSPAN%3EADC%E3%81%A8LPUART%E3%81%AE%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%AB%E3%81%AF%E5%95%8F%E9%A1%8C%E3%81%AF%E8%A6%8B%E5%BD%93%E3%81%9F%E3%82%89%E3%81%9A%E3%80%81%E4%B8%A1%E6%96%B9%E3%81%AE%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%82%92%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%E5%8B%95%E4%BD%9C%E3%81%97%E3%81%AA%E3%81%84%E3%81%AE%E3%81%AF%E3%80%81while(!(REG_READ32(ADC0_MSR)%20%26amp%3B%20(1%20%26lt%3B%26lt%3B%201)))%3B%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6ADC%E3%81%AE%E5%A4%89%E6%8F%9B%E7%B5%82%E4%BA%86%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%A7%E3%81%99%E3%80%82%E4%BB%A3%E3%82%8F%E3%82%8A%E3%81%ABISR%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%82%92%E4%BD%BF%E7%94%A8%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%3CBR%20%2F%3E%E3%81%97%E3%81%8B%E3%81%97%E3%80%81%E3%81%82%E3%81%AA%E3%81%9F%E3%81%AE%E5%A0%B4%E5%90%88%E3%81%AF%E3%81%93%E3%82%8C%E3%81%8C%E4%B8%BB%E3%81%AA%E5%95%8F%E9%A1%8C%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%84%E3%82%88%E3%81%86%E3%81%A7%E3%81%99%E3%80%82%E3%81%84%E3%81%9A%E3%82%8C%E3%81%AB%E3%81%9B%E3%82%88%E3%80%81%E3%81%82%E3%81%AA%E3%81%9F%E3%81%8C%E5%AE%9F%E8%A1%8C%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%AF%E5%8E%9F%E5%9B%A0%E3%81%A7%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3CBR%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E4%BE%8B%E5%A4%96%E3%81%AF%20MPU%E3%80%81XRDC%20%E3%81%AA%E3%81%A9%E3%81%8C%E5%8E%9F%E5%9B%A0%E3%81%A7%E7%99%BA%E7%94%9F%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E5%8F%AF%E8%83%BD%E6%80%A7%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%E9%9A%9C%E5%AE%B3%E4%BE%8B%E5%A4%96%E3%82%92%E5%88%86%E6%9E%90%E3%81%97%E3%81%A6%E3%81%BF%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%3C%2FSPAN%3E%E3%80%82%E8%A9%B3%E7%B4%B0%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AF%E3%80%81%E4%BE%8B%E3%81%88%E3%81%B0%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2FS32K-Knowledge-Base%2FHow-To-Debug-A-Fault-Exception-On-ARM-Cortex-M-V7M-MCU-S32K3XX%2Fta-p%2F1595570%22%20target%3D%22_blank%22%3Ehttps%3A%2F%2Fcommunity.nxp.com%2Ft5%2FS32K-Knowledge-Base%2FHow-To-Debug-A-Fault-Exception-On-ARM-Cortex-M-V7M-MCU-S32K3XX%2Fta-p%2F1595570%3C%2FA%3E%E3%82%92%E5%8F%82%E7%85%A7%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%3C%2FP%3E%0A%3CP%3EBR%E3%80%81%E3%83%9A%E3%83%88%E3%83%AB%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2346210%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K396%20-%20Asynchronous%20Bus%20Fault%20during%20ADC0%20and%20LPUART2%20Initialization%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2346210%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%3C%2FP%3E%3CP%3EADC0%E3%81%A8LPUART2%E3%81%AE%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%81%8C%E5%AE%8C%E5%85%A8%E3%81%AB%E3%82%A2%E3%82%AF%E3%83%86%E3%82%A3%E3%83%96%E3%81%AB%E3%81%AA%E3%82%8B%E5%89%8D%E3%81%AB%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82PUPD%E3%82%92%E3%82%AF%E3%83%AA%E3%82%A2%E3%81%97%E3%81%A6%E3%82%82%E3%80%81MC_ME%E3%81%8C%E8%A6%81%E6%B1%82%E3%82%92%E5%8F%97%E3%81%91%E5%85%A5%E3%82%8C%E3%81%9F%E3%81%93%E3%81%A8%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%E3%81%A0%E3%81%91%E3%81%A7%E3%80%81%E3%83%9A%E3%83%AA%E3%83%95%E3%82%A7%E3%83%A9%E3%83%AB%E3%81%AE%E5%86%85%E9%83%A8%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%81%8C%E5%AE%89%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%E3%82%8F%E3%81%91%E3%81%A7%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%E5%90%84%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AF%E7%8B%AC%E8%87%AA%E3%81%AE%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%82%92%E6%8C%81%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%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%81%9F%E5%BE%8C%E3%80%81%E3%83%9A%E3%83%AA%E3%83%95%E3%82%A7%E3%83%A9%E3%83%AB%E3%81%AE%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%82%92%E6%93%8D%E4%BD%9C%E3%81%99%E3%82%8B%E5%89%8D%E3%81%AB%E3%80%81%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AESTAT%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%81%8C%E5%8B%95%E4%BD%9C%E4%B8%AD%E3%81%A7%E3%81%82%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E7%A4%BA%E3%81%99%E3%81%BE%E3%81%A7%E5%BE%85%E3%81%A4%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%3C%2FLINGO-BODY%3E