|
Поговорим об аппаратном ШИМе (aka PWM), tiny13, от теории к практике |
|
|
|
Mar 10 2007, 20:54
|
Участник

Группа: Новичок
Сообщений: 20
Регистрация: 10-03-07
Пользователь №: 26 032

|
Вот, не поленился засунуть датащит в Промпт... Код Быстрая широтно-импульсная модуляция или режим fastPWM (WGM02:0 = 3 или 7) обеспечивают высокочастотную ШИМ генерацию сигнала. Режим fastPWM отличается от других режимов PWM ее однонаклонной (single-slope) операцией. Счетчик ведет счет от BOTTOM к TOP и вновь загружает значение BOTTOM. TOP определен как 0xFF если WGM2:0 = 3, и OCR0A если WGM2:0 = 7. В неинвертирующем Compare Output режиме, сигнал Output Compare (OC0x) сброшен, когда значение счетчика лежит между TCNT0 и OCR0x, и установлен в BOTTOM. В инвертирующем Compare Output режиме вывода, вывод установлен на соответствии сравнения и сбрасывается на BOTTOM. Благодаря однонаклонной операции, рабочая частота режима fast PWM может быть вдвое более высокой, чем при фазокорректном ШИМ, который использует двойной наклон. Высокая частота делает режим fastPWM хорошо подходящим для регулировки питания, исправления (rectification), и приложений ЦАП. Высокая частота позволяет использовать малоразмерные внешние компоненты (катушки, конденсаторы), и поэтому уменьшает полную стоимость системы. В режиме fastPWM, счетчик увеличивается до тех пор, пока его значение не достигнет значения TOP. На следующем такте таймера счетчик обнуляется. осталось разобраться, как выбрать инвертирующий или неинвертирующий режим...
Сообщение отредактировал GDaniloff - Mar 10 2007, 20:55
|
|
|
|
|
Mar 10 2007, 22:46
|
Местный
  
Группа: Свой
Сообщений: 437
Регистрация: 23-04-05
Из: Таганрог
Пользователь №: 4 425

|
Цитата(GDaniloff @ Mar 10 2007, 20:54)  Вот, не поленился засунуть датащит в Промпт... Код Быстрая широтно-импульсная модуляция или режим fastPWM (WGM02:0 = 3 или 7) обеспечивают высокочастотную ШИМ генерацию сигнала. Режим fastPWM отличается от других режимов PWM ее однонаклонной (single-slope) операцией. Счетчик ведет счет от BOTTOM к TOP и вновь загружает значение BOTTOM. TOP определен как 0xFF если WGM2:0 = 3, и OCR0A если WGM2:0 = 7. В неинвертирующем Compare Output режиме, сигнал Output Compare (OC0x) сброшен, когда значение счетчика лежит между TCNT0 и OCR0x, и установлен в BOTTOM. В инвертирующем Compare Output режиме вывода, вывод установлен на соответствии сравнения и сбрасывается на BOTTOM. Благодаря однонаклонной операции, рабочая частота режима fast PWM может быть вдвое более высокой, чем при фазокорректном ШИМ, который использует двойной наклон. Высокая частота делает режим fastPWM хорошо подходящим для регулировки питания, исправления (rectification), и приложений ЦАП. Высокая частота позволяет использовать малоразмерные внешние компоненты (катушки, конденсаторы), и поэтому уменьшает полную стоимость системы. В режиме fastPWM, счетчик увеличивается до тех пор, пока его значение не достигнет значения TOP. На следующем такте таймера счетчик обнуляется. осталось разобраться, как выбрать инвертирующий или неинвертирующий режим... Инвертирующий и неинвертирующий режимы задаются битами COM0A1:COM0A0 в регистре TCCR0A
|
|
|
|
|
Mar 10 2007, 23:10
|
Участник

Группа: Новичок
Сообщений: 20
Регистрация: 10-03-07
Пользователь №: 26 032

|
Цитата(Pyku_He_oTTyda @ Mar 10 2007, 23:01)  Смотря для чего, в ТИНИ13 ШИМ не шибко быстрый При максимальной частоте проца 9,6 МГц выходит максимум 37,5 кГц. А сколько, интересно, нужно для формирования аналогового сигнала на 20 кГц?
|
|
|
|
|
Mar 11 2007, 01:25
|
Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 19-12-06
Из: Silicon Valley, California
Пользователь №: 23 683

|
Цитата(GDaniloff @ Mar 10 2007, 23:10)  Цитата(Pyku_He_oTTyda @ Mar 10 2007, 23:01)  Смотря для чего, в ТИНИ13 ШИМ не шибко быстрый
При максимальной частоте проца 9,6 МГц выходит максимум 37,5 кГц. А сколько, интересно, нужно для формирования аналогового сигнала на 20 кГц? Минимально 40 кГц по Найквисту (Котельникову). Реально значительно больше, всегда ищется компромис между частотой, качеством выходного сигнала и качеством (крутизной среза) НЧ фильтра.
|
|
|
|
|
Mar 12 2007, 13:26
|
Местный
  
Группа: Свой
Сообщений: 303
Регистрация: 3-03-05
Пользователь №: 3 044

|
Цитата(GDaniloff @ Mar 10 2007, 23:10)  При максимальной частоте проца 9,6 МГц выходит максимум 37,5 кГц. А сколько, интересно, нужно для формирования аналогового сигнала на 20 кГц? Еще бы узнать, чего мы хотим от этого ШИМ. Музыку играть?, Стабилизатором управлять ?, Или синус сгенерировать ?.
--------------------
Опыт - чудесная вещь: легко использовать, можно продать, трудно пропить.
|
|
|
|
|
Mar 12 2007, 23:02
|
Участник

Группа: Новичок
Сообщений: 20
Регистрация: 10-03-07
Пользователь №: 26 032

|
Пока что интерес теоретический. Как сварганить источник звука(плеер) - фиг с ним, пусть хоть монофонический, но с качеством на уровне современной бытовой аппарауры? А в других процах дела с ШИМ обстоят не лучше... У меги, например, с ее 16-разрядным счетчиком, f = F/(2^разряды)
Сообщение отредактировал GDaniloff - Mar 12 2007, 23:06
|
|
|
|
|
Mar 13 2007, 00:40
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(GDaniloff @ Mar 12 2007, 20:02)  Пока что интерес теоретический. Как сварганить источник звука(плеер) - фиг с ним, пусть хоть монофонический, но с качеством на уровне современной бытовой аппарауры? А в других процах дела с ШИМ обстоят не лучше... У меги, например, с ее 16-разрядным счетчиком, f = F/(2^разряды)Кое-что есть и получше. В МК ATtiny25/45/85 стоит шим плл на 64 МГц. Шим можно получить 250 кГц на два канала, по-моему.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Mar 13 2007, 10:50
|
Участник

Группа: Новичок
Сообщений: 20
Регистрация: 10-03-07
Пользователь №: 26 032

|
Цитата В МК ATtiny25/45/85 стоит шим плл на 64 МГц. Шим можно получить 250 кГц на два канала, по-моему. Не знал... Это ж совсем свежие чипы, за такими придется в Москву ехать, и то при условии что они там есть. Вот в прошлом году зашел в питерский "Чип и Дип" - там даже про 13-е не слыхали  Ежели стерео и 250 кГц - можно сделать неплохой ревер
|
|
|
|
|
Mar 13 2007, 12:36
|

Профессионал
    
Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360

|
Цитата Ежели стерео и 250 кГц - можно сделать неплохой ревер smile.gif Ревербератор что ли? Боюсь производительности не хватит
--------------------
Андрей Смирнов
|
|
|
|
|
Mar 13 2007, 16:35
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(GDaniloff @ Mar 13 2007, 07:50)  Цитата В МК ATtiny25/45/85 стоит шим плл на 64 МГц. Шим можно получить 250 кГц на два канала, по-моему. Не знал... Это ж совсем свежие чипы, за такими придется в Москву ехать, и то при условии что они там есть. Вот в прошлом году зашел в питерский "Чип и Дип" - там даже про 13-е не слыхали  Ежели стерео и 250 кГц - можно сделать неплохой ревер  Для таких дел забудьте о быстрой шим и 64 МГц. Частота может солидно гулять вплоть до 70 МГц, была где-то ссылка, поскольку, на мой взгляд, нестабильность порядка 10% для звука неприемлема. Эта шим предназначена для управления двигателями в системах, как правило, с обратной связью, поэтому процессор сам может подстроить частоту шим, и гуляние частоты не страшно. Цитата(Pyku_He_oTTyda @ Mar 13 2007, 09:36)  Цитата Ежели стерео и 250 кГц - можно сделать неплохой ревер smile.gif Ревербератор что ли? Боюсь производительности не хватит Какая задержка нужна? Если поставить два ацп, два цапа, внешнюю память на 64 КБ и считать, что частота выборок 44 кГц, то хватит на 0.7 с (для двух каналов). При частоте 20 кГц хватит уже на 1.5 с. Вывод: даже при частоте выборок 44 кГц, времени 22 мкс вполне хватит на весь цикл - чтение двух ацп, сохранение во внешней в памяти и выдача в два цап. не хватит памяти, поставить 128 КБ.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|