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

 
 
 
Reply to this topicStart new topic
> сгенерить пилу на PWM?, какой МК позволяет?
Sagittarius
сообщение Oct 7 2009, 06:09
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 26-01-06
Из: СПб
Пользователь №: 13 659



Здравствуйте!

Требуется сгенерить PWM с меняющейся каждый импульс скважностью (после интегратора получится "пила"). Частота PWM 50...80кГц, пилы 5кГц. Вроде все просто, надо в регистр DytyCucle каждый цикл писать новое значение, но хочется чтоб это было реализовано аппаратно, типа связки регистра таймера и регистра DytyCucle в PWM.
Вопрос - позволяет ли периферия какого либо МК такое сделать аппаратно, хотя бы в пределах периода "пилы"? Сам работаю с AT91SAM7xxx и как повесить все это на периферию не придумал. Если нет такого в SAM7 то в каких ARM есть?

Спасибо.
Go to the top of the page
 
+Quote Post
Hammer
сообщение Oct 7 2009, 06:16
Сообщение #2





Группа: Участник
Сообщений: 3
Регистрация: 1-12-06
Из: UA
Пользователь №: 22 977



Требуется сгенерить PWM с меняющейся каждый импульс скважностью (после интегратора получится "пила"). Частота PWM 50...80кГц, пилы 5кГц.

А может пилу легче сделать при помощи DAC (ЦАП)?
Go to the top of the page
 
+Quote Post
Sagittarius
сообщение Oct 7 2009, 06:34
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 26-01-06
Из: СПб
Пользователь №: 13 659



Цитата(Hammer @ Oct 7 2009, 10:16) *
А может пилу легче сделать при помощи DAC (ЦАП)?


нужны импульсы, ибо они подаются на полевики в мостовой схеме а в нее воткнута обмотка шагового двигателя, на котором и происходит собственно интеграция :-)
Go to the top of the page
 
+Quote Post
Hammer
сообщение Oct 7 2009, 06:40
Сообщение #4





Группа: Участник
Сообщений: 3
Регистрация: 1-12-06
Из: UA
Пользователь №: 22 977



Цитата(Sagittarius @ Oct 7 2009, 09:34) *
нужны импульсы, ибо они подаются на полевики в мостовой схеме а в нее воткнута обмотка шагового двигателя, на котором и происходит собственно интеграция :-)

А драйверы шаговиков типа L6203, L298 в связке с L297 не проще использовать?
Go to the top of the page
 
+Quote Post
KRS
сообщение Oct 7 2009, 20:41
Сообщение #5


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



А может можно DMA от новых NXP Cortex-M3 приспособить:
там можно синхронизировать от таймера
Go to the top of the page
 
+Quote Post
vmp
сообщение Oct 8 2009, 08:04
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 20-01-05
Из: Зеленоград
Пользователь №: 2 070



Может быть стоит посмотреть на TMS470?
Сам я с ними не работал, только поверхностно ознакомился. В памяти отложилось то, что в них очень крутой таймер, который умеет работать по собственной программе.
И еще как вариант для изучения - PSoC 3, PSoC 5 от Cypress. Там вообще программируемая логика присутствует.
Go to the top of the page
 
+Quote Post
koyodza
сообщение Oct 11 2009, 17:41
Сообщение #7


Местный
***

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



Цитата(Sagittarius @ Oct 7 2009, 09:09) *
надо в регистр DytyCucle каждый цикл писать новое значение, но хочется чтоб это было реализовано аппаратно, типа связки регистра таймера и регистра DytyCucle в PWM.

Такое можно сделать на STM32 с помощью таймера и DMA. В памяти размещаете массив со значениями, которые будут загружаться в Compare таймера при его перезагрузке.

В принципе, можно и на других МК с DMA

Цитата(Sagittarius @ Oct 7 2009, 09:09) *
Если нет такого в SAM7 то в каких ARM есть?

P.S. умиляет постановка вопроса - осталось перефразировать: а есть ли в природе какие-то МК кроме "священной фирмы атмел"? crying.gif 1111493779.gif
Простите, не удержался от сарказма.
Go to the top of the page
 
+Quote Post
MDD
сообщение Oct 12 2009, 05:24
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 90
Регистрация: 7-05-06
Пользователь №: 16 862



Цитата(koyodza @ Oct 11 2009, 20:41) *
а есть ли в природе какие-то МК кроме "священной фирмы атмел"?


Кстати, о контроллерах "священной фирмы". Я подобное реализовывал в новой Хмеге с помощью DMA. Прекрасно генерирует "табличные" сигналы и с помощью ШИМа, и с помощью ЦАПа при нулевой загрузке процессора. Но это не ARM...
Go to the top of the page
 
+Quote Post
Sagittarius
сообщение Oct 13 2009, 20:29
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 26-01-06
Из: СПб
Пользователь №: 13 659



Спасибо ответившим.
примерно как и думал все плохо, особенно учитывая что каналов PWM хотелось бы иметь 6 а то и 8 ... придется чего то городить ...
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 13 2009, 20:39
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Sagittarius @ Oct 14 2009, 00:29) *
придется чего то городить ...

Да что там городить - CPLD навесить, будет custom PWM на нужное число каналов.
Go to the top of the page
 
+Quote Post
KRS
сообщение Oct 13 2009, 20:45
Сообщение #11


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



у NXP есть ARMы с 4мя 6 канальными PWM
а с одним или двумя 6 канальными PWM их дофига!
Go to the top of the page
 
+Quote Post
Sagittarius
сообщение Oct 14 2009, 05:37
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 26-01-06
Из: СПб
Пользователь №: 13 659



Цитата(KRS @ Oct 14 2009, 00:45) *
у NXP есть ARMы с 4мя 6 канальными PWM
а с одним или двумя 6 канальными PWM их дофига!


то, что 6 каналов это знаю, но DMA же к ним не подключено? Доку только сейчас стал читать, еще не разобрался.
А логику внешнюю ставить это дорого будет, хотя, конечно, первое о чем думаешь :-)
Go to the top of the page
 
+Quote Post
koyodza
сообщение Oct 15 2009, 15:43
Сообщение #13


Местный
***

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



Цитата(Sagittarius @ Oct 14 2009, 08:37) *
то, что 6 каналов это знаю, но DMA же к ним не подключено? Доку только сейчас стал читать, еще не разобрался.
А логику внешнюю ставить это дорого будет, хотя, конечно, первое о чем думаешь :-)

STM32 можно на 1 таймере сделать до 4 ШИМ. Далее, регистры CCR1..CCR4 одного таймера расположены в памяти последовательно. Сам так не делал, но судя по всему можно настроить DMA на пересылку пакетов по 16 байт, источник - память, приемник - CCR1 выбранного таймера. Таким образом будут переписываться сразу 4 канала. Т.е. частота ШИМ должна быть одна (для 4 каналов), а вот значения могут быть разными.
Если нужно больше каналов - берем ещё один таймер и канал DMA.

Или если частота самого ШИМ не слишком высока (до десятка кГц) то можно вообще программно в прерывании от того же таймера перезагружать регистры
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 15 2009, 15:57
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Sagittarius @ Oct 7 2009, 09:09) *
Частота PWM 50...80кГц, пилы 5кГц. Вроде все просто, надо в регистр DytyCucle каждый цикл писать новое значение, но хочется чтоб это было реализовано аппаратно

Да вообще-то на FIQ контроллер сильно не вспотеет, тем более, что и DMA захватывает шину и далеко не во всех реализациях последствия от этого минимизированы.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

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

 


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


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