Компания ЭФО перезапускает сайт myMCU.ru — портал для параметрического поиска микроконтроллеров и сопутствующих решений.
Мы внимательно изучили ассортимент ведущих производителей микроконтроллеров и составили единую базу микросхем, отладочных плат и программных средств разработки. Сегодня расскажем о том, как создавался сайт и какие проблемы пришлось решить, чтобы объединить самые разные контроллеры в единую базу для поиска и сохранить подробные описания для каждой микросхемы.
Статья будет интересна в первую очередь разработчикам встраиваемых систем — речь пойдет о проблемах выбора аппаратных платформ, а не об идеальных веб-интерфейсах и этом вашем юзабилити.
Зачем создавался сайт
Параметрический поиск для таких сложных продуктов как микроконтроллеры — штука очень полезная. Это, наверное, очевидно всем.
Каждый производитель микроконтроллеров в том или ином виде предлагает параметрический поиск, иногда он проработан лучше, иногда хуже. Некоторые русскоязычные ресурсы имеют систему поиска по объединенным базам кристаллов, но их главной проблемой остается плохое качество самой базы контроллеров. Данные из документации собираются полуавтоматически, часто содержат ошибки и пустые поля.
Мы ставили перед собой целью сделать не самую полную, но самую подробную и достоверную систему для подбора микроконтроллеров.
Даже если ни один пользователь не сочтет получившийся сайт полезным, наша работа проведена не зря — мы регулярно получаем запросы от разработчиков, которые начинаются со слов "Мне нужен микроконтроллер, у которого.." и теперь отвечаем гораздо быстрее.
Итак, нашей задачей было:
- Создать подробную и достоверную «таблицу», описывающую все возможные параметры каждой микросхемы.
- Организовать корректный поиск по максимальному количеству параметров.
- Для каждой микросхемы подобрать подходящие средства отладки и предоставить пользователю подробные описания соответствующих плат, программ и т.д.
- Собрать в одном месте статьи, видеообзоры и прочие полезные материалы, которые у нас накопились, и формировать для каждой выбранной пользователем микросхемы список ресурсов по теме.
Результат получился не идеальный, но вполне достойный. Вы можете познакомиться с ним самостоятельно, а я пока расскажу о некоторых сложностях, с которыми мы столкнулись при создании сайта.
О данных для поиска и для отображения
Представьте себе, у вас есть несколько десятков параметров микросхем и несколько сотен непохожих друг на друга даташитов. Постепенно заполняя гигантскую таблицу характеристик микросхем, вы начинаете понимать, что существует огромное количество почти_одинаковых периферийных блоков, которые называются по-разному.
Пример #1
Распространенный шинный интерфейс I²C.
Некоторые производители, например Atmel, называют соответствующий периферийный блок контроллера не I²C, а TWI. Почему? Потому что когда-то I²C был зарегистрированным товарным знаком Philips и в Atmel начали использовать другое название. Сложностей с лицензионным использованием названия I²C не существует уже более 10 лет, но название TWI прочно закрепилось в документации на микроконтроллеры Atmel и используется до сих пор.
Есть ещё один похожий шинный интерфейс — SMBus. По сути, это тот же I²C, но на 3.3 В.
Выносить TWI или SMBus как отдельный параметр микросхемы смысла нет, поэтому соответствующие периферийный модули мы считаем идентичными и просто суммируем. Таким образом на сайте myMCU вместо «Количество интерфейсов I²C» появляется признак «Количество интерфейсов I²C / TWI / SMBus».
Но далеко не всегда подобные проблемы решаются простым объединением похожих периферийных блоков.
Пример #2
Банальный последовательный интерфейс UART. Отлично.
Сначала вспоминаем, что кроме UART часто встречаются синхронные USART. USART может работать как UART, но не наоборот, как их лучше представить на сайте? Пока думаем над этим вопросом, обнаруживается, что:
- Некоторые микроконтроллеры Silicon Labs имеют низкоскоростные малопотребляющие UARTы, которые называются LEUART (Low Energy UART)
- У микроконтроллеров Atmel такие интерфейсы тоже бывают и называются PicoUART
- Ещё некоторые контроллеры Atmel имеют последовательные интерфейсы Flexcom и SERCOM. Оба блока могут работать и в режиме UART, и в режиме USART
- Texas Instruments называет некоторые последовательные интерфейсы с режимом UART загадочной аббревиатурой SCI
- Компания Infineon выпускает ARM-контроллеры с универсальными блоками USIC, которые могут работать как UART, SPI, I2C, I2S или LIN
С одной стороны, нужно отразить все эти нюансы в описаниях микросхем на сайте. С другой стороны, глупо создавать для параметрического поиска отдельные признаки для количества UART, USART, LeUART, PicoUART и так далее.
Так появилась идея дублировать такие параметры для каждого микроконтроллера. В базе микросхем одно поле служит только для параметрического поиска и содержит суммарное количество интерфейсов, а соседнее поле — подробную информацию о том, что на самом представляют собой эти интерфейсы. Информация из второго поля отображается в характеристиках микроконтроллера на сайте.
Для поиска по количеству последовательных интерфейсов | Для отображения результатов поиска на сайте |
2 | 1 x USART + 1 x Low Energy UART |
2 | 1 x UART + 1 x USART |
2 | 2 x USART (на блоках SERCOM) |
2 | 2 x USIC (могут работать как UART, SPI, I2C, I2S, LIN) |
Этот же принцип — разделение данных для поиска и данных для отображения — мы использовали при описании других блоков.
Так, SPI может быть представлять собой отдельный блок SPI или QSPI, а также может быть реализован на последовательном интерфейсе:
Для поиска по количеству интерфейсов SPI | Для отображения результатов поиска на сайте |
8 | 3 x SPI + 5 x SPI (через USART) |
1 | 1 x SPI (через QSPI) |
3 | 0 x SPI + 3 x SPI (через SERCOM) |
Подход оказался полезным не только при описании коммуникационных интерфейсов, но и для устройств ввода/вывода, интерфейса подключения внешней памяти, блока аппаратного шифрования и многих других параметров микросхем.
Под наличием контроллера ЖКИ может подразумеваться и интерфейс для подключения сегментного ЖКИ, и TFT-контроллер.
В параметрическом поиске для наличия ЖКИ задается только «да» или «нет», а в результирующей таблице в столбце ЖКИ будет указан и тип поддерживаемых индикаторов, и максимальное количество сегментов или разрешение.
Наличие контроллера сенсорных интерфейсов может обозначать вообще что угодно. Выбирая «да» в пункте Контроллер сенсорных интерфейсов вы получите микроконтроллеры, которые имеют:
- «Простые» емкостные каналы ввода,
- Многофункциональные блоки сенсорного ввода PTC (у МК производства Atmel),
- Блоки LEDTS, предназначенные не только для емкостного ввода, но и для управления светодиодными матрицами (у МК производства Infineon),
- Контроллеры резистивных сенсорных экранов и так далее.
Думаю, принцип уже хорошо понятен и не стоит перечислять все параметры микроконтроллеров, описанные аналогичным образом.
Пример #3
Отдельно стоит упомянуть поиск по типу корпуса. Известно, что одни и те же микроконтроллеры часто исполняются в различных корпусах.
Рассмотрим пример. ATtiny24A выпускается в шести корпусах:
- PDIP-14,
- SOIC-14,
- MLF-20 (он же QFN-20) 4 x 4 x 0.8 мм,
- VQFN-20 3 x 3 x 0.8 мм
- UFBGA-15 3 x 3 x 0.6 мм
В характеристиках микросхемы ATtiny24A на myMCU.ru, естественно, отображается полный список корпусов, но что делать с поиском?
Логично, что микросхема ATtiny24A должна входить в результаты всех запросов, содержащих хотя бы один из перечисленных корпусов. Проблема в том, что список из уникальных корпусов — это более 200 различных названий. Делать гигантский список чекбоксов не входило в наши планы, поэтому варианты для поиска пришлось сокращать:
Первым делом выкинули размеры корпуса.
Далее, волевым решением, убрали количество ножек. Да, это некоторая потеря информативности, но иначе количество вариантов было никак не сократить до разумных размеров.
Последним шагом была группировка корпусов — PDIP и CDIP объединились в группу DIP; корпуса QFN, UDFN, DFN, MLF, VFQFN, LQFN, HTQFN и другие объединились в QFN и так далее.
В итоге осталось 10 основных групп корпусов: BGA, CSP, DIP, PLCC, QFN, QFP, SOIC, SOP/SSOP, SOT и бескорпусные исполнения.
ATtiny24A найдется по запросам с галочкой на DIP, SOIC, QFN или BGA.
О специализированных контроллерах
Помимо универсальных контроллеров, при выборе которых имеет значение некоторый набор параметров, существуют специализированные микросхемы, имеющие, по факту, единственный главный признак.
Примером таких микросхем являются микросхемы Wiznet, имеющие аппаратно реализованный стек TCP/IP, или контроллеры фирмы FTDI, предназначенные для управления TFT-дисплеями.
Для того, чтобы такой контроллер можно было легко найти на сайте, предусмотрена функция поиска по единственному параметру — поиск по назначению.
Мы также попытались предугадать популярные запросы разработчиков — самый бюджетный контроллер, самый малопотребляющий контроллер и т.д. Для поиска по одному из этих параметров служит Поиск по отличительному признаку.
О представлении микросхем на сайте
Большинство запросов для параметрического поиска по микроконтроллерам — это популярные и довольно простые требования, по которым проходит большое количество различных микросхем. Например, ищем микроконтроллеры с ядром Cortex-M0 / M0+ в корпусе QFP и как минимум тремя последовательными интерфейсами.
Результат — это 95 подробно описанных микроконтроллеров от четырех разных производителей. Но кому захочется всматриваться в такую длинную таблицу результатов?
Поэтому мы структурировали результаты для каждого поиска — сначала всегда отображаются серии микросхем с указанием их главных характеристик.
Каждая серия раскрывается в большую таблицу с подробным описанием всех микроконтроллеров, принадлежащих серии и подходящих под запрос пользователя.
В таком представлении данные читаются лучше, но выбрать тот самый единственный и неповторимый контроллер среди ста микросхем всё равно непросто — параметры поиска нужно уточнять.
Добавляем ещё несколько условий: минимум 30 линий ввода/вывода, от 128 Кбайт Flash-памяти и хотя бы один интерфейс USB Device.
В результате осталось всего 14 микроконтроллеров, их характеристики можно изучить поподробнее в выпадающих таблицах.
О подборе материалов «по теме»
Выбор микроконтроллера определяется не только характеристиками конкретного кристалла, но и доступными средствами для разработки и отладки, обучающими материалами и так далее.
По клику на любой микроконтроллер, представленный в таблице, можно найти меню со средствами разработки, статьями и новостями, связанными с выбранным контроллером.
Эта функция была реализована с помощью так называемых меток — каждая плата, программа, статья или новость может быть связана с одной или несколькими микросхемами, сериями микросхем или со всем ассортиментом производителя. И действительно, большинство отладочных плат предназначено для изучения конкретной серии микроконтроллеров, фирменные IDE обычно подходят под всю продукцию производителя, а, например, программаторы IAR подходят для всех ARM-контроллеров вне зависимости от производителя кристалла.
Кроме как в рекомендациях для выбранного микроконтроллера, все материалы доступны едиными списками в меню Средства разработки, Статьи и Новости.
Надеемся, ресурс окажется полезным для разработчиков. Спасибо за внимание!
Предвосхищая комментарии
- Да, на сайте мы размещаем только ту продукцию, поставки которой осуществляет ЭФО. Мы не претендуем на покрытие всех существующих на рынке микроконтроллерных решений, зато готовы оказать любую техническую поддержку по тем направлениям, которыми занимаемся.
- Шутку про «тутси-точка-ру» уже много раз шутили. Не надо ещё раз, правда.
- На сайте действительно почти не приводятся цены. Вполне понимаю, что цена — это тоже важный параметр при выборе микросхемы, но myMCU — это не интернет-магазин, поэтому вот так.
Автор: ЭФО