I have been doing it for quite long. This function will enable the interrupt service, if its lazy installed in mcpwm_capture_channel_register_event_callbacks(). A simple BLDC motor control algorithm for low cost motor drive applications using general purpose microcontrollers has been created and presented in this paper. 1. These objects are the basis of the following IO setting and control functions. This closed loop control for BLDC motor system could be used in drilling machines, lath machines, spinning machines, elevators and electric bikes. The callback function will provide event specific data of type mcpwm_capture_event_data_t, so that you can get the edge of the capture signal in mcpwm_capture_event_data_t::cap_edge and the count value of that moment in mcpwm_capture_event_data_t::cap_value. Note that, different from MCPWM Timer, the capture timer can only support one count direction: MCPWM_TIMER_DIRECTION_UP. When the time-base counter is equal to any of the threshold value, an compare event will be generated and the MCPWM generator can update its level accordingly. The cost of a brushless DC motor is comparatively higher as compared to brushed DC motor and the electronic controller also increases the cost of overall setup, as in a traditional motor, low-cost mechanical commutation setup involving brushes is used. It is a highly versatile and low-cost solution for many applications, including Internet of Things (IoT) projects, home automation, and robotics. The callback function prototype is declared in mcpwm_compare_event_cb_t. mcpwm_timer_config_t::count_mode sets the count mode of the timer. Three phase motor control using the MCPWM 6x Mosfets and Smart Driver SPI for the dual Absolute Magnetic Encoder I2C for the OLED Bluetooth, Wifi, CAN, ESP-NOW or serial for communications Current, Voltage and Temperature monitoring IMG_4840s.jpg ESP-32 DRV4_0.jpg You do not have the required permissions to view the files attached to this post. There is another Kconfig option CONFIG_MCPWM_CTRL_FUNC_IN_IRAM that can put commonly used IO control functions into IRAM as well. The code snippet that is used to generate the waveforms is also provided below the diagram. the input sync signal will be routed to its sync output). 1. Set generator actions on multiple MCPWM timer events. acquire a proper power management lock if a specific clock source (e.g. Each channel is connected to the GPIO, a pulse on the GPIO will trigger the capture timer to store the time-base count value and then notify the user by interrupt. The supported brake modes are listed in the mcpwm_operator_brake_mode_t. mcpwm_gen_timer_event_action_t::action specifies the generator action to be taken. components/driver/mcpwm/include/driver/mcpwm_cap.h, config [in] MCPWM capture timer configuration, ret_cap_timer [out] Returned MCPWM capture timer handle, ESP_OK: Create MCPWM capture timer successfully, ESP_ERR_INVALID_ARG: Create MCPWM capture timer failed because of invalid argument, ESP_ERR_NO_MEM: Create MCPWM capture timer failed because out of memory, ESP_ERR_NOT_FOUND: Create MCPWM capture timer failed because cant find free resource, ESP_FAIL: Create MCPWM capture timer failed because of other error, cap_timer [in] MCPWM capture timer, allocated by mcpwm_new_capture_timer(), ESP_OK: Delete MCPWM capture timer successfully, ESP_ERR_INVALID_ARG: Delete MCPWM capture timer failed because of invalid argument, ESP_FAIL: Delete MCPWM capture timer failed because of other error, cap_timer [in] MCPWM capture timer handle, allocated by mcpwm_new_capture_timer(), ESP_OK: Enable MCPWM capture timer successfully, ESP_ERR_INVALID_ARG: Enable MCPWM capture timer failed because of invalid argument, ESP_ERR_INVALID_STATE: Enable MCPWM capture timer failed because timer is enabled already, ESP_FAIL: Enable MCPWM capture timer failed because of other error, ESP_OK: Disable MCPWM capture timer successfully, ESP_ERR_INVALID_ARG: Disable MCPWM capture timer failed because of invalid argument, ESP_ERR_INVALID_STATE: Disable MCPWM capture timer failed because timer is disabled already, ESP_FAIL: Disable MCPWM capture timer failed because of other error, ESP_OK: Start MCPWM capture timer successfully, ESP_ERR_INVALID_ARG: Start MCPWM capture timer failed because of invalid argument, ESP_FAIL: Start MCPWM capture timer failed because of other error, ESP_OK: Stop MCPWM capture timer successfully, ESP_ERR_INVALID_ARG: Stop MCPWM capture timer failed because of invalid argument, ESP_FAIL: Stop MCPWM capture timer failed because of other error. A typical BLDC motor controller has a half-bridge or half-H bridge circuit. Unlike an H bridge, this circuit configuration has only two switches - one high-side and one low-side transistor. NXP Semiconductors Motor control application tasks Motor Control Using FreeRTOS, Rev. 1. Kconfig Options - lists the supported Kconfig options that can bring different effects to the driver. I'm trying to figure out how to control the speed of a 400-watt, 3000RPM, 48V BLDC with Hall sensors with a Raspberry Pi 3. Please note, GPIO fault located in different groups are totally independent, i.e. Theres a helper macro MCPWM_GEN_BRAKE_EVENT_ACTION to simplify the construction of a brake event action entry. project Closed Your email address. GPIO fault in group 0 can not be detected by the operator in group 1. mcpwm_gpio_fault_config_t::gpio_num sets the GPIO number used by the fault. The ID should belong to [0, SOC_MCPWM_GROUPS - 1] range. mcpwm_capture_channel_config_t::invert_cap_signal sets whether to invert the capture signal. All supported event callbacks are listed in the mcpwm_comparator_event_callbacks_t: mcpwm_comparator_event_callbacks_t::on_reach sets callback function for comparator when the timer counter equals to the compare value. Enable this option will increase the firmware binary size. More by the author: This is a modification and addition to my instructable.com tutorials on DC Motors, and it also includes some information from my tutorial on the "ESP32 Tutorial: Touch, Hall, I2C, PWM, ADC, & DAC". The MCPWM operator can be configured to perform different brake modes for each fault object by calling mcpwm_operator_set_brake_on_fault(). Different ESP chip series might have different number of MCPWM resources (e.g. Brushed DC motor speed control by PID algorithm: peripherals/mcpwm/mcpwm_bdc_speed_control, BLDC motor control with hall sensor feedback: peripherals/mcpwm/mcpwm_bldc_hall_control, Ultrasonic sensor (HC-SR04) distance measurement: peripherals/mcpwm/mcpwm_capture_hc_sr04, Servo motor angle control: peripherals/mcpwm/mcpwm_servo_control, MCPWM synchronization between timers: peripherals/mcpwm/mcpwm_sync, components/driver/mcpwm/include/driver/mcpwm_timer.h, config [in] MCPWM timer configuration, ret_timer [out] Returned MCPWM timer handle, ESP_ERR_INVALID_ARG: Create MCPWM timer failed because of invalid argument, ESP_ERR_NO_MEM: Create MCPWM timer failed because out of memory, ESP_ERR_NOT_FOUND: Create MCPWM timer failed because all hardware timers are used up and no more free one, ESP_FAIL: Create MCPWM timer failed because of other error, timer [in] MCPWM timer handle, allocated by mcpwm_new_timer(), ESP_ERR_INVALID_ARG: Delete MCPWM timer failed because of invalid argument, ESP_ERR_INVALID_STATE: Delete MCPWM timer failed because timer is not in init state, ESP_FAIL: Delete MCPWM timer failed because of other error, ESP_ERR_INVALID_ARG: Enable MCPWM timer failed because of invalid argument, ESP_ERR_INVALID_STATE: Enable MCPWM timer failed because timer is enabled already, ESP_FAIL: Enable MCPWM timer failed because of other error, ESP_ERR_INVALID_ARG: Disable MCPWM timer failed because of invalid argument, ESP_ERR_INVALID_STATE: Disable MCPWM timer failed because timer is disabled already, ESP_FAIL: Disable MCPWM timer failed because of other error. Group of supported MCPWM operator event callbacks. The configuration structure is defined as: mcpwm_capture_timer_config_t::group_id sets the MCPWM group ID. This requires the use of rectifier bridge and inverter bridge. Group of supported MCPWM fault event callbacks. mcpwm_gpio_sync_src_config_t::active_neg sets whether the sync signal is active on falling edge. The mcpwm_new_operator()() will return a pointer to the allocated operator object if the allocation succeeds. BOOSTXL-DRV8301 Motor Drive BoosterPack featuring DRV8301 and NexFET MOSFETs. BLDC_COMPRESSOR_TCC_DA_HORIZONTAL_r1.0 (1) Uploaded by Bruno Souza. The way that MCPWM operator reacts to the fault is called Brake. However, if the more classical edge delay-based dead time with polarity control is required, then the dead-time submodule should be used. Content Topic Group. If the hold_on is false, the force level can be overridden by the next event action. Here using a motor driver L293D. In the circuit there are 2 pushbuttons, one is used to increase BLDC motor speed and the 2nd one is used to decrease it. These failure signals are encapsulated into MCPWM fault objects. It is for debugging purposes only. Author: Kevin Harrington,John K. Bennett Maintainer: Kevin Harrington Read the documentation Go to repository The supported directions are listed in mcpwm_timer_direction_t. Brake: MCPWM operator can set how to brake the generators when particular fault is detected. mcpwm_capture_channel_config_t::io_loop_back sets whether to enable the loop back mode. It is very similar to a servo motor. Advantages and disadvantages of brushless dc motor system closed May 6, 2021, 9:44am #12 Skills: Autodesk Inventor, Electronics, Mechatronics. You can also set the timer action one by one by calling mcpwm_generator_set_action_on_timer_event() without varargs. The MOTIX 6ED2742S01Q is a 160 V SOI based gate driver designed for three phase BLDC motor drive applications. We can shut down the PWM output immediately or regulate the PWM output cycle by cycle, depends on how critical the fault is. To allocate a capture timer, you can call mcpwm_new_capture_timer() function, with configuration structure mcpwm_capture_timer_config_t as the parameter. Generator Force Actions - describes how to control the generator output level asynchronously in a forceful way. The ESC drew 2.3 amps at 12v for this speed, and that seems to be a redline current for this voltage. The period of the PWM waveform is determined by the timers period and count mode. mcpwm_carrier_config_t::duty_cycle: The duty cycle of the carrier. The supported timer events are listed in mcpwm_timer_event_t. acquire a proper power management lock if a specific clock source (e.g. The basic functionality of MCPWM capture is to record the time when any pulse edge of the capture signal turns active. Growing need for high productivity is placing new demands on mechanisms connected with electrical motors. mcpwm_capture_channel_config_t::pos_edge and mcpwm_capture_channel_config_t::neg_edge set whether to capture on the positive and/or negative edge of the input signal. MCPWM Sync: The sync module is used to synchronize the MCPWM timers, so that the final PWM signals generated by different MCPWM generators can have a fixed phase difference. Contents About Wishlist Using Releases About This library is for control motors with MCPWM of ESP32 board. The MCPWM peripheral is a versatile PWM generator, which contains various submodules to make it a key element in power electronic applications like motor control, digital power and so on. The demand for low cost Brushless DC (BLDC) motor has increased in industrial applications. Otherwise the recovery cant succeed. Specifically, when there are no free capture timer left in the MCPWM group, this function will return ESP_ERR_NOT_FOUND error. Currently this configuration structure is left for future purpose. As result of this action the motor should be put into a safe state to reduce likelihood of a damage caused by the fault. Otherwise, it will return error code. . User has to call mcpwm_operator_recover_from_fault() to manually recover it. The basic IO operation of a capture timer is to start and stop. Specifically, when there are no memory left for the fault object, this function will return ESP_ERR_NO_MEM error. I've been able to find information where people will us an ESC like this between their rPi and the motor but these seem to always be connected to small motors like airplane motors and not the one like what I have. The fact is that, although the PWM wave shows it is turning off the switch, but the MOSFET still needs a small time window to make that happen. The mcpwm_new_comparator() will return a pointer to the allocated comparator object if the allocation succeeds. Generator action on specific brake event. This is also using a pretty new chip from Trinamic, the TMC6300 BLDC motor driver, which is perfect . The update time for the compare value is set by mcpwm_comparator_config_t::update_cmp_on_tez or mcpwm_comparator_config_t::update_cmp_on_tep or mcpwm_comparator_config_t::update_cmp_on_sync. See MCPWM Comparators for how to allocate a comparator. delay time applied to rising edge, 0 means no rising delay time, delay time applied to falling edge, 0 means no falling delay time, Invert the signal after applied the dead time. The operator handle is created by mcpwm_new_operator()(). 0, 4/2010 Freescale Semiconductor, Inc. 3 System Description. Theres a helper macro MCPWM_GEN_COMPARE_EVENT_ACTION to simplify the construction of a compare event action entry. ISR callback function which would be invoked when counter reaches compare value, components/driver/mcpwm/include/driver/mcpwm_gen.h. mcpwm_gpio_fault_config_t::active_level sets the active level of the fault signal. All supported event callbacks are listed in the mcpwm_timer_event_callbacks_t: mcpwm_timer_event_callbacks_t::on_full sets callback function for timer when it counts to peak value. Set generator actions on multiple MCPWM brake events. This capability is mandatory if you need pulse transformer-based gate drivers to control the power switching elements. mcpwm_generator_config_t::io_loop_back sets whether to enable the loop back mode. mcpwm_timer_event_callbacks_t::on_empty sets callback function for timer when it counts to zero. One generator can set multiple actions on different brake events, by calling mcpwm_generator_set_actions_on_brake_event() with variable number of action configurations. About the Client: ( 6 reviews ) stanbul, Turkey Project ID: #14974240. brushed/brushless DC motor, RC servo motor Switch mode based digital power conversion Power DAC, where the duty cycle is equivalent to a DAC analog value Calculate external pulse width, and convert it into other analog value like speed, distance Generate Space Vector PWM (SVPWM) signals for Field Oriented Control (FOC) Software can override generator output level at runtime, by calling mcpwm_generator_set_force_level(). Whatre more, you can even start the timer for only one round, that means, the timer will count to peak value or zero, and then stop itself. My idea is to utilise the additional "dead-time" that you get with 6xPWM to hopefully better control the motor. Classical PWM Waveforms and Generator Configurations - demonstrates some classical PWM waveforms that can be achieved by configuring generator actions. Otherwise, it will return error code. 1. Group of supported MCPWM capture event callbacks. New. In power electronics, the rectifier and inverter are commonly used. The basic IO operation of a timer is to start and stop. In this case we do not use the red wire of the ESC because it supplies 5v and our NodeMCU works at 3.3v, so we can damage it. MCPWM comparator event data, fed by driver, User data, set in mcpwm_comparator_register_event_callbacks(), User data, set in mcpwm_capture_channel_register_event_callbacks(), MCPWM timer counts to zero (i.e. CONFIG_PM_ENABLE is on), the system will adjust the PLL, APB frequency before going into light sleep, thus potentially changing the period of a MCPWM timers counting step and leading to inaccurate time keeping. config [in] MCPWM carrier specific configuration, ESP_OK: Set carrier for operator successfully, ESP_ERR_INVALID_ARG: Set carrier for operator failed because of invalid argument, ESP_FAIL: Set carrier for operator failed because of other error, Specify from which group to allocate the MCPWM operator, Whether to update generator action when timer counts to zero, Whether to update generator action when timer counts to peak, Whether to update generator action on sync event, Whether to update dead time when timer counts to zero, Whether to update dead time when timer counts to peak, Whether to update dead time on sync event. mcpwm_gpio_fault_config_t::pull_up and mcpwm_gpio_fault_config_t::pull_down set whether to pull up and/or pull down the GPIO internally. Generator Actions on Events - describes how to set actions for MCPWM generators on particular events that generated by the MCPWM timer and comparators. ISR callback function that would be invoked when fault signal becomes active, ISR callback function that would be invoked when fault signal becomes inactive, components/driver/mcpwm/include/driver/mcpwm_sync.h, config [in] MCPWM timer sync source configuration, ret_sync [out] Returned MCPWM sync handle, ESP_OK: Create MCPWM timer sync source successfully, ESP_ERR_INVALID_ARG: Create MCPWM timer sync source failed because of invalid argument, ESP_ERR_NO_MEM: Create MCPWM timer sync source failed because out of memory, ESP_ERR_INVALID_STATE: Create MCPWM timer sync source failed because the timer has created a sync source before, ESP_FAIL: Create MCPWM timer sync source failed because of other error, config [in] MCPWM GPIO sync source configuration, ret_sync [out] Returned MCPWM GPIO sync handle, ESP_OK: Create MCPWM GPIO sync source successfully, ESP_ERR_INVALID_ARG: Create MCPWM GPIO sync source failed because of invalid argument, ESP_ERR_NO_MEM: Create MCPWM GPIO sync source failed because out of memory, ESP_ERR_NOT_FOUND: Create MCPWM GPIO sync source failed because cant find free resource, ESP_FAIL: Create MCPWM GPIO sync source failed because of other error, config [in] MCPWM software sync source configuration, ret_sync [out] Returned software sync handle, ESP_OK: Create MCPWM software sync successfully, ESP_ERR_INVALID_ARG: Create MCPWM software sync failed because of invalid argument, ESP_ERR_NO_MEM: Create MCPWM software sync failed because out of memory, ESP_FAIL: Create MCPWM software sync failed because of other error, sync [in] MCPWM sync handle, allocated by mcpwm_new_timer_sync_src() or mcpwm_new_gpio_sync_src() or mcpwm_new_soft_sync_src(), ESP_OK: Delete MCPWM sync source successfully, ESP_ERR_INVALID_ARG: Delete MCPWM sync source failed because of invalid argument, ESP_FAIL: Delete MCPWM sync source failed because of other error. the cmp_ticks is out of range), ESP_ERR_INVALID_STATE: Set MCPWM compare value failed because the operator doesnt have a timer connected, ESP_FAIL: Set MCPWM compare value failed because of other error, Whether to update compare value when timer count equals to zero (tez), Whether to update compare value when timer count equals to peak (tep), Whether to update compare value on sync event. mcpwm_comparator_config_t::update_cmp_on_sync sets whether to update the compare threshold when the timer takes a sync signal. Before doing IO control to the capture timer, user needs to enable the timer first, by calling mcpwm_capture_timer_enable(). You have to register a callback function to get the timer count value of the capture moment, by calling mcpwm_capture_channel_register_event_callbacks(). Callback function that would be invoked when capture event occurred, components/driver/mcpwm/include/driver/mcpwm_types.h, [in] MCPWM timer event data, fed by driver, [in] User data, set in mcpwm_timer_register_event_callbacks(), Whether a high priority task has been waken up by this function. See MCPWM Sync Sources for how to create a sync source object. It is friendly to use no need of any expert person. It enables both the GPIOs input and output ability through the GPIO matrix peripheral. mcpwm_operator_config_t::update_dead_time_on_tep sets whether to update the dead time when the timer counts to peak. mcpwm_operator_config_t::update_gen_action_on_sync sets whether to update the generator action when the timer takes a sync signal. The two MOSFETs on the same arm cant conduct at the same time, otherwise there will be a short circuit. Enough for a controller. ev_act [in] MCPWM timer event action list, must be terminated by MCPWM_GEN_TIMER_EVENT_ACTION_END(), ESP_OK: Set generator actions successfully, ESP_ERR_INVALID_ARG: Set generator actions failed because of invalid argument, ESP_ERR_INVALID_STATE: Set generator actions failed because of timer is not connected to operator, ESP_FAIL: Set generator actions failed because of other error. If the interrupt service is lazy installed during registering event callbacks for the channel in mcpwm_capture_channel_register_event_callbacks(), mcpwm_capture_channel_enable() will enable the interrupt service as well. One generator can set multiple actions on different compare events, by calling mcpwm_generator_set_actions_on_compare_event() with variable number of action configurations. Some general summary: The Symmetric or Asymmetric of the waveforms are determined by the count mode of the MCPWM timer. Whenever the driver creates a MCPWM timer instance that has selected MCPWM_TIMER_CLK_SRC_PLL160M as its clock source, the driver will guarantee that the power management lock is acquired when enable the timer by mcpwm_timer_enable(). Servo Motor A servo motor consists of a DC motor, reduction gearbox, positional feedback device and some form of error correction. Therere a few points to note: New compare value might wont take effect immediately. The sync phase configuration is defined in mcpwm_timer_sync_phase_config_t structure: mcpwm_timer_sync_phase_config_t::sync_src sets the sync signal source. Set to NULL will disable the timer being synced by others, The count value that should lock to upon sync event, The count direction that should lock to upon sync event, components/driver/mcpwm/include/driver/mcpwm_oper.h, config [in] MCPWM operator configuration, ret_oper [out] Returned MCPWM operator handle, ESP_OK: Create MCPWM operator successfully, ESP_ERR_INVALID_ARG: Create MCPWM operator failed because of invalid argument, ESP_ERR_NO_MEM: Create MCPWM operator failed because out of memory, ESP_ERR_NOT_FOUND: Create MCPWM operator failed because cant find free resource, ESP_FAIL: Create MCPWM operator failed because of other error, oper [in] MCPWM operator, allocated by mcpwm_new_operator(), ESP_OK: Delete MCPWM operator successfully, ESP_ERR_INVALID_ARG: Delete MCPWM operator failed because of invalid argument, ESP_FAIL: Delete MCPWM operator failed because of other error. MCPWM Generator: One MCPWM generator can generate a pair of PWM waves, complementarily or independently, based on various events triggered from other submodules like MCPWM Timer, MCPWM Comparator. The callback function will provide event specific data of type mcpwm_compare_event_data_t to the user. Internally, this function will: switch the capture timer state from init to enable. The capture timer is usually connected with several capture channels, please refer to MCPWM Capture Timer and Channels for resource allocation. This system controls the BLDC motor speed more efficiently and precisely as compared to other systems. Dead Time: This submodule is used to insert extra delay to the existing PWM edges that generated in the previous steps. Note that all grounded terminals are connected together. sync [in] MCPWM soft sync handle, allocated by mcpwm_new_soft_sync_src(), ESP_OK: Trigger MCPWM software sync event successfully, ESP_ERR_INVALID_ARG: Trigger MCPWM software sync event failed because of invalid argument, ESP_FAIL: Trigger MCPWM software sync event failed because of other error, Timer event, upon which MCPWM timer will generate the sync signal, The input sync signal would be routed to its sync output, Extra configuration flags for timer sync source, Whether the sync signal is active on negedge, by default, the sync signals posedge is treated as active, Extra configuration flags for GPIO sync source. By default, driver will reset the GPIO pin at exit. once it moved for 7 turns. On the contrary, calling mcpwm_capture_timer_disable() will put the timer driver back to init state, and release the power management lock. The allocated MCPWM Timer should be connected with a MCPWM operator by calling mcpwm_operator_connect_timer(), so that the operator can take that timer as its time base, and generate the required PWM waves. mcpwm_timer_config_t::period_ticks sets the period of the timer, in ticks (the tick resolution is set in the mcpwm_timer_config_t::resolution_hz). field-oriented-control bldc bldc-motor-controller bldc-driver high-power high-performance simple-foc stm32 esp32 arduino simplefoc / arduino-simplefocshield 298.0 15.0 94.0 The Arduino, ESP8266 or ESP32 microcontroller provide the power supply for the DC motor. Likewise, the MCPWM capture timer MCPWM Capture Timer can be synced as well. mcpwm_timer_event_callbacks_t::on_stop sets callback function for timer when it is stopped. [in] MCPWM brake event data, fed by driver, [in] User data, set in mcpwm_operator_register_event_callbacks(), User data, set in mcpwm_fault_register_event_callbacks(), whether a task switch is needed after the callback returns. Copyright 2016 - 2023, Espressif Systems (Shanghai) Co., Ltd. mcpwm_timer_config_t::update_period_on_empty, mcpwm_timer_config_t::update_period_on_sync, mcpwm_operator_config_t::update_gen_action_on_tez, mcpwm_operator_config_t::update_gen_action_on_tep, mcpwm_operator_config_t::update_gen_action_on_sync, mcpwm_operator_config_t::update_dead_time_on_tez, mcpwm_operator_config_t::update_dead_time_on_tep, mcpwm_operator_config_t::update_dead_time_on_sync, mcpwm_comparator_config_t::update_cmp_on_tez, mcpwm_comparator_config_t::update_cmp_on_tep, mcpwm_comparator_config_t::update_cmp_on_sync, mcpwm_gpio_sync_src_config_t::io_loop_back, mcpwm_timer_sync_src_config_t::timer_event, mcpwm_timer_sync_src_config_t::propagate_input_sync, mcpwm_capture_channel_config_t::pull_down, mcpwm_capture_channel_config_t::invert_cap_signal, mcpwm_capture_channel_config_t::io_loop_back, mcpwm_comparator_register_event_callbacks(), mcpwm_comparator_event_callbacks_t::on_reach, mcpwm_generator_set_actions_on_timer_event(), mcpwm_gen_timer_event_action_t::direction, mcpwm_generator_set_action_on_timer_event(), mcpwm_generator_set_actions_on_compare_event(), mcpwm_gen_compare_event_action_t::direction, mcpwm_gen_compare_event_action_t::comparator, mcpwm_generator_set_action_on_compare_event(), mcpwm_generator_set_action_on_timer_event, mcpwm_generator_set_action_on_compare_event, mcpwm_generator_set_actions_on_compare_event, mcpwm_generator_set_actions_on_timer_event, mcpwm_dead_time_config_t::posedge_delay_ticks, mcpwm_dead_time_config_t::negedge_delay_ticks, // bypass deadtime module for generator_b, // generator_a bypass the deadtime module (no delay), // apply dead time on both edge for generator_b, mcpwm_carrier_config_t::first_pulse_duration_us, mcpwm_carrier_config_t::invert_before_modulate, mcpwm_carrier_config_t::invert_after_modulate, mcpwm_generator_set_actions_on_brake_event(), mcpwm_gen_brake_event_action_t::direction, mcpwm_gen_brake_event_action_t::brake_mode, mcpwm_generator_set_action_on_brake_event(), mcpwm_fault_event_callbacks_t::on_fault_enter, mcpwm_fault_event_callbacks_t::on_fault_exit, mcpwm_operator_register_event_callbacks(), mcpwm_operator_event_callbacks_t::on_brake_cbc, mcpwm_operator_event_callbacks_t::on_brake_ost, mcpwm_timer_sync_phase_config_t::sync_src, mcpwm_timer_sync_phase_config_t::count_value, mcpwm_timer_sync_phase_config_t::direction, mcpwm_capture_timer_sync_phase_config_t::sync_src, mcpwm_capture_timer_sync_phase_config_t::count_value, mcpwm_capture_timer_sync_phase_config_t::direction, // GPIO fault should be in the same group of the above timers, // by default, a posedge pulse can trigger a sync event, mcpwm_capture_channel_register_event_callbacks(), mcpwm_capture_channel_trigger_soft_catch(), mcpwm_comparator_register_event_callbacks, mcpwm_generator_set_action_on_brake_event, mcpwm_generator_set_actions_on_brake_event, mcpwm_capture_channel_register_event_callbacks, Analog to Digital Converter (ADC) Oneshot Mode Driver, Analog to Digital Converter (ADC) Continuous Mode Driver, Analog to Digital Converter (ADC) Calibration Driver, Motor Control Pulse Width Modulator (MCPWM), Universal Asynchronous Receiver/Transmitter (UART), Classical PWM Waveforms and Generator Configurations, Classical PWM Waveforms and Dead Time Configurations, peripherals/mcpwm/mcpwm_bdc_speed_control, peripherals/mcpwm/mcpwm_bldc_hall_control.
Sian Reeves Leaves Mount Pleasant,
Articles E