Новый отечественный motor-control микроконтроллер К1921ВК01Т ОАО «НИИЭТ»
Как-то прошла мимо новость о появлении нового
микроконтроллера К1921ВК01Т
ОАО «НИИЭТ». Чем он примечателен? Своей периферией,
предназначенной для управления электродвигателями (motorcontrol).
Это не просто пара-тройка ШИМ каналов. Это девять навороченных
двухканальных модулей ШИМ (PWM), из них три модуля (HRPWM) с режимом «высокого» разрешения. Это шесть отдельных 32х разрядных
модулей захвата CAP. Двадцать четыре(!) канала 12ти разрядных АЦП
с гибким менеджером их запуска, встроенным усреднителем и цифровыми компараторами. Два квадратурных декодера (QEP), куча
интерфейсов связи, внутренняя пользовательская память, часы — и всё это на ядре ARM Cortex-M
Собственно, чтобы в статье не перечислять все технические характеристики изделия, отправляю на страницу сайта производителя. Там есть как краткий список, так и полноценный даташит (правда он всё время прячется по разным углам сайта и на момент написания статьи его можно скачать… из таблицы текущих разработок). А в статье лучше расскажу что-нибудь такое, чего в даташитах не напишут.
Немного из истории создания
Работы над микроконтроллером (далее МК) начались в 2012м году
компанией ООО «НПП
«Цифровые решения» по заказу ОАО «НИИЭТ» (г. Воронеж.). На ядро ARM Cortex-M
Название
Еще надо сказать, что микроконтроллер пережил несколько названий. Сначала во время разработки он имел кодовое название «МС01», затем опытная партия камней называлась NT32M4F1, а затем он уже стал К1921ВК01Т (причем в названии в одних местах буквы пишут русские, в других английские). Поэтому если увидите эти названия в ранних статьях и публикациях по этому МК, не удивляйтесь.
Как дорого?
В настоящее время (на начало 2016г) у НИИЭТ готова к продаже
первая партия микроконтроллеров, которая уже начала поступать к заказчикам. Кристаллы корпусированы часть в пластик, часть в керамику. Цена камня в пластике на конец 2015-го года, кажется,
была чуть меньше 3 т.р., что выше цены TI TMS320F28335 при
покупке в России (на момент написания статьи коэффициент
пересчета «их» цен в «наши» составлял 76). Однако в TMS320F28335
нет EEPROM и часов, нужно ставить внешние, из-за чего стоимость в итоге становится сравнимой. Это делает К1921ВК01Т перспективным
не только в плане импортозамещения, но и для простых
«меркантильных интересов». Хотя это сравнение, конечно, не совсем
корректное — можно найти кучу примеров более дешевых кристаллов
на Cortex-M
Что у нас с производительностью?
Мы год назад выступали с докладом на выставке по этому поводу,
презентацию можно найти здесь. Проведенные
нами тесты, конечно, не претендуют на особую точность — всё-таки
мы запускали не настоящие бенчмарки, а «закатали» в тест всё ту же векторную систему управления (а что ещё может волновать
электроприводчиков?). Но краткий пересказ презентации таков:
архитектура ARM Cortex-M
Что у нас со средствами разработки?
А что с ними может быть, это же ARM! Обычный, без всяких «но». Берете любой JTAG, любую среду разработки, но… нет, все-таки любая не заработает. «Но» заключается в прошивке флеш-памяти. Несмотря на то, что само ядро ARM стандартизировано и любой JTAG и среда к К1921ВК01Т подключатся, с прошивкой флеша не всё так просто. Кажется, каждый производитель микроконтроллеров считает своим долгом сделать именно свои регистры для работы с прошивкой своей флеш-памяти, поэтому создатели средств разработки мучаются с поддержкой всего этого зоопарка. Не отстает в этом плане и К1921ВК01Т — там методы работы с флеш тоже свои. Но если для именитых производителей программаторы флеш памяти (драйвер, прошивальщик или как это назвать?) в средах разработки написаны и работают «из коробки», то для К1921ВК01Т всё работает только для тех сред, для которых написали программаторы в НИИЭТ. К счастью, для IAR и Keil все уже готово и примеры проектов с инструкциями по прошивке могут быть найдены на форуме НИИЭТ, а также в открытом репозитории на Bitbucket, который ведет НИИЭТ. Кроме того, мы в «НПФ Вектор» написали поддержку программирования флеш К1921ВК01Т для OpenOCD (Open On-Chip Debugger). Это такая прослойка между отладчиком GDB и железом в виде разных JTAG-эмуляторов и разных камней. Но пока мы тянули с разрешением конфликтов и «код ревью» в репозитории OpenOCD, разработчики НИИЭТ написали всё тоже самое, но своё и лучше (они еще добавили помимо прожига основной флеш-памяти функцию прожига пользовательской), но… это всё лирика. Что же дает этот OpenOCD? Это своеобразный слой абстракции железа, что позволяет сделать свою свободную и бесплатную среду разработки для К1921ВК01Т на базе любой популярной IDE. Мы в «Векторе» любим Eclipse (потому что среда Code Composer Studio от TI, начиная с v4 на нем основана, мы к нему привыкли и вообще, нет на свете IDE лучше Eclipse). А разработчики НИИЭТ сделали среду разработки на Qt Creator. Но, в общем, смысл и там и там один: берется среда, берется набор свободных кросс-средств разработки GCC, берется плагин для работы с OpenOCD, сам OpenOCD, немного конфигов, немного магии… и вы уже полноценно работаете с К1921ВК01Т, забыв про IAR и Keil. На момент написания статьи свою сборку Eclipse (назвали мы её VectorIDE) для К1921ВК01Т мы выложили у себя на сайте, рецепт по приготовлению Qt Creator смотрите на форуме НИИЭТ. Лично мы ведем все проекты для К1921ВК01Т в бесплатной среде и вам советуем — набор компиляторов GCC не особо отстает от фирменных IARовских (смотрите всю ту же нашу презентацию), а зато, если вы солидная фирма, вам не нужно закупать дорогое импортное ПО (уже с коэффициентом пересчета 76, Карл! 78!).Ах, да. Есть еще кое-что. Называется оно Codemaster++[ARM]. Это 100% отечественная среда разработки, включая компиляторы, и предназначенная также для К1921ВК01Т. Мы исследовали год назад её первые версии, но нашли что она была еще не готова, немного по части компиляторов и сильно по части удобства редактирования кода (хотя в этом она может посоревноваться с IAR, кто понимает, о чём я). Зато она маленькая и быстрая, а по интерфейсу напоминает какой-нибудь «хакерский» отладчик типа OllyDbg (сравните: раз идва). В общем, возможно, кому-то будет интересно. Надо сказать, что разработчики (компания «Фитон») очень старались, даже запрашивали в свое время наш бенчмарк а-ля «векторное управление двигателем» чтобы оптимизировать свои компиляторы.
Что у нас с отладочными комплектами?
На начало 2016 г в природе известно четыре отладочных платы на К1921ВК01Т. Это наша VectorCARD
K1921BK01T и другие… от конкурентов. Ладно, так и быть,
вот ссылки LDM-HELPER-K1921BK01T и MBS-К1921ВК01Т.
Еще, кажется, у самого НИИЭТ есть своя плата NIIET_1921BK01T, но на их сайте, видимо, она от меня прячется — если кто-то обнаружит
ссылку, с удовольствием дополню статью. В чём между ними разница?
Мы продаем не голую плату, а комплект с инвертором,
электродвигателем, векторным управлением в исходных кодах на Си
(на базе того, что писали в свое время для «Цифровых решений»), а также с программой верхнего уровня и драйвером CANopen для
наблюдения всех процессов внутри привода — смотрите
нашу первую
статью. Поэтому если вы хотите просто поиграть с новым МК,
мигая светодиодом или пересылая данные по всяким интерфейсам
связи, то оптимальнее будет купить отладочные платы конкурентов
(хотя у нас тоже есть вариант голой платы, но она совсем «голая»
— одни выводы). Однако если вы хотите создать на новом МК
электропривод, то наш отладочный комплект и ПО может сэкономить
вам полгода-год времени разработки (а может и больше, в зависимости от того, знаете ли вы теорию электропривода и есть ли у вас собственные средства отладки и осциллографирования,
аналогичные нашим). Если вы внимательно читали первую
статью, то, наверное, помните, что отладить систему
управления для электропривода без средств визуализации процессов
внутри — невозможно. И если у Texas Instruments среда разработки
умеет «из коробки» показывать осциллограммы, построенные по данным массива оперативной памяти МК, то для ARM в универсальных
средах разработки (не от конкретного производителя МК) такой
функции пока не наблюдается (если это читают разработчики «Фитон»
- не хотите ли доработать построителем осциллограмм свою
Codemaster++[ARM]? Это же несложно сделать!). В нашем отладочном
комплекте такие средства визуализации осциллограмм присутствуют,
поэтому можно сразу увидеть всё, что полагается для управления
электродвигателями: форму токов фаз, напряжения, входы/выходы
всех регуляторов
Недостатки К1921ВК01Т
Какие главные недостатки нового К1921ВК01Т можно отметить уже сейчас?
• Во-первых, это несомненно сырой продукт, так как его по-настоящему программировали пока от силы человек 10-20. Когда большее количество разработчиков на него насядут, будут обнаруживаться баги — будут выходить новые ревизии. Так что готовьтесь. Но, тем не менее, двигатели им крутить можно — крутил лично.
• На текущий момент документация тоже сыровата. Ошибок там мало, но некоторые вещи объяснены… не совсем понятно. Можно было бы расписать чуть подробнее, привести примеры. Думаю, со временем она доработается.
• Микроконтроллер очень большой и навороченный. Это для кого-то плюс, для кого-то минус. Очень немногие применения охватят весь спектр его возможностей. Уже сейчас НИИЭТ думает над серией МК на его основе, с разными корпусами и набором периферии. Но пока — есть только К1921ВК01Т.
• У него специфический АЦП. Часто производители МК ставят один быстрый (12 MS/s) модуль АЦП и мультиплексируют его по нескольким каналам — например, так сделано у Texas Instruments в серии C2000. Но в К1921ВК01Т стоит 12 двухканальных медленных (1.7MS/s) модулей АЦП, работающих параллельно. Чем это плохо помимо невозможности очень быстро что-то измерить? Если АЦП в МК один, то на плате контроллера можно на два неиспользуемых канала подать калиброванные референсные сигналы, скажем, 1 В и 2 В, и по ним вычислить и скомпенсировать мультипликативную ошибку и ошибку смещения этого одного АЦП, распространив коррекцию на все каналы (АЦП же один). Когда АЦП в МК много, такой трюк не пройдет — все они будут иметь свои персональные ошибки. Трюк с калибровкой мы применяли на МК Texas Instruments типа TMS320F2810 (это описывается в даташите и рекомендуется), здесь же в К1921ВК01Т без калибровки мы получили более низкую точность АЦП по сравнению с калиброванным TMS320F2810. Нам пришлось сделать специальный стенд для калибровки независимо каждого модуля АЦП К1921ВК01Т и зашить калибровочную таблицу во встроенный EEPROM. Тогда точность аналоговых измерений получилась сравнимой (от температуры калибровка почти не уплывает — проверяли). Наверное, НИИЭТ стоит прошивать такую таблицу на заводе, было бы удобно. Но пока во флеше пусто.
• Частота 100МГц, конечно, низковата, хотелось бы быстрее. Но что есть, то есть. Хотя в некоторых местах пишут частоту 125МГц — всё зависит от температуры окружающей среды. «Цифровые решения» сообщили такую неофициальную информацию: внутри кристалл рассчитан на максимум 125 градусов. Температура на нём выше примерно на 15 градусов, чем окружающая среда. По проекту К1921ВК01Т должен работать при 85 градусах окружающей среды + запас, что гарантировано достигается на 100МГц. По факту можно разгонять МК выше 100МГц, отдельные образцы работали и на 140-170МГц, но зависит от образца. Поэтому, если кристалл не перегревать (а у него есть встроенный датчик температуры, заведен на АЦП), то его можно разгонять, если кому-то это требуется. Но если в вашем применении жарко (+85), то лучше выше 100МГц не задирать.
• Пока нет никакого официального загрузчика (программатора) через интерфейсы связи (CAN, RS). Шить МК можно только через JTAG/SWD. Соответственно, если контроллер изделия находится в закрытом корпусе, то нужно писать свой загрузчик для желаемого интерфейса связи. Или ждать, пока напишет НИИЭТ. Пока — нету, но, думаю, появится.
Заключение
Хотя какое еще заключение? Всё только начинается! Наконец-то есть отечественный микроконтроллер, на котором действительно можно сделать электропривод! До этого все существующие отечественные МК были или слабы ядром, или слабы периферией, чтобы справляться с задачами motorcontrol. Но теперь — полная свобода для самых сложных структур управления и самой сложной силовой части. Особенно хочется отметить перспективы этого микроконтроллера для станочных сервоприводов. До настоящего времени в России не было возможности изготовить полностью отечественный многокоординатный прецизионный станок, так как (одна из причин) не на чем было сделать качественный сервопривод. Теперь такой микроконтроллер есть.
Хочешь всегда знать и никогда не пропускать лучшие новости о развитии России? У проекта «Сделано у нас» есть Телеграм-канал @sdelanounas_ru. Подпишись, и у тебя всегда будет повод для гордости за Россию.
18.01.1604:16:59
18.01.1604:58:14
18.01.1623:12:56
18.01.1605:22:33
Glass18.01.1608:43:19
18.01.1608:48:44
18.01.1610:51:43
18.01.1618:53:08
18.01.1621:33:08
18.01.1621:39:55
18.01.1609:18:47
18.01.1612:12:57
18.01.1612:53:28
18.01.1616:07:59
lowly cook18.01.1621:14:31
lowly cook18.01.1621:10:58
18.01.1613:42:05
jeka18.01.1614:42:58
18.01.1621:31:06
18.01.1622:03:56
18.01.1622:15:38
18.01.1623:16:01
19.01.1600:17:29
19.01.1609:32:11
21.01.1620:34:53
22.01.1622:34:15
02.02.1611:43:42