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

2. Увеличенный начальный участок.

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

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

Проверял ардуиной, там конечно свои проблемы, но такого поведения нет. Поэтому грешу на контроллер СТМ, в чем может быть косяк?
Да, используется не прямой ШИМ, а фазосдвиг (также и на ардуине). Один выход таймера шурует постоянно, другой сдвигается.
В чем может быть косяк?? Неделю думал, и так и эдак, не могу понять причину...
Нужна помощь.






