linvinus писал(а):Ошибки нет, в комплементарном режиме открыт только один транзистор в плече. Ещё настроен dead-time на 98ns
PWM1 это режим выравнивания по краю
PWM2 это режим выравнивания по центру, его я и использую.
для того чтобы работало выравнивание по центру нужно чтобы счётчик читал вверх вниз, за это отвечают биты TIM_CR1_CMS_1 | TIM_CR1_CMS_0 в регистре CR1
PWMD1.tim->CR1 = (TIM_CR1_ARPE | TIM_CR1_URS | TIM_CR1_CMS_1 | TIM_CR1_CMS_0 | TIM_CR1_CEN)
посмотри документацию на регистры CR1, CCMR1, CCMR2 таймера TIM1/TIM8
PWM2 - это не режим выравнивания по центру.
Режим выравнивания устанавливается в тайм-бейс регистрах. Есть ап-каунтинг, даун-каунтинг и центрированный.
А ПВМ1 и ПВМ2 - это один и тот же ПВМ, но для ПВМ1 активный уровень, когда TIM_CNT<TIM_CCR, а в ПВМ2 активный уровень когда TIM_CCR < TIM_CNT < TIM_ARR
Объясни, пожалуйста, что такое комплиментарный режим? Я вот по такой схеме делал:
http://www.posterus.sk/?p=2589 (рис 5, коммутационные циклы для U-V-W)
Информация к размышлению:
TIM1 control register 1 (TIMx_CR1) (Reference manual RM0041, стр 248)
Bits 6:5 CMS[1:0]: Center-aligned mode selection
00: Edge-aligned mode. The counter counts up or down depending on the direction bit
(DIR).
01: Center-aligned mode 1. The counter counts up and down alternatively. Output compare
interrupt flags of channels configured in output (CCxS=00 in TIMx_CCMRx register) are set
only when the counter is counting down.
10: Center-aligned mode 2. The counter counts up and down alternatively. Output compare
interrupt flags of channels configured in output (CCxS=00 in TIMx_CCMRx register) are set
only when the counter is counting up.
11: Center-aligned mode 3. The counter counts up and down alternatively. Output compare
interrupt flags of channels configured in output (CCxS=00 in TIMx_CCMRx register) are set
both when the counter is counting up or down.
Note: It is not allowed to switch from edge-
TIM1 capture/compare mode register 1 (TIMx_CCMR1) (Reference manual RM0041, стр 258)
Bits 6:4 OC1M: Output Compare 1 mode
These bits define the behavior of the output reference signal OC1REF from which OC1 and
OC1N are derived. OC1REF is active high whereas OC1 and OC1N active level depends on
CC1P and CC1NP bits.
000: Frozen - The comparison between the output compare register TIMx_CCR1 and the
counter TIMx_CNT has no effect on the outputs.(this mode is used to generate a timing
base).
001: Set channel 1 to active level on match. OC1REF signal is forced high when the counter
TIMx_CNT matches the capture/compare register 1 (TIMx_CCR1).
010: Set channel 1 to inactive level on match. OC1REF signal is forced low when the
counter TIMx_CNT matches the capture/compare register 1 (TIMx_CCR1).
011: Toggle - OC1REF toggles when TIMx_CNT=TIMx_CCR1.
100: Force inactive level - OC1REF is forced low.
101: Force active level - OC1REF is forced high.
110: PWM mode 1 - In upcounting, channel 1 is active as long as TIMx_CNT<TIMx_CCR1
else inactive. In downcounting, channel 1 is inactive (OC1REF=‘0’) as long as
TIMx_CNT>TIMx_CCR1 else active (OC1REF=’1’).
111: PWM mode 2 - In upcounting, channel 1 is inactive as long as TIMx_CNT<TIMx_CCR1
else active. In downcounting, channel 1 is active as long as TIMx_CNT>TIMx_CCR1 else
inactive.
Note: 1: These bits
Добавлено спустя 27 минут 37 секунд:А, вот нашел про комплиментори:
http://cache.freescale.com/files/product/doc/AN1916.pdf