Перейти к содержанию
    

On 8/20/2022 at 4:54 PM, AVI-crak said:

Мучать двигатель накладно

Откуда появился двигатель ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/20/2022 at 8:29 PM, dimka76 said:

Откуда появился двигатель ?

"Допустим установили частоту 100 гц и время от 0 до 100 установили 30секунд." - Типовой вопрос каждого начинающего, собирающего на коленке инвертор для трёхфазного двигателя.

 

Кстати сделать таблицу самым простым и быстрым способом - печатать в терминал программой из МК. В 3 минуты уложиться можно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

57 минут назад, AVI-crak сказал:

Кстати сделать таблицу самым простым и быстрым способом

Можно на С++ сгенерировать в компайлтайме - Compiler Explorer. Или на худой конец оттуда и скопировать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А зачем, если можно просто формулу забить в коде и тут же в нужном формате получить таблицу?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну вот смотрите.Я настраиваю таймер на шим и на DMA.И в регистр CCRx вношу массив массив DMA1_Channel1 ->CMAR=(uint32_t)&SINA DMA1_Channel1->CPAR=(uint32_t)&TIMx->CCRx;У меня вопрос какая частота работы таймера будет.Если нужно на выходе 200 Гц. Ну вот эти параметры TIMx->PSC и TIM1->ARR?

В 20.08.2022 в 19:20, VladislavS сказал:

А зачем, если можно просто формулу забить в коде и тут же в нужном формате получить таблицу?

Наверное нужно таблицу частот.F0=TIMx->PSC и TIM1->ARR.И так до 399

А три синуса const SINA const SINB const SINC.Я может ошибаюсь.Вы не судите сильно. Я чуть выше аматора.

Изменено пользователем dimir

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/20/2022 at 10:35 PM, dimir said:

Я настраиваю таймер на шим и на DMA.

На выхлопе будет стабильная частота. Для того чтобы получить другую частоту - нужно будет всё выключить, настроить, и запустить дма по новой. Кроме того сетка частот будет сильно ограниченной, ну прям очень сильно, примерно так 10-20-30-40-50-60-70-80-90-100Гц. Всё кратно самой низкой частоте. Переключать двигатель с 90Гц на 100Гц - равносильно холодному пуску с нуля сразу на 100Гц. Потому-что якорь имеет массу.

Как делать правильно - чуть выше, просто прочитай.

 

Сдвиг фазы и сдвиг номера элемента таблицы - это одно и тоже.  

On 8/20/2022 at 9:59 PM, VladislavS said:

сгенерировать в компайлтайме

Хороший способ:drinks:.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это получается что дискретизация 10?А если не использовать DMA?И этот способ что сказал VladislavS.Что это за метод и с чем его едят?

А с DMA как при отправке USART.Сначала отключаем перенастраиваем таймер потом включаем?Функция?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

34 минуты назад, dimir сказал:

А если не использовать DMA

Можно быстро-быстро методом DDS набить половину массива, натравить на массив ПДП в циклическом режиме и пока ПДП скармливает эту половину таймеру - быстро-быстро набить вторую половину массива. Потом повторять набивание первой/второй половин в прерываниях HTIF/TCIF. Я так FFSK/GMSK передавал в эфир на очень неспешном F100 и оставалась куча времени на другие задачи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно быстро-быстро посмотреть пример и сделать как нужно

DAC_GenerateWaveform_TriggerHW

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/21/2022 at 1:33 AM, Сергей Борщ said:

Можно быстро-быстро методом DDS набить половину массива

Зачем страдать и мучаться, если можно в прерывании выполнить четыре целочисленных умножения не напрягаясь. Для моторов шим выше 5КГц не поднимается - железо не тянет (греется). К тому-же стыковать массивы с разным окончанием фазы - та ещё задачка. Скалярный метод тянет даже мега на своих 16МГц без напряга, прямо в прерываниях.

К тому-же этот метод в одном шаге от векторного управления.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 часов назад, AVI-crak сказал:

Зачем страдать и мучаться, если можно в прерывании выполнить четыре целочисленных умножения не напрягаясь.

Чтобы не вызывать прерывание таймера на каждый отсчет, а готовить сразу кучу отсчетов в прерывании ПДП. 

9 часов назад, AVI-crak сказал:

К тому-же стыковать массивы с разным окончанием фазы - та ещё задачка

При использовании прямого цифрового синтеза (DDS) этого не требуется.

10 часов назад, x893 сказал:

Можно быстро-быстро посмотреть пример

Можно, но лучше сначала думать своей головой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

23 minutes ago, Сергей Борщ said:

Можно, но лучше сначала думать своей головой.

Очевидно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 21.08.2022 в 09:58, Сергей Борщ сказал:

Чтобы не вызывать прерывание таймера на каждый отсчет, а готовить сразу кучу отсчетов в прерывании ПДП. 

Мне кажется что DMA в  этом плане не очень подходит.Каким образом это произвести?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...