|
SAM4SD32 (SAM4S-EK2)
|
Pulse Width Modulation (PWM) driver for SAM. More...
#include "compiler.h"Go to the source code of this file.
Data Structures | |
| struct | pwm_channel_t |
| Input parameters when configuring a PWM channel mode. More... | |
| struct | pwm_clock_t |
| Input parameters when initializing PWM. More... | |
| struct | pwm_cmp_t |
| Configurations of PWM comparison. More... | |
| struct | pwm_fault_t |
| Configuration of PWM fault input behaviors. More... | |
| struct | pwm_output_t |
| Configurations of a PWM channel output. More... | |
| struct | pwm_protect_t |
| Structure of PWM write-protect information. More... | |
Macros | |
| #define | PWM_INVALID_ARGUMENT 0xFFFF |
Typedefs | |
| typedef enum _pwm_ch_t | pwm_ch_t |
| Definitions for PWM channel number. | |
Enumerations | |
| enum | _pwm_ch_t { PWM_CHANNEL_0 = 0 , PWM_CHANNEL_1 = 1 , PWM_CHANNEL_2 = 2 , PWM_CHANNEL_3 = 3 } |
| Definitions for PWM channel number. More... | |
| enum | pmc_cmp_unit_t { PWM_CMP_UNIT_0 = 0 , PWM_CMP_UNIT_1 = 1 , PWM_CMP_UNIT_2 = 2 , PWM_CMP_UNIT_3 = 3 , PWM_CMP_UNIT_4 = 4 , PWM_CMP_UNIT_5 = 5 , PWM_CMP_UNIT_6 = 6 , PWM_CMP_UNIT_7 = 7 } |
| Definitions for PWM comparison unit. More... | |
| enum | pwm_align_t { PWM_ALIGN_LEFT = (0 << 8) , PWM_ALIGN_CENTER = (1 << 8) } |
| Definitions for PWM channel alignment. More... | |
| enum | pwm_cmp_interrupt_t { PWM_CMP_MATCH = 8 , PWM_CMP_UPDATE = 16 } |
| Definitions for PWM comparison interrupt. More... | |
| enum | pwm_counter_event_t { PWM_EVENT_PERIOD_END = (0 << 10) , PWM_EVENT_PERIOD_HALF_END = (1 << 10) } |
| Definitions for PWM event. More... | |
| enum | pwm_fault_id_t { PWM_FAULT_PWMFI0 = (1 << 0) , PWM_FAULT_MAINOSC = (1 << 1) , PWM_FAULT_ADC = (1 << 2) , PWM_FAULT_ACC = (1 << 3) , PWM_FAULT_TIMER_0 = (1 << 4) , PWM_FAULT_TIMER_1 = (1 << 5) } |
| Definitions for PWM fault input ID. More... | |
| enum | pwm_level_t { PWM_LOW = LOW , PWM_HIGH = HIGH } |
| Definitions for PWM level. More... | |
| enum | pwm_pdc_interrupt_t { PWM_PDC_TX_END = (1 << 1) , PWM_PDC_TX_EMPTY = (1 << 2) } |
| Definitions for PWM PDC transfer interrupt. More... | |
| enum | pwm_pdc_request_mode_t { PWM_PDC_UPDATE_PERIOD_ELAPSED = (0 << 20) , PWM_PDC_COMPARISON_MATCH = (1 << 20) } |
| Definitions for PWM PDC transfer request mode. More... | |
| enum | pwm_protect_reg_group_t { PWM_GROUP_CLOCK = (1 << 0) , PWM_GROUP_DISABLE = (1 << 1) , PWM_GROUP_MODE = (1 << 2) , PWM_GROUP_PERIOD = (1 << 3) , PWM_GROUP_DEAD_TIME = (1 << 4) , PWM_GROUP_FAULT = (1 << 5) } |
| Definitions of PWM register group. More... | |
| enum | pwm_stepper_motor_pair_t { PWM_STEPPER_MOTOR_CH_0_1 = 0 , PWM_STEPPER_MOTOR_CH_2_3 = 1 } |
| Definitions for PWM channels used by motor stepper. More... | |
| enum | pwm_sync_interrupt_t { PWM_SYNC_WRITE_READY = (1 << 0) , PWM_SYNC_UNDERRUN = (1 << 3) } |
| Definitions for PWM synchronous channels interrupt. More... | |
| enum | pwm_sync_update_mode_t { PWM_SYNC_UPDATE_MODE_0 = PWM_SCM_UPDM_MODE0 , PWM_SYNC_UPDATE_MODE_1 = PWM_SCM_UPDM_MODE1 , PWM_SYNC_UPDATE_MODE_2 = PWM_SCM_UPDM_MODE2 } |
| Definitions for PWM synchronous channels update mode. More... | |
Functions | |
| void | pwm_channel_disable (Pwm *p_pwm, uint32_t ul_channel) |
| Disable the PWM channel. | |
| void | pwm_channel_disable_interrupt (Pwm *p_pwm, uint32_t ul_event, uint32_t ul_fault) |
| Disable the interrupt of a channel counter event and fault protection. | |
| void | pwm_channel_enable (Pwm *p_pwm, uint32_t ul_channel) |
| Enable the PWM channel. | |
| void | pwm_channel_enable_interrupt (Pwm *p_pwm, uint32_t ul_event, uint32_t ul_fault) |
| Enable the interrupt of a channel counter event and fault protection. | |
| uint32_t | pwm_channel_get_counter (Pwm *p_pwm, pwm_channel_t *p_channel) |
| Return channel counter value. | |
| uint32_t | pwm_channel_get_interrupt_mask (Pwm *p_pwm) |
| Get channel counter event and fault protection trigger interrupt mask. | |
| uint32_t | pwm_channel_get_interrupt_status (Pwm *p_pwm) |
| Get channel counter event and fault protection trigger interrupt status. | |
| uint32_t | pwm_channel_get_status (Pwm *p_pwm) |
| Check which PWM channel is enabled. | |
| uint32_t | pwm_channel_init (Pwm *p_pwm, pwm_channel_t *p_channel) |
| Initialize one PWM channel. | |
| void | pwm_channel_update_dead_time (Pwm *p_pwm, pwm_channel_t *p_channel, uint16_t us_deadtime_pwmh, uint16_t us_deadtime_pwml) |
| Change dead-time value for PWM outputs. | |
| uint32_t | pwm_channel_update_duty (Pwm *p_pwm, pwm_channel_t *p_channel, uint32_t ul_duty) |
| Change the duty cycle of the PWM channel. | |
| void | pwm_channel_update_output (Pwm *p_pwm, pwm_channel_t *p_channel, pwm_output_t *p_output, bool b_sync) |
| Change output selection of the PWM channel. | |
| uint32_t | pwm_channel_update_period (Pwm *p_pwm, pwm_channel_t *p_channel, uint32_t ul_period) |
| Change the period of the PWM channel. | |
| uint32_t | pwm_cmp_change_setting (Pwm *p_pwm, pwm_cmp_t *p_cmp) |
| Change the setting of PWM comparison. | |
| void | pwm_cmp_disable_interrupt (Pwm *p_pwm, uint32_t ul_sources, pwm_cmp_interrupt_t type) |
| Disable the interrupt of comparison. | |
| void | pwm_cmp_enable_interrupt (Pwm *p_pwm, uint32_t ul_sources, pwm_cmp_interrupt_t type) |
| Enable the interrupt of comparison. | |
| uint32_t | pwm_cmp_get_period_counter (Pwm *p_pwm, uint32_t ul_cmp_unit) |
| Report the value of the comparison period counter. | |
| uint32_t | pwm_cmp_get_update_counter (Pwm *p_pwm, uint32_t ul_cmp_unit) |
| Report the value of the comparison update period counter. | |
| uint32_t | pwm_cmp_init (Pwm *p_pwm, pwm_cmp_t *p_cmp) |
| Initialize PWM comparison unit. | |
| void | pwm_disable_protect (Pwm *p_pwm, uint32_t ul_group) |
| Disable PWM write protect. | |
| void | pwm_enable_protect (Pwm *p_pwm, uint32_t ul_group, bool b_sw) |
| Enable PWM write protect. | |
| void | pwm_fault_clear_status (Pwm *p_pwm, pwm_fault_id_t id) |
| Clear a fault input. | |
| pwm_level_t | pwm_fault_get_input_level (Pwm *p_pwm, pwm_fault_id_t id) |
| Get the level of a fault input. | |
| uint32_t | pwm_fault_get_status (Pwm *p_pwm) |
| Get fault status. | |
| uint32_t | pwm_fault_init (Pwm *p_pwm, pwm_fault_t *p_fault) |
| Initialize the behavior of a fault input. | |
| uint32_t | pwm_get_interrupt_mask (Pwm *p_pwm) |
| Get interrupt mask of PDC transfer, synchronous channels and comparison. | |
| uint32_t | pwm_get_interrupt_status (Pwm *p_pwm) |
| Get interrupt status of PDC transfer, synchronous channels and comparison. | |
| bool | pwm_get_protect_status (Pwm *p_pwm, pwm_protect_t *p_protect) |
| Get PWM write protect status. | |
| uint32_t | pwm_init (Pwm *p_pwm, pwm_clock_t *clock_config) |
| Initialize the PWM source clock (clock A and clock B). | |
| void | pwm_pdc_disable_interrupt (Pwm *p_pwm, uint32_t ul_sources) |
| Disable the interrupt of PDC transfer. | |
| void | pwm_pdc_enable_interrupt (Pwm *p_pwm, uint32_t ul_sources) |
| Enable the interrupt of PDC transfer. | |
| void | pwm_pdc_set_request_mode (Pwm *p_pwm, pwm_pdc_request_mode_t request_mode, uint32_t ul_cmp_unit) |
| Set PDC transfer request mode. | |
| void | pwm_stepper_motor_init (Pwm *p_pwm, pwm_stepper_motor_pair_t pair, bool b_enable_gray, bool b_down) |
| Initialize PWM stepper motor mode. | |
| void | pwm_sync_change_period (Pwm *p_pwm, uint32_t ul_update_period) |
| Change the wanted time between each update of the synchronous channels. | |
| void | pwm_sync_disable_interrupt (Pwm *p_pwm, uint32_t ul_sources) |
| Disable the interrupt of synchronous channels. | |
| void | pwm_sync_enable_interrupt (Pwm *p_pwm, uint32_t ul_sources) |
| Enable the interrupt of synchronous channel. | |
| uint32_t | pwm_sync_get_period_counter (Pwm *p_pwm) |
| Get the value of the synchronization update period counter. | |
| uint32_t | pwm_sync_init (Pwm *p_pwm, pwm_sync_update_mode_t mode, uint32_t ul_update_period) |
| Initialize synchronous channels update mode and period. | |
| void | pwm_sync_unlock_update (Pwm *p_pwm) |
| Unlock the update of synchronous channels. | |
Pulse Width Modulation (PWM) driver for SAM.
Copyright (c) 2011-2019 Microchip Technology Inc. and its subsidiaries.
\cond ASF_LICENSE
Definition in file pwm.h.
| #define PWM_INVALID_ARGUMENT 0xFFFF |
Definition at line 50 of file pwm.h.
Referenced by pwm_channel_update_duty(), pwm_channel_update_period(), pwm_clocks_generate(), and pwm_init().
| enum _pwm_ch_t |
Definitions for PWM channel number.
| Enumerator | |
|---|---|
| PWM_CHANNEL_0 | |
| PWM_CHANNEL_1 | |
| PWM_CHANNEL_2 | |
| PWM_CHANNEL_3 | |
Definition at line 53 of file pwm.h.
| enum pmc_cmp_unit_t |
Definitions for PWM comparison unit.
| Enumerator | |
|---|---|
| PWM_CMP_UNIT_0 | |
| PWM_CMP_UNIT_1 | |
| PWM_CMP_UNIT_2 | |
| PWM_CMP_UNIT_3 | |
| PWM_CMP_UNIT_4 | |
| PWM_CMP_UNIT_5 | |
| PWM_CMP_UNIT_6 | |
| PWM_CMP_UNIT_7 | |
Definition at line 178 of file pwm.h.
| enum pwm_align_t |
Definitions for PWM channel alignment.
| Enumerator | |
|---|---|
| PWM_ALIGN_LEFT | |
| PWM_ALIGN_CENTER | |
Definition at line 67 of file pwm.h.
| enum pwm_cmp_interrupt_t |
Definitions for PWM comparison interrupt.
| Enumerator | |
|---|---|
| PWM_CMP_MATCH | |
| PWM_CMP_UPDATE | |
Definition at line 172 of file pwm.h.
| enum pwm_counter_event_t |
Definitions for PWM event.
| Enumerator | |
|---|---|
| PWM_EVENT_PERIOD_END | |
| PWM_EVENT_PERIOD_HALF_END | |
Definition at line 110 of file pwm.h.
| enum pwm_fault_id_t |
Definitions for PWM fault input ID.
| Enumerator | |
|---|---|
| PWM_FAULT_PWMFI0 | |
| PWM_FAULT_MAINOSC | |
| PWM_FAULT_ADC | |
| PWM_FAULT_ACC | |
| PWM_FAULT_TIMER_0 | |
| PWM_FAULT_TIMER_1 | |
Definition at line 116 of file pwm.h.
| enum pwm_level_t |
Definitions for PWM level.
| Enumerator | |
|---|---|
| PWM_LOW | |
| PWM_HIGH | |
Definition at line 73 of file pwm.h.
| enum pwm_pdc_interrupt_t |
Definitions for PWM PDC transfer interrupt.
| Enumerator | |
|---|---|
| PWM_PDC_TX_END | |
| PWM_PDC_TX_EMPTY | |
Definition at line 196 of file pwm.h.
Definitions for PWM PDC transfer request mode.
| Enumerator | |
|---|---|
| PWM_PDC_UPDATE_PERIOD_ELAPSED | |
| PWM_PDC_COMPARISON_MATCH | |
Definition at line 190 of file pwm.h.
Definitions of PWM register group.
| Enumerator | |
|---|---|
| PWM_GROUP_CLOCK | |
| PWM_GROUP_DISABLE | |
| PWM_GROUP_MODE | |
| PWM_GROUP_PERIOD | |
| PWM_GROUP_DEAD_TIME | |
| PWM_GROUP_FAULT | |
Definition at line 162 of file pwm.h.
Definitions for PWM channels used by motor stepper.
| Enumerator | |
|---|---|
| PWM_STEPPER_MOTOR_CH_0_1 | |
| PWM_STEPPER_MOTOR_CH_2_3 | |
Definition at line 93 of file pwm.h.
| enum pwm_sync_interrupt_t |
Definitions for PWM synchronous channels interrupt.
| Enumerator | |
|---|---|
| PWM_SYNC_WRITE_READY | |
| PWM_SYNC_UNDERRUN | |
Definition at line 202 of file pwm.h.
Definitions for PWM synchronous channels update mode.
| Enumerator | |
|---|---|
| PWM_SYNC_UPDATE_MODE_0 | |
| PWM_SYNC_UPDATE_MODE_1 | |
| PWM_SYNC_UPDATE_MODE_2 | |
Definition at line 103 of file pwm.h.