diff --git a/bsp/stm32/libraries/HAL_Drivers/config/h7/adc_config.h b/bsp/stm32/libraries/HAL_Drivers/config/h7/adc_config.h index bda1a06485..0a51a07719 100644 --- a/bsp/stm32/libraries/HAL_Drivers/config/h7/adc_config.h +++ b/bsp/stm32/libraries/HAL_Drivers/config/h7/adc_config.h @@ -19,63 +19,69 @@ extern "C" { #ifdef BSP_USING_ADC1 #ifndef ADC1_CONFIG -#define ADC1_CONFIG \ - { \ - .Instance = ADC1, \ - .Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4, \ - .Init.Resolution = ADC_RESOLUTION_12B, \ - .Init.DataAlign = ADC_DATAALIGN_RIGHT, \ - .Init.ScanConvMode = DISABLE, \ - .Init.EOCSelection = DISABLE, \ - .Init.ContinuousConvMode = DISABLE, \ - .Init.NbrOfConversion = 1, \ - .Init.DiscontinuousConvMode = DISABLE, \ - .Init.NbrOfDiscConversion = 0, \ - .Init.ExternalTrigConv = ADC_SOFTWARE_START, \ - .Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE, \ - .Init.DMAContinuousRequests = DISABLE, \ +#define ADC1_CONFIG \ + { \ + .Instance = ADC1, \ + .Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4, \ + .Init.Resolution = ADC_RESOLUTION_16B, \ + .Init.ScanConvMode = ADC_SCAN_DISABLE, \ + .Init.EOCSelection = ADC_EOC_SINGLE_CONV, \ + .Init.LowPowerAutoWait = DISABLE, \ + .Init.ContinuousConvMode = DISABLE, \ + .Init.NbrOfConversion = 1, \ + .Init.DiscontinuousConvMode = DISABLE, \ + .Init.NbrOfDiscConversion = 1, \ + .Init.ExternalTrigConv = ADC_SOFTWARE_START, \ + .Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE, \ + .Init.ConversionDataManagement = ADC_CONVERSIONDATA_DR, \ + .Init.Overrun = ADC_OVR_DATA_OVERWRITTEN, \ + .Init.OversamplingMode = DISABLE, \ } #endif /* ADC1_CONFIG */ #endif /* BSP_USING_ADC1 */ #ifdef BSP_USING_ADC2 #ifndef ADC2_CONFIG -#define ADC2_CONFIG \ - { \ - .Instance = ADC2, \ - .Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4, \ - .Init.Resolution = ADC_RESOLUTION_12B, \ - .Init.DataAlign = ADC_DATAALIGN_RIGHT, \ - .Init.ScanConvMode = DISABLE, \ - .Init.EOCSelection = DISABLE, \ - .Init.ContinuousConvMode = DISABLE, \ - .Init.NbrOfConversion = 1, \ - .Init.DiscontinuousConvMode = DISABLE, \ - .Init.NbrOfDiscConversion = 0, \ - .Init.ExternalTrigConv = ADC_SOFTWARE_START, \ - .Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE, \ - .Init.DMAContinuousRequests = DISABLE, \ +#define ADC2_CONFIG \ + { \ + .Instance = ADC2, \ + .Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4, \ + .Init.Resolution = ADC_RESOLUTION_16B, \ + .Init.ScanConvMode = ADC_SCAN_DISABLE, \ + .Init.EOCSelection = ADC_EOC_SINGLE_CONV, \ + .Init.LowPowerAutoWait = DISABLE, \ + .Init.ContinuousConvMode = DISABLE, \ + .Init.NbrOfConversion = 1, \ + .Init.DiscontinuousConvMode = DISABLE, \ + .Init.NbrOfDiscConversion = 1, \ + .Init.ExternalTrigConv = ADC_SOFTWARE_START, \ + .Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE, \ + .Init.ConversionDataManagement = ADC_CONVERSIONDATA_DR, \ + .Init.Overrun = ADC_OVR_DATA_OVERWRITTEN, \ + .Init.OversamplingMode = DISABLE, \ } #endif /* ADC2_CONFIG */ #endif /* BSP_USING_ADC2 */ #ifdef BSP_USING_ADC3 #ifndef ADC3_CONFIG -#define ADC3_CONFIG \ - { \ - .Instance = ADC3, \ - .Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4, \ - .Init.Resolution = ADC_RESOLUTION_12B, \ - .Init.DataAlign = ADC_DATAALIGN_RIGHT, \ - .Init.ScanConvMode = DISABLE, \ - .Init.EOCSelection = DISABLE, \ - .Init.ContinuousConvMode = DISABLE, \ - .Init.NbrOfConversion = 1, \ - .Init.DiscontinuousConvMode = DISABLE, \ - .Init.NbrOfDiscConversion = 0, \ - .Init.ExternalTrigConv = ADC_SOFTWARE_START, \ - .Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE, \ - .Init.DMAContinuousRequests = DISABLE, \ +#define ADC3_CONFIG \ + { \ + .Instance = ADC3, \ + .Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4, \ + .Init.Resolution = ADC_RESOLUTION_16B, \ + .Init.ScanConvMode = ADC_SCAN_DISABLE, \ + .Init.EOCSelection = ADC_EOC_SINGLE_CONV, \ + .Init.LowPowerAutoWait = DISABLE, \ + .Init.ContinuousConvMode = DISABLE, \ + .Init.NbrOfConversion = 1, \ + .Init.DiscontinuousConvMode = DISABLE, \ + .Init.NbrOfDiscConversion = 1, \ + .Init.ExternalTrigConv = ADC_SOFTWARE_START, \ + .Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE, \ + .Init.ConversionDataManagement = ADC_CONVERSIONDATA_DR, \ + .Init.Overrun = ADC_OVR_DATA_OVERWRITTEN, \ + .Init.OversamplingMode = DISABLE, \ } #endif /* ADC3_CONFIG */ #endif /* BSP_USING_ADC3 */ diff --git a/bsp/stm32/libraries/HAL_Drivers/config/h7/dac_config.h b/bsp/stm32/libraries/HAL_Drivers/config/h7/dac_config.h new file mode 100644 index 0000000000..6ca3932831 --- /dev/null +++ b/bsp/stm32/libraries/HAL_Drivers/config/h7/dac_config.h @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-06-16 thread-liu first version + */ + +#ifndef __DAC_CONFIG_H__ +#define __DAC_CONFIG_H__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef BSP_USING_DAC1 +#ifndef DAC1_CONFIG +#define DAC1_CONFIG \ + { \ + .Instance = DAC1, \ + } +#endif /* DAC2_CONFIG */ +#endif /* BSP_USING_DAC2 */ + +#ifdef BSP_USING_DAC2 +#ifndef DAC2_CONFIG +#define DAC2_CONFIG \ + { \ + .Instance = DAC2, \ + } +#endif /* DAC2_CONFIG */ +#endif /* BSP_USING_DAC2 */ + +#ifdef __cplusplus +} +#endif + +#endif /* __DAC_CONFIG_H__ */ diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_adc.c b/bsp/stm32/libraries/HAL_Drivers/drv_adc.c index 82e4250a52..6a89d19233 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drv_adc.c +++ b/bsp/stm32/libraries/HAL_Drivers/drv_adc.c @@ -9,6 +9,7 @@ * 2018-12-12 greedyhao Porting for stm32f7xx * 2019-02-01 yuneizhilin fix the stm32_adc_init function initialization issue * 2020-06-17 thread-liu Porting for stm32mp1xx + * 2020-10-09 thread-liu Porting for stm32h7xx */ #include @@ -51,7 +52,7 @@ static rt_err_t stm32_adc_enabled(struct rt_adc_device *device, rt_uint32_t chan if (enabled) { -#if defined(SOC_SERIES_STM32L4) || defined(SOC_SERIES_STM32G0) || defined (SOC_SERIES_STM32MP1) +#if defined(SOC_SERIES_STM32L4) || defined(SOC_SERIES_STM32G0) || defined(SOC_SERIES_STM32MP1) || defined(SOC_SERIES_STM32H7) ADC_Enable(stm32_adc_handler); #else __HAL_ADC_ENABLE(stm32_adc_handler); @@ -59,7 +60,7 @@ static rt_err_t stm32_adc_enabled(struct rt_adc_device *device, rt_uint32_t chan } else { -#if defined(SOC_SERIES_STM32L4) || defined(SOC_SERIES_STM32G0) || defined (SOC_SERIES_STM32MP1) +#if defined(SOC_SERIES_STM32L4) || defined(SOC_SERIES_STM32G0) || defined(SOC_SERIES_STM32MP1) || defined(SOC_SERIES_STM32H7) ADC_Disable(stm32_adc_handler); #else __HAL_ADC_DISABLE(stm32_adc_handler); @@ -192,7 +193,7 @@ static rt_err_t stm32_get_adc_value(struct rt_adc_device *device, rt_uint32_t ch return -RT_ERROR; } -#if defined(SOC_SERIES_STM32MP1) +#if defined(SOC_SERIES_STM32MP1) || defined (SOC_SERIES_STM32H7) ADC_ChanConf.Rank = ADC_REGULAR_RANK_1; #else ADC_ChanConf.Rank = 1; @@ -208,6 +209,8 @@ static rt_err_t stm32_get_adc_value(struct rt_adc_device *device, rt_uint32_t ch ADC_ChanConf.SamplingTime = ADC_SAMPLETIME_247CYCLES_5; #elif defined(SOC_SERIES_STM32MP1) ADC_ChanConf.SamplingTime = ADC_SAMPLETIME_810CYCLES_5; +#elif defined(SOC_SERIES_STM32H7) + ADC_ChanConf.SamplingTime = ADC_SAMPLETIME_64CYCLES_5; #endif #if defined(SOC_SERIES_STM32F2) || defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7) || defined(SOC_SERIES_STM32L4) @@ -217,7 +220,7 @@ static rt_err_t stm32_get_adc_value(struct rt_adc_device *device, rt_uint32_t ch #if defined(SOC_SERIES_STM32L4) ADC_ChanConf.OffsetNumber = ADC_OFFSET_NONE; ADC_ChanConf.SingleDiff = LL_ADC_SINGLE_ENDED; -#elif defined(SOC_SERIES_STM32MP1) +#elif defined(SOC_SERIES_STM32MP1) || defined(SOC_SERIES_STM32H7) ADC_ChanConf.OffsetNumber = ADC_OFFSET_NONE; /* ADC channel affected to offset number */ ADC_ChanConf.Offset = 0; ADC_ChanConf.SingleDiff = ADC_SINGLE_ENDED; /* ADC channel differential mode */ @@ -231,7 +234,7 @@ static rt_err_t stm32_get_adc_value(struct rt_adc_device *device, rt_uint32_t ch LOG_E("ADC calibration error!\n"); return -RT_ERROR; } -#elif defined(SOC_SERIES_STM32MP1) +#elif defined(SOC_SERIES_STM32MP1) || defined(SOC_SERIES_STM32H7) /* Run the ADC linear calibration in single-ended mode */ if (HAL_ADCEx_Calibration_Start(stm32_adc_handler, ADC_CALIB_OFFSET_LINEARITY, ADC_ChanConf.SingleDiff) != HAL_OK) { diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_config.h b/bsp/stm32/libraries/HAL_Drivers/drv_config.h index aab2c72e4f..b1f63dd214 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drv_config.h +++ b/bsp/stm32/libraries/HAL_Drivers/drv_config.h @@ -100,6 +100,7 @@ extern "C" { #include "h7/spi_config.h" #include "h7/qspi_config.h" #include "h7/adc_config.h" +#include "h7/dac_config.h" #include "h7/tim_config.h" #include "h7/sdio_config.h" #include "h7/pwm_config.h" diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_dac.c b/bsp/stm32/libraries/HAL_Drivers/drv_dac.c index 73e6133ca9..e4462b0e78 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drv_dac.c +++ b/bsp/stm32/libraries/HAL_Drivers/drv_dac.c @@ -6,6 +6,7 @@ * Change Logs: * Date Author Notes * 2020-06-18 thread-liu the first version + * 2020-10-09 thread-liu Porting for stm32h7xx */ #include @@ -22,6 +23,10 @@ static DAC_HandleTypeDef dac_config[] = #ifdef BSP_USING_DAC1 DAC1_CONFIG, #endif + +#ifdef BSP_USING_DAC2 + DAC2_CONFIG, +#endif }; struct stm32_dac @@ -38,7 +43,7 @@ static rt_err_t stm32_dac_enabled(struct rt_dac_device *device, rt_uint32_t chan RT_ASSERT(device != RT_NULL); stm32_dac_handler = device->parent.user_data; -#if defined(SOC_SERIES_STM32MP1) +#if defined(SOC_SERIES_STM32MP1) || defined(SOC_SERIES_STM32H7) HAL_DAC_Start(stm32_dac_handler, channel); #endif @@ -51,7 +56,7 @@ static rt_err_t stm32_dac_disabled(struct rt_dac_device *device, rt_uint32_t cha RT_ASSERT(device != RT_NULL); stm32_dac_handler = device->parent.user_data; -#if defined(SOC_SERIES_STM32MP1) +#if defined(SOC_SERIES_STM32MP1) || defined(SOC_SERIES_STM32H7) HAL_DAC_Stop(stm32_dac_handler, channel); #endif @@ -91,22 +96,22 @@ static rt_err_t stm32_set_dac_value(struct rt_dac_device *device, rt_uint32_t ch rt_memset(&DAC_ChanConf, 0, sizeof(DAC_ChanConf)); -#if defined(SOC_SERIES_STM32MP1) - if (channel <= 2 && channel > 0) +#if defined(SOC_SERIES_STM32MP1) || defined(SOC_SERIES_STM32H7) + if ((channel <= 2) && (channel > 0)) { /* set stm32 dac channel */ dac_channel = stm32_dac_get_channel(channel); } else { - LOG_E("dac channel must be between 1 and 2."); + LOG_E("dac channel must be 1 or 2."); return -RT_ERROR; } #endif -#if defined(SOC_SERIES_STM32MP1) - DAC_ChanConf.DAC_Trigger=DAC_TRIGGER_NONE; - DAC_ChanConf.DAC_OutputBuffer=DAC_OUTPUTBUFFER_DISABLE; +#if defined(SOC_SERIES_STM32MP1) || defined(SOC_SERIES_STM32H7) + DAC_ChanConf.DAC_Trigger = DAC_TRIGGER_NONE; + DAC_ChanConf.DAC_OutputBuffer = DAC_OUTPUTBUFFER_DISABLE; #endif /* config dac out channel*/ if (HAL_DAC_ConfigChannel(stm32_dac_handler, &DAC_ChanConf, dac_channel) != HAL_OK) diff --git a/bsp/stm32/libraries/STM32H7xx_HAL/SConscript b/bsp/stm32/libraries/STM32H7xx_HAL/SConscript index a503e3e7f9..7e4817c62a 100644 --- a/bsp/stm32/libraries/STM32H7xx_HAL/SConscript +++ b/bsp/stm32/libraries/STM32H7xx_HAL/SConscript @@ -27,7 +27,7 @@ STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rng.c STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_sram.c STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_gpio.c ''') - + if GetDepend(['RT_USING_SERIAL']): src += ['STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c'] src += ['STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_usart.c'] @@ -43,7 +43,7 @@ if GetDepend(['RT_USING_SPI']): if GetDepend(['RT_USING_USB_HOST']) or GetDepend(['RT_USING_USB_DEVICE']): # src += ['STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pccard.c'] - src += ['STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c'] + src += ['STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd.c'] src += ['STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pcd_ex.c'] src += ['STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_hcd.c'] src += ['STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_usb.c'] @@ -64,6 +64,10 @@ if GetDepend(['RT_USING_ADC']): src += ['STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_adc.c'] src += ['STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_adc_ex.c'] +if GetDepend(['RT_USING_DAC']): + src += ['STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dac.c'] + src += ['STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dac_ex.c'] + if GetDepend(['RT_USING_RTC']): src += ['STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rtc.c'] src += ['STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rtc_ex.c'] diff --git a/bsp/stm32/stm32h743-atk-apollo/board/CubeMX_Config/CubeMX_Config.ioc b/bsp/stm32/stm32h743-atk-apollo/board/CubeMX_Config/CubeMX_Config.ioc index f02bd332b1..7cf6bf843c 100644 --- a/bsp/stm32/stm32h743-atk-apollo/board/CubeMX_Config/CubeMX_Config.ioc +++ b/bsp/stm32/stm32h743-atk-apollo/board/CubeMX_Config/CubeMX_Config.ioc @@ -1,4 +1,12 @@ #MicroXplorer Configuration settings - do not modify +ADC1.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_19 +ADC1.IPParameters=Rank-0\#ChannelRegularConversion,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,OffsetNumber-0\#ChannelRegularConversion,OffsetSignedSaturation-0\#ChannelRegularConversion,NbrOfConversionFlag,master +ADC1.NbrOfConversionFlag=1 +ADC1.OffsetNumber-0\#ChannelRegularConversion=ADC_OFFSET_NONE +ADC1.OffsetSignedSaturation-0\#ChannelRegularConversion=DISABLE +ADC1.Rank-0\#ChannelRegularConversion=1 +ADC1.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_1CYCLE_5 +ADC1.master=1 CORTEX_M7.CPU_DCache=Enabled CORTEX_M7.CPU_ICache=Enabled CORTEX_M7.IPParameters=CPU_ICache,CPU_DCache @@ -21,22 +29,24 @@ FMC.WriteRecoveryTime1=4 File.Version=6 KeepUserPlacement=false Mcu.Family=STM32H7 -Mcu.IP0=CORTEX_M7 -Mcu.IP1=DEBUG -Mcu.IP10=SDMMC1 -Mcu.IP11=SPI2 -Mcu.IP12=SYS -Mcu.IP13=USART1 -Mcu.IP14=USART2 -Mcu.IP2=DMA2D -Mcu.IP3=FMC -Mcu.IP4=IWDG1 -Mcu.IP5=LTDC -Mcu.IP6=NVIC -Mcu.IP7=QUADSPI -Mcu.IP8=RCC -Mcu.IP9=RTC -Mcu.IPNb=15 +Mcu.IP0=ADC1 +Mcu.IP1=CORTEX_M7 +Mcu.IP10=RCC +Mcu.IP11=RTC +Mcu.IP12=SDMMC1 +Mcu.IP13=SPI2 +Mcu.IP14=SYS +Mcu.IP15=USART1 +Mcu.IP16=USART2 +Mcu.IP2=DAC1 +Mcu.IP3=DEBUG +Mcu.IP4=DMA2D +Mcu.IP5=FMC +Mcu.IP6=IWDG1 +Mcu.IP7=LTDC +Mcu.IP8=NVIC +Mcu.IP9=QUADSPI +Mcu.IPNb=17 Mcu.Name=STM32H743IITx Mcu.Package=LQFP176 Mcu.Pin0=PC13 @@ -55,85 +65,87 @@ Mcu.Pin2=PC15-OSC32_OUT (OSC32_OUT) Mcu.Pin20=PC3_C Mcu.Pin21=PA2 Mcu.Pin22=PA3 -Mcu.Pin23=PB2 -Mcu.Pin24=PF11 -Mcu.Pin25=PF12 -Mcu.Pin26=PF13 -Mcu.Pin27=PF14 -Mcu.Pin28=PF15 -Mcu.Pin29=PG0 +Mcu.Pin23=PA4 +Mcu.Pin24=PA5 +Mcu.Pin25=PB2 +Mcu.Pin26=PF11 +Mcu.Pin27=PF12 +Mcu.Pin28=PF13 +Mcu.Pin29=PF14 Mcu.Pin3=PI9 -Mcu.Pin30=PG1 -Mcu.Pin31=PE7 -Mcu.Pin32=PE8 -Mcu.Pin33=PE9 -Mcu.Pin34=PE10 -Mcu.Pin35=PE11 -Mcu.Pin36=PE12 -Mcu.Pin37=PE13 -Mcu.Pin38=PE14 -Mcu.Pin39=PE15 +Mcu.Pin30=PF15 +Mcu.Pin31=PG0 +Mcu.Pin32=PG1 +Mcu.Pin33=PE7 +Mcu.Pin34=PE8 +Mcu.Pin35=PE9 +Mcu.Pin36=PE10 +Mcu.Pin37=PE11 +Mcu.Pin38=PE12 +Mcu.Pin39=PE13 Mcu.Pin4=PI10 -Mcu.Pin40=PH9 -Mcu.Pin41=PH10 -Mcu.Pin42=PH11 -Mcu.Pin43=PH12 -Mcu.Pin44=PB13 -Mcu.Pin45=PB14 -Mcu.Pin46=PB15 -Mcu.Pin47=PD8 -Mcu.Pin48=PD9 -Mcu.Pin49=PD10 +Mcu.Pin40=PE14 +Mcu.Pin41=PE15 +Mcu.Pin42=PH9 +Mcu.Pin43=PH10 +Mcu.Pin44=PH11 +Mcu.Pin45=PH12 +Mcu.Pin46=PB13 +Mcu.Pin47=PB14 +Mcu.Pin48=PB15 +Mcu.Pin49=PD8 Mcu.Pin5=PF0 -Mcu.Pin50=PD14 -Mcu.Pin51=PD15 -Mcu.Pin52=PG2 -Mcu.Pin53=PG4 -Mcu.Pin54=PG5 -Mcu.Pin55=PG6 -Mcu.Pin56=PG7 -Mcu.Pin57=PG8 -Mcu.Pin58=PC8 -Mcu.Pin59=PC9 +Mcu.Pin50=PD9 +Mcu.Pin51=PD10 +Mcu.Pin52=PD14 +Mcu.Pin53=PD15 +Mcu.Pin54=PG2 +Mcu.Pin55=PG4 +Mcu.Pin56=PG5 +Mcu.Pin57=PG6 +Mcu.Pin58=PG7 +Mcu.Pin59=PG8 Mcu.Pin6=PF1 -Mcu.Pin60=PA9 -Mcu.Pin61=PA10 -Mcu.Pin62=PA13 (JTMS/SWDIO) -Mcu.Pin63=PH13 -Mcu.Pin64=PH14 -Mcu.Pin65=PH15 -Mcu.Pin66=PI0 -Mcu.Pin67=PI1 -Mcu.Pin68=PI2 -Mcu.Pin69=PA14 (JTCK/SWCLK) +Mcu.Pin60=PC8 +Mcu.Pin61=PC9 +Mcu.Pin62=PA9 +Mcu.Pin63=PA10 +Mcu.Pin64=PA13 (JTMS/SWDIO) +Mcu.Pin65=PH13 +Mcu.Pin66=PH14 +Mcu.Pin67=PH15 +Mcu.Pin68=PI0 +Mcu.Pin69=PI1 Mcu.Pin7=PF2 -Mcu.Pin70=PC10 -Mcu.Pin71=PC11 -Mcu.Pin72=PC12 -Mcu.Pin73=PD0 -Mcu.Pin74=PD1 -Mcu.Pin75=PD2 -Mcu.Pin76=PG11 -Mcu.Pin77=PG15 -Mcu.Pin78=PB6 -Mcu.Pin79=PE0 +Mcu.Pin70=PI2 +Mcu.Pin71=PA14 (JTCK/SWCLK) +Mcu.Pin72=PC10 +Mcu.Pin73=PC11 +Mcu.Pin74=PC12 +Mcu.Pin75=PD0 +Mcu.Pin76=PD1 +Mcu.Pin77=PD2 +Mcu.Pin78=PG11 +Mcu.Pin79=PG15 Mcu.Pin8=PF3 -Mcu.Pin80=PE1 -Mcu.Pin81=PI4 -Mcu.Pin82=PI5 -Mcu.Pin83=PI6 -Mcu.Pin84=PI7 -Mcu.Pin85=VP_DMA2D_VS_DMA2D -Mcu.Pin86=VP_IWDG1_VS_IWDG -Mcu.Pin87=VP_RTC_VS_RTC_Activate -Mcu.Pin88=VP_SYS_VS_Systick +Mcu.Pin80=PB6 +Mcu.Pin81=PE0 +Mcu.Pin82=PE1 +Mcu.Pin83=PI4 +Mcu.Pin84=PI5 +Mcu.Pin85=PI6 +Mcu.Pin86=PI7 +Mcu.Pin87=VP_DMA2D_VS_DMA2D +Mcu.Pin88=VP_IWDG1_VS_IWDG +Mcu.Pin89=VP_RTC_VS_RTC_Activate Mcu.Pin9=PF4 -Mcu.PinsNb=89 +Mcu.Pin90=VP_SYS_VS_Systick +Mcu.PinsNb=91 Mcu.ThirdPartyNb=0 Mcu.UserConstants= Mcu.UserName=STM32H743IITx -MxCube.Version=5.6.1 -MxDb.Version=DB.5.0.60 +MxCube.Version=6.0.1 +MxDb.Version=DB.6.0.0 NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false NVIC.ForceEnableDMAVector=true @@ -159,6 +171,9 @@ PA2.Mode=Asynchronous PA2.Signal=USART2_TX PA3.Mode=Asynchronous PA3.Signal=USART2_RX +PA4.Signal=COMP_DAC11_group +PA5.Locked=true +PA5.Signal=ADCx_INP19 PA9.Locked=true PA9.Mode=Asynchronous PA9.Signal=USART1_TX @@ -350,11 +365,12 @@ ProjectManager.PreviousToolchain= ProjectManager.ProjectBuild=false ProjectManager.ProjectFileName=CubeMX_Config.ioc ProjectManager.ProjectName=CubeMX_Config +ProjectManager.RegisterCallBack= ProjectManager.StackSize=0x400 ProjectManager.TargetToolchain=MDK-ARM V5 ProjectManager.ToolChainLocation= ProjectManager.UnderRoot=false -ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_FMC_Init-FMC-false-HAL-true,6-MX_DMA2D_Init-DMA2D-false-HAL-true,7-MX_LTDC_Init-LTDC-false-HAL-true,8-MX_RTC_Init-RTC-false-HAL-true,9-MX_IWDG1_Init-IWDG1-false-HAL-true,10-MX_QUADSPI_Init-QUADSPI-false-HAL-true,11-MX_SPI2_Init-SPI2-false-HAL-true,12-MX_USART2_UART_Init-USART2-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true +ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_USART1_UART_Init-USART1-false-HAL-true,4-MX_FMC_Init-FMC-false-HAL-true,5-MX_DMA2D_Init-DMA2D-false-HAL-true,6-MX_LTDC_Init-LTDC-false-HAL-true,7-MX_RTC_Init-RTC-false-HAL-true,8-MX_IWDG1_Init-IWDG1-false-HAL-true,9-MX_QUADSPI_Init-QUADSPI-false-HAL-true,10-MX_SPI2_Init-SPI2-false-HAL-true,11-MX_USART2_UART_Init-USART2-false-HAL-true,12-MX_SDMMC1_SD_Init-SDMMC1-false-HAL-true,13-MX_ADC1_Init-ADC1-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true RCC.ADCFreq_Value=50390625 RCC.AHB12Freq_Value=200000000 RCC.AHB4Freq_Value=200000000 @@ -438,6 +454,10 @@ RCC.VCO3OutputFreq_Value=800000000 RCC.VCOInput1Freq_Value=5000000 RCC.VCOInput2Freq_Value=781250 RCC.VCOInput3Freq_Value=5000000 +SH.ADCx_INP19.0=ADC1_INP19,IN19-Single-Ended +SH.ADCx_INP19.ConfNb=1 +SH.COMP_DAC11_group.0=DAC1_OUT1,DAC_OUT1 +SH.COMP_DAC11_group.ConfNb=1 SH.FMC_A0.0=FMC_A0,13b-sda1 SH.FMC_A0.ConfNb=1 SH.FMC_A1.0=FMC_A1,13b-sda1 diff --git a/bsp/stm32/stm32h743-atk-apollo/board/CubeMX_Config/Inc/stm32h7xx_hal_conf.h b/bsp/stm32/stm32h743-atk-apollo/board/CubeMX_Config/Inc/stm32h7xx_hal_conf.h index 74341328db..7ae742313b 100644 --- a/bsp/stm32/stm32h743-atk-apollo/board/CubeMX_Config/Inc/stm32h7xx_hal_conf.h +++ b/bsp/stm32/stm32h743-atk-apollo/board/CubeMX_Config/Inc/stm32h7xx_hal_conf.h @@ -15,7 +15,7 @@ * opensource.org/licenses/BSD-3-Clause * ****************************************************************************** - */ + */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __STM32H7xx_HAL_CONF_H @@ -30,17 +30,17 @@ /* ########################## Module Selection ############################## */ /** - * @brief This is the list of modules to be used in the HAL driver + * @brief This is the list of modules to be used in the HAL driver */ -#define HAL_MODULE_ENABLED +#define HAL_MODULE_ENABLED - /* #define HAL_ADC_MODULE_ENABLED */ +#define HAL_ADC_MODULE_ENABLED /* #define HAL_FDCAN_MODULE_ENABLED */ /* #define HAL_CEC_MODULE_ENABLED */ /* #define HAL_COMP_MODULE_ENABLED */ /* #define HAL_CRC_MODULE_ENABLED */ /* #define HAL_CRYP_MODULE_ENABLED */ -/* #define HAL_DAC_MODULE_ENABLED */ +#define HAL_DAC_MODULE_ENABLED /* #define HAL_DCMI_MODULE_ENABLED */ #define HAL_DMA2D_MODULE_ENABLED /* #define HAL_ETH_MODULE_ENABLED */ @@ -100,9 +100,9 @@ /** * @brief Adjust the value of External High Speed oscillator (HSE) used in your application. * This value is used by the RCC HAL module to compute the system frequency - * (when HSE is used as system clock source, directly or through the PLL). + * (when HSE is used as system clock source, directly or through the PLL). */ -#if !defined (HSE_VALUE) +#if !defined (HSE_VALUE) #define HSE_VALUE ((uint32_t)25000000) /*!< Value of the External oscillator in Hz : FPGA case fixed to 60MHZ */ #endif /* HSE_VALUE */ @@ -117,11 +117,11 @@ #if !defined (CSI_VALUE) #define CSI_VALUE ((uint32_t)4000000) /*!< Value of the Internal oscillator in Hz*/ #endif /* CSI_VALUE */ - + /** * @brief Internal High Speed oscillator (HSI) value. * This value is used by the RCC HAL module to compute the system frequency - * (when HSI is used as system clock source, directly or through the PLL). + * (when HSI is used as system clock source, directly or through the PLL). */ #if !defined (HSI_VALUE) #define HSI_VALUE ((uint32_t)64000000) /*!< Value of the Internal oscillator in Hz*/ @@ -141,8 +141,8 @@ /** * @brief External clock source for I2S peripheral - * This value is used by the I2S HAL module to compute the I2S clock source - * frequency, this source is inserted directly through I2S_CKIN pad. + * This value is used by the I2S HAL module to compute the I2S clock source + * frequency, this source is inserted directly through I2S_CKIN pad. */ #if !defined (EXTERNAL_CLOCK_VALUE) #define EXTERNAL_CLOCK_VALUE 12288000U /*!< Value of the External clock in Hz*/ @@ -154,7 +154,7 @@ /* ########################### System Configuration ######################### */ /** * @brief This is the HAL system configuration section - */ + */ #define VDD_VALUE ((uint32_t)3300U) /*!< Value of VDD in mv */ #define TICK_INT_PRIORITY ((uint32_t)0U) /*!< tick interrupt priority */ #define USE_RTOS 0U @@ -220,14 +220,14 @@ /* ########################## Assert Selection ############################## */ /** - * @brief Uncomment the line below to expanse the "assert_param" macro in the + * @brief Uncomment the line below to expanse the "assert_param" macro in the * HAL drivers code */ -/* #define USE_FULL_ASSERT 1U */ +/* #define USE_FULL_ASSERT 1U */ /* Includes ------------------------------------------------------------------*/ /** - * @brief Include module's header file + * @brief Include module's header file */ #ifdef HAL_RCC_MODULE_ENABLED @@ -373,7 +373,7 @@ #ifdef HAL_OSPI_MODULE_ENABLED #include "stm32h7xx_hal_ospi.h" #endif /* HAL_OSPI_MODULE_ENABLED */ - + #ifdef HAL_OTFDEC_MODULE_ENABLED #include "stm32h7xx_hal_otfdec.h" #endif /* HAL_OTFDEC_MODULE_ENABLED */ @@ -472,7 +472,7 @@ * @brief The assert_param macro is used for function's parameters check. * @param expr: If expr is false, it calls assert_failed function * which reports the name of the source file and the source - * line number of the call that failed. + * line number of the call that failed. * If expr is true, it returns no value. * @retval None */ @@ -488,6 +488,6 @@ #endif #endif /* __STM32H7xx_HAL_CONF_H */ - + /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32h743-atk-apollo/board/CubeMX_Config/Src/stm32h7xx_hal_msp.c b/bsp/stm32/stm32h743-atk-apollo/board/CubeMX_Config/Src/stm32h7xx_hal_msp.c index 7bed99c3d1..430b8b4585 100644 --- a/bsp/stm32/stm32h743-atk-apollo/board/CubeMX_Config/Src/stm32h7xx_hal_msp.c +++ b/bsp/stm32/stm32h743-atk-apollo/board/CubeMX_Config/Src/stm32h7xx_hal_msp.c @@ -96,6 +96,128 @@ void HAL_MspInit(void) /* USER CODE END MspInit 1 */ } +/** +* @brief ADC MSP Initialization +* This function configures the hardware resources used in this example +* @param hadc: ADC handle pointer +* @retval None +*/ +void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(hadc->Instance==ADC1) + { + /* USER CODE BEGIN ADC1_MspInit 0 */ + + /* USER CODE END ADC1_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_ADC12_CLK_ENABLE(); + + __HAL_RCC_GPIOA_CLK_ENABLE(); + /**ADC1 GPIO Configuration + PA5 ------> ADC1_INP19 + */ + GPIO_InitStruct.Pin = GPIO_PIN_5; + GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /* USER CODE BEGIN ADC1_MspInit 1 */ + + /* USER CODE END ADC1_MspInit 1 */ + } + +} + +/** +* @brief ADC MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param hadc: ADC handle pointer +* @retval None +*/ +void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc) +{ + if(hadc->Instance==ADC1) + { + /* USER CODE BEGIN ADC1_MspDeInit 0 */ + + /* USER CODE END ADC1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_ADC12_CLK_DISABLE(); + + /**ADC1 GPIO Configuration + PA5 ------> ADC1_INP19 + */ + HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5); + + /* USER CODE BEGIN ADC1_MspDeInit 1 */ + + /* USER CODE END ADC1_MspDeInit 1 */ + } + +} + +/** +* @brief DAC MSP Initialization +* This function configures the hardware resources used in this example +* @param hdac: DAC handle pointer +* @retval None +*/ +void HAL_DAC_MspInit(DAC_HandleTypeDef* hdac) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(hdac->Instance==DAC1) + { + /* USER CODE BEGIN DAC1_MspInit 0 */ + + /* USER CODE END DAC1_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_DAC12_CLK_ENABLE(); + + __HAL_RCC_GPIOA_CLK_ENABLE(); + /**DAC1 GPIO Configuration + PA4 ------> DAC1_OUT1 + */ + GPIO_InitStruct.Pin = GPIO_PIN_4; + GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; + GPIO_InitStruct.Pull = GPIO_NOPULL; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /* USER CODE BEGIN DAC1_MspInit 1 */ + + /* USER CODE END DAC1_MspInit 1 */ + } + +} + +/** +* @brief DAC MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param hdac: DAC handle pointer +* @retval None +*/ +void HAL_DAC_MspDeInit(DAC_HandleTypeDef* hdac) +{ + if(hdac->Instance==DAC1) + { + /* USER CODE BEGIN DAC1_MspDeInit 0 */ + + /* USER CODE END DAC1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_DAC12_CLK_DISABLE(); + + /**DAC1 GPIO Configuration + PA4 ------> DAC1_OUT1 + */ + HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4); + + /* USER CODE BEGIN DAC1_MspDeInit 1 */ + + /* USER CODE END DAC1_MspDeInit 1 */ + } + +} + /** * @brief DMA2D MSP Initialization * This function configures the hardware resources used in this example diff --git a/bsp/stm32/stm32h743-atk-apollo/board/Kconfig b/bsp/stm32/stm32h743-atk-apollo/board/Kconfig index b7ffc21d4d..e2d7618062 100644 --- a/bsp/stm32/stm32h743-atk-apollo/board/Kconfig +++ b/bsp/stm32/stm32h743-atk-apollo/board/Kconfig @@ -138,6 +138,26 @@ menu "On-chip Peripheral Drivers" endchoice endif + menuconfig BSP_USING_ADC + bool "Enable ADC" + default n + select RT_USING_ADC + if BSP_USING_ADC + config BSP_USING_ADC1 + bool "Enable ADC1" + default n + endif + + menuconfig BSP_USING_DAC + bool "Enable DAC" + default n + select RT_USING_DAC + if BSP_USING_DAC + config BSP_USING_DAC1 + bool "Enable DAC1" + default n + endif + config BSP_USING_WDT bool "Enable Watchdog Timer" select RT_USING_WDT @@ -151,5 +171,5 @@ endmenu menu "Board extended module Drivers" endmenu - + endmenu