Pull to refresh

Comments 17

Полезная статья, может пригодится

Спасибо.

тема полезная, странно, что мало комментариев но видимо не все дочитали до конца

меня засмущали вопросы после выводов, а где ответы?

Вопросы

1--Как в прошивке микроконтроллера прочитать мгновенное значение на выходе аппаратного PWM?
2--Можно ли на STM32 в случае схемы Master-Slave сделать регулирование фазы на Slave PWM сигнале без использования прерываний микроконтроллера и остановки счета, чтобы не затормаживать основную прошивку?

ну и результат (или выводы статьи) напомнили студенческую работу

Результат

Удалось научиться

Автор, вопрос поднят хороший, хорошо описано и понятно, но результат и странные вопросы после выводов смазывают впечатление. Ставлю +, очень надеюсь на следуюшие тех статьи от вас на основе железа доступного на озон для любителей) тот же stm32 nano

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

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

Тестировочные сборки в репозитории trunk
https://github.com/aabzel/trunk/tree/main

Вот конкретная сборка Demo проекта

https://github.com/aabzel/trunk/tree/main/source/projects/jz_f407vet6_pwm_phase_demo_gcc_m

Все конфигурации для платы jz-f407vet6 лежат тут
https://github.com/aabzel/trunk/tree/main/source/boards/jz_f407vet6

Логика шатания фазы описана отдельным модулем
https://github.com/aabzel/trunk/tree/main/source/applications/pwm_phase_demo

Драйвер PWM лежит тут
https://github.com/aabzel/trunk/tree/main/source/mcal/mcal_common/pwm
https://github.com/aabzel/trunk/tree/main/source/mcal/mcal_stm32f4/pwm

Драйвер Timer лежит в source/mcal
https://github.com/aabzel/trunk/tree/main/source/mcal/mcal_common/timer
https://github.com/aabzel/trunk/tree/main/source/mcal/mcal_stm32f4/timer

тема полезная, странно, что мало комментариев
Автор, вопрос поднят хороший, хорошо описано и понятно,

Спасибо.

на основе железа доступного на озон для любителей) тот же stm32 nano

PCB JZ-F407VET6 тоже продается на OZON

Обзор учебно-тренировочной платы JZ-F407VET6 (или электронная парта)
https://habr.com/ru/articles/988494/

(K N E X) 1 компл. Совет по развитию промышленного управления STM32F407VET6 Learning 485 Dual CAN Ethernet Интернет вещей STM32

https://www.ozon.ru/product/k-n-e-x-1-kompl-sovet-po-razvitiyu-promyshlennogo-upravleniya-stm32f407vet6-learning-485-dual-can-3871218056/?at=Y7tjZyrVkirL5zQQtg4jpRMu7YYV2xhZV8ko4fNAkqvm

тема полезная, странно, что мало комментариев но видимо не все дочитали до конца

По факту мало кому реально надо управлять фазой PWM. Я работаю программистом MK 14 лет и замечал, что 60-80 % программистов МК даже не знают, что такое фаза сигнала. Знают только про частоту, амплитуду и скважность.

Мало комментариев как раз и доказывают, что мало кто понял "об чём речь" и "Про что пирожки?" .

да, тема узкоспециализированная, тем более выше ценность вашей статьи, понятно, что есть досада, что еë мало оценили, так как в основе здесь обитают программисты ПК и сейчас все сфокусировались и необоснованно "залайкивают" статьи про ИИ.

но буду ждать ваших статей по узким и широкопрофильным темам по МК. Там вопросов, мало известных, вагон и все они достойны, если не книги, то статьи на хабр.

и отдельное спасибо за ответ и ссылки выше

На Хабре по embedded в принципе не то чтобы много статей, и заинтересованных читателей соответственно, да и тот круг сужается, когда речь идёт не про Ардуино. Статья хорошая (ещё только пару опечаток по тексту поправить), но управление фазой pwm действительно частная задача. Может и не пригодится, но в закладки закинул, полезный трюк.

На Хабре по embedded в принципе не то чтобы много статей, и заинтересованных читателей соответственно, да и тот круг сужается,

А на каком тогда сайте больше статей про embedded ? И где больше заинтересованных читателей?

У всех STM32 есть TIM1, специально заточенный под многофазные нагрузки. 3-фазным двигателем он способен управлять полностью аппаратно, с нулевой ошибкой по фазе. А у некоторых контроллеров он ещё и тактируется повышенной частотой, что увеличивает разрядность.

Ну и где в карте регистров TIM1 три регистра управления фазой?

1--Как в прошивке микроконтроллера прочитать мгновенное значение на выходе аппаратного PWM ведь но согласно PinMux не подключен к GPIO ?

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

Я делал аппаратно. Выходы двух каналов TIM подаем на входы микросхемы "2 исключающее или-не". На выходе будет 1 только когда на выходах каналах 0 и 1. Регулируя скважность обоих каналов можно получить импульс нужной длительности в любом месте периода PWM. Но нужна дополнительная микросхема...

Я делал аппаратно. Выходы двух каналов TIM подаем на входы микросхемы "2 исключающее или-не". На выходе будет 1 только когда на выходах каналах 0 и 1. Регулируя скважность обоих каналов можно получить импульс нужной длительности в любом месте периода PWM. Но нужна дополнительная микросхема...

Гениально! В самом деле это красивое и простое решение. Спасибо.
"исключающее или-не" это же то же что сложение по модулю два. Так?

Посмотрел на микросхемы - увы иск. или-не не существует. Нужны две микросхемы 1 типа иск. или https://www.chipdip.ru/product/sn74ac86dr-chetyre-logicheskih-elementa-texas-instruments-559310197, вторая инвертор типа https://www.chipdip.ru/product/74lvc2g04gw-125-dvoynoy-inverter-tssop-6-nexperia-9000771680.

Для четырех каналов надо 3 микросхемы.

Искать 4 XNOR. SN74HC266D например, недорого и в наличии, в том же C&D

Sign up to leave a comment.

Articles