Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сколько можно PWM вшить в одну ATmegа'у
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
SFx
Планирую начать изучение микроконтроллеров, и даже потенциальная задачка придумалась. вопрос примерно такой:
есть некая атмега, к на ее GPIO нужно вывести как можно больше PWM (широтно-импульсная модуляция) каналов.
но вот не задача - есть аппаратные PWM и их только 10 (кажется максимум для всех серий, поправьте ежели не прав).
вопрос собственно в следующем: можно ли программные PWM сделать, и на каких максимальных частотах они будут работать?
demiurg_spb
А какие частоты нужны?
Надо отталкиваться от ТЗ.
Какие ещё задачи будет решать MCU?

Программный pwm - это миф. ИМХО.
aaarrr
Цитата(SFx @ Dec 7 2009, 00:04) *
вопрос собственно в следующем: можно ли программные PWM сделать

Можно.

Цитата(SFx @ Dec 7 2009, 00:04) *
и на каких максимальных частотах они будут работать?

А это напрямую зависит от количества каналов. На порядки медленнее.

Вообще, лучше скажите сразу, зачем нужна куча ШИМ'ов.

Цитата(demiurg_spb @ Dec 7 2009, 00:17) *
Программный pwm - это миф. ИМХО.

Почему? По-моему, вполне себе имеет право на существование.
demiurg_spb
Цитата(aaarrr @ Dec 7 2009, 00:19) *
Почему? По-моему, вполне себе имеет право на существование.
Джиттер.
aaarrr
Цитата(demiurg_spb @ Dec 7 2009, 00:26) *
Джиттер.

Ну, не везде же он важен - может, это "мигалка светодиодами" будет. Поэтому и надо цели уточнить.
SFx
Цитата(aaarrr @ Dec 7 2009, 00:19) *
Вообще, лучше скажите сразу, зачем нужна куча ШИМ'ов.

хочу светодиодами моргать с разной яркостью, для начала.

Цитата(demiurg_spb @ Dec 7 2009, 00:17) *
А какие частоты нужны?

частоты - пусть будет 30 раз в секунду меняться уровень яркости.

Цитата(demiurg_spb @ Dec 7 2009, 00:17) *
Какие ещё задачи будет решать MCU?

ну я думаю что-то то вроде бегущей строки, с возможностью управления яркостью точек. наверное еще сдвиговые регистры потребуются, но хочется без них попробовать, может быть на более "выводистых" корпусах.

Цитата(demiurg_spb @ Dec 7 2009, 00:17) *
Программный pwm - это миф. ИМХО.

то есть сразу делать на плис ? wink.gif

Цитата(demiurg_spb @ Dec 7 2009, 00:26) *
Джиттер.

а в каких пределах он может быть, по вашем мнению ?


2all
примерно стало понятно, что если сделать 60 каналов PWM, то mcu скажет "вах как много" и будет сильно тупить.
demiurg_spb
Цитата(SFx @ Dec 7 2009, 00:33) *
хочу светодиодами моргать с разной яркостью, для начала.
Тогда считайте сами. Нужен рефреш около 85 Гц.

Цитата(SFx @ Dec 7 2009, 00:33) *
частоты - пусть будет 30 раз в секунду меняться уровень яркости.
то есть сразу делать на плис ? wink.gif
Нет. Можно и на AVR табличку яркостей хранить.
Формулируйте Ваши задачки максимально полно изначально.

Для этой задачи джиттер может быть очень большим - глазу этого не будет видно.

Почитайте ещё про динамическую LED индикацию...
SFx
Цитата(demiurg_spb @ Dec 7 2009, 00:40) *
Формулируйте Ваши задачки максимально полно изначально.

эх если бы знать что нужно) я же говорю, цели исследовательские, ну а потом, возможно, двухцветная бегущая строка с возможностью управления яркостью точек. примерно высота 8-16 точек, длина 128-256 точек.
кстати говоря, а скважность влиять на яркость светодиодов будет же наверное? значит ток нужно больше подавать чтобы яркость была достаточной. или по-чаще рефреш делать лучше?
aaarrr
Цитата(SFx @ Dec 7 2009, 08:55) *
эх если бы знать что нужно) я же говорю, цели исследовательские, ну а потом, возможно, двухцветная бегущая строка с возможностью управления яркостью точек. примерно высота 8-16 точек, длина 128-256 точек.

Память: 16 * 256 = 4096 байт.
Частота ШИМ: 200Гц (минимально комфортный рефреш) * 8 (будем считать duty cycle = 1/8) * 256 (градации яркости) = 409600.

Вывод: AVR и программный ШИМ тут не пройдут.

Цитата(SFx @ Dec 7 2009, 08:55) *
кстати говоря, а скважность влиять на яркость светодиодов будет же наверное? значит ток нужно больше подавать чтобы яркость была достаточной. или по-чаще рефреш делать лучше?

А каким это образом "рефреш почаще" скажется на яркости?
SFx
Цитата(aaarrr @ Dec 7 2009, 11:32) *
Вывод: AVR и программный ШИМ тут не пройдут.

Спасибо за пример расчета.
я правильно понимаю что под duty cycle обратно пропорционален числу светодиодов на выходе ШИМ?
Цитата(aaarrr @ Dec 7 2009, 11:32) *
А каким это образом "рефреш почаще" скажется на яркости?

я наверное решил что период рефреша и duty cycle одно и тоже.
=GM=
Цитата(SFx @ Dec 6 2009, 21:04) *
можно ли программные PWM сделать, и на каких максимальных частотах они будут работать?

Была такая задачка, долго обсуждалась в пустыне, поищите там, может что осталось. Если вкратце, изначально мой программный алгоритм выдавал 24 восьмибитных шима (256-точечных) на обычной аврке с тактовой 20 МГц, частота всех шимов была 3900 Гц. Максимальный джиттер составлял 1 такт (0.05 мкс). Особенностью было то, что заполнение всех 24 шимов могло независимо изменяться на каждом периоде шим. На максимальной частоте шим проц был занят на 100%.

И ещё вам для ориентира: в процессе дискуссий на сахаре выработался новый алгоритм с потенциальной частотой всех шим порядка 8600 Гц (не опубликовано). И без джиттера вообще. С новым алгоритмом на формирование всех шим уходит не более 30% времени.
SFx
Цитата(=GM= @ Dec 7 2009, 13:57) *
Была такая задачка, долго обсуждалась в пустыне, поищите там, может что осталось.

спасибо, вроде что то нашел. буду дуплить)
=GM=
На здоровье. Добавлю, что в некоторых пределах можно разменивать частоту шим на количество шим. Скажем, для 32 шим частота шим снизится до 3100 Гц. Существенным ограничением алгоритма является процедура упорядочивания при расчёте новых уставок.
demiurg_spb
Цитата(SFx @ Dec 7 2009, 14:37) *
спасибо, вроде что то нашел. буду дуплить)
Киньте ссылку на топик.
rezident
Цитата(demiurg_spb @ Dec 7 2009, 22:13) *
Киньте ссылку на топик.

Видимо этот http://caxapa.ru/68211.html?todo=full
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.