Нелинейность PWM STM32F103

Блоки питания, преобразователи напряжения, UPS'ы - это здесь :)
Ответить
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 308
Зарегистрирован: Ср ноя 20, 2013 11:29:26
Откуда: Манчестер

Сообщение Alex-lab »

Доброго всем дня!

Использую STM32F103 с платы bluepill как шим контроллер для импульсного БП. Мостовой, трансформаторный преобразователь, частота 31,25кГц, на выходе L-C фильтр (5мГн +0,1мкф). нагруженный на батарею проволочных резисторов, обеспечивающих ток в пределах 25% от максимального.

Столкнулся с такой проблемой.

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

1. Обзорный вид пилы.
Изображение

2. Увеличенный начальный участок.
Изображение

Ясно видно, что отклонение от прямой в обе стороны. Есть значения, которые не влияют на выходное напряжение, а есть, которые влияют очень резко, один шаг добавляет за 5 обычных.
Первые мысли были, что дело может быть в драйверах и силовой части. Однако, проверка на в 10 раз большей длительности (каждый шаг в 10 раз длиннее) показал идентичное поведение. То есть это какой-то статический эффект.

3. Вид начального участка на пиле длительность в 10 раз большей.
Изображение

Этот факт статичности, имеет один плюс, его можно скомпенсировать. Что и было произведено, путем построения некоторого подгоночного массива данных, который замещает ряд исходных величин коэффициента заполнения. Например, после значения 24% сразу переходим на 32%, минуя промежуточные (это пример).

4. Вид пилы после коррекции.
Изображение


Проверял ардуиной, там конечно свои проблемы, но такого поведения нет. Поэтому грешу на контроллер СТМ, в чем может быть косяк?

Да, используется не прямой ШИМ, а фазосдвиг (также и на ардуине). Один выход таймера шурует постоянно, другой сдвигается.

В чем может быть косяк?? Неделю думал, и так и эдак, не могу понять причину... :shock: :shock: :shock:
Нужна помощь.
При решение наиболее сложных задач, большинство, как правило, ошибается...
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

[uquote="Alex-lab",url="/forum/viewtopic.php?p=3158133#p3158133"]Первые мысли были, что дело может быть в драйверах и силовой части.
Проверял ардуиной, там конечно свои проблемы, но такого поведения нет. Поэтому грешу на контроллер СТМ, в чем может быть косяк?[/uquote]

Что угодно проверялось только не собственные руки, хотя для аурдинщика это должно быть заповедью. :)))


Здесь PWM одновременно 3 каналов...

Изображение Изображение Изображение[/uquote]
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 308
Зарегистрирован: Ср ноя 20, 2013 11:29:26
Откуда: Манчестер

Сообщение Alex-lab »

Я понимаю, что работать должно. Данные идут из таблицы, даже не считаются. Пытаюсь придумать возможную причину, такой систематической ошибки.
При решение наиболее сложных задач, большинство, как правило, ошибается...
Контактная информация:
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="Alex-lab",url="/forum/viewtopic.php?p=3158336#p3158336"]Я понимаю, что работать должно. Данные идут из таблицы, даже не считаются. Пытаюсь придумать возможную причину, такой систематической ошибки.[/uquote]
Думал неделю, за это время тебя не посещала мысль, что неплохо бы проверить не аналоговый сигнал после фильтра, а цифровой до него? :)
Реклама
Эиком - электронные компоненты и радиодетали
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 308
Зарегистрирован: Ср ноя 20, 2013 11:29:26
Откуда: Манчестер

Сообщение Alex-lab »

[uquote="Reflector",url="/forum/viewtopic.php?p=3158340#p3158340"]Думал неделю, за это время тебя не посещала мысль, что неплохо бы проверить не аналоговый сигнал после фильтра, а цифровой до него? :)[/uquote]

Посещала. Идет мусор, не то, что должно. В проблемных местах идут два фиксированных значения, чередующихся с разной интенсивностью. Именно поэтому эта тема в разделе про контроллеры, а не в Источниках. Просто на графиках напряжения это лучше видно. Есть такой же второй контроллер, поведение 1 в 1.

Вот и первая мысль появилась. Может какой-то бит в регистре сравнения глючит. Попробую пройтись по отдельным битам.
При решение наиболее сложных задач, большинство, как правило, ошибается...
Контактная информация:
Реклама
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="Alex-lab",url="/forum/viewtopic.php?p=3158342#p3158342"]Посещала. Идет мусор, не то, что должно. В проблемных местах идут два фиксированных значения, чередующихся с разной интенсивностью.[/uquote]
Это хорошо, но тогда как мы без кода должны понять почему именно на выходах шима мусор?
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 308
Зарегистрирован: Ср ноя 20, 2013 11:29:26
Откуда: Манчестер

Сообщение Alex-lab »

Проверил побитово регистр сравнения таймера....
Вот те бабушка и юрьев день.

Изображение

Это был регистр CCR1.

Аналогичная картина в ССR3, но не рабоает бит равный 64... вот и верь китайцам после этого...

Это я неделю только с нелинейностью воевал. А до этого достаточно времени потратил настраивая лвухконтурный ПИД-ПИ регулятор...
При решение наиболее сложных задач, большинство, как правило, ошибается...
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

[uquote="Alex-lab",url="/forum/viewtopic.php?p=3158336#p3158336"]Я понимаю, что работать должно.[/uquote]

Представляете, на моих картинках так же данные прут изЪ таблицы, из массива с тремя синусоидами сдвинутымипофазе.
И опять таки - причем здесь виноватые китайцы? Себя в первую очередь обвините...

Сделайте выхлоп таблицы в UART ...

Да и кстати опции Preload включены для CCRx и ARR?
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 308
Зарегистрирован: Ср ноя 20, 2013 11:29:26
Откуда: Манчестер

Сообщение Alex-lab »

[uquote="dosikus",url="/forum/viewtopic.php?p=3158373#p3158373"][uquote="Alex-lab",url="/forum/viewtopic.php?p=3158336#p3158336"]Я понимаю, что работать должно.[/uquote]

Представляете, на моих картинках так же данные прут изЪ таблицы, из массива с тремя синусоидами сдвинутымипофазе.
И опять таки - причем здесь виноватые китайцы? Себя в первую очередь обвините...

Сделайте выхлоп таблицы в UART ...

Да и кстати опции Preload включены для CCRx и ARR?[/uquote]

Опции включены, вопрос разрешился.

Спасибо всем отписавшимся!

За что я должен себя обвинять, если не работает регистр? :dont_know:
При решение наиболее сложных задач, большинство, как правило, ошибается...
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

[uquote="Alex-lab",url="/forum/viewtopic.php?p=3158377#p3158377"]вопрос разрешился.[/uquote]


И в чем был ляп?
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 308
Зарегистрирован: Ср ноя 20, 2013 11:29:26
Откуда: Манчестер

Сообщение Alex-lab »

[uquote="dosikus",url="/forum/viewtopic.php?p=3158378#p3158378"][uquote="Alex-lab",url="/forum/viewtopic.php?p=3158377#p3158377"]вопрос разрешился.[/uquote]


И в чем был ляп?[/uquote]

Прочитайте пожалуйста мое третье сообщение с конца.
При решение наиболее сложных задач, большинство, как правило, ошибается...
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

если не работает регистр
Это? Позвольте просто не поверить.
Я еще могу поверить в выбитые биты порта ардуинщиком.
Но что бы не работали регистры периферии ...
Последний раз редактировалось dosikus Вт авг 08, 2017 13:41:12, всего редактировалось 1 раз.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 308
Зарегистрирован: Ср ноя 20, 2013 11:29:26
Откуда: Манчестер

Сообщение Alex-lab »

[uquote="dosikus",url="/forum/viewtopic.php?p=3158381#p3158381"]
если не работает регистр
Это? Позвольте просто не поверить...[/uquote]


За верой не ко мне.
Приведен рисунок выхода для различных активных битов регистра. Хотите верьре, хотите нет...
При решение наиболее сложных задач, большинство, как правило, ошибается...
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Приведите эпюры выхлопа "битых бит" в статике.
Просто настройте PWM и вручную занесите в CCRx данные. Можете прямо в Keil'овском отладчике.
Или вы пытаетесь меня заставить уверовать, что младшие биты формируют только этот участок а в остальном не участвуют?
Вы сами в это верите?
Последний раз редактировалось dosikus Вт авг 08, 2017 13:45:22, всего редактировалось 1 раз.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 308
Зарегистрирован: Ср ноя 20, 2013 11:29:26
Откуда: Манчестер

Сообщение Alex-lab »

[uquote="dosikus",url="/forum/viewtopic.php?p=3158384#p3158384"]Приведите эпюры выхлопа "битых бит" в статике.
Просто настройте PWM и вручную занесите в CCRx данные. Можете прямо в Keil'овском отладчике...[/uquote]

У меня и кейла нет, и заниматься этим не вижу смысла.
При решение наиболее сложных задач, большинство, как правило, ошибается...
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

В коде просто запишите TIMx->CCRx=32;

Кстати уважаемый, вы сделали мой день. Я знал что ардуинщики упертые и уверовали, но чтобы так.
Это достойно баша - битые биты CCR ... :))) :))) :))) :))) :)))
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 308
Зарегистрирован: Ср ноя 20, 2013 11:29:26
Откуда: Манчестер

Сообщение Alex-lab »

[uquote="dosikus",url="/forum/viewtopic.php?p=3158390#p3158390"]В коде просто запишите TIMx->CCRx=32;[/uquote]

Не вижу смысла продолжать.
Уже заказал с ибея другие платы. Как приедут отпишусь о сравнении.
При решение наиболее сложных задач, большинство, как правило, ошибается...
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Сообщение scorpi_0n »

Начинайте собирать пепел вёдрами, чтобы время зря не терять.
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Не вижу смысла продолжать.
Alex-lab, и все же приведите код, я вас умоляю...
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 308
Зарегистрирован: Ср ноя 20, 2013 11:29:26
Откуда: Манчестер

Сообщение Alex-lab »

Имейте терпение.
При решение наиболее сложных задач, большинство, как правило, ошибается...
Контактная информация:
Ответить

Вернуться в «Питание»