Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The FreeRTOS BSP make uses of the STM32CubeH7 software component to provide a device driver for the STM32H7 PWM. The driver is configured (enabled / disabled) at the BSP build time, using the HAL_TIM_MODULE_ENABLED configuration option, defined in the stm32h7xx_hal_conf.h file.

1.2. FreeRTOS PWM C-Binding API

...

Function

Description

Comments

HAL_StatusTypeDef HAL_TIM_PWM_Init(TIM_HandleTypeDef *htim)

Initialize the TIM PWM mode according to the specified parameters by htim

htim is a pointer to a structure that contains the configuration information for TIM module; returns one of {HAL_OK, HAL_ERROR, HAL_BUSY, HAL_TIMEOUT}

HAL_StatusTypeDef HAL_TIM_PWM_DeInit(TIM_HandleTypeDef *htim)

De-initialize the TIM peripheral

htim is a pointer to a structure that contains the configuration information for TIM module; returns one of {HAL_OK, HAL_ERROR, HAL_BUSY, HAL_TIMEOUT}

HAL_StatusTypeDef HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef* sConfig, uint32_t Channel)

Initialize the TIM PWM channel according to the specified parameters by sConfig

htim is a pointer to a structure that contains the configuration information for TIM module; sConfig is a TIM PWM configuration structure; Channel is a TIM channel to be configured; returns one of {HAL_OK, HAL_ERROR, HAL_BUSY, HAL_TIMEOUT}

HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel)

Starts the PWM signal generation

htim is a pointer to a structure that contains the configuration information for TIM module; Channel is a TIM channel to be enabled; returns one of {HAL_OK, HAL_ERROR, HAL_BUSY, HAL_TIMEOUT}

HAL_StatusTypeDef HAL_TIM_PWM_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)

Stops the PWM signal generation

htim is a pointer to a structure that contains the configuration information for TIM module; Channel is a TIM channel to be disabled; returns one of {HAL_OK, HAL_ERROR, HAL_BUSY, HAL_TIMEOUT}

The TIM_HandleTypeDef data structure used in this API has the following definition:

Code Block
typedef struct
{
  TIM_TypeDef                *Instance; /* Register base address             */ 
  TIM_Base_InitTypeDef       Init;      /* TIM Time Base required parameters */
  HAL_TIM_ActiveChannel      Channel;   /* Active channel                    */ 
  DMA_HandleTypeDef          *hdma[7];  /* DMA Handlers array                */
  HAL_LockTypeDef            Lock;      /* Locking object                    */
  __IO HAL_TIM_StateTypeDef  State;     /* TIM operation state               */  
} TIM_HandleTypeDef;

The TIM_OC_InitTypeDef data structure used in HAL_TIM_PWM_ConfigChannel interface has the following definition:

...

Command

Description

Comments

pwm_start <tim> <chnl> <period> <duty>

Start a PWM output signal

tim M is the timer number, chnl is the channel number, period is the PWM output frequency (value in nanoseconds), duty is the duty cycle (percentage value)

pwm_stop <tim> <chnl>

Stop a PWM output

tim is the timer number, chnl M is the channel number

3. Validating PWM Operation

...