|
Помогите подобрать МК, Для формирования ШИМ |
|
|
|
Nov 3 2009, 04:19
|
Знающий
   
Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831

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

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

|
Для того что бы иметь синусоиду нужно иметь больше 3 отсчетов на период на самой верхней частоте. Те 500*3=1500. Плюс к этому 8бит ШИМ - 256 отсчетов. Те частота ШИМ должна быть 1500*256=384000Гц Лучше что бы еще выше. Для этой задачи вролне подойдет обычный МК. Мега128 - 6 аппаратных шимов + АЦП. Задача не настолько сложна что бы искать новый контроллер.
Сообщение отредактировал IgorKossak - Nov 4 2009, 09:09
Причина редактирования: Бездумное цитирование
|
|
|
|
|
Nov 3 2009, 06:28
|
Знающий
   
Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831

|
Цитата(Peter Pavlov @ Nov 3 2009, 16:16)  Мега128 - 6 аппаратных шимов + АЦП. Задача не настолько сложна что бы искать новый контроллер. Спасибо, посмотрю. А насчет Цитата 1500*256=384000Гц , я имел ввиду 256 разрешение по уровню, а не по времени. Но это не важно, еще раз спасибо. Цитата(_Pasha) AT90PWM3B , тоже гляну, спасибо.
|
|
|
|
|
Nov 3 2009, 23:15
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(barabek @ Nov 3 2009, 11:28)  А насчет , я имел ввиду 256 разрешение по уровню, а не по времени. Но это не важно, еще раз спасибо. Так вам по уровню и указали. Вообще формула расчета такая. Частота тактирования>=макс.выходная частота синуса * количество отсчетов на период синуса * количество ступеней дискретизации по амплитуде 500*256 уже получается 128Кгц, т.е. даже двух отсчетов на период синуса не выходит. Если хочется ограничиться тактовой именно 100кГц, то нужно исключить последний сомножитель, т.е. следует использовать полноценный ЦАП, а не ШИМ в качестве ЦАП.
|
|
|
|
|
Nov 3 2009, 23:49
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(_Pasha @ Nov 4 2009, 04:32)  Не-не, есть ведь шимы, в которых таймеры тактируются от умножителя частоты. Какая разница есть PLL, FLL или нет? Я же имею в виду именно тактовую частоту модуля таймера или модуля PWM, а не тактовую ядра или частоту кварцевого генератора. И вообще. У топикстартера указано Цитата("barabek") ШИМ с несущей порядка 100кГц "несущей", а не с тактовой. Хотелось бы от него уточнения, что он подразумевает под "несущей ШИМ"? Может это именно временн Ое разрешение выходного ШИМ, то бишь ему период синуса 500Гц хочется на 200 отсчетов поделить. Тогда тактовая д.б. 100кГц*256 ≥ 25,6МГц.
|
|
|
|
|
Nov 4 2009, 03:52
|
Знающий
   
Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831

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

Профессионал
    
Группа: Свой
Сообщений: 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
|
|
|
|
|
Nov 4 2009, 08:19
|
Знающий
   
Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831

|
Цитата(V_G @ Nov 4 2009, 15:24)  Как я понял, и как заметили тут еще, он несколько путается в показания по поводу несущей частоты и частоты дискретизации. Последняя, понятно, рассчитывается на основании теоремы Котельникова. Еще и частота дискретизации выплыла  . Если уж пошел такой разговор, давайте определимся. В моем представлении частота несущей =100 кГц, тактовая частота ШИМ модуля 25,6МГц. Я не прав? Ваше предложение по поводу 31,25 кГц мне не подходит. В сегодня работающем устройстве используется несущая 19 кГц. Проблема - параметры выходного фильтра. Повышение частоты до Вашей проблему не решат. К сожалению. Цитата(_Pasha) А на максимумах /минимумах синуса - тоже. Но это не пропуски, а следствие округления Мы, все-таки, говорим о разных вещах. Я имею ввиду не округление, а пропуск (возможно, а может и нет - зависит от соотношения частот несущей и выходной, а также разрешающей способности ШИМ).
|
|
|
|
|
Nov 4 2009, 08:31
|

Профессионал
    
Группа: Свой
Сообщений: 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
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|