реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> ШИМ для "моста" на STM32F103
Tanker
сообщение Feb 24 2010, 13:52
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 30-06-07
Пользователь №: 28 806



Здравствуйте!
Задача раскачивать трансформатор, транзисторным мостом. Мне нужно генерировать сигналы управления диагоналями транзисторов (одну диагональ назовём P (положительная), другую N-отрицательная)
Для этого хотел использовать комплиментарную пару TIM1, думал Dead Time есть и ладно.
Чтобы трансформатор не насыщался, длительность P и N импульсов должна быть одинакова (импульсы должны быть симметричны), а при регулировании должно изменятся ширина импульсов (и соответсвенно мертвое время между ними). Период импульсов фиксированный (в нашем случае ~20кГц)
В общем, есть ли волшебные настройки ШИМ у STM32, чтобы получить автоматически симметричные импульсы в комплиментарной паре и с дед-таймом?
Используя прерывания и пересчитывая CCR1-значения для P и N-импульсов, я достиг желаемого, но при наличии такого продвинутого ШИМ модуля чувствую что подход не правильный.
Как эту задачу решить красиво используя продвинутые возможности CORTEX-M3 и STM32 в частности?
Go to the top of the page
 
+Quote Post
Microwatt
сообщение Feb 24 2010, 15:36
Сообщение #2


Гуру
******

Группа: Почетный участник
Сообщений: 6 851
Регистрация: 25-08-08
Из: Запорожье
Пользователь №: 39 802



кто такие эти CORTEX-M3 и STM32 в частности?
цифровые микроконтроллеры?
Go to the top of the page
 
+Quote Post
Tanker
сообщение Feb 24 2010, 17:18
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 30-06-07
Пользователь №: 28 806



Цитата(Microwatt @ Feb 24 2010, 18:36) *
кто такие эти CORTEX-M3 и STM32 в частности?
цифровые микроконтроллеры?

Поставленную задачу мы решили в начале на Cyclone II. Следующий Ваш наводящий вопрос будет "Кто такие эти Cyclone II? "
Go to the top of the page
 
+Quote Post
khach
сообщение Feb 24 2010, 17:20
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 439
Регистрация: 29-12-04
Пользователь №: 1 741



Да, дедтайм можно задать. Только не путайте ядро Cortex и продвинутый модуль таймера- одно с другим никак не связанно, просто серия STM32 затачивалась под управление моторами.
Возьмите у китайцев исходники библиотеки управления моторами и внимательно изучите модуль таймеров. Это лежит где-то тут
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3655960
Go to the top of the page
 
+Quote Post
Tanker
сообщение Feb 24 2010, 17:45
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 30-06-07
Пользователь №: 28 806



Понятное дело, что есть ядро CORTEX-M3 и перефирия которой окружил это ядро то же STM.
В реализации продвинутого таймера от STM, дед-тайм 8 бит всего, для многих применений более чем достаточно, согласен.
Пока решить задачу симметричности импульсов комплиментарной пары только настройкой модуля таймера мне не удалось, если я, например увеличиваю период канала таймера (в моём случае CH1) то P-импульс удлиняется, а N-укорачивается, т.е. они симметричны только при скважности 50%.

Я реализовал этот алгоритм на прерываниях таймера, но кроме этого прерывания есть и другие, что на высоких частотах управления транзисторами очень сказывается (например, я собираюсь транзистор включить, а тут по SPI байт пришёл) Поэтому хочу организовать полный автомат, типа записал значение в регистр (напр. ССR1), и вся последовательность автоматически сформировалась.

Вот думаю если нет прямых путей, посадить P и N ШИМЫ на разные таймеры, рассчитывать для них значения на каждом периоде, и по отсчёту периода таймеров, через DMA новые значения каналам присваивать...
Go to the top of the page
 
+Quote Post
koyodza
сообщение Feb 24 2010, 20:06
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 213
Регистрация: 28-02-07
Из: Киев
Пользователь №: 25 744



Цитата(Tanker @ Feb 24 2010, 19:45) *
Пока решить задачу симметричности импульсов комплиментарной пары только настройкой модуля таймера мне не удалось, если я, например увеличиваю период канала таймера (в моём случае CH1) то P-импульс удлиняется, а N-укорачивается, т.е. они симметричны только при скважности 50%.

Вы что, меняете период, а длительность оставляете неизменной? То так и будет. Кстати, совершенно неясно, зачем менять период.

Цитата(Tanker @ Feb 24 2010, 19:45) *
Я реализовал этот алгоритм на прерываниях таймера, но кроме этого прерывания есть и другие, что на высоких частотах управления транзисторами очень сказывается (например, я собираюсь транзистор включить, а тут по SPI байт пришёл) Поэтому хочу организовать полный автомат, типа записал значение в регистр (напр. ССR1), и вся последовательность автоматически сформировалась.

Что значит "я собираюсь транзистор включить"? А таймер зачем? Пусть он и управляет.
Для очень быстрой смены значений есть DMA, но судя по задаваемым вопросам оно Вам вряд-ли поможет.

Кроме того, Вы неправильно в самом начале определили диагонали моста:
Цитата(Tanker)
Задача раскачивать трансформатор, транзисторным мостом. Мне нужно генерировать сигналы управления диагоналями транзисторов (одну диагональ назовём P (положительная), другую N-отрицательная)

Диагонали - это именно диагонали, а не верхняя и нижняя половины. Или Вы как-то нечётко озвучили свою мысль.
Go to the top of the page
 
+Quote Post
khach
сообщение Feb 24 2010, 20:16
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 439
Регистрация: 29-12-04
Пользователь №: 1 741



Давайте код инициализации таймера в студию, а то непонятно, что с чем связанно. Вообще то мне человек из саппорта утверждал, что таймер настолько продвинутый, что даже при зависшем ядре мотор будет крутиться без аварии, и можно подхватить мотор по рестарту ядра. Правда, как это сделать он не сказал- типа нужно купить motor control kit.
Go to the top of the page
 
+Quote Post
Microwatt
сообщение Feb 24 2010, 23:15
Сообщение #8


Гуру
******

Группа: Почетный участник
Сообщений: 6 851
Регистрация: 25-08-08
Из: Запорожье
Пользователь №: 39 802



Цитата(Tanker @ Feb 24 2010, 21:18) *
Поставленную задачу мы решили в начале на Cyclone II. Следующий Ваш наводящий вопрос будет "Кто такие эти Cyclone II? "

Раз решили - рад за Вас. Ученого учить - тоько портить.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 16:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01377 секунд с 7
ELECTRONIX ©2004-2016