Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Продукция MICROCHIP

Продукция MICROCHIP Технические вопросы по всей продукции Microchip

Ответ
 
Опции темы Опции просмотра
Старый 15.04.2007, 18:57   #1
bacvic
Junior Member
 
Регистрация: 31.03.2007
Сообщений: 16
Вес репутации: 100/49
bacvic will become famous soon enoughbacvic will become famous soon enough
По умолчанию ШИМ + фильтр...

Вывожу голос с полосой 300 - 3000 гц через ШИМ с частотой дискретизации 6000 гц. Построить добротный фильтр для этой задачи на операционниках и рассыпухе дорого и громоздко. Может кто подскажет дешевый фильтр не менее 6-го порядка в интегральном исполнении? Может MAXIM делает?
bacvic вне форума   Ответить с цитированием
Старый 15.04.2007, 20:50   #2
Молчун
Member
 
Регистрация: 25.02.2007
Сообщений: 95
Вес репутации: 113/49
Молчун will become famous soon enoughМолчун will become famous soon enough
По умолчанию Re: ШИМ + фильтр...

Цитата:
Сообщение от bacvic Посмотреть сообщение
Вывожу голос с полосой 300 - 3000 гц через ШИМ с частотой дискретизации 6000 гц. Построить добротный фильтр для этой задачи на операционниках и рассыпухе дорого и громоздко. Может кто подскажет дешевый фильтр не менее 6-го порядка в интегральном исполнении? Может MAXIM делает?
Максим делает, например MAX291... 296. Но это совсем совсем не дешево, что для Максима дело обычное. Наилучший способ уменьшить требования к фильтру это повышать частоту ШИМ до максимально возможной частоты (кратной частоте семплирования). Т.е. сделать не 6КГц, а 18, 24 или даже 36КГц.
Молчун вне форума   Ответить с цитированием
Старый 15.04.2007, 21:10   #3
phil
Member
 
Аватар для phil
 
Регистрация: 25.03.2007
Возраст: 44
Сообщений: 65
Вес репутации: 102/49
phil will become famous soon enoughphil will become famous soon enough
По умолчанию Задери тактовку ШИМа

Цитата:
Сообщение от bacvic Посмотреть сообщение
Вывожу голос с полосой 300 - 3000 гц через ШИМ с частотой дискретизации 6000 гц. Построить добротный фильтр для этой задачи на операционниках и рассыпухе дорого и громоздко.
Задери тактовку ШИМа и дело с концом. Можешь, если есть желание, реализовать примитивную передискретизацию (ошибку округления складываешь со следующим входным значением) для улучшения качества звука - смотря какая у тебя разрядность отсчётов. Или тупо сделай частоту ШИМа, к примеру, 24 кГц, поставь постскалер на 4 и по выходу постскалера прерываниями запихивай очередной отсчёт в ШИМ...
phil вне форума   Ответить с цитированием
Старый 15.04.2007, 21:16   #4
bacvic
Junior Member
 
Регистрация: 31.03.2007
Сообщений: 16
Вес репутации: 100/49
bacvic will become famous soon enoughbacvic will become famous soon enough
По умолчанию Re: ШИМ + фильтр...

Ресурсы проектируемого устр-ва не позволяют повысить частоту дискрет. А кроме максима есть варианты?
bacvic вне форума   Ответить с цитированием
Старый 15.04.2007, 22:41   #5
phil
Member
 
Аватар для phil
 
Регистрация: 25.03.2007
Возраст: 44
Сообщений: 65
Вес репутации: 102/49
phil will become famous soon enoughphil will become famous soon enough
По умолчанию Ты, право, смешной...

Цитата:
Сообщение от bacvic Посмотреть сообщение
Ресурсы проектируемого устр-ва не позволяют повысить частоту дискрет. А кроме максима есть варианты?
Отблин, ну тебе-то какая разница, будет ШИМ работать с частотой 24 кГц, а постскалер каждый четвёртый раз дёргать прерывания или ШИМ с частотой 6 кГц и каждый первый раз прерывания дёргать??
phil вне форума   Ответить с цитированием
Старый 15.04.2007, 23:26   #6
bacvic
Junior Member
 
Регистрация: 31.03.2007
Сообщений: 16
Вес репутации: 100/49
bacvic will become famous soon enoughbacvic will become famous soon enough
По умолчанию Re: ШИМ + фильтр...

Phil,я использую 16F628A.В мануале сказано:The Timer2 postscaler (see Section 8.0) isnot used in the determination of the PWMfrequency. The postscaler could be used tohave a servo update rate at a differentfrequency than the PWM output.Я оцифровывал сигнал с частотой 6000 гц по 8 бит.Если я использую постскалер то получится, что выборки будут загружатся через каждые 3 "пустых" периода PWM. Никогда не пробовал так делать, как будет качество звука?
bacvic вне форума   Ответить с цитированием
Старый 16.04.2007, 08:13   #7
phil
Member
 
Аватар для phil
 
Регистрация: 25.03.2007
Возраст: 44
Сообщений: 65
Вес репутации: 102/49
phil will become famous soon enoughphil will become famous soon enough
По умолчанию Re: ШИМ + фильтр...

Цитата:
Сообщение от bacvic Посмотреть сообщение
Phil,я использую 16F628A.В мануале сказано:The Timer2 postscaler (see Section 8.0) isnot used in the determination of the PWMfrequency. The postscaler could be used tohave a servo update rate at a differentfrequency than the PWM output.Я оцифровывал сигнал с частотой 6000 гц по 8 бит.Если я использую постскалер то получится, что выборки будут загружатся через каждые 3 "пустых" периода PWM. Никогда не пробовал так делать, как будет качество звука?
Вот тебе и написано английским по белому, что "постскалер может быть использован для обновления значения ШИМ на частоте, отличной от частоты ШИМ".
Те же разы, когда ты не будешь обновлять регистр ШИМ, значение периода ШИМ, разумеется, останется от предыдущего обновления, "пустых" периодов ШИМ не будет.
phil вне форума   Ответить с цитированием
Старый 16.04.2007, 12:15   #8
bacvic
Junior Member
 
Регистрация: 31.03.2007
Сообщений: 16
Вес репутации: 100/49
bacvic will become famous soon enoughbacvic will become famous soon enough
По умолчанию Re: ШИМ + фильтр...

Ладно, попробую оценить качество.Спасибо.
bacvic вне форума   Ответить с цитированием
Старый 16.04.2007, 14:23   #9
Молчун
Member
 
Регистрация: 25.02.2007
Сообщений: 95
Вес репутации: 113/49
Молчун will become famous soon enoughМолчун will become famous soon enough
По умолчанию Re: ШИМ + фильтр...

Цитата:
Сообщение от bacvic Посмотреть сообщение
Если я использую постскалер то получится, что выборки будут загружатся через каждые 3 "пустых" периода PWM. Никогда не пробовал так делать, как будет качество звука?
Не будет 3 _пустых_ периодов, будет 4 периода (24КГц) с одним значением. Именно в этом весь смысл. И качество звука будет расти с повышением частоты ШИМ.
Молчун вне форума   Ответить с цитированием
Старый 16.04.2007, 18:17   #10
=L.A.=
Senior Member
 
Регистрация: 26.02.2007
Адрес: Москва РФ
Сообщений: 269
Вес репутации: 232/52
=L.A.= has a spectacular aura about=L.A.= has a spectacular aura about=L.A.= has a spectacular aura about
По умолчанию Re: ШИМ + фильтр...

Цитата:
Сообщение от bacvic Посмотреть сообщение
Вывожу голос с полосой 300 - 3000 гц через ШИМ с частотой дискретизации 6000 гц. Построить добротный фильтр для этой задачи на операционниках и рассыпухе дорого и громоздко. Может кто подскажет дешевый фильтр не менее 6-го порядка в интегральном исполнении? Может MAXIM делает?
Я делал на 1 транзисторе + 4 конденсатора + 4 резистора и всё отлично работает.
=L.A.= вне форума   Ответить с цитированием
Старый 16.04.2007, 21:33   #11
bacvic
Junior Member
 
Регистрация: 31.03.2007
Сообщений: 16
Вес репутации: 100/49
bacvic will become famous soon enoughbacvic will become famous soon enough
По умолчанию Re: ШИМ + фильтр...

Цитата:
Сообщение от =L.A.= Посмотреть сообщение
Я делал на 1 транзисторе + 4 конденсатора + 4 резистора и всё отлично работает.
Отлично, а схемку увидеть можно?
bacvic вне форума   Ответить с цитированием
Старый 16.04.2007, 23:55   #12
=L.A.=
Senior Member
 
Регистрация: 26.02.2007
Адрес: Москва РФ
Сообщений: 269
Вес репутации: 232/52
=L.A.= has a spectacular aura about=L.A.= has a spectacular aura about=L.A.= has a spectacular aura about
По умолчанию Re: ШИМ + фильтр...

Цитата:
Сообщение от bacvic Посмотреть сообщение
Отлично, а схемку увидеть можно?
Фильтр сделан на VT1 ( схема Саллена-Ки )
http://www.uni-electronics.newmail.ru/schdictophon.htm

При желании , его характеристики можно и улучшить более точным расчетом компонентов. Я ставил ширпотреб, но тем не менее частоту ШИМ давит хорошо, всяких "цифровых" шумов нет.
=L.A.= вне форума   Ответить с цитированием
Старый 17.04.2007, 00:02   #13
phil
Member
 
Аватар для phil
 
Регистрация: 25.03.2007
Возраст: 44
Сообщений: 65
Вес репутации: 102/49
phil will become famous soon enoughphil will become famous soon enough
По умолчанию Re: ШИМ + фильтр...

Цитата:
Сообщение от =L.A.= Посмотреть сообщение
Я делал на 1 транзисторе + 4 конденсатора + 4 резистора и всё отлично работает.
Ну и зря. Я вообще делал ШИМ 88 кГц, усил на двух полевиках и сигнал сразу на динамик подавал, через электролит. Нах фильтр ещё нужен?
phil вне форума   Ответить с цитированием
Старый 17.04.2007, 22:32   #14
bacvic
Junior Member
 
Регистрация: 31.03.2007
Сообщений: 16
Вес репутации: 100/49
bacvic will become famous soon enoughbacvic will become famous soon enough
По умолчанию Re: ШИМ + фильтр...

Phil,увеличив частоту ШИМа до 24 кгц и загружая CCPRL1 с частотой 6 кгц, я получил неслабые искажения и паразитную частоту примерно 1660 гц. Хотя, конечно, частоты ШИМа как не бывало. Нужно ли перезагружать CCPRL1 предыдущим значением с частотой 24 кгц в ожидании флага от постскалера?L.A.вы снимали АЧХ каскада Саллена-Ки? Или оценивали на слух?
bacvic вне форума   Ответить с цитированием
Старый 18.04.2007, 01:13   #15
phil
Member
 
Аватар для phil
 
Регистрация: 25.03.2007
Возраст: 44
Сообщений: 65
Вес репутации: 102/49
phil will become famous soon enoughphil will become famous soon enough
По умолчанию Re: ШИМ + фильтр...

Цитата:
Сообщение от bacvic Посмотреть сообщение
Phil,увеличив частоту ШИМа до 24 кгц и загружая CCPRL1 с частотой 6 кгц, я получил неслабые искажения и паразитную частоту примерно 1660 гц. Хотя, конечно, частоты ШИМа как не бывало. Нужно ли перезагружать CCPRL1 предыдущим значением с частотой 24 кгц в ожидании флага от постскалера?L.A.вы снимали АЧХ каскада Саллена-Ки? Или оценивали на слух?
1. Ты, скорее всего, формируешь отсчёты асинхронно от обновлений ШИМа, поскольку у меня (20000/80000) всё работало без паразитных частот. У тебя, видимо, обрабатывается не каждый ивент от постскалера. Ты подвесь на прерывания от постскалера вывод отсчётов из буфера, а в основном цикле формируй отсчёты по опустошению буфера или как-нибудь иначе, только чтобы контроллер вовремя каждый четвёртый период ШИМ загружал регистр новым значением.
2. В симуляторе набери и посмотри АЧХ. Я принципиально не делал фильтра на выходе CCP, поскольку считаю нецелесообразным усиливать аналоговый сигнал, чего и вам советую. Фильтр ставлю исключительно LC и на выходе импульсного усилителя.
phil вне форума   Ответить с цитированием
Старый 18.04.2007, 22:49   #16
bacvic
Junior Member
 
Регистрация: 31.03.2007
Сообщений: 16
Вес репутации: 100/49
bacvic will become famous soon enoughbacvic will become famous soon enough
По умолчанию Re: ШИМ + фильтр...

Я загружаю новые значения в CCPRL1 с частотой 6 кгц, т.е. по ивенту от постскалера. Назовем это основным циклом. Но я ничего не делаю с CCPRL1 в промежуточных циклах (частота 24 кгц), имея в виду, что этот регистр является буферным для CCPRH1 и не изменяется до следующей перезагрузки по ивенту от постскалера. Я просто в цикле жду флаг от постскалера и получив его, загружаю следующее значение в CCPRL1. Таким образом, я предполагаю, что в промежуточных циклах (24 кгц) Duty Cycle формируется на базе предыдущих значений CCPRL1.
bacvic вне форума   Ответить с цитированием
Старый 18.04.2007, 23:08   #17
phil
Member
 
Аватар для phil
 
Регистрация: 25.03.2007
Возраст: 44
Сообщений: 65
Вес репутации: 102/49
phil will become famous soon enoughphil will become famous soon enough
По умолчанию Re: ШИМ + фильтр...

Цитата:
Сообщение от bacvic Посмотреть сообщение
Я загружаю новые значения в CCPRL1 с частотой 6 кгц, т.е. по ивенту от постскалера. Назовем это основным циклом. Но я ничего не делаю с CCPRL1 в промежуточных циклах (частота 24 кгц), имея в виду, что этот регистр является буферным для CCPRH1 и не изменяется до следующей перезагрузки по ивенту от постскалера. Я просто в цикле жду флаг от постскалера и получив его, загружаю следующее значение в CCPRL1. Таким образом, я предполагаю, что в промежуточных циклах (24 кгц) Duty Cycle формируется на базе предыдущих значений CCPRL1.
Ай малаца!!! Где твоя внимательность!!! Рисовать-то нада в CCPR1H, поскольку из него при равенстве TMR2 и PR2 переписывается значение ШИМа в CCPR1L. Ежели ты будешь писать в CCPR1L, то в конце каждого цикла ШИМ то, что ты написал туды, будет хериться значением CCPR1H. Это сделано для того, чтобы не было сбоев ШИМ при асинхронном обновлении регистра сравнения ШИМ.
Учи англицкий!
phil вне форума   Ответить с цитированием
Старый 19.04.2007, 21:56   #18
bacvic
Junior Member
 
Регистрация: 31.03.2007
Сообщений: 16
Вес репутации: 100/49
bacvic will become famous soon enoughbacvic will become famous soon enough
По умолчанию Re: ШИМ + фильтр...

По неизвестной причине я не могу вставлять рисунки и прикреплять файлы, хотя формально это разрешено (прошу модератора обратить внимание).Поэтому я ограничусь словесной ссылкой на рис. 9-3 на стр.58 док. DS40044B. Там же сказано: "When TMR2 is equal to PR2, the following three eventsoccur on the next increment cycle:• TMR2 is cleared• The CCP1 pin is set (exception: if PWM dutycycle = 0%, the CCP1 pin will not be set)• The PWM duty cycle is latched from CCPR1L intoCCPR1H"Т.е. именно из CCPR1L в CCPR1H а не как "перевел" Phil "Рисовать-то нада в CCPR1H, поскольку из него при равенстве TMR2 и PR2 переписывается значение ШИМа в CCPR1L."
bacvic вне форума   Ответить с цитированием
Старый 19.04.2007, 22:49   #19
phil
Member
 
Аватар для phil
 
Регистрация: 25.03.2007
Возраст: 44
Сообщений: 65
Вес репутации: 102/49
phil will become famous soon enoughphil will become famous soon enough
По умолчанию Re: ШИМ + фильтр...

Ну значит я ошибся. Я думал, ты в регистр сравнения записываешь данные.
Ладно, так или иначе, у всех ШИМ работает нормально.
Давай разбираться, что у тебя не так.
Пишешь в CCPR1L. Когда? Когда от постскалера происходит прерывание. Так?
phil вне форума   Ответить с цитированием
Старый 20.04.2007, 21:30   #20
bacvic
Junior Member
 
Регистрация: 31.03.2007
Сообщений: 16
Вес репутации: 100/49
bacvic will become famous soon enoughbacvic will become famous soon enough
По умолчанию Re: ШИМ + фильтр...

Ну вот я и говорю: "Я загружаю новые значения в CCPRL1 с частотой 6 кгц, т.е. по ивенту от постскалера. Назовем это основным циклом. Но я ничего не делаю с CCPRL1 в промежуточных циклах (частота 24 кгц), имея в виду, что этот регистр является буферным для CCPRH1 и не изменяется до следующей перезагрузки по ивенту от постскалера. Я просто в цикле жду флаг от постскалера и получив его, загружаю следующее значение в CCPRL1. Таким образом, я предполагаю, что в промежуточных циклах (24 кгц) Duty Cycle формируется на базе предыдущих значений CCPRL1."
bacvic вне форума   Ответить с цитированием
Старый 20.04.2007, 22:12   #21
IgorV
Senior Member
 
Аватар для IgorV
 
Регистрация: 25.02.2007
Адрес: всем пока
Возраст: 49
Сообщений: 4,100
Вес репутации: 1883/107
IgorV has a brilliant futureIgorV has a brilliant futureIgorV has a brilliant futureIgorV has a brilliant futureIgorV has a brilliant futureIgorV has a brilliant futureIgorV has a brilliant futureIgorV has a brilliant futureIgorV has a brilliant futureIgorV has a brilliant futureIgorV has a brilliant future
Отправить сообщение для IgorV с помощью Skype™
По умолчанию Re: ШИМ + фильтр...

Цитата:
Сообщение от bacvic Посмотреть сообщение
Ну вот я и говорю: "Я загружаю новые значения в CCPRL1 с частотой 6 кгц, т.е. по ивенту от постскалера. Назовем это основным циклом. Но я ничего не делаю с CCPRL1 в промежуточных циклах (частота 24 кгц), имея в виду, что этот регистр является буферным для CCPRH1 и не изменяется до следующей перезагрузки по ивенту от постскалера. Я просто в цикле жду флаг от постскалера и получив его, загружаю следующее значение в CCPRL1. Таким образом, я предполагаю, что в промежуточных циклах (24 кгц) Duty Cycle формируется на базе предыдущих значений CCPRL1."
Просто копирование сэмплов с увеличением частоты ШИМ мало дает толку. Необходимо ресамплинг делать. У ПИКа мало ресурсов чтобы это было возможно по настоящему, у него хватает мипсов только линейную интерполяцию делать. Но даже это в вашем случае писк уведет с 3кГц на 6кГц с ослаблением и на 12кГц. Фильтровать будет проще
IgorV вне форума   Ответить с цитированием
Старый 20.04.2007, 23:31   #22
evc
Member
 
Аватар для evc
 
Регистрация: 26.02.2007
Адрес: Москва
Сообщений: 41
Вес репутации: 100/49
evc will become famous soon enoughevc will become famous soon enough
По умолчанию Re: ШИМ + фильтр...

Цитата:
Сообщение от bacvic Посмотреть сообщение
Ну вот я и говорю: "Я загружаю новые значения в CCPRL1 с частотой 6 кгц, т.е. по ивенту от постскалера...."
Когда Вы прерывание получаете, CCPR1H уже загружен. Вы обновляете CCPR1L, но длина импульса изменится будет уже в следующий период ШИМ-а. Это конечно должно не мешать (только фазовая разница будет между прерыванием и изменением длины импульса), но все-таки имейте в виду...

Последний раз редактировалось evc; 20.04.2007 в 23:37.
evc вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
модуль ШИМ на pic16f628a Евгений Владимирович Продукция MICROCHIP 8 12.06.2008 15:51
Помогите с ШИМ fot0n Продукция MICROCHIP 12 01.06.2008 22:31
Сдвиг 8ми программных ШИМ в последовательный регистор: как двигать бит на С? maagalex Продукция MICROCHIP 25 14.05.2008 15:25
Вопрос про ШИМ ? Andress Продукция MICROCHIP 7 10.01.2008 16:29


Часовой пояс GMT +3, время: 03:13.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot