Как стать автором
Обновить

Решение проблемы мертвого времени с помощью Copilot

Уровень сложностиСложный
Время на прочтение15 мин
Количество просмотров4.3K
Всего голосов 9: ↑8 и ↓1+8
Комментарии11

Комментарии 11

один вопрос, почему-бы вам не использовать fpga для этих целей

ну если вы только из экономических соображений решили использовать эти микроконтроллеры, то вопрос снимается

Нет, я понимаю что вы имели в виду какое-то функциональное улучшение.
Но реально длительность ISR увеличилась бы, а улучшение было бы сомнительным.

Простой микроконтроллер + CPLD возможно выйдет сравнимо по цене. А там можно любой ШИМ вертеть, какой только вздумается, с любыми защитами и блэкджеком. Вплоть до аппаратной подгонки мертвого времени сигналом от внешнего компаратора.

Нет, это так не работает.
Любая внешняя микросхема вызовет неприемлемые задержки и нарушение детерминизма. Поскольку микроконтроллер будет вынужден обращаться к этой микросхеме через свою низкоприоритетную периферийную шину и так занятую кучей DMA и DCT.

А в статье как раз показываю способ как делать минимум обращений даже к нативной внутренней оптимизированой периферии. И даже эти обращения вызывают беспокойство - не нужно ли делать DSB ( Data Synchronization Barrier ) после них.
Тут каждая наносекунда дорога, особенно на высоких частотах ШИМ.
Какое CPLD, шутите?

Особенно вывывает улыбку предложение делать некий блэкджек-навороченный ШИМ на FPGA. Ну почему мне не встречаются предложения сделать на FPGA движок USB включая все классы дивайсов. Там годами приходится с аппаратными багами бороться и никто не поможет таким дельным советом.

Сейчас может уже не так актуально, а лет 15 назад я запихивал в ПЛИС управлялку 5-фазным мотором. А для того чтоб не зависеть от интерфейсов - весь контур управления был реализован внизу. Сверху только приходили уставки куда и сколько крутить, настройки тока и прочее. Но в те времена не было особо шустрых контроллеров и это было скорей от неизбежности. Сейчас я бы взял для низа какой-нить STM с мотор-контрольными таймерами, а для верха готовый HMI-модуль или одноплатник.

В статье-то про 6-и фазный привод.
Но все решают нюансы.
С какой точностью измеряются токи в фазах, какая максимальная частота модуляции, какой габарит и т.д.
Говорить абстрактно про фазы имеет мало смысла.

Не смог найти первую статью про "мёртвое время". Её название не содержит этого словосочетания?

Благодарю!

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации