После беглого знакомства в прошлой статье с микроконтроллерами семейства Kinetis от фирмы Freescale я хотел бы представить проект микроконтроллерного модуля на этих чипах.

Модуль был создан в ответ на потребность в многофункциональном, встраиваемом, надежном центральном узле управления с хорошим запасом функциональности, большим количеством линий ввода-вывода и разнообразием последовательных коммуникационных интерфейсов.

Модуль отличают небольшие габариты, оригинальная архитектура, удобные разъемные соединения типа плата-плата, которые обеспечивают сравнительно небольшое усилие извлечения модуля даже при большом количестве контактов (более 200), специализация для применения в системах управления в жестком реальном времени.

Модуль можно применять в промышленных устройствах и станках, для домашней автоматизации, в робототехнике, в образовательных целях для изучения программирования микроконтроллеров, в системах мониторинга и многих других областях. Встроенные интерфейсы Wi-Fi, Ethernet позволяют легко интегрировать модуль в глобальные сети и интернет вещей (IoT). Встроенный интерфейс TFT дисплея и контроллеры интерфейсов полевых шин помогают сделать на основе модуля панели управления и логические программируемые контроллеры. А интерфейсы USB 2.0 HS и встроенные 8-мь независимых 16-и битных каналов АЦП с предварительными программируемыми усилителями делают из модуля хороший инструмент для записи и обработки внешних сигналов на PC.

Модуль содержит два микроконтроллера семейства Kinetis на ядре ARM Cortex-M4 от фирмы Freescale.

Почему два микроконтроллера и почему Kinetis?


Вот небольшой анализ:
На рынке встраиваемых микроконтроллерных модулей на сегодняшний день можно различить следующие тенденции:
  • Модули на мощных чипах класса система на кристале. К ним относятся такие платы как BeagleBone, Raspberry Pi.
    Их недостаток, во первых, в очень небольшом количестве доступных внешних линий ввода вывода c функциями последовательных интерфейсов, многофазных ШИМ модуляторов, ЦАП-ов и т.д. Во-вторых, такие платы не предлагают никаких механизмов защиты программного обеспечения. Они рассчитаны исключительно на публичные открытые проекты. В-третьих, они не могут обеспечить режимы низкого энергопотребления сравнимого с чипами на ядре Cortex-M4. В заключении они не расчитаны на работу в системах с жестким реальным временнем. Производители позиционируют их в основном как платформы для операционных систем общего применения типа Линукс, Windows. Попытки работать с этими платами без операционных систем часто натыкаются на недоступность полной документации.
  • Модули на простейших 8-и битных микроконтроллерах, отличающиеся сверхнизкой ценой. Это Arduino и его вариации, и клоны. Здесь проблема в функциональности и производительности. Она решается дополнительными платами, как правило со своими микроконтроллерами. Но функциональность все равно при этом оставляет желать лучшего. Также хромают средcтва отладки. Низкие возможности и у среды разработки.
  • Модули на ПЛИС. Процессорное ядро или уже встроено в ПЛИС или синтезируется в ней. В любом случае функции внутрисхемной отладки ПО и аналоговые функции слабее аналогичных в микроконтроллерах, управление энергопотреблением менее гибкое, контроллеры периферии приходится синтезировать самим. Качественные периферийные контроллеры, как например в чипах Cortex-M4, для UART, CAN, scatter/gather DMA, USB, Ethernet досточно дороги и приобретаются отдельно.
  • Модули с одиночными 32-х битными микроконтроллерами из семейств: STM32F, LPC, EFM32 и т.д. В целом эти платы образуют такую массу решений где трудно не найти что-либо подходящее. Но современные тренды увеличения сложности программного обеспечения приводят к трудностям обеспечения надежности его функционирования на одном чипе. Надежность традиционно обеспечивают использованием двух и более микроконтроллеров, а лучше сетью микроконтроллеров в масштабах чипа или платы. Промежуточное и прикладное программное обеспечение становится слишком сложным даже для кофеварок, заставить его песперебойно работать на одном чипе все труднее и труднее.


Вывод:


Два микроконтроллера позволяют изолировать критические и некритические части приложения разнесением каждой их частей на отдельный чип. Добавим сюда наличие свободно доступной операционной системы MQX, которая поддерживает работу мультипроцессорных систем. В свою очередь ядро ARM Cortex-M4 имеет в своем составе очень эффективные средства внутрисхемной отладки, приобретающие критическое значение при разработке сложного ПО. И поскольку с микроконтроллерами от Freescale операционная система MQX не требует покупки лицензии, то выбор пал именно на семейство Kinetis.

Технические характеристики модуля:




Структурная схема:




Особенностью схемы является возможность быстрого одновременного перепрограммирования обоих чипов на плате через один USB HS интерфейс, без использования резидентных загрузчиков. Т.е. даже сбои во Flash памяти области загрузчиков в чипах не приведут к необходимости использования специального оборудования для воостановления работоспособности модуля.

Также один микроконтроллер (MK70) на плате может перепрограммировать другой (MK60) опять же без использования на втором резидентных загрузчиков. Оба чипа обладают возможность защиты программного обеспечения от считывания.

Размеры модуля:




Распиновка разъемов:




Сигналы с суфиксом _2 принадлежат микроконтроллеру 2 (MK60FN1M0VLQ12)
В отличие от некоторых аналогичных модулей сигналы, выведенные на внешние разъемы не мультиплексированы с периферией, расположенной на плате и могут быть использованы без ограничений.

Печатная плата:


Плата модуля содержит 8-мь слоев металлизации, два из которых залиты землей и один залит питанием 3.3 В. Под антеной Wi-Fi заливки нет. Применена всенаправленная антена ANT8010LL04R2400A с пиковым коэффициентом усиления 5.46 dBi.



Структура стека слоев платы


На данный момент к модулю разработана дополнительная плата с 3.5’’ TFT дисплеем 320x240 точек и сенсорным экраном.



Проекты дополнительных плат будут публиковаться позднее.

Полные исходные файлы для производства платы модуля и схемы находятся здесь: https://github.com/Indemsys/EmSys-K70Wn-PCB

Комментарии (13)


  1. Ramzeska
    15.07.2015 14:01

    Какой-то сомнительный проект. Вроде микроконтроллер — а удобных ног нету, вместо этого очень плотный коннектор. Для домашних поделок не пойдет — не все готовы печатать такие тоненькие платы и паять к ним 100-контактные разъемы. Wi-Fi на борту это конечно клево, но ничто не мешает воткнуть usb-приемник в малинку и не париться.
    Какая стоимость? По любому не меньше малинки. Так что выводы делайте сами.


    1. EighthMayer
      15.07.2015 23:35
      +3

      Вы действительно полагаете, что фирму, проспонсировавшую разработку этого девайса, хоть немного интересуют домашние поделки?..


  1. Indemsys Автор
    15.07.2015 14:26
    +3

    Да, это плата не для «поделок».
    На ней планируется делать вещи чуть посложнее, как например: управление электроскутерами, умными пылесосами, инверторами, PFC и MPPT модулями для солнечных электростанций, контроллерами ветрогенераторов с метеостанциями с подключением в сеть и облака, управление лифтами, и другой мехатроникой.

    А стоимость зависит только от вас. Проект то полностью открытый.


    1. astudent
      15.07.2015 15:00
      -2

      управление электроскутерами, умными пылесосами, инверторами, PFC и MPPT модулями для солнечных электростанций, контроллерами ветрогенераторов с метеостанциями с подключением в сеть и облака, управление лифтами, и другой мехатроникой


      А почему, по-вашему, малинка не справится с этими задачами?


      1. Indemsys Автор
        15.07.2015 15:09
        +3

        Нет, сама не справится.
        Понадобится подключить к ней несколько плат с микроконтроллерами.
        Они могут называться ESC, адаптеры, переходники и проч. Но все это будет на самом деле дополнительными микроконтроллерами.

        Данный модуль реально не потребует никаких дополнительных микроконтроллеров, а соответственно и сложностей с их программированием.


      1. HomoLuden
        15.07.2015 16:16
        +2

        В Линуксе с реальным временем сложности. Туда же аппаратные интерфейсы.


      1. EighthMayer
        16.07.2015 10:38

        [sarcasm]
        Вы спрашиваете почему малинка не подходит для управления электроскутерами и лифтами? Ну не знаю даже. Действительно бред какой-то. Любой школьник может сделать управление такой ерундой на малинке и ардуинке. Ну и что, что управляем источником повышенной опасности? Зато железо дешёвое и скетч можно за пару вечеров накидать. Экономия-же.
        [/sarcasm]


    1. Ramzeska
      15.07.2015 22:23
      -2

      Если мне все равно придется паять плату под этот контроллер, то что мешает мне сразу поставить туда какую-нибудь мегу за 200 рублей и сделать все на ней?


      1. EighthMayer
        15.07.2015 23:28
        +2

        Вы ещё спросите «а зачем мне 200 выводов» или «а чего так мало — 150 мгц? даже у малинки больше!». Если Вам не ясно зачем именно ВАМ может понадобиться железка — это вовсе не означает, что железка бесполезна.

        Что мешает поставить мегу? Да ничего, ставьте на здоровье, если для задачи её хватит. Только вот сравнивать девайс такой сложности (и продуманный, кстати, основательно) с ширпотребным миниПК и простеньким микроконтроллером — как минимум не грамотно.


  1. Karlson_rwa
    15.07.2015 23:54
    +2

    А Вы уверены, что имеете право лепить на свою плату Recognized Component Mark? ;)


  1. GarryC
    17.07.2015 16:47

    Так вроде Edisson задачу управления реалом решает на Quarke? И WiFi на борту а все равно пока не взлетел?


  1. Indemsys Автор
    17.07.2015 17:49

    Я не специалист в Edisson.
    Отчасти потому, что предпочитаю полностью прозрачные платформы где задокументирован каждый бит в настройках периферии.

    А почему решили что Wi-Fi не взлетел?
    Все описание программирования еще впереди. Там много что взлетело.


    1. GarryC
      20.07.2015 08:54

      Я про то, что платформа Edisson не взлетела, хотя ее Intel толкает очень сильно. Вы уверены, что Ваша платформа взлетит?