diff --git a/Core/Src/main.c b/Core/Src/main.c index f3c553b..eecaf0c 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -246,7 +246,6 @@ static void MX_TIM5_Init(void) /* USER CODE END TIM5_Init 0 */ TIM_ClockConfigTypeDef sClockSourceConfig = {0}; - TIM_SlaveConfigTypeDef sSlaveConfig = {0}; TIM_MasterConfigTypeDef sMasterConfig = {0}; TIM_IC_InitTypeDef sConfigIC = {0}; @@ -272,14 +271,6 @@ static void MX_TIM5_Init(void) { Error_Handler(); } - sSlaveConfig.SlaveMode = TIM_SLAVEMODE_TRIGGER; - sSlaveConfig.InputTrigger = TIM_TS_TI2FP2; - sSlaveConfig.TriggerPolarity = TIM_INPUTCHANNELPOLARITY_RISING; - sSlaveConfig.TriggerFilter = 0; - if (HAL_TIM_SlaveConfigSynchro(&htim5, &sSlaveConfig) != HAL_OK) - { - Error_Handler(); - } sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_ENABLE; if (HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig) != HAL_OK) @@ -294,6 +285,7 @@ static void MX_TIM5_Init(void) { Error_Handler(); } + sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_FALLING; sConfigIC.ICSelection = TIM_ICSELECTION_INDIRECTTI; if (HAL_TIM_IC_ConfigChannel(&htim5, &sConfigIC, TIM_CHANNEL_2) != HAL_OK) { @@ -321,9 +313,9 @@ static void MX_TIM11_Init(void) /* USER CODE END TIM11_Init 1 */ htim11.Instance = TIM11; - htim11.Init.Prescaler = 0; + htim11.Init.Prescaler = 95; htim11.Init.CounterMode = TIM_COUNTERMODE_UP; - htim11.Init.Period = 65535; + htim11.Init.Period = 10000; htim11.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim11.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; if (HAL_TIM_Base_Init(&htim11) != HAL_OK) diff --git a/Core/Src/stm32f4xx_hal_msp.c b/Core/Src/stm32f4xx_hal_msp.c index a1f20ab..8da21d0 100644 --- a/Core/Src/stm32f4xx_hal_msp.c +++ b/Core/Src/stm32f4xx_hal_msp.c @@ -144,9 +144,8 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) __HAL_RCC_GPIOA_CLK_ENABLE(); /**TIM5 GPIO Configuration PA0-WKUP ------> TIM5_CH1 - PA1 ------> TIM5_CH2 */ - GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1; + GPIO_InitStruct.Pin = GPIO_PIN_0; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; @@ -236,9 +235,8 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base) /**TIM5 GPIO Configuration PA0-WKUP ------> TIM5_CH1 - PA1 ------> TIM5_CH2 */ - HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0|GPIO_PIN_1); + HAL_GPIO_DeInit(GPIOA, GPIO_PIN_0); /* TIM5 DMA DeInit */ HAL_DMA_DeInit(htim_base->hdma[TIM_DMA_ID_CC1]); diff --git a/README.md b/README.md index a8976b6..3154d05 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,11 @@ # Hardware -... картинки из куба ... +## MCU Pinout +![MCU Pinout](images/pinout.png) + +## MCU Clocks +![MCU Clocks](images/clocks.png) # Software diff --git a/f411-pulse-recorder.ioc b/f411-pulse-recorder.ioc index 736cff3..af7b3cd 100644 --- a/f411-pulse-recorder.ioc +++ b/f411-pulse-recorder.ioc @@ -44,26 +44,24 @@ Mcu.Name=STM32F411C(C-E)Ux Mcu.Package=UFQFPN48 Mcu.Pin0=PC13-ANTI_TAMP Mcu.Pin1=PC14-OSC32_IN -Mcu.Pin10=PA13 -Mcu.Pin11=PA14 -Mcu.Pin12=VP_SYS_VS_Systick -Mcu.Pin13=VP_TIM2_VS_ClockSourceINT -Mcu.Pin14=VP_TIM2_VS_indirect_ch1 -Mcu.Pin15=VP_TIM5_VS_ControllerModeTrigger -Mcu.Pin16=VP_TIM5_VS_ClockSourceINT -Mcu.Pin17=VP_TIM5_VS_indirect_ch1 -Mcu.Pin18=VP_TIM11_VS_ClockSourceINT -Mcu.Pin19=VP_TIM11_VS_OPM +Mcu.Pin10=PA14 +Mcu.Pin11=VP_SYS_VS_Systick +Mcu.Pin12=VP_TIM2_VS_ClockSourceINT +Mcu.Pin13=VP_TIM2_VS_indirect_ch1 +Mcu.Pin14=VP_TIM5_VS_ClockSourceINT +Mcu.Pin15=VP_TIM5_VS_indirect_ch1 +Mcu.Pin16=VP_TIM11_VS_ClockSourceINT +Mcu.Pin17=VP_TIM11_VS_OPM +Mcu.Pin18=VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS Mcu.Pin2=PC15-OSC32_OUT -Mcu.Pin20=VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS Mcu.Pin3=PH0 - OSC_IN Mcu.Pin4=PH1 - OSC_OUT Mcu.Pin5=PA0-WKUP -Mcu.Pin6=PA1 -Mcu.Pin7=PA5 -Mcu.Pin8=PA11 -Mcu.Pin9=PA12 -Mcu.PinsNb=21 +Mcu.Pin6=PA5 +Mcu.Pin7=PA11 +Mcu.Pin8=PA12 +Mcu.Pin9=PA13 +Mcu.PinsNb=19 Mcu.ThirdPartyNb=0 Mcu.UserConstants= Mcu.UserName=STM32F411CEUx @@ -87,7 +85,6 @@ NVIC.TIM2_IRQn=true\:1\:0\:true\:false\:true\:true\:true\:true NVIC.TIM5_IRQn=true\:1\:0\:true\:false\:true\:true\:true\:true NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false PA0-WKUP.Signal=S_TIM5_CH1 -PA1.Signal=S_TIM5_CH2 PA11.Mode=Device_Only PA11.Signal=USB_OTG_FS_DM PA12.Mode=Device_Only @@ -138,7 +135,7 @@ ProjectManager.StackSize=0x400 ProjectManager.TargetToolchain=STM32CubeIDE ProjectManager.ToolChainLocation= ProjectManager.UnderRoot=true -ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_TIM2_Init-TIM2-false-HAL-true,5-MX_TIM5_Init-TIM5-false-HAL-true,6-MX_USB_DEVICE_Init-USB_DEVICE-false-HAL-false +ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_TIM2_Init-TIM2-false-HAL-true,5-MX_TIM5_Init-TIM5-false-HAL-true,6-MX_USB_DEVICE_Init-USB_DEVICE-false-HAL-false,7-MX_TIM11_Init-TIM11-false-HAL-true RCC.48MHZClocksFreq_Value=48000000 RCC.AHBFreq_Value=96000000 RCC.APB1CLKDivider=RCC_HCLK_DIV2 @@ -173,15 +170,17 @@ SH.S_TIM2_CH1_ETR.0=TIM2_CH1,Input_Capture1_from_TI1 SH.S_TIM2_CH1_ETR.ConfNb=1 SH.S_TIM5_CH1.0=TIM5_CH1,Input_Capture1_from_TI1 SH.S_TIM5_CH1.ConfNb=1 -SH.S_TIM5_CH2.0=TIM5_CH2,TriggerSource_TI2FP2 -SH.S_TIM5_CH2.ConfNb=1 +TIM11.IPParameters=Prescaler,Period +TIM11.Period=10000 +TIM11.Prescaler=95 TIM2.Channel-Input_Capture1_from_TI1=TIM_CHANNEL_1 TIM2.Channel-Input_Capture2_from_TI1_63=TIM_CHANNEL_2 TIM2.IPParameters=Channel-Input_Capture1_from_TI1,Channel-Input_Capture2_from_TI1_63,TIM_MasterOutputTrigger TIM2.TIM_MasterOutputTrigger=TIM_TRGO_OC2REF TIM5.Channel-Input_Capture1_from_TI1=TIM_CHANNEL_1 TIM5.Channel-Input_Capture2_from_TI1_63=TIM_CHANNEL_2 -TIM5.IPParameters=Channel-Input_Capture1_from_TI1,Channel-Input_Capture2_from_TI1_63,TIM_MasterSlaveMode +TIM5.ICPolarity_CH2=TIM_INPUTCHANNELPOLARITY_FALLING +TIM5.IPParameters=Channel-Input_Capture1_from_TI1,Channel-Input_Capture2_from_TI1_63,TIM_MasterSlaveMode,ICPolarity_CH2 TIM5.TIM_MasterSlaveMode=TIM_MASTERSLAVEMODE_ENABLE USB_DEVICE.CLASS_NAME_FS=CDC USB_DEVICE.IPParameters=VirtualMode,VirtualModeFS,CLASS_NAME_FS,MANUFACTURER_STRING,PRODUCT_STRING_CDC_FS @@ -203,8 +202,6 @@ VP_TIM2_VS_indirect_ch1.Mode=Input_Capture2_from_TI1_63 VP_TIM2_VS_indirect_ch1.Signal=TIM2_VS_indirect_ch1 VP_TIM5_VS_ClockSourceINT.Mode=Internal VP_TIM5_VS_ClockSourceINT.Signal=TIM5_VS_ClockSourceINT -VP_TIM5_VS_ControllerModeTrigger.Mode=Trigger Mode -VP_TIM5_VS_ControllerModeTrigger.Signal=TIM5_VS_ControllerModeTrigger VP_TIM5_VS_indirect_ch1.Mode=Input_Capture2_from_TI1_63 VP_TIM5_VS_indirect_ch1.Signal=TIM5_VS_indirect_ch1 VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS.Mode=CDC_FS diff --git a/images/clocks.png b/images/clocks.png new file mode 100644 index 0000000..6dbb7bb Binary files /dev/null and b/images/clocks.png differ diff --git a/images/pinout.png b/images/pinout.png new file mode 100644 index 0000000..d36c25b Binary files /dev/null and b/images/pinout.png differ