реклама на сайте
подробности

 
 
> Портировать контроллер BLDC с STM32 на Rockchip 3399?, Легко ли избавиться от STM, когда есть ARM SOC?
baritono
сообщение Feb 27 2018, 00:05
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 14-01-18
Пользователь №: 101 066



Есть VESC - известный опенсорсный контроллер BLDC: http://vedder.se/2015/01/vesc-open-source-esc/ Моё устройство планируется на Rockchip 3399: http://www.orangepi.org/Orange%20Pi%20RK3399/ (не обязательно на этой плате, но они все похожи). Есть ли шанс малой кровью портировать этот VESC, написанный на C, c STM32 + ChibiOS на ARM53/72 + Linux? Двигателей будет от 2 до 6. Вроде мощи у RK3399 достаточно, интерфейсов тоже. Внешние чипы (DRV8302) ес-сно сохраняются.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Flik
сообщение Feb 28 2018, 13:49
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 151
Регистрация: 19-04-07
Из: Иваново
Пользователь №: 27 168



Тут ещё многое зависит от того какую задачу требуется решать с применением электродвигателей. На мой взгляд задачу превильне решать с применением плис или современного SoC. В плис делаете аппаратный модуль генерации ШИМ + + канал токового АЦП + энкодерный канал если нужно.
Так же с модуля генерации ШИМ сигнала выходит сигнал прерывания по фазовому циклу. По этому сигналу вы синхронизируете момент записи нового значения ШИМ и опрос АЦП токов в разные моменты времени. Обработка энкодера если нужна тоже аппаратная. В ПЛИС делаете регистры откуда забирать данные о состоянии мотора и регистры куда записывать задание. А уж какой процессор вы выберете для обсчёта регуляторов это дело вкуса. Ваш на частоте 1ГГц справится с обсчётом кучи моторов. Главное что генерация ШИМ, обработка АЦП и энкодеров идут в реальном времени и не нагружают процессор. Он по прерыванию фазового цикла например 10кГц обсчитывает регулятор мотора и выдаёт новое задание в ПЛИС.
Правда при этом подходе про портирование опенсорс проекта не приходится говорить, но сейчас всякие FOC и прочее не проблема.

ПРиложил Вам документ где объясняется как шим генерить и почему обычный процессор там не вариант.

Если не хочется заморачиваться с ПЛИс у TI есть отличные мощные процессоры для управления моторами. Например http://www.ti.com/lit/ds/symlink/tms320f28377d.pdf У него аппаратный ШИМ. аппаратный модуль энкодеров и отдельные сопроцессоры реального времени для задач мотор контрола и аппаратная поддержка обсчёта тригонометрических функций. Я бы на вашем месте куда нибудь в эти стороны смотрел.

Это конечно на порядок сложнее решения, но уж зато точно во всём разберётесь, да и моторы сможете любые крутить

Да ещё ситара от TI кроме всего имеет на борту всё необходимое для управления 3-я моторами точно
Прикрепленные файлы
Прикрепленный файл  Designing_a_Direct_PWM_Interface_2014_1.pdf ( 405.38 килобайт ) Кол-во скачиваний: 31
 
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 28 2018, 13:59
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Flik @ Feb 28 2018, 15:49) *
В ПЛИС делаете регистры откуда забирать данные о состоянии мотора и регистры куда записывать задание. А уж какой процессор вы выберете для обсчёта регуляторов это дело вкуса. Ваш на частоте 1ГГц справится с обсчётом кучи моторов.

А что будет если линух не отдал вовремя время задаче, считающей и кладущей в эти регистры. И линух, как тут уже упомянули, это вправе сделать - он не реалтайм ОС. А заранее посчитать и положить данные сразу для многих периодов ШИМ - не получится, так как расчёт должен быть выполнен по последним как можно более свежим данным о токах и положении ротора. Надо именно на каждый период ШИМ запускать новый цикл расчёта.
Так что если ПЛИС - то и все расчёты в ней должны быть.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Feb 28 2018, 15:57
Сообщение #4


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(jcxz @ Feb 28 2018, 15:59) *
А что будет если линух не отдал вовремя время задаче, считающей и кладущей в эти регистры.

Если говорить в принципе, то линух дал бы случайные задержки не более пары мкс на таком SoC-е как у TC
Тут будут промахи кэша, задержки на шинах, сохранение огромных контекстов и т.д.
Это не критично для управления обычным коптерным BLDC у которого 10000 об.мин с 4-я полюсами, т.е. 2000 коммутаций в сек.
Такое автор бы сделал легко на GPIO и даже без DMA.
Но у него нет синхронного быстрого многоканального ADC чтобы между коммутациями отловить переходы через 0.
Поэтому безсенсорная комутация под вопросом. На RK3399 же нет документации.
С другой стороны можно приладить внешний SPI ADC.
Автор должен будет делать большие запасы на угол коммутации из-за чего получит пониженный КПД.
Короче при большом желании и упертости и сниженных требованиях к качеству регулирования можно сделать и на одном RK3399, но отладка будет адской.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 28 2018, 16:06
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(AlexandrY @ Feb 28 2018, 17:57) *
Если говорить в принципе, то линух дал бы случайные задержки не более пары мкс на таком SoC-е как у TC

Это может если оформить как драйвер. Или ещё как.
На прошлой работе коллеги, ваявшие девайс на линухе, очень долго бодались с одной проблемой: им надо было писать поток данных (осциллографирование) во внешнюю флешь. И всё вроде нормально работало и писало, но иногда, неведомо по какой причине, происходила задержка - в течение нескольких сотен мсек (около 200мс), не отдавалось время их задаче. Хотя кроме их задачи в системе вроде и не запущено было ничего. В результате - пропуск, потеря данных. Приостановить поток они не могли - их устройство должно было принимать его как SPI-slave.
Грешили на работу какого-то драйвера в используемой сборке линуха.
Точно уже не помню - удалось им забодать проблему или она их забодала.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- baritono   Портировать контроллер BLDC с STM32 на Rockchip 3399?   Feb 27 2018, 00:05
- - aaarrr   Цитата(baritono @ Feb 27 2018, 03:05) Ест...   Feb 27 2018, 00:22
- - AlexandrY   Цитата(baritono @ Feb 27 2018, 02:05) ......   Feb 27 2018, 05:57
|- - gosha-z   Цитата(AlexandrY @ Feb 27 2018, 08:57) Я ...   Feb 27 2018, 07:02
- - Vasily_   Я бы порекомендовал, TLE9879QXA40   Feb 27 2018, 09:51
- - baritono   Большое спасибо за ответы. Вопрос снимается, буду ...   Feb 27 2018, 18:07
|- - jcxz   Цитата(baritono @ Feb 27 2018, 20:07) Но ...   Feb 27 2018, 19:11
||- - baritono   Цитата(jcxz @ Feb 27 2018, 19:11) Никакая...   Feb 27 2018, 22:05
||- - jcxz   Цитата(baritono @ Feb 28 2018, 00:05) Даж...   Feb 27 2018, 22:39
||- - aaarrr   Цитата(baritono @ Feb 28 2018, 01:05) Даж...   Feb 27 2018, 22:41
|- - a123-flex   Цитата(baritono @ Feb 27 2018, 22:07) Бол...   Feb 28 2018, 06:13
|- - AlexandrY   Цитата(a123-flex @ Feb 28 2018, 08:1...   Feb 28 2018, 07:28
|- - jcxz   Цитата(a123-flex @ Feb 28 2018, 08:1...   Feb 28 2018, 08:29
|- - AlexandrY   Цитата(jcxz @ Feb 28 2018, 10:29) У меня ...   Feb 28 2018, 09:53
||- - Flik   Цитата(jcxz @ Feb 28 2018, 16:59) А что б...   Mar 6 2018, 09:43
||- - AlexandrY   Цитата(Flik @ Mar 6 2018, 11:43) TMS320F2...   Mar 6 2018, 09:51
||- - jcxz   Цитата(Flik @ Mar 6 2018, 11:43) И все по...   Mar 7 2018, 09:14
|- - gosha-z   Цитата(Flik @ Feb 28 2018, 16:49) Если н...   Feb 28 2018, 15:29
|- - a123-flex   Цитата(Flik @ Feb 28 2018, 16:49) Тут ещё...   Feb 28 2018, 17:23
- - baritono   Ещё раз всем спасибо, очень продуктивная дискуссия...   Feb 28 2018, 21:20
|- - a123-flex   Цитата(baritono @ Mar 1 2018, 00:20) По с...   Feb 28 2018, 21:46
||- - baritono   Цитата(a123-flex @ Feb 28 2018, 21:4...   Feb 28 2018, 22:35
||- - a123-flex   Цитата(baritono @ Mar 1 2018, 01:35) Моби...   Mar 1 2018, 03:34
|- - AlexandrY   Цитата(baritono @ Feb 28 2018, 23:20) Реч...   Mar 1 2018, 06:51
||- - baritono   Цитата(AlexandrY @ Mar 1 2018, 06:51) А в...   Mar 1 2018, 19:38
||- - a123-flex   Цитата(baritono @ Mar 1 2018, 23:38) ОК, ...   Mar 2 2018, 07:28
|- - jcxz   Цитата(baritono @ Feb 28 2018, 23:20) RK3...   Mar 1 2018, 07:23
|- - a123-flex   Цитата(jcxz @ Mar 1 2018, 10:23) Так ли н...   Mar 1 2018, 09:23
||- - jcxz   Цитата(a123-flex @ Mar 1 2018, 11:23...   Mar 1 2018, 11:13
||- - a123-flex   Цитата(jcxz @ Mar 1 2018, 14:13) Передать...   Mar 1 2018, 11:29
||- - jcxz   Цитата(a123-flex @ Mar 1 2018, 13:29...   Mar 1 2018, 13:05
||- - a123-flex   Цитата(jcxz @ Mar 1 2018, 16:05) Вот пуст...   Mar 1 2018, 13:41
||- - jcxz   Цитата(a123-flex @ Mar 1 2018, 15:41...   Mar 1 2018, 17:48
||- - a123-flex   Цитата(jcxz @ Mar 1 2018, 20:48) Ну это -...   Mar 1 2018, 19:13
||- - jcxz   Цитата(a123-flex @ Mar 1 2018, 21:13...   Mar 1 2018, 21:15
||- - baritono   Цитата(jcxz @ Mar 1 2018, 21:15) Так засу...   Mar 1 2018, 21:42
|- - baritono   Цитата(jcxz @ Mar 1 2018, 07:23) Если под...   Mar 1 2018, 20:19
|- - AlexandrY   Цитата(baritono @ Mar 1 2018, 22:19) А по...   Mar 1 2018, 21:39
- - gosha-z   Господин Baritono знает разницу между inrunner и o...   Mar 1 2018, 19:40
- - Flik   Ну не совсем открытых, но информации то много по п...   Mar 6 2018, 11:00


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th May 2024 - 04:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.02933 секунд с 7
ELECTRONIX ©2004-2016