/* * Copyright 2026 NXP * All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ /*********************************************************************************************************************** * This file was generated by the MCUXpresso Config Tools. Any manual edits made to this file * will be overwritten if the respective MCUXpresso Config Tools is used to update this file. **********************************************************************************************************************/ /* clang-format off */ /* TEXT BELOW IS USED AS SETTING FOR TOOLS ************************************* !!GlobalInfo product: Peripherals v15.0 processor: MIMXRT1189xxxxx package_id: MIMXRT1189CVM8C mcu_data: ksdk2_0 processor_version: 26.03.10 board: MIMXRT1180-EVK functionalGroups: - name: BOARD_InitPeripherals UUID: e05a8704-a0aa-436e-89f3-59a6570dd2ff called_from_default_init: true selectedCore: cm33 * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS **********/ /* TEXT BELOW IS USED AS SETTING FOR TOOLS ************************************* component: - type: 'system' - type_id: 'system' - global_system_definitions: - user_definitions: '' - user_includes: '' - global_init: '' * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS **********/ /* TEXT BELOW IS USED AS SETTING FOR TOOLS ************************************* component: - type: 'uart_cmsis_common' - type_id: 'uart_cmsis_common' - global_USART_CMSIS_common: - quick_selection: 'default' * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS **********/ /* TEXT BELOW IS USED AS SETTING FOR TOOLS ************************************* component: - type: 'gpio_adapter_common' - type_id: 'gpio_adapter_common' - global_gpio_adapter_common: - quick_selection: 'default' * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS **********/ /* clang-format on */ /*********************************************************************************************************************** * Included files **********************************************************************************************************************/ #include "peripherals.h" /*********************************************************************************************************************** * BOARD_InitPeripherals functional group **********************************************************************************************************************/ #ifdef BSP_LPADC1_USING_DMA /*********************************************************************************************************************** * DMA4 initialization code **********************************************************************************************************************/ /* clang-format off */ /* TEXT BELOW IS USED AS SETTING FOR TOOLS ************************************* instance: - name: 'DMA4' - type: 'edma4' - mode: 'general' - custom_name_enabled: 'false' - type_id: 'edma4_2.9.0' - functional_group: 'BOARD_InitPeripherals' - peripheral: 'DMA4' - config_sets: - fsl_edma: - dmamux_devices: [] - common_settings: - vars: [] - enableHaltOnError: 'true' - enableDebugMode: 'false' - enableRoundRobinArbitration: 'fixedPriority' - enableGlobalChannelLink: 'true' - enableMasterIdReplication: 'false' - dma_table: - 0: [] - edma_channels: - 0: - apiMode: 'trans' - edma_channel: - channel_prefix_id: 'CH0' - uid: '1780195171347' - eDMAn: '0' - eDMA_source: 'kDma4RequestMuxADC1Request0' - init_channel_priority: 'false' - edma_channel_Preemption: - enableChannelPreemption: 'false' - enablePreemptAbility: 'false' - channelPriority: '0' - initMemoryAttributes: 'false' - memAttributes: - writeCache: 'buffer' - readCache: 'buffer' - setChannelSwapSize: 'noInit' - signExtension: 'noInit' - setChannelAccessType: 'noInit' - masterIdReplicationEnable: 'noInit' - securityLevel: 'noInit' - protectionLevel: 'noInit' - enable_custom_name: 'false' - resetChannel: 'false' - enableChannelRequest: 'true' - enableAsyncRequest: 'false' - enableAutoStop: 'false' - tcd_pool_enable: 'false' - tcd_settings: - tcd_size: '1' - tcd_memory_ptr_id: 'default' - transfer_config: - 0: - uid: '1780716022754' - tcdID: 'CH0_TRANSFER0' - ssize: 'kEDMA_TransferSize4Bytes' - saddr_expr: '&ADC1->RESFIFO[0]' - saddr_def: '' - soff: '0' - soff_def: '' - smod: 'kEDMA_ModuloDisable' - dsize: 'kEDMA_TransferSize4Bytes' - daddr_expr: '&adc_result[0]' - daddr_def: 'AT_NONCACHEABLE_SECTION_ALIGN_INIT(extern uint32_t adc_result[], sizeof(uint32_t));' - doff: 'sizeof(uint32_t)' - doff_def: '' - dmod: 'kEDMA_ModuloDisable' - nbytes: '4' - MLconfig: - offsetType: 'disabled' - mloff: '0' - enableChannelLinkMinor: 'false' - linkedChannelMinor: '1780195171347' - citer: '7' - slast: '0' - dlast: '-28' - enableChannelLinkMajor: 'false' - linkedChannelMajor: '1780195171347' - submitTransfer: 'true' - loopTransfer: 'false' - no_init_uid: '1780195171376' - init_callback: 'true' - callback_function: 'DMA_Callback' - callback_user_data: '' - channel_enabled_interrupts: '' - interrupt_channel: - IRQn: 'DMA4_CH0_CH1_CH32_CH33_IRQn' - enable_priority: 'false' - priority: '0' - errInterruptConfig: - enableErrInterrupt: 'false' - errorInterrupt: - IRQn: 'DMA4_ERROR_IRQn' - enable_interrrupt: 'enabled' - enable_priority: 'false' - priority: '0' - enable_custom_name: 'false' * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS **********/ /* clang-format on */ edma_config_t DMA4_config = { .enableMasterIdReplication = false, .enableGlobalChannelLink = true, .enableHaltOnError = true, .enableDebugMode = false, .enableRoundRobinArbitration = false }; /* Tansactional transfer configurations */ edma_transfer_config_t DMA4_CH0_Transfers_config[1]; edma_handle_t DMA4_CH0_Handle; static void DMA4_init(void) { status_t status; (void)status; /* Channel CH0 initialization */ /* Set the kDma4RequestMuxADC1Request0 request */ EDMA_SetChannelMux(DMA4_DMA_BASEADDR, DMA4_CH0_DMA_CHANNEL, DMA4_CH0_DMA_REQUEST); /* Create the eDMA DMA4_CH0_Handle handle */ EDMA_CreateHandle(&DMA4_CH0_Handle, DMA4_DMA_BASEADDR, DMA4_CH0_DMA_CHANNEL); /* DMA callback initialization */ EDMA_SetCallback(&DMA4_CH0_Handle, DMA_Callback, NULL); /* DMA4 transfer CH0_TRANSFER0 configuration */ EDMA_PrepareTransferConfig(&DMA4_CH0_TRANSFER0_CONFIG, (void *) &ADC1->RESFIFO[0], 1 << kEDMA_TransferSize4Bytes, 0, (void *) &adc_result[0], 1 << kEDMA_TransferSize4Bytes, sizeof(uint32_t), 4U, 28U); DMA4_CH0_TRANSFER0_CONFIG.dstMajorLoopOffset = -28; /* DMA4 transfer CH0_TRANSFER0 submit */ status = EDMA_SubmitTransfer(&DMA4_CH0_Handle, &DMA4_CH0_TRANSFER0_CONFIG); assert(status == kStatus_Success); /* DMA4 hardware channel 0 request auto stop */ EDMA_EnableAutoStopRequest(DMA4_DMA_BASEADDR, DMA4_CH0_DMA_CHANNEL, false); /* DMA4 channel 0 peripheral request */ EDMA_EnableChannelRequest(DMA4_DMA_BASEADDR, DMA4_CH0_DMA_CHANNEL); } #endif /*********************************************************************************************************************** * CM33_NVIC initialization code **********************************************************************************************************************/ /* clang-format off */ /* TEXT BELOW IS USED AS SETTING FOR TOOLS ************************************* instance: - name: 'CM33_NVIC' - type: 'nvic' - mode: 'general' - custom_name_enabled: 'false' - type_id: 'nvic' - functional_group: 'BOARD_InitPeripherals' - peripheral: 'CM33_NVIC' - config_sets: - nvic: - interrupt_table: - 0: [] - interrupts: [] * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS **********/ /* clang-format on */ /* Empty initialization function (commented out) static void CM33_NVIC_init(void) { } */ /*********************************************************************************************************************** * LPUART1 initialization code **********************************************************************************************************************/ /* clang-format off */ /* TEXT BELOW IS USED AS SETTING FOR TOOLS ************************************* instance: - name: 'LPUART1' - type: 'lpuart' - mode: 'polling' - custom_name_enabled: 'false' - type_id: 'lpuart_2.11.0' - functional_group: 'BOARD_InitPeripherals' - peripheral: 'LPUART1' - config_sets: - lpuartConfig_t: - lpuartConfig: - clockSource: 'LpuartClock' - lpuartSrcClkFreq: 'ClocksTool_DefaultInit' - baudRate_Bps: '115200' - parityMode: 'kLPUART_ParityDisabled' - dataBitsCount: 'kLPUART_EightDataBits' - isMsb: 'false' - stopBitCount: 'kLPUART_OneStopBit' - enableMatchAddress1: 'false' - matchAddress1: '0' - enableMatchAddress2: 'false' - matchAddress2: '0' - txFifoWatermark: '0' - rxFifoWatermark: '1' - enableRxRTS: 'false' - enableTxRTS: 'false' - enableTxCTS: 'false' - txCtsSource: 'kLPUART_CtsSourcePin' - txCtsConfig: 'kLPUART_CtsSampleAtStart' - txRtsPolarity: 'kLPUART_RtsPolarityLow' - rtsWatermark: '0' - rxIdleType: 'kLPUART_IdleTypeStartBit' - rxIdleConfig: 'kLPUART_IdleCharacter1' - enableTx: 'true' - enableRx: 'true' - inverseTxd: 'false' - quick_selection: 'QuickSelection1' * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS **********/ /* clang-format on */ const lpuart_config_t LPUART1_config = { .baudRate_Bps = 115200UL, .parityMode = kLPUART_ParityDisabled, .dataBitsCount = kLPUART_EightDataBits, .isMsb = false, .stopBitCount = kLPUART_OneStopBit, .txFifoWatermark = 0U, .rxFifoWatermark = 1U, .enableRxRTS = false, .enableTxRTS = false, .enableTxCTS = false, .txCtsSource = kLPUART_CtsSourcePin, .txCtsConfig = kLPUART_CtsSampleAtStart, .txRtsPolarity = kLPUART_RtsPolarityLow, .rtsWatermark = 0U, .rxIdleType = kLPUART_IdleTypeStartBit, .rxIdleConfig = kLPUART_IdleCharacter1, .enableTx = true, .enableRx = true, .inverseTxd = false }; static void LPUART1_init(void) { LPUART_Init(LPUART1_PERIPHERAL, &LPUART1_config, LPUART1_CLOCK_SOURCE); } /*********************************************************************************************************************** * RGPIO4 initialization code **********************************************************************************************************************/ /* clang-format off */ /* TEXT BELOW IS USED AS SETTING FOR TOOLS ************************************* instance: - name: 'RGPIO4' - type: 'rgpio' - mode: 'GPIO' - custom_name_enabled: 'false' - type_id: 'rgpio_2.1.0' - functional_group: 'BOARD_InitPeripherals' - peripheral: 'RGPIO4' - config_sets: - fsl_gpio: - interrupts: - 0: - enable_irq: 'false' - gpio_interrupt: - IRQn: 'GPIO4_IRQn' - enable_interrrupt: 'enabled' - enable_priority: 'false' - priority: '0' - enable_custom_name: 'false' * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS **********/ /* clang-format on */ /* Empty initialization function (commented out) static void RGPIO4_init(void) { } */ #ifdef BSP_USING_LPADC /*********************************************************************************************************************** * ADC1 initialization code **********************************************************************************************************************/ /* clang-format off */ /* TEXT BELOW IS USED AS SETTING FOR TOOLS ************************************* instance: - name: 'ADC1' - type: 'lpadc' - mode: 'LPADC' - custom_name_enabled: 'false' - type_id: 'lpadc_2.8.1' - functional_group: 'BOARD_InitPeripherals' - peripheral: 'ADC1' - config_sets: - fsl_lpadc: - lpadcConfig: - clockSource: 'AsynchronousFunctionClock' - clockSourceFreq: 'ClocksTool_DefaultInit' - enableJustifiedLeft: 'false' - enableInDozeMode: 'true' - conversionAverageMode: 'kLPADC_ConversionAverage2' - offsetCalibration: 'yes' - autoCalibrate: 'true' - enableAnalogPreliminary: 'false' - powerUpDelay: '0x80' - referenceVoltageSource: 'kLPADC_ReferenceVoltageAlt2' - triggerPriorityPolicy: 'kLPADC_ConvPreemptImmediatelyNotAutoResumed' - enableConvPause: 'false' - convPauseDelay: '0' - FIFO0Watermark: '0' - FIFO1Watermark: '0' - FIFO0WatermarkDMA: 'true' - FIFO1WatermarkDMA: 'false' - lpadcConvCommandConfig: - 0: - user_commandId: 'GRPA' - commandId: '1' - chainedNextCommandNumber: '2' - sampleChannelMode: 'kLPADC_SampleChannelSingleEndSideA' - sampleScaleMode: 'kLPADC_SampleFullScale' - channelNumber: 'A.1_4' - enableChannelB_b: 'false' - channelBScaleMode_e: 'kLPADC_SampleFullScale' - channelBNumber: 'B.1_0' - enableAutoChannelIncrement: 'true' - loopCount: '3' - hardwareAverageMode: 'kLPADC_HardwareAverageCount1' - sampleTimeMode: 'kLPADC_SampleTimeADCK3' - hardwareCompareMode: 'kLPADC_HardwareCompareDisabled' - hardwareCompareValueHigh: '0' - hardwareCompareValueLow: '0' - conversionResoultuionMode: 'kLPADC_ConversionResolutionHigh' - enableWaitTrigger: 'true' - 1: - user_commandId: 'GRPB' - commandId: '2' - chainedNextCommandNumber: '0' - sampleChannelMode: 'kLPADC_SampleChannelSingleEndSideB' - sampleScaleMode: 'kLPADC_SampleFullScale' - channelNumber: 'B.1_5' - enableChannelB_b: 'false' - channelBScaleMode_e: 'kLPADC_SampleFullScale' - channelBNumber: 'B.1_0' - enableAutoChannelIncrement: 'true' - loopCount: '2' - hardwareAverageMode: 'kLPADC_HardwareAverageCount1' - sampleTimeMode: 'kLPADC_SampleTimeADCK3' - hardwareCompareMode: 'kLPADC_HardwareCompareDisabled' - hardwareCompareValueHigh: '0' - hardwareCompareValueLow: '0' - conversionResoultuionMode: 'kLPADC_ConversionResolutionHigh' - enableWaitTrigger: 'false' - lpadcConvTriggerConfig: - 0: - user_triggerId: 'TRIG' - triggerId: '0' - targetCommandId: '1' - delayPower: '0' - priority: 'false' - channelAFIFOSelect: '0' - channelBFIFOSelect: '0' - enableHardwareTrigger: 'false' - IRQ_cfg: - interrupt_type: '' - enable_irq: 'false' - adc_interrupt: - IRQn: 'ADC1_IRQn' - enable_interrrupt: 'enabled' - enable_priority: 'false' - priority: '0' - enable_custom_name: 'true' * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS **********/ /* clang-format on */ const lpadc_config_t ADC1_config = { .enableInDozeMode = true, .conversionAverageMode = kLPADC_ConversionAverage2, .enableAnalogPreliminary = false, .powerUpDelay = 0x80UL, .referenceVoltageSource = kLPADC_ReferenceVoltageAlt2, .triggerPriorityPolicy = kLPADC_ConvPreemptImmediatelyNotAutoResumed, .enableConvPause = false, .convPauseDelay = 0UL, .FIFO0Watermark = 0UL, .FIFO1Watermark = 0UL }; lpadc_conv_command_config_t ADC1_commandsConfig[2] = { { .sampleScaleMode = kLPADC_SampleFullScale, .channelBScaleMode = kLPADC_SampleFullScale, .sampleChannelMode = kLPADC_SampleChannelSingleEndSideA, .channelNumber = 4U, .channelBNumber = 0U, .chainedNextCommandNumber = 2, .enableChannelB = false, .enableAutoChannelIncrement = true, .loopCount = 3UL, .hardwareAverageMode = kLPADC_HardwareAverageCount1, .sampleTimeMode = kLPADC_SampleTimeADCK3, .hardwareCompareMode = kLPADC_HardwareCompareDisabled, .hardwareCompareValueHigh = 0UL, .hardwareCompareValueLow = 0UL, .conversionResolutionMode = kLPADC_ConversionResolutionHigh, .enableWaitTrigger = true }, { .sampleScaleMode = kLPADC_SampleFullScale, .channelBScaleMode = kLPADC_SampleFullScale, .sampleChannelMode = kLPADC_SampleChannelSingleEndSideB, .channelNumber = 5U, .channelBNumber = 0U, .chainedNextCommandNumber = 0, .enableChannelB = false, .enableAutoChannelIncrement = true, .loopCount = 2UL, .hardwareAverageMode = kLPADC_HardwareAverageCount1, .sampleTimeMode = kLPADC_SampleTimeADCK3, .hardwareCompareMode = kLPADC_HardwareCompareDisabled, .hardwareCompareValueHigh = 0UL, .hardwareCompareValueLow = 0UL, .conversionResolutionMode = kLPADC_ConversionResolutionHigh, .enableWaitTrigger = false } }; lpadc_conv_trigger_config_t ADC1_triggersConfig[1] = { { .targetCommandId = 1, .delayPower = 0UL, .channelAFIFOSelect = 0, .channelBFIFOSelect = 0, .priority = 1, .enableHardwareTrigger = false } }; static void ADC1_init(void) { /* Initialize LPADC converter */ LPADC_Init(ADC1_PERIPHERAL, &ADC1_config); /* Perform offset calibration */ LPADC_DoOffsetCalibration(ADC1_PERIPHERAL); /* Perform auto calibration */ LPADC_DoAutoCalibration(ADC1_PERIPHERAL); /* Enable DMA request on FIFO 0 watermark event */ LPADC_EnableFIFO0WatermarkDMA(ADC1_PERIPHERAL, true); /* Configure conversion command 1. */ LPADC_SetConvCommandConfig(ADC1_PERIPHERAL, ADC1_GRPA, &ADC1_commandsConfig[0]); /* Configure conversion command 2. */ LPADC_SetConvCommandConfig(ADC1_PERIPHERAL, ADC1_GRPB, &ADC1_commandsConfig[1]); /* Configure trigger 0. */ LPADC_SetConvTriggerConfig(ADC1_PERIPHERAL, ADC1_TRIG, &ADC1_triggersConfig[0]); } #endif /*********************************************************************************************************************** * Initialization functions **********************************************************************************************************************/ void BOARD_InitPeripherals(void) { #ifdef BSP_USING_LPADC ADC1_init(); #ifdef BSP_LPADC1_USING_DMA /* Global initialization */ (void)memset(DMA4_config.channelConfig, 0, FSL_FEATURE_EDMA_INSTANCE_CHANNELn(DMA4_DMA_BASEADDR) * sizeof(edma_channel_config_t *)); EDMA_Init(DMA4_DMA_BASEADDR, &DMA4_config); /* Initialize components */ DMA4_init(); #endif #endif LPUART1_init(); } /*********************************************************************************************************************** * BOARD_InitBootPeripherals function **********************************************************************************************************************/ void BOARD_InitBootPeripherals(void) { BOARD_InitPeripherals(); }