|
Портировать контроллер BLDC с STM32 на Rockchip 3399?, Легко ли избавиться от STM, когда есть ARM SOC? |
|
|
|
Feb 27 2018, 00:05
|
Участник
Группа: Участник
Сообщений: 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) ес-сно сохраняются.
|
|
|
|
|
|
Ответов
|
Feb 28 2018, 13:49
|
Частый гость
Группа: Свой
Сообщений: 151
Регистрация: 19-04-07
Из: Иваново
Пользователь №: 27 168
|
Тут ещё многое зависит от того какую задачу требуется решать с применением электродвигателей. На мой взгляд задачу превильне решать с применением плис или современного SoC. В плис делаете аппаратный модуль генерации ШИМ + + канал токового АЦП + энкодерный канал если нужно. Так же с модуля генерации ШИМ сигнала выходит сигнал прерывания по фазовому циклу. По этому сигналу вы синхронизируете момент записи нового значения ШИМ и опрос АЦП токов в разные моменты времени. Обработка энкодера если нужна тоже аппаратная. В ПЛИС делаете регистры откуда забирать данные о состоянии мотора и регистры куда записывать задание. А уж какой процессор вы выберете для обсчёта регуляторов это дело вкуса. Ваш на частоте 1ГГц справится с обсчётом кучи моторов. Главное что генерация ШИМ, обработка АЦП и энкодеров идут в реальном времени и не нагружают процессор. Он по прерыванию фазового цикла например 10кГц обсчитывает регулятор мотора и выдаёт новое задание в ПЛИС. Правда при этом подходе про портирование опенсорс проекта не приходится говорить, но сейчас всякие FOC и прочее не проблема. ПРиложил Вам документ где объясняется как шим генерить и почему обычный процессор там не вариант. Если не хочется заморачиваться с ПЛИс у TI есть отличные мощные процессоры для управления моторами. Например http://www.ti.com/lit/ds/symlink/tms320f28377d.pdf У него аппаратный ШИМ. аппаратный модуль энкодеров и отдельные сопроцессоры реального времени для задач мотор контрола и аппаратная поддержка обсчёта тригонометрических функций. Я бы на вашем месте куда нибудь в эти стороны смотрел. Это конечно на порядок сложнее решения, но уж зато точно во всём разберётесь, да и моторы сможете любые крутить Да ещё ситара от TI кроме всего имеет на борту всё необходимое для управления 3-я моторами точно
|
|
|
|
|
Feb 28 2018, 15:57
|
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, но отладка будет адской.
|
|
|
|
|
Feb 28 2018, 16:06
|
Гуру
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713
|
Цитата(AlexandrY @ Feb 28 2018, 17:57) Если говорить в принципе, то линух дал бы случайные задержки не более пары мкс на таком SoC-е как у TC Это может если оформить как драйвер. Или ещё как. На прошлой работе коллеги, ваявшие девайс на линухе, очень долго бодались с одной проблемой: им надо было писать поток данных (осциллографирование) во внешнюю флешь. И всё вроде нормально работало и писало, но иногда, неведомо по какой причине, происходила задержка - в течение нескольких сотен мсек (около 200мс), не отдавалось время их задаче. Хотя кроме их задачи в системе вроде и не запущено было ничего. В результате - пропуск, потеря данных. Приостановить поток они не могли - их устройство должно было принимать его как SPI-slave. Грешили на работу какого-то драйвера в используемой сборке линуха. Точно уже не помню - удалось им забодать проблему или она их забодала.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|