Помогите разобратся с ШИМ.
Помогите разобратся с ШИМ.
Помогите разобратся с ШИМ. Пока ни в железе ни в симуляторе не пробовал ШИМ, не было надобности, а вот теперь понадобилось. Вобщем как получить синус на АВР мне понятно а как изменять его частоту и уровень используя одну таблицу, не совсем понятно. Если кому не лень, обьясните мне какими способами это можно сделать, желательно на пальцах.
- Реклама
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Помогите разобратся с ШИМ.
Ну Вы же можете получить синус. Он уже значит имеет какую-то частоту. Как Вы её расчитывали ?как изменять его частоту и уровень используя одну таблицу, не совсем понятно.
Если таблица содержит в себе один период, то частота синуса будет = частота выборки / кол-во выборок (кол-во значений в таблице). Ну а уровень менять проще - умножайте значения из таблицы на коэффециент, если процессорного времени конечно хватит.
Re: Помогите разобратся с ШИМ.
Спасибо за ответ. С уровнем я как то так и предполагал. А вот как оперативно менять частоту не совсем ясно. Скажем такт 8 мГц, разрешение ШИМ 255 значит частота ШИМ 8000000 : 256 = 31250 Гц. Если разбить четверть периода на 64 части (период - 256) то максимальная частота синуса получится 31250 : 256 = 122 Гц. Создаем таблицу для синуса в 64 значениями. получили синус 122 герца. А как без особых изменений сделать 121 120 119 ? Ведь не создавать же для каждой частоты таблицу. Можно изменять частоту ШИМ загружая какое то начальное значение в регистр таймера.
Но при этом придется изменять значения и регистре OC чтобы сохранить процентное соотношение включеного и выключенного состояния выхода.
Больше ничего в голову не приходит.
Но при этом придется изменять значения и регистре OC чтобы сохранить процентное соотношение включеного и выключенного состояния выхода.
Больше ничего в голову не приходит.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Помогите разобратся с ШИМ.
Почему Вы делите на 256 частоту ШИМа ? Вам нужно делить частоту выборки (дискретизации). Запускаете таймер, в обработчике которого делаете выборки, и меняете время его переполнения.31250 : 256 = 122 Гц.
При синусе с частотой 121 Гц частота выборок, для 8-битной таблицы, будет = 121*256=30976 Гц.
Re: Помогите разобратся с ШИМ.
Почитайте тут http://we.easyelectronics.ru/_YS_/zvuko ... ega48.html
Разница между теорией и практикой на практике гораздо больше, чем в теории.
- Реклама
Re: Помогите разобратся с ШИМ.
Ну ведь тоже самое получается что и вы написали 122*256=31232 Гц, я просто округлил до 31250. То есть если градаций напряжения будет 256 (таймер будет тикать до 256) и частота выборок 256 то максимальная частота при такте 8 мГц будет 8000000 : 256 : 256 = 122.0703125. Может где-то я ошибаюсь, поправьте плиз.Почему Вы делите на 256 частоту ШИМа ? Вам нужно делить частоту выборки (дискретизации). Запускаете таймер, в обработчике которого делаете выборки, и меняете время его переполнения.
При синусе с частотой 121 Гц частота выборок, для 8-битной таблицы, будет = 121*256=30976 Гц.
Re: Помогите разобратся с ШИМ.
Чего-то все молчат, наверно военная тайна регулировка частоты синуса. Пока что ничего более умного не придумал как сделать несколько таблиц под некоторые частоты а потом делить их програмно. Запарился я конкретно в написании таблицы синусов, и сел седня набросал скриптик на баше
для построения таблиц синусов. Скрипт выводит значения для всего периода, при запуске скрипта надо указать количество частей на которое хочется разбить период. Неудобство значения выводит по одному в строке, поэтому надо немного поработать ручками при копировании. Так что те кто юзает линукс пользуйтесь.
ЗЫ. Расширение sh тут запрещено, поэтому удалите .rar в названии файла.
ЗЫ. Подправил чуток скриптик, выдает таблицу в более читабельном виде, по 10 значений в строке.
для построения таблиц синусов. Скрипт выводит значения для всего периода, при запуске скрипта надо указать количество частей на которое хочется разбить период. Неудобство значения выводит по одному в строке, поэтому надо немного поработать ручками при копировании. Так что те кто юзает линукс пользуйтесь.
ЗЫ. Расширение sh тут запрещено, поэтому удалите .rar в названии файла.
ЗЫ. Подправил чуток скриптик, выдает таблицу в более читабельном виде, по 10 значений в строке.
- Вложения
-
- sine.sh.rar
- (1.43 КБ) 269 скачиваний
Re: Помогите разобратся с ШИМ.
Я же дал ссылку. Или Вы дальше названия не читали? Там все подробно расписано и даже с картинками.Чего-то все молчат, наверно военная тайна регулировка частоты синуса.
Я в свое воемя в 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
Амплитуду регулировать в цифровом виде не очень хорошо, при этом теряется разрешающая способность ЦАП и ухудшается качество сигнала. Лучше регулировать на выходе, цифровым потенциометром, например.
Вот описание моего генератора: http://www.telesys-ru.1gb.ru/electronic ... hp?do=p035
Там, правда, не ШИМ, а ЦАП, но это без разницы.
Если захочется теории, тогда вот: http://www.digit-el.com/files/articles/dds.pdf
Амплитуду регулировать в цифровом виде не очень хорошо, при этом теряется разрешающая способность ЦАП и ухудшается качество сигнала. Лучше регулировать на выходе, цифровым потенциометром, например.
Re: Помогите разобратся с ШИМ.
Спасибо всем за ответы.В начале темы я не указал для чего мне это. В общем хочу построить трехфазный регулятор для асинхронников. Так что особая правильность формы и точность не нужна. Знаю что тема стара как мир, но хочется попробовать. Готового нормального решения я не нашел, вот и решил сделать сам.
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: Помогите разобратся с ШИМ.
Тогда ключевое слово SVM.
Re: Помогите разобратся с ШИМ.
Может дадите ссылочку какую нибудь почитать, а то либо я плохо ищу либо гугл на меня обиделся.
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: Помогите разобратся с ШИМ.
Спасибо, вчера нашел тоже самое на русском http://www.gaw.ru/html.cgi/txt/app/micr ... AVR495.htm . Слишком мудрено все написано, пытаюсь вникнуть. 


