Помогите разобратся с ШИМ.

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
fzr400gr
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Вс сен 25, 2011 09:40:47

Помогите разобратся с ШИМ.

Сообщение fzr400gr »

Помогите разобратся с ШИМ. Пока ни в железе ни в симуляторе не пробовал ШИМ, не было надобности, а вот теперь понадобилось. Вобщем как получить синус на АВР мне понятно а как изменять его частоту и уровень используя одну таблицу, не совсем понятно. Если кому не лень, обьясните мне какими способами это можно сделать, желательно на пальцах.
Реклама
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Помогите разобратся с ШИМ.

Сообщение Аlex »

как изменять его частоту и уровень используя одну таблицу, не совсем понятно.
Ну Вы же можете получить синус. Он уже значит имеет какую-то частоту. Как Вы её расчитывали ?
Если таблица содержит в себе один период, то частота синуса будет = частота выборки / кол-во выборок (кол-во значений в таблице). Ну а уровень менять проще - умножайте значения из таблицы на коэффециент, если процессорного времени конечно хватит.
Реклама
fzr400gr
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Вс сен 25, 2011 09:40:47

Re: Помогите разобратся с ШИМ.

Сообщение fzr400gr »

Спасибо за ответ. С уровнем я как то так и предполагал. А вот как оперативно менять частоту не совсем ясно. Скажем такт 8 мГц, разрешение ШИМ 255 значит частота ШИМ 8000000 : 256 = 31250 Гц. Если разбить четверть периода на 64 части (период - 256) то максимальная частота синуса получится 31250 : 256 = 122 Гц. Создаем таблицу для синуса в 64 значениями. получили синус 122 герца. А как без особых изменений сделать 121 120 119 ? Ведь не создавать же для каждой частоты таблицу. Можно изменять частоту ШИМ загружая какое то начальное значение в регистр таймера.
Но при этом придется изменять значения и регистре OC чтобы сохранить процентное соотношение включеного и выключенного состояния выхода.
Больше ничего в голову не приходит. :dont_know:
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Помогите разобратся с ШИМ.

Сообщение Аlex »

31250 : 256 = 122 Гц.
Почему Вы делите на 256 частоту ШИМа ? Вам нужно делить частоту выборки (дискретизации). Запускаете таймер, в обработчике которого делаете выборки, и меняете время его переполнения.
При синусе с частотой 121 Гц частота выборок, для 8-битной таблицы, будет = 121*256=30976 Гц.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Помогите разобратся с ШИМ.

Сообщение YS »

Разница между теорией и практикой на практике гораздо больше, чем в теории.
Реклама
fzr400gr
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Вс сен 25, 2011 09:40:47

Re: Помогите разобратся с ШИМ.

Сообщение fzr400gr »

Почему Вы делите на 256 частоту ШИМа ? Вам нужно делить частоту выборки (дискретизации). Запускаете таймер, в обработчике которого делаете выборки, и меняете время его переполнения.
При синусе с частотой 121 Гц частота выборок, для 8-битной таблицы, будет = 121*256=30976 Гц.
Ну ведь тоже самое получается что и вы написали 122*256=31232 Гц, я просто округлил до 31250. То есть если градаций напряжения будет 256 (таймер будет тикать до 256) и частота выборок 256 то максимальная частота при такте 8 мГц будет 8000000 : 256 : 256 = 122.0703125. Может где-то я ошибаюсь, поправьте плиз.
Реклама
fzr400gr
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Вс сен 25, 2011 09:40:47

Re: Помогите разобратся с ШИМ.

Сообщение fzr400gr »

Чего-то все молчат, наверно военная тайна регулировка частоты синуса. Пока что ничего более умного не придумал как сделать несколько таблиц под некоторые частоты а потом делить их програмно. Запарился я конкретно в написании таблицы синусов, и сел седня набросал скриптик на баше
для построения таблиц синусов. Скрипт выводит значения для всего периода, при запуске скрипта надо указать количество частей на которое хочется разбить период. Неудобство значения выводит по одному в строке, поэтому надо немного поработать ручками при копировании. Так что те кто юзает линукс пользуйтесь.

ЗЫ. Расширение sh тут запрещено, поэтому удалите .rar в названии файла.

ЗЫ. Подправил чуток скриптик, выдает таблицу в более читабельном виде, по 10 значений в строке.
Вложения
sine.sh.rar
(1.43 КБ) 269 скачиваний
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Помогите разобратся с ШИМ.

Сообщение YS »

Чего-то все молчат, наверно военная тайна регулировка частоты синуса.
Я же дал ссылку. Или Вы дальше названия не читали? Там все подробно расписано и даже с картинками.
сел седня набросал скриптик на баше
Я в свое воемя в Excel генерировал. :) Потом правда, тоже тулзу написал, но как консольное приложение.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: Помогите разобратся с ШИМ.

Сообщение Леонид Иванович »

Как регулировать частоту? Ключевое слово - DDS.
Вот описание моего генератора: http://www.telesys-ru.1gb.ru/electronic ... hp?do=p035
Там, правда, не ШИМ, а ЦАП, но это без разницы.
Если захочется теории, тогда вот: http://www.digit-el.com/files/articles/dds.pdf
Амплитуду регулировать в цифровом виде не очень хорошо, при этом теряется разрешающая способность ЦАП и ухудшается качество сигнала. Лучше регулировать на выходе, цифровым потенциометром, например.
fzr400gr
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Вс сен 25, 2011 09:40:47

Re: Помогите разобратся с ШИМ.

Сообщение fzr400gr »

Спасибо всем за ответы.В начале темы я не указал для чего мне это. В общем хочу построить трехфазный регулятор для асинхронников. Так что особая правильность формы и точность не нужна. Знаю что тема стара как мир, но хочется попробовать. Готового нормального решения я не нашел, вот и решил сделать сам.
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: Помогите разобратся с ШИМ.

Сообщение Леонид Иванович »

Тогда ключевое слово SVM.
fzr400gr
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Вс сен 25, 2011 09:40:47

Re: Помогите разобратся с ШИМ.

Сообщение fzr400gr »

Может дадите ссылочку какую нибудь почитать, а то либо я плохо ищу либо гугл на меня обиделся.
fzr400gr
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Вс сен 25, 2011 09:40:47

Re: Помогите разобратся с ШИМ.

Сообщение fzr400gr »

Спасибо, вчера нашел тоже самое на русском http://www.gaw.ru/html.cgi/txt/app/micr ... AVR495.htm . Слишком мудрено все написано, пытаюсь вникнуть. :))
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»