частотник на stm32f4
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: частотник на stm32f4
Мои 3 фазы на attiny44, управление по частоте и амплитуде.
Re: частотник на stm32f4
И все таки мне не понятно
насколько я понимаю, что бы получить 50% надо синус сжать не только с верху но и с низу.Sergi писал(а):Задал 50% в CCR и получил 50% от напряжения питания.
Re: частотник на stm32f4
Представьте что одна фаза это управляемый ЦАП. Максимум - напряжение питания,минимум - 0, а середина 1/2 питания.Если на всех фазах будет 1/2 питания ток не потечет,разница напряжений = 0. А как часто и по какому закону мы будем ему давать утавки его не касается, он должен отработать цифру в напряжение. У нас 3 ЦАП и управляем ими через 120 градусов, вот и все. Еще бывают двухфазные контроллеры - для шаговых двигателей, там тоже можно синус сделать при дроблении шага.
Re: частотник на stm32f4
Так
или не так?
Спойлер

-
ivan dimir
- Мучитель микросхем
- Сообщения: 440
- Зарегистрирован: Вс дек 29, 2019 08:05:21
Re: частотник на stm32f4
Я управление не увидел.Только 3 фазы.Контроллер На attini44?.
Re: частотник на stm32f4
Так,только для удобства длина таблицы должна быть кратна 3м. Амплитуда любая 8-16 бит,"максимум - 1" записать в TIM1->ARR.
Re: частотник на stm32f4
мне все равно не понятноSergi писал(а):Так
или может таймер в stm умеет так делать.Sergi писал(а):Задал 50% в CCR и получил 50% от напряжения питания.
Я вот формулу использовал, что бы нижний край поджать и в результате у меня вот такая вот х получилась, нелинейная
Спойлер

Re: частотник на stm32f4
Так может делать любой таймер с регистром сравнения,который может делать широтно-импульсную модуляцию и имеет выход на ногу контроллера. Смотреть статьи про ЦАП на таймере.
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: частотник на stm32f4
[uquote="ivan dimir",url="/forum/viewtopic.php?p=4122858#p4122858"]Я управление не увидел.Только 3 фазы.Контроллер На attini44?.[/uquote]
Управление по двум АЦП.
Управление по двум АЦП.
Re: частотник на stm32f4
А ссылку на эту статью можно?Sergi писал(а):Смотреть статьи про ЦАП на таймере.
-
ivan dimir
- Мучитель микросхем
- Сообщения: 440
- Зарегистрирован: Вс дек 29, 2019 08:05:21
Re: частотник на stm32f4
я ни чего там не увидел.3 фазы а если сделать 3 фазы прямые и 3 инверсные можно программно.Ваша атини позволяет выполнить данную задачу?
-
linkov1959
- Держит паяльник хвостом
- Сообщения: 923
- Зарегистрирован: Пн сен 10, 2018 19:16:28
Re: частотник на stm32f4
[uquote="ivan dimir",url="/forum/viewtopic.php?p=4122885#p4122885"]я ни чего там не увидел.3 фазы а если сделать 3 фазы прямые и 3 инверсные можно программно.Ваша атини позволяет выполнить данную задачу?[/uquote]
Процессор управляет выходными драйверами, которые обеспечивают инверсию и мертвую зону программно или схемно. Драйвера брал с контроллера мотор колеса, уже не помню схему, 10 лет прошло. Крутил 3-х фазный двиг. ЖД стрелочного перевода МСТ-0.3.
Процессор управляет выходными драйверами, которые обеспечивают инверсию и мертвую зону программно или схемно. Драйвера брал с контроллера мотор колеса, уже не помню схему, 10 лет прошло. Крутил 3-х фазный двиг. ЖД стрелочного перевода МСТ-0.3.
Re: частотник на stm32f4
Первый результат в гугле - https://russianblogs.com/article/2448851884/
Re: частотник на stm32f4
А, ну теперь понятно все стало.
Stm таймер, а особенно такой продвинутый, как TIM1 умеет считать амплитуду синуса в любой момент времени, достаточно задать
Stm таймер, а особенно такой продвинутый, как TIM1 умеет считать амплитуду синуса в любой момент времени, достаточно задать
Всегда считал, что модуль CRC бесполезен, лучше бы за место его синусоидальный генератор или таблицу Брадиса засунули.Sergi писал(а):Задал 50% в CCR и получил 50% от напряжения питания.
Re: частотник на stm32f4
для силового преобразователя очень полезен в комплексе с dma. позволяет в фоновом низкоприоритетном режиме осуществлять циклический контроль целостности прошивки не отвлекая вычислительные мощности.Dimon456 писал(а):Всегда считал, что модуль CRC бесполезен
Re: частотник на stm32f4
Такая интересная тема и заглохла, давайте продолжим.
Разберем первую проблему[uquote="Sergi",url="/forum/viewtopic.php?p=4122798#p4122798"]В моем случае я использую TIM1 ... Я выбрал 19,5 кГц. А вот второй таймер генерит и выходную частоту и амплитуду(в случае загрузки TIM1 в прерывании) для загрузки по DMA. И не важно сколько циклов будет работать TIM1: 120 или 121 или 119. Например для получения частоты до 200 Гц с шириной таблицы 120 отсчетов максимальная частота второго таймера должна быть 24 кГц. А для установки выходной частоты с точностью 1 Гц таймер должен работать на частоте не менее 24*200=4,8 МГц.[/uquote]А как ты решил проблему рассинхронизации?
Насколько я понимаю, в TIM1 работающий на частоте 19,5кГц, мы должны подавать частоты кратные, к примеру 19,5 39 78 и тп, и так же в низ 19,5 9,75 4,875.
А когда 24 кГц и 19,5 кГц ... здесь да же буферизация TIM1 не поможет, мы же работает не на rc-цепочку 10кОм+100nF, которая могла бы сгладить не впопад выбросы?
Вторая проблема, моя проблема, dds-синтез таблицы на этом же таймере TIM1.
С буферизацией проблем нет, это большой плюс.
Проблема заключается в следующем:
при частоте работы таймера TIM1 4кГц и формируемой выходной частоте 200Гц требуется 20 точек таблицы синуса,
при частоте таймера TIM1 8кГц и той же частоте 200Гц уже 40 точек,
при TIM1 16кГц 200Гц 80 точек.
Вот и так крути и эдак крути, либо рассинхронизация, либо не достаточное количество точек.
Разберем первую проблему[uquote="Sergi",url="/forum/viewtopic.php?p=4122798#p4122798"]В моем случае я использую TIM1 ... Я выбрал 19,5 кГц. А вот второй таймер генерит и выходную частоту и амплитуду(в случае загрузки TIM1 в прерывании) для загрузки по DMA. И не важно сколько циклов будет работать TIM1: 120 или 121 или 119. Например для получения частоты до 200 Гц с шириной таблицы 120 отсчетов максимальная частота второго таймера должна быть 24 кГц. А для установки выходной частоты с точностью 1 Гц таймер должен работать на частоте не менее 24*200=4,8 МГц.[/uquote]А как ты решил проблему рассинхронизации?
Насколько я понимаю, в TIM1 работающий на частоте 19,5кГц, мы должны подавать частоты кратные, к примеру 19,5 39 78 и тп, и так же в низ 19,5 9,75 4,875.
А когда 24 кГц и 19,5 кГц ... здесь да же буферизация TIM1 не поможет, мы же работает не на rc-цепочку 10кОм+100nF, которая могла бы сгладить не впопад выбросы?
Вторая проблема, моя проблема, dds-синтез таблицы на этом же таймере TIM1.
С буферизацией проблем нет, это большой плюс.
Проблема заключается в следующем:
при частоте работы таймера TIM1 4кГц и формируемой выходной частоте 200Гц требуется 20 точек таблицы синуса,
при частоте таймера TIM1 8кГц и той же частоте 200Гц уже 40 точек,
при TIM1 16кГц 200Гц 80 точек.
Вот и так крути и эдак крути, либо рассинхронизация, либо не достаточное количество точек.
-
ivan dimir
- Мучитель микросхем
- Сообщения: 440
- Зарегистрирован: Вс дек 29, 2019 08:05:21
Re: частотник на stm32f4
А мне кажется чем больше точек у синуса тем лучше характеристика синуса.А так не синус а пила какая то
Re: частотник на stm32f4
Немного теории. Момент на валу двигателя зависит от магнитного потока в обмотках. Магнитный поток создается ТОКОМ в обмотках. Так как обмотка двигателя упрощенно представляет собой RL фильтр, для создания синусоидального тока необходимо синусоидальное напряжение. Это относится 99% двигателей и обусловлено конструкцией обмоток статора и короткозамкнутого или намагниченного ротора. Есть специальные двигатели которым нужна другая форма тока, например некоторые модельные безщеточные питают прямоугольным напряжением.
Питание обычного АД напряжением отличным от синусоидального возможно, но есть недостатки. Полезную работу в основном создает первая гармоника. Четные гармоники только греют обмотки и железо. Нечетные еще какой-то вклад на пользу имеют, но минусов больше. Поэтому мы стараемся сделать синус. Отличия формы тока синуса от идеала покажут что есть гармоники.
Согласен что в моем случае на высоких частотах (выше 160 Гц) новое задание для ССРх будет приходить раньше чем таймер отработает 240 отсчетов. Максимальная ошибка будет при несовпадении частот задания и ШИМ на 1/4 периода. И чем выше частота тем больше вклад ошибки в результат. И форма напряжения отличается от синуса. Я провел эксперимент и увеличил частоту ШИМ вдвое. Ключевые транзисторы не стали греться сильнее,до обмоток не добрался.Поведение двигателя не изменилось. Мало того даже при питании прямоугольным напряжением форма тока обмоток была близка к синусоидальной. Двигатель очень хороший RL фильтр. И да, ток в истоках транзисторов нижнего плеча имеет отрицательную полуволну. Это работают обратные диоды (в моем случае транзисторы нижнего плеча) замыкая ток обмотки когда верхние ключи закрываются.
Делать ли какую-то синхронизацию таймеров? Пока не решил. Покручу мотор,посмотрю.Может на трапецию перейду.
Питание обычного АД напряжением отличным от синусоидального возможно, но есть недостатки. Полезную работу в основном создает первая гармоника. Четные гармоники только греют обмотки и железо. Нечетные еще какой-то вклад на пользу имеют, но минусов больше. Поэтому мы стараемся сделать синус. Отличия формы тока синуса от идеала покажут что есть гармоники.
Согласен что в моем случае на высоких частотах (выше 160 Гц) новое задание для ССРх будет приходить раньше чем таймер отработает 240 отсчетов. Максимальная ошибка будет при несовпадении частот задания и ШИМ на 1/4 периода. И чем выше частота тем больше вклад ошибки в результат. И форма напряжения отличается от синуса. Я провел эксперимент и увеличил частоту ШИМ вдвое. Ключевые транзисторы не стали греться сильнее,до обмоток не добрался.Поведение двигателя не изменилось. Мало того даже при питании прямоугольным напряжением форма тока обмоток была близка к синусоидальной. Двигатель очень хороший RL фильтр. И да, ток в истоках транзисторов нижнего плеча имеет отрицательную полуволну. Это работают обратные диоды (в моем случае транзисторы нижнего плеча) замыкая ток обмотки когда верхние ключи закрываются.
Делать ли какую-то синхронизацию таймеров? Пока не решил. Покручу мотор,посмотрю.Может на трапецию перейду.
Re: частотник на stm32f4
это смотря что применяем:Sergi писал(а):и увеличил частоту ШИМ вдвое
IRG4PH50UDPbF UltraFast: Optimized for high operating frequencies up to 40 kHz in hard switching
IRAMX16UP60B FPWM=16kHz
а эти FGH40N60SFD тупа не идут, горят как спички.
открываются нижние ключи, за минусом Dead-time. Да же и слушать не хочу про обратные диоды.Sergi писал(а):когда верхние ключи закрываются
как можно синхронизировать не синхронизируемое, сами же пишитеSergi писал(а):Делать ли какую-то синхронизацию таймеров?
Это не только на высоких частотах, но и на низких, таймер будет пропускать чуть ли не половину таблицы.Sergi писал(а):на высоких частотах (выше 160 Гц) новое задание для ССРх будет приходить раньше чем таймер отработает 240 отсчетов
Re: частотник на stm32f4
Нет,таблицу отрабатываю всю. Я писал про один отсчет таблицы. На осциллограмме склоны синуса получаются неровными/горбатыми. Неровности увеличиваются когда частоты становятся близкими. При разнице в 10 раз ошибка должна быть не более 2,5%. Вот и думаю - зачем мне именно синус? Если таблицу укоротить до 30 на вид будет тоже самое,но стабильнее. При прямоугольнике таблица 6 отсчетов.