Мы уже знаем, что существует довольно большой спектр очень мощных микроконтроллеров стоимостью по $1.00, но что насчёт MCU по $0,1? Так ли они «ужасны», как о них пишут?
Методология
Как определить микроконтроллер стоимостью в $0,1? Да как хотите; выбор определения произволен. Я решил пойти напрямик, используя стоимость 100 штук в магазине LCSC. Я обнаружил шесть производителей, предлагавших один или несколько чипов стоимостью менее $0,1, и все они были из Азии. Если чипы предлагались в различных корпусах, я выбирал вариант SOP8. У некоторых производителей было несколько кандидатов, поэтому мне пришлось ограничиться выбором типичных устройств для финального списка из 8 кандидатов.
У крупных дистрибьюторов, вроде Digikey или Mouser, микроконтроллеров по $0,1 я не нашёл. Очевидно, что это не означает, что найти такие MCU у западных производителей невозможно – всё зависит от объёма заказа. Тут играет роль два фактора: во-первых, LCSC работает с гораздо меньшей наценкой, чем крупные дистрибьюторы. Во-вторых, крупные производители MCU не зависят от мелких клиентов, поэтому свободно назначают цену на товары, покупаемые в небольших количествах.
В отсутствии программаторов и тестовых стендов я смог сделать обзор большинства устройств только по их спецификациям, за исключением MCU от Padauk.
Обзор
В целом я отобрал восьмерых кандидатов от шести разных производителей. Суммарная таблица приведена ниже.
В ней есть очевидные сходства – все устройства спроектированы для аккумуляторной архитектуры, и, несомненно, на основе Microchip PIC12. За исключением MDT, все производители изменили и дополнили схемы своих чипов. Причин, пожалуй, две: во-первых, они хотели избежать юридических проблем с Microchip, а во-вторых, у PIC12 есть серьёзные ограничения. Они поработали с основными недостатками – отсутствие прерываний, адресного пространства JMP/CALL, переключения банков памяти и периферии.
К сожалению, производители не поделились таким деталями, как кодирование инструкций или алгоритмы памяти. Вся разработка для этих устройств должна идти посредством IDE от производителей. За исключением Holtek, все устройства зависят от высоковольтного интерфейса программирования, и их не так-то легко программировать на месте. Только Padauk и Holtek предлагают устройства, которые можно программировать больше одного раза.
> Кликабельно. Есть PDF-версия
Отдельные находки
Bojuxing Industrial
Чип BJ8P509F по цене в $0,0466 – это немного усовершенствованный вариант PIC12C509. Набор инструкций расширен с 12 до 13 бит. Это позволяет использовать jmp с полной адресацией памяти. Кроме того, добавлены возможности работы с прерываниями и расширенным HW-стеком.
Имеется спецификация на английском языке, и она достаточно подробна для работы с чипом. К сожалению, веб-сайт и IDE производителя есть только на китайском.
Eastsoft Micro
У Eastsoft Micro имеется большой портфель микроконтроллеров, произведённых на основе PIC. Они называют свой вариант архитектуры HR7P RISC. Это полноценная аккумуляторная архитектура с поддержкой прерываний, 8-уровневым стеком и доступом к памяти и I/O без переключения банков.
У них есть один чип стоимостью до $0,1, и это HR7P153P45SA. Среди примечательных особенностей – поддержка ADC 12 бит, низкоскоростной осциллятор для работы при пониженном питании и добавление двух таймеров с поддержкой PWM.
К сожалению, веб-сайт и спецификация есть только на китайском.
Holtek
Holtek – известный производитель микроконтроллеров из Тайваня. Их представитель в данной категории HT68F001 довольно уникален: ограниченное устройство с 512 словами программной флэш-памяти и 16 байтами RAM. Архитектура очень похожа на PIC12, синхронизируется только от внутреннего осциллятора на 32 кГц. Поскольку на выполнение каждой инструкции уходит 4 такта, он выполняет только 8000 инструкций в секунду! Судя по всему, этот чип предназначен для применения в условиях ультранизкого энергопотребления, не требовательного к производительности.
У чипа отличная документация. Тут и веб-сайт, и спецификация, и заметки по применению, и IDE. Это также единственный чип с возможностью флэш-программирования на низком напряжении. Всё это ставит продукцию Holtek особняком на фоне остальных.
Однако, учитывая ограниченную функциональность этого чипа, по-видимому, сегмент ультрадешёвых чипов не является для Holtek приоритетным.
Padauk
Совершенно ясно, что на рынке чипов до $0,1 Padauk чувствует себя, как дома. В этом ценовом диапазоне они предлагают десятки продуктов с разнообразными возможностями и видами корпусов.
Все они основаны на архитектуре MCU Padauk, значительно более развитой по сравнению с PIC12: она использует отдельные участки памяти для I/O и SRAM, позволяет выполнять адресацию ко всей памяти без переключения банков. В отличие от всех остальных устройств, здесь стек находится в оперативной памяти. Большинство инструкций выполняются за один такт.
Один интересный и необычный аспект архитектуры Padauk состоит в том, что она заточена под синхронную многопоточность, и позволяет выполнять более одной программы параллельно на одном ядре MCU по схеме вытесняющей многозадачности. Они называют эту концепцию «программируемая пользователем процессорная матрица» (FPPA). Сходную концепцию использует XMOS в архитектуре XCore Architecture. Один полезный вариант применения многопоточности в небольших MCU – создание виртуальной периферии, например, UART, I2C, работающей параллельно с основной программой.
Я выбрал три их репрезентативных продукта в корпусе SOP8: PMS150C, PFS154 и PFS173. У всех них есть один модуль FPPA, поэтому они не поддерживают многопоточность.
PMS150C – самый дешёвый вариант, стоящий $0,033, то есть, это оригинальный «трёхцентовый MCU». У устройства одноразовая программируемая память на 1 килослово и 64 байта RAM. Периферию представляют множество соревнующихся вариантов – 16-битный таймер, 8-битный таймер с ШИМ, низкочастотный осциллятор, аналоговый компаратор с опорным напряжением 4 бит DAC, который можно использовать для реализации простейших вариантов АЦП. Всего этого достаточно для реализации простых функций датчика и управляющего модуля.
PFS154 стоит почти в два раза дороже. Однако, в отличие от PMS150, у него есть флэш-память на 2 килослова, его можно программировать многократно, что гораздо удобнее для реальной разработки. Периферия расширяется ШИМ-модулями 3х11 бит, неплохо подходящими для управления RGB светодиодами.
Наконец, PFS173 далее улучшает чип PFS154, добавляя 8-битный АЦП и расширяя флэш-память до 3 килослов и RAM до 256 байт.
Padauk обеспечивает IDE для разработки на ассемблере и достаточно загадочный диалект С (Mini-C). У них есть отличные спецификации на английском и китайском, а также двуязычный сайт. Программирование устройств осуществляется высоковольтным протоколом на 5 или 6 проводов, что затрудняет программирование чипа на месте.
Набор инструментов с открытым кодом
Вокруг Padauk MCU на сайте EEVblog сформировалось небольшое сообщество, пытающееся создать набор инструментов с открытым кодом для их чипов. Большинство работы описывается в этой ветке.
На август 2019 закончен инженерный разбор кодирования инструкций, описан протокол программирования, разработан открытый программатор, в SDCC интегрирована поддержка нескольких вариантов PDK архитектуры. Уже возможно вести разработку для всех упомянутых чипов от Padauk при помощи полностью открытого набора инструментов.
Puolop
Puolop – китайский производитель микроконтроллеров и различных смешанных аналогово-цифровых схем со штаб-квартирой в Шэньчжэне. Они предлагают широкий спектр чипов от Padauk под своим брендом, в частности, старые OTP-версии.
К примеру, Puolop PTB150CSE выглядит абсолютно идентично Padauk PMS150C. Стоимость у них чуть меньше оригинала ($0,0315 против $0,334). Неясно, какая связь существует между этими брендами, но, судя по всему, Padauk выступает в роли поставщика для Puolop.
Веб-сайт компании и вся документация есть только на китайском. Никаких причин предпочесть чипы от Puolop чипам от Padauks не наблюдается – разве что экономия небольшой части цены.
Yspring Tech / MDT
Yspring Tech – китайская компания, предлагающая широкий спектр устройств, функционально сравнимых с конкурентами от Microchip. Судя по всему, большая часть ассортимента взята у MDT, тайваньской компании, которую Yspring либо купила, либо сделала партнёром. Microchip противилась их бизнес-модели в прошлом.
Ysprings добавляет в этот обзор MDT10P509 по цене в $0,0795. Это устройство, судя по всему, является полным клоном PIC12C509. Оно может оказаться полезным в качестве дешёвой замены оригинала, но оно явно уступает по характеристикам другим продуктам из этой категории.
MDT10P509 предлагает 1 килослово одноразовой памяти, 41 байта RAM, и единственный 8-битный таймер в качестве периферии. В нём, как и в PIC12C509, нет прерываний, есть только двухуровневый HW-стек, а инструкции выполняются за 4 такта.
Заключение
Являются ли эти микроконтроллеры на самом деле «ужасными»? Очевидно, зависит от точки зрения. Они попадают в особую категорию необслуживаемых продуктов небольшой функциональности с небольшой стоимостью для оптовых закупок. Вам нужно подождать нажатия кнопки, а потом пять раз мигнуть светодиодом? Вам нужно управлять ночником на батарейках? Чипы стоимостью до $0,1 помогут вам уменьшить себестоимость и укоротить время разработки.
Подвох в том, что разработка для большинства этих устройств окажется делом неудобным из-за ограниченной доступности флэш-прошиваемых вариантов и внутрисхемного программирования. Отладка обычно возможна только через эмуляторы схем.
Если вам нравится работать с дешёвыми микроконтроллерами, то серия от Padauk, без сомнения, будет лучшим выбором. У них наиболее мощная архитектура, широкий спектр устройств, включая варианты с флэш-памятью, хорошая документация, и единственная линейка с набором открытых инструментов.
Комментарии (54)
alecv
18.09.2019 13:22Еще совсем недавно самая популярная архитектура для копеечных MCU была MSC51…
en.wikipedia.org/wiki/Intel_MCS-51#MCUs_based_on_8051dernuss
18.09.2019 22:41N76E003
alecv
20.09.2019 10:58Спасибо, интересный чип, периферия богатая. Жаль что до 0.1$ не дотягивает. Digikey в розницу торгует чипами по 0.84$ а за 1000шт. — 0.38$ то есть у китайцев будет ~0.2$
www.digikey.com/product-detail/en/nuvoton-technology-corporation-of-america/N76E003AT20/N76E003AT20-ND/8747842
Интересно, что мешает производителю скинуть цену? Лицензионные отчисления Intel? Или спрос определяет цену? Багаж наработок по MCS51 просто огромный.alecv
20.09.2019 11:04
dernuss
20.09.2019 11:07Да, очень приличный чип. Китайцами позиционируется как замена stm8s003.
Из недостатков надо покупать отладчик за 700р.
Ну цена да. Но N76E003 лучше чем stm8s003 при такой же цене
semen-pro
21.09.2019 09:33Тоже удивился, ковыряю stc15w204, думал что это ниже плинтуса по цене. И тут снизу постучали.
GarryC
18.09.2019 14:00Когда, где-то с полгода назад, я впервые побывал на сайте Padauk и (ошибочно) решил, что в МК стоимостью 8 центов есть 8 ядер, я был настолько ошеломлен, что ушел в работы в полной прострации, не выключив компьютер и не закрыв комнату…
Кстати, если в ядро добавить 8 счетчиком пробуждения потоков, то могло бы получиться забавно — почти настоящая многозадачностью с нулевыми расходами.
EGregor_IV
19.09.2019 05:22Всегда питал тайную тягу к дешёвым МК с ничтожными ресурсами. Долгое время любимый МК был Attiny12, у которого кроме компаратора и таймера ничего не было. Даже стек был аппаратным, на три уровня вложенности. Но он программировался по ISP низковольтно.
И что я только на нём не делал: гирлянду, контроллер управления вентилятором ПК, ИК-пульт, всякие букашки и таракашки с вибромоторчиками от сотовых телефонов… Жаль, корпус был большой SO8, был бы SOT какой-нибудь, было бы лучше… А потом у меня гикнулся винт со всем этим добром… Теперь STM32 да ESP наше всё…SvSh123
19.09.2019 08:24EGregor_IV
19.09.2019 09:08+1Поздно уже. Назад дороги нет, разве что батарейное что-то, но тут MSP430 до сих пор вне конкуренции.
Gordon01
19.09.2019 08:28Но давайте признаемся: ESP32 просто шикарен, несмотря на некоторые странности из-за своей молодости.
Уж точно лучший контроллер, с которым я работал (жаль, на нем батарейного почти ничего не сделаешь)boojum
19.09.2019 09:07«Батарейное» на нем успешно работает как минимум месяцами на одной батарейке в сценариях «спит — ненадолго проснулся, измерил, передал — спит дальше». Периодический сбор данных, мониторинг и подобное.
EGregor_IV
19.09.2019 09:09Смотря как часто передавать. Раз в минуту — на долго не хватит. Батарейное — это батарейка ААА максимум.
boojum
19.09.2019 09:18Обмен раз в 10..15 минут (рандом). Батарейка 18650. Работает по полгода без особых заморочек с оптимизацией. Уверен можно в разы время жизни увеличить.
А почему вдруг «батарейное» == «AAA максимум»?EGregor_IV
19.09.2019 09:4718650 это литиевый аккумулятор. Даже если точнее — формфактор.
По вашей логике, тогда и автомобильный аккумулятор — батарейка.boojum
19.09.2019 09:58Обычно в этом контексте разделяют лишь батарейное и сетевое питание.
Вы предлагаете батарейным считать только неперезаряжаемые 1.5В источники типоразмера «AAA максимум», а все аккумуляторы видимо вынести в класс «аккумуляторного питания»? )
zedroid
19.09.2019 09:16Типичный срок батарейного применения о котором говорят в MSP430 — это срок жизни прибора (3 года).
boojum
19.09.2019 09:21У него WIFI нет. В ESP львиная доля потребления уходит именно на него.
EGregor_IV
19.09.2019 09:48Wi-Fi и батарейка — в принципе несовместимые вещи.
vp7
19.09.2019 11:34Если WiFi использовать только для периодической передачи данных, просыпаясь ради этого каждые 10-30 минут на 2-5 секунд (различные датчики и т.д.), то и на батарейном питании можно довольно долго жить.
SvSh123
19.09.2019 16:02Да можно, наверное… только зачем, если для этого существуют более подходящие инструменты?
vp7
19.09.2019 18:49+2ZigBee это, конечно, хорошо и правильно, но ему нужен шлюз и стоимость контроллеров пока выше стоимости esp8266. Так что wifi тоже имеет право на жизнь.
John_Cena
20.09.2019 11:44А как же тогда, различные мышки, клавиатуры беспроводные. Они ведь работают от обычных алкаиновых батареек. Причем вполне уверенно в себе совмещают и беспроводные технологии и долгое время службы от одного элемента питания.
dernuss
20.09.2019 11:53Я даже больше скажу. Я свою Logitech Illuminated Keyboard с подсветкой заряжаю раз в 2 месяца.
dernuss
19.09.2019 09:45В нём есть ULP сопроцессор, который может собирать данные с датчиков, пока основные ядра спят
amartology
19.09.2019 10:18+2У меня есть более крутая фишка для людей с такой тягой: Dialog GreenPAK.
У них вообще нет никакого ядра, только периферия, немного программируемой логики и, внимание, хардварный конечный автомат на восемт состояний (ASM) в продвинутых моделях.
Это почти так же весело, чем писать код на ассемблере, и еще веселее, чем лабораторки на рассыпухе в универе. Вспоминаете основы дискретной математики, и весь мир у вас на ладони.
Интерфейс для конфигурирования выглядит примерно вот так:
dernuss
19.09.2019 10:25+1Это же ПЛИС )
amartology
19.09.2019 13:23Вообще да, но очень-очень простая и дешевая. Там буквально полдоллара масштаб цены даже в некрупных сериях.
У них ещё есть версии с встроенными LDO и силовыми ключами, АЦП и прочая полезная периферия, именно поэтому их стоит рассматривать как аналоги МК, а не ПЛИС. Для задач, где требуется иногда дергать ножками, а не обрабатывать информацию, вполне разумная замена.dernuss
19.09.2019 13:50Ну за 0.5$ ещё надо найти где это будет лучше чем микроконтроллер за 3 или 6 цента, или лучше чем n76e003
Redvirg
21.09.2019 15:39У GreenPAK'ов однократно программируемая память? Если да, то как удобно отлаживать их?
amartology
22.09.2019 10:11OTP, да. Отлаживать полностью удобно. Во-первых, софт умеет в симуляцию, большинство косяков находятся на этой стадии. Софт можно, кстати, абсолютно бесплатно скачать с сайта и сначала поиграться с ним, а потом думать, интересны ли такие чипы и стоит ли морочиться с маусером.
А дальше у девборда есть коннектор к сокету с чипом и коннектор к внешнему миру, и он (девборд) умеет заливать прошивку прямо во внутреннюю память, мимо ОТР (пока питание не сброшено, разумеется). Между вашим чипом и остальной частью тестовой схемы будет два коннектора, но обычно это окей, если речь не идёт о встроенных в гринпак силовых ключах.
JerleShannara
20.09.2019 17:35Огромное спасибо за наводку. Этож идеальная замена всяким тинькам, когда надо сделать простейший ногодрыг. Вы не знаете, в РФ их кто-нибудь возит нормально, или как обычно надо лезть на диджикеи и маусеры?
amartology
21.09.2019 09:08Неа, по-моему никто не возит, у основной продукции диалога слишком специфичный рынок, чтобы они были востребованы в России, а самим этим ребятам (а это купленный в прошлом году стартап) и подавно не до России было.
Маусер наше всё в данном случае(
LevOrdabesov
20.09.2019 20:26Было бы интересно почитать статьи от разработчиков, использовавших такие МК, особенно «в продакшене».
Подозреваю, что там высочайший процент брака, а фраза «отладка перепрошивкой» обретает особый, сакральный смысл.Vadimatorikda
22.09.2019 10:37Ну так ведь «отладка перепрошивкой» — это достаточно распространенная проблема у 8-ми биток. Я вот только у atmega16+ видел jtag и 1-wire у attiny2313 (говорят что с недавнего времени и у младших появились). Ту же atmega8a отлаживаешь по принципу «зашил и смотришь». Вроде у stm8 есть какое-то подобие отладки. Но тут уже не удалось поработать.
lingvo
Было бы интересно узнать цены на эти МК на Digikey или Mouser. Само применение подразумевает большие партии устройств с минимальной себестоимостью и тут без защиты от контрафакта не обойтись.
drWhy
Цена оригинального изделия $0.03 сама по себе является неплохой защитой от контрафакта, производителю которого придётся выбирать между получением прибыли и нанесением маркировки на корпус.
dernuss
ну придёт к выводу что маркировка не обязательна и сделает цену 0.02$