Vooon » 30 июл 2011, 22:00
Нарисовал мосты. Только все гложит меня мысль не сделать ли два сигнала с МК: DIR и !DIR.
Вместо инвертора использовать свободное IO.
Минус такого решения — меньшая надежность. Т.к. не правильно запрограммировав можно получить сквозняк.
Плюс — появляется режим торможения.
Добавлено спустя 3 минуты 4 секунды:
Вообще же у STM32 есть TIM1 и TIM8 спецательно заточенные для управления моторами.
С таймером дэдтайма. И их вроде можно применить и для управления обычным H-мостом.
Добавлено спустя 1 минуту 47 секунд:
Там у каждого такого таймера 3 пары выходов шима с аппаратной генерацией дедтайма.
CH1+CH1N...
Добавлено спустя 18 минут 33 секунды:
Гм. сейчас подумал, можно вообще всю логику дропнуть.
(DIR, DIR_N, PWM, PWM_N) x 2
Как раз на таймере 0.
Добавлено спустя 4 минуты 29 секунд:
В TIM0:
- CH1, CH1_N: PWM for int. MD0
- CH2, CH2_N: PWM for int. MD1
- CH3: PWM for RoboMD2
- CH4: PWM for RoboMD2
Нужно только внимательно почитать про генератор дэдтайма.
Оно может полностью глушить один из выходов.
Останется только правильно делать DIR.
Добавлено спустя 3 часа 32 минуты 41 секунду:
Посмотрел внимательно рефман.
OCx и OCxN можно подцепить к OCxREF мимо dead-time генератора. В этом применении dt не нужен.
А также посмотрел, что OCx и OCxN можно перевести в inactive state.
Из этого следует, что один advanced timer может управлять тремя H-мостами.
Точно делаю по 4-е провода на мост. Еще появляется возможность активного торможения.
Верхние ключи выключаются, OCxREF цепляется к OCx и OCxN. При этом нижние ключи будут включаться.
Степень торможения можно управлять ШИМом.
Добавлено спустя 1 минуту 16 секунд:
Забыл схему.
- Вложения
-
Linux user | Firefox user