Валентиныч 0 September 23, 2025 Posted September 23, 2025 · Report post Требуется реализовать 4 канальный ШИМ-контроллер, управляемый по I2C с тактовой частотой не ниже 1 МГц, а лучше по более скоростной шине SPI. Подскажите, какие есть варианты? Имеющаяся PCA9685 избыточна по каналам (16 ШИМ-каналов), но не достаточно шустрая. Quote Share this post Link to post Share on other sites More sharing options...
rezident 109 September 23, 2025 Posted September 23, 2025 · Report post 1 час назад, Валентиныч сказал: Имеющаяся IRS20954 избыточна по каналам (16 ШИМ-каналов), но не достаточно шустрая. Уточните, что вам вообще нужно? Упомянутая вами IRS20954 это полумостовой драйвер MOSFET/IGBT, который может управляться ШИМ-сигналом. Причем тут вообще "ШИМ-контроллер" и что такое в вашем понимании "ШИМ-контроллер"? IRS20954S.pdf Quote Share this post Link to post Share on other sites More sharing options...
Валентиныч 0 September 23, 2025 Posted September 23, 2025 · Report post Извините, я по невнимательности написал не то название микросхемы. Должно быть PCA9685 (16-channel, 12-bit PWM Fm+ I2C-bus LED controller). Просто в разрабатываемой схеме имеются и IRS20954, которые используются по прямому назначению - в качестве драйвера усилителя класса D. Исправил ошибку в первом сообщении. А нужно 4-6 независимых каналов функционального генератора с высоковольтным выходом (~100 вольт), способных выдавать в нагрузку 300-500 мА. Первоначально пытался реализовать это на PCA9685, но оказалось, что даже на 1 МГц SCL может не хватать времени на периодическое изменение параметров ШИМ. Ничего более подходящего сам не нашел, поэтому и обратился за помощью. PCA9685.pdf Quote Share this post Link to post Share on other sites More sharing options...
Plain 402 September 24, 2025 Posted September 24, 2025 · Report post Замените микроконтроллер на другой — сейчас даже у примитивных МК есть несколько выходов ШИМ, поэтому для производителей ИС сомнительная выгода делать отдельно ШИМ. Во-вторых, есть большие сомнения, что микроконтроллер, не имеющий 6 выходов ШИМ, способен реализовать 6 функциональных генераторов — возможно 6 шт. МК, по одному на канал, будет проще реализовать. Quote Share this post Link to post Share on other sites More sharing options...
tonyk_av 81 September 24, 2025 Posted September 24, 2025 · Report post 14 hours ago, Валентиныч said: А нужно 4-6 независимых каналов функционального генератора У меня в проекте ПЛК 4 ШИМ выхода, которые можно привязать к выходу ПИД-регулятора с минимальным шагом 1мс (для моих задач меньше не требуется). Использую STM32F446 на 168МГц, который даже не замечает работы этой связки, ибо работают аппаратные таймеры. Внизу картинки управление обогревом одной секцией тёплого пола. Согласен с Plain, что нужно взять подходящий МК. Если же есть большой проект, который споткнулся из-за ШИМ, то, как вариант возьмите МК, который сможет делать вам 6-6 ШИМ и управляйте им по SPI. Quote Share this post Link to post Share on other sites More sharing options...
rezident 109 September 24, 2025 Posted September 24, 2025 · Report post 14 часов назад, Валентиныч сказал: Первоначально пытался реализовать это на PCA9685, но оказалось, что даже на 1 МГц SCL может не хватать времени на периодическое изменение параметров ШИМ. Вам нужен микроконтроллер в котором есть таймеры с режимом работы PWM. К PWM-выходам подключите м/с драйверов на необходимый вам ток. Это самый реальный вариант, если вам нужно быстро управлять параметрами ШИМ. Quote Share this post Link to post Share on other sites More sharing options...
Валентиныч 0 September 24, 2025 Posted September 24, 2025 · Report post 1 час назад, tonyk_av сказал: Использую STM32F446 на 168МГц. ...нужно взять подходящий МК. Ничего не имею против STM-ок, просто не умею их готовить. Поэтому вынужден довольствоваться архаичными AVR-ками типа ATMega8/16/32/328. При этом сам ни разу не программист, немножко пишу только на АСМе. Отсюда все аппаратные изыски. Добавлю: ко всему прочему, требуется довольно высокочастотный 16-разрядный ШИМ, с частотой не ниже 300-500 кГц. При этом период обновления параметров ШИМ-каналов довольно медленный, порядка 1-3 мс. STM-ка с тактовой 168 МГц с этим справится (наверное), а вот 16-мегагерцовая АТМега вряд ли... Поэтому и ищу аппаратное решение реализации ШИМ на внешнем девайсе, работающем независимо от контроллера. Всем спасибо за советы переползти на другую платформу, но воспользоваться этими советами мне довольно проблематично. Quote Share this post Link to post Share on other sites More sharing options...
tonyk_av 81 September 24, 2025 Posted September 24, 2025 · Report post 8 minutes ago, Валентиныч said: Поэтому вынужден довольствоваться архаичными AVR-ками типа ATMega8/16/32/328 Хм, вроде, у этих МК до 6 ШИМ каналов. Или ищите ШИМ-контроллер с аналоговым управлением и DAC с SPI. Quote Share this post Link to post Share on other sites More sharing options...
rezident 109 September 24, 2025 Posted September 24, 2025 · Report post 8 минут назад, Валентиныч сказал: требуется довольно высокочастотный 16-разрядный ШИМ, с частотой не ниже 300-500 кГц. 16-разрядный ШИМ с частотой 500кГц требует тактовой частоты 32768МГц(!), если я ничего не напутал. Вы не хотите своего осетра урезать? 1 Quote Share this post Link to post Share on other sites More sharing options...
Валентиныч 0 September 24, 2025 Posted September 24, 2025 · Report post 2 часа назад, rezident сказал: 16-разрядный ШИМ с частотой 500кГц требует тактовой частоты 32768МГц(!), если я ничего не напутал. Или я чего-то не понимаю, или Вы несколько ошибаетесь. Возможно, не внимательно прочитали требования к ШИМ, которые были озвучены чуть выше. ШИМ с частотой 500 кГц требует именно 500 кГц тактовой, и ни герцем выше. Вы, видимо, смешали понятия частоты ШИМ импульсов, частоты и разрядности дискретизации исходного сигнала, который нужно зашимить. А период выборок при формировании требуемых сигналов 1-3 мс, или 333-1000 Гц. А уж какова разрядность этих выборок - это дело другое, и к итоговой частоте ШИМ не имеет никакого отношения. Главное, чтобы внутренние делители микроконтроллера (таймеры или прескалеры) были в состоянии сгенерировать такую частоту. Для 16 МГц клока камня это как два байта отослать. P.S. Перечитал, что написал, и понял, что не прав. Видимо, осетра придется резать на части. Quote Share this post Link to post Share on other sites More sharing options...
rezident 109 September 24, 2025 Posted September 24, 2025 · Report post 1 минуту назад, Валентиныч сказал: Полагаю, Вы несколько ошибаетесь. Или не внимательно прочитали требования к ШИМ, которые были озвучены чуть выше. Я могу прочитать только то, что вы сами написали. Указанная вами м/с PCA9685 дает ШИМ с частотой до 1526 Гц и имеет разрядность 12 бит. Вы же возжелали частоту ШИМ 500кГц при разрядности 16 бит. Может в вашей размерности пространства другие правила математики, но у меня 500000 * 2^16 = 32768000000. Quote Share this post Link to post Share on other sites More sharing options...
Plain 402 September 24, 2025 Posted September 24, 2025 · Report post 1 час назад, Валентиныч сказал: период выборок при формировании требуемых сигналов 1-3 мс 1 кГц · 216 = 65,5 МГц Quote Share this post Link to post Share on other sites More sharing options...
_pv 107 September 24, 2025 Posted September 24, 2025 · Report post 3 minutes ago, Plain said: 1 кГц · 216 = 65,5 МГц 1-3мс это как часто ТС хочет значение ШИМа изменять. (то что у него сейчас в i2c не пролазит с pca9685), а частота всё же 500кГц, и соответственно 32ГГц при 16ти разрядах Quote требуется довольно высокочастотный 16-разрядный ШИМ, с частотой не ниже 300-500 кГц. При этом период обновления параметров ШИМ-каналов довольно медленный, порядка 1-3 мс На замену pca9685 для быстрого изменения скважности раз уж так не хочется слазить с AVR, в дополнение к основному контроллеру повесить ему на spi сколько надо каких-нибудь atmega48, там пара каналов 16ти разрядного ШИМа есть. а для 16бит и 500кГц либо пересаживаться на МК где есть HRPWM с сотней пс разрешения (XMC4, TMS320, в каких-то stm32 вроде было). либо как уже советовали любой "аналоговый" шим контроллер от какого-нибудь dc-dc и ЦАП ему на вход обратной связи. 16ти бит там конечно не будет, но возможно получится лучше чем на АВР с его 16МГц частоты. Quote Share this post Link to post Share on other sites More sharing options...
Priest_89 29 September 24, 2025 Posted September 24, 2025 · Report post Посмотрите специализированные микросхемы для усилителей D-класса, наподобие TAS5086 или STA309. Quote Share this post Link to post Share on other sites More sharing options...
Plain 402 September 25, 2025 Posted September 25, 2025 · Report post 11 часов назад, _pv сказал: 1-3мс это как часто ТС хочет значение ШИМа изменять Автору, при частоте дикретизации 1 кГц, нужно ещё озвучить и желаемое время установления до требуемых 1/3 МЗР, потому что не 500 кГц его определяют. Quote Share this post Link to post Share on other sites More sharing options...