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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Помогите подобрать МК, Для формирования ШИМ
barabek
сообщение Nov 3 2009, 04:19
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Помогите подобрать МК под следующие требования.
Необходимо формировать с помощью ШИМ с несущей порядка 100кГц синусоидальный сигнал 50-500Гц с разрешением хотя бы 8 бит (т.е. 256 уровней). Конечно, вряд ли удастся менять уровни с частотой несущей, но хотелось бы иметь возможность обновлять выходные уровни почаще (прошу прощения за такую точную величину - почаще, но пока сам не могу определиться, буду исходить из возможностей).
Число каналов ШИМ - 4.
Желательно иметь на борту компаратор и АЦП.
1 UART.
Цена - хотелось бы иметь до 300 рублей.
До этого работал только с 51. Придется переходить, по всей видимости, на другое ядро. Отсюда еще одно требование - доступность программатора и среды разработки. (Доступность в моем понимании ~ цена около 0 smile.gif )
Хотелось бы иметь корпус поменьше - кроме выходов ШИМ будет достаточно иметь порядка 10 входов/выходов.

Смотрел у атмела (SAM7) и техаса (430) - глаза разбегаются, затрудняюсь с выборов.
Go to the top of the page
 
+Quote Post
Peter Pavlov
сообщение Nov 3 2009, 06:16
Сообщение #2


Участник
*

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



Для того что бы иметь синусоиду нужно иметь больше 3 отсчетов на период на самой верхней частоте. Те 500*3=1500. Плюс к этому 8бит ШИМ - 256 отсчетов. Те частота ШИМ должна быть 1500*256=384000Гц Лучше что бы еще выше. Для этой задачи вролне подойдет обычный МК. Мега128 - 6 аппаратных шимов + АЦП. Задача не настолько сложна что бы искать новый контроллер.

Сообщение отредактировал IgorKossak - Nov 4 2009, 09:09
Причина редактирования: Бездумное цитирование
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 3 2009, 06:22
Сообщение #3


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(barabek @ Nov 3 2009, 08:19) *
Желательно иметь на борту компаратор и АЦП.

про АЦП - частота выборки какая нужна. А то ведь есть dsPIC30Fxxxx - там до 500 кГц, но нету компаратора, а есть AT90PWM3B - там ацп до 78 кГц и компаратор есть.
Go to the top of the page
 
+Quote Post
barabek
сообщение Nov 3 2009, 06:28
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(Peter Pavlov @ Nov 3 2009, 16:16) *
Мега128 - 6 аппаратных шимов + АЦП. Задача не настолько сложна что бы искать новый контроллер.

Спасибо, посмотрю.

А насчет
Цитата
1500*256=384000Гц
, я имел ввиду 256 разрешение по уровню, а не по времени. Но это не важно, еще раз спасибо.

Цитата(_Pasha)
AT90PWM3B
, тоже гляну, спасибо.
Go to the top of the page
 
+Quote Post
rezident
сообщение Nov 3 2009, 23:15
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(barabek @ Nov 3 2009, 11:28) *
А насчет , я имел ввиду 256 разрешение по уровню, а не по времени. Но это не важно, еще раз спасибо.
Так вам по уровню и указали. Вообще формула расчета такая.
Частота тактирования>=макс.выходная частота синуса * количество отсчетов на период синуса * количество ступеней дискретизации по амплитуде
500*256 уже получается 128Кгц, т.е. даже двух отсчетов на период синуса не выходит.
Если хочется ограничиться тактовой именно 100кГц, то нужно исключить последний сомножитель, т.е. следует использовать полноценный ЦАП, а не ШИМ в качестве ЦАП.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 3 2009, 23:32
Сообщение #6


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(rezident @ Nov 4 2009, 02:15) *
следует использовать полноценный ЦАП, а не ШИМ в качестве ЦАП.

Не-не, есть ведь шимы, в которых таймеры тактируются от умножителя частоты. (Например 64МГц PLL можно подать на таймер у AT90PWM3B, ATtiny261/461/861-кстати, забыл указать)
Так что 128 кГц - это не потолок. Лишь бы проц успевал считать...
Go to the top of the page
 
+Quote Post
rezident
сообщение Nov 3 2009, 23:49
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(_Pasha @ Nov 4 2009, 04:32) *
Не-не, есть ведь шимы, в которых таймеры тактируются от умножителя частоты.
Какая разница есть PLL, FLL или нет? Я же имею в виду именно тактовую частоту модуля таймера или модуля PWM, а не тактовую ядра или частоту кварцевого генератора. laughing.gif
И вообще. У топикстартера указано
Цитата("barabek")
ШИМ с несущей порядка 100кГц
"несущей", а не с тактовой. Хотелось бы от него уточнения, что он подразумевает под "несущей ШИМ"? Может это именно временнОе разрешение выходного ШИМ, то бишь ему период синуса 500Гц хочется на 200 отсчетов поделить. Тогда тактовая д.б. 100кГц*256 ≥ 25,6МГц.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 3 2009, 23:56
Сообщение #8


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(rezident @ Nov 4 2009, 03:49) *
тактовая д.б. 100кГц*256 ≥ 25,6МГц.

Дык я о том, что в помянутых мною аврках PLL специально предусмотрен для использования с модулем шим, и тактовая 64МГц - как раз для таких красивых "несущих" по сотне кгц. А тактовая на проц ессно в пределах до 16(20) МГц.
Go to the top of the page
 
+Quote Post
barabek
сообщение Nov 4 2009, 03:52
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(rezident @ Nov 4 2009, 09:15) *
Так вам по уровню и указали. Вообще формула расчета такая.
Частота тактирования>=макс.выходная частота синуса * количество отсчетов на период синуса * количество ступеней дискретизации по амплитуде
500*256 уже получается 128Кгц, т.е. даже двух отсчетов на период синуса не выходит.
Если хочется ограничиться тактовой именно 100кГц, то нужно исключить последний сомножитель, т.е. следует использовать полноценный ЦАП, а не ШИМ в качестве ЦАП.

Извините за мой французский, если меня не поняли. Я Вас, кстати, тоже smile.gif. Попробую объяснить по другому. Требуемый период ШИМа = 1/100кГц (10 мкс). Соответственно получаем количество периодов ШИМа на 500Гц =200. А так как разрешение по уровню хотелось бы иметь 8бит, то получаем (как Вы уже писали) тактовую частоту 100е3*256. Разрешение в 256 равномерно распределенных уровней не значит, что все уровни используются. При переходе синусоиды через 0, в месте наибольшей производной, будут некоторые пропускаться. Я так себе представляю. Выразился, наверно, не в общепринятых терминах.
Go to the top of the page
 
+Quote Post
V_G
сообщение Nov 4 2009, 05:24
Сообщение #10


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

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Цитата(rezident @ Nov 4 2009, 09:15) *
Так вам по уровню и указали. Вообще формула расчета такая.
Частота тактирования>=макс.выходная частота синуса * количество отсчетов на период синуса * количество ступеней дискретизации по амплитуде

Я реально делал программу с ШИМ 31,25 кГц, формирующую синусы 141, 504, 1042, 5208 Гц, сумму синусов 1042+5208 с соотношением амплитуд 2:1 и 1.5:1. Отсчеты заранее рассчитывал и писал в программную память (на четверть периода, остальные повторяются). При постоянной частоте ШИМ выбор частот при этом не очень велик, но моего заказчика устроил набор тестовых частот.

Да, амплитуды можно было менять в 2 раза 6-ю ступенями (просто отсчет сдвигаешь вправо перед выдачей на ШИМ).
По осциллографу видимых искажений не было, измерителем нелинейных искажений не пользовался.
Проц Мега128 8 МГц=частота ШИМ *256. 8-битный таймер без предделителя в режиме fast PWM.

И последнее добавление: все сказанное мной относится к формированию чистого синуса (или суммы синусов), а не к формированию АМ сигнала. Во всяком случае, я так понял смысл вопроса топикстартера. Как я понял, и как заметили тут еще, он несколько путается в показания по поводу несущей частоты и частоты дискретизации. Последняя, понятно, рассчитывается на основании теоремы Котельникова.

Сообщение отредактировал V_G - Nov 4 2009, 05:57
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 4 2009, 06:56
Сообщение #11


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(barabek @ Nov 4 2009, 07:52) *
При переходе синусоиды через 0, в месте наибольшей производной, будут некоторые пропускаться. Я так себе представляю.

А на максимумах /минимумах синуса - тоже. Но это не пропуски, а следствие округления
Go to the top of the page
 
+Quote Post
Herz
сообщение Nov 4 2009, 08:16
Сообщение #12


Гуру
******

Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287



Цитата(V_G @ Nov 4 2009, 07:24) *
Я реально делал программу с ШИМ 31,25 кГц, формирующую синусы 141, 504, 1042, 5208 Гц,...


То есть, всего 6 градаций на максимальную частоту приходилось?
Go to the top of the page
 
+Quote Post
barabek
сообщение Nov 4 2009, 08:19
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(V_G @ Nov 4 2009, 15:24) *
Как я понял, и как заметили тут еще, он несколько путается в показания по поводу несущей частоты и частоты дискретизации. Последняя, понятно, рассчитывается на основании теоремы Котельникова.

Еще и частота дискретизации выплыла smile.gif.
Если уж пошел такой разговор, давайте определимся. В моем представлении частота несущей =100 кГц, тактовая частота ШИМ модуля 25,6МГц. Я не прав?
Ваше предложение по поводу 31,25 кГц мне не подходит. В сегодня работающем устройстве используется несущая 19 кГц. Проблема - параметры выходного фильтра. Повышение частоты до Вашей проблему не решат. К сожалению.

Цитата(_Pasha)
А на максимумах /минимумах синуса - тоже. Но это не пропуски, а следствие округления

Мы, все-таки, говорим о разных вещах. Я имею ввиду не округление, а пропуск (возможно, а может и нет - зависит от соотношения частот несущей и выходной, а также разрешающей способности ШИМ).
Go to the top of the page
 
+Quote Post
V_G
сообщение Nov 4 2009, 08:31
Сообщение #14


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

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Цитата(Herz @ Nov 4 2009, 18:16) *
То есть, всего 6 градаций на максимальную частоту приходилось?

Да, но не 6 градаций, а 6 временнЫх отсчетов. Котельников требует более двух, так что все в порядке.

Цитата(barabek @ Nov 4 2009, 18:19) *
Если уж пошел такой разговор, давайте определимся.


Во-во, давно пора! Так вам чистый синус на выходе нужен, или какой-то более сложный сигнал (АМ, ЧМ,ФМ, например, в которых имеется понятие несущей частоты)?

Сообщение отредактировал V_G - Nov 4 2009, 08:43
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Nov 4 2009, 10:12
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Легко и просто сформировать синус да и другой сигнал на STM32 - он имеет DMA на встроеный DAC со скоростью больше 1 MS/s. Проверено лично.
Если нужно ШИМ, скважность которого определяется каким-то законом, но достаточного любого контроллера, только какое это отношение имеет к синусоидальному сигналу? Подобие на синус появится только после фильтрации.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post

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

 


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


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