Автор оригинала: Tim’s Blog
- Перевод
Я, в числе прочих, поразился прошлогоднему известию в блоге EEVblog о том, что какие-то микроконтроллеры продаются всего по $0,03 за штуку. Как это было возможно? Многие предположили, что это распродажа или старые остатки. Покопавшись в истории, я пришёл к выводу о существовании целого сегмента рынка сверхдешёвых микроконтроллеров. Почти все они произведены малоизвестными компаниями из Китая или Тайваня. В данной статье я свёл результаты своих изысканий в этой довольно необычной нише. Мы уже знаем, что существует довольно большой спектр очень мощных микроконтроллеров стоимостью по $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, без сомнения, будет лучшим выбором. У них наиболее мощная архитектура, широкий спектр устройств, включая варианты с флэш-памятью, хорошая документация, и единственная линейка с набором открытых инструментов.
Инструкция по обновлению прошивки MCU от производителя Incar (Intro).
Так же инструкция актуальна для любого головного устройства серии RoadRover/INCAR/FEDOM.
ВНИМАНИЕ: во время обновления MCU питание головного устройства ни в коем случае не должно отключаться! Иначе процесс обновления может быть нарушен, что приведет к неисправности магнитолы и предоставлению его в сервисный центр.
- Скачайте программу MCUUpdate.exe: Программа для обновления MCU INCAR v2.2(349 Загрузок)
- Скачайте необходимый MCU из этой статьи;
- Скопируйте полученные файлы на USB-носитель в корневой каталог:
- Откройте Менеджер файлов нажав на главном экране магнитолы “Приложения-Файлы”:
- Выберите источник USB, затем раздел Другое:
- Запустите программу обновления, дважды кликнув по иконке MCCUpdate_v2.2.exe:
- Если предыдущие действия были выполнены правильно, то откроется окно программы обновления MCU.
- Вариант №1: автоопределние устройства не произошлоНеобходимо указать параметры системы в ручном режиме. Помните, что неверно указанные параметры могут привести к отключения головного устройства и дальнейшему предоставлению его в сервисный центр! Уточните параметры системы у сотрудников техподдержки.
- Вариант №2: автоопределение произошло успешно (или же параметры уже указаны в ручном режиме)
- Нажмите кнопку Open и выберите из списка необходимую для обновления прошивку MCU:
- Двойным кликом укажите выбранную прошивку и программа проанализирует файл на наличие ошибок:
- Теперь кнопка Update станет активной, нажмите по ней:
- Начнется процесс обновления:
- По окончанию процесса обновления система произведет автоматическую перезагрузку.
- Проверьте версию нового MCU в информации о системе.
Используемые источники:
- https://habr.com/post/467837/
- https://cobaltr4.ru/%d0%b8%d0%bd%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%86%d0%b8%d1%8f-%d0%bf%d0%be-%d0%bf%d1%80%d0%be%d1%88%d0%b8%d0%b2%d0%ba%d0%b5-mcu-%d0%bd%d0%b0-%d0%bc%d0%b0%d0%b3%d0%bd%d0%b8%d1%82%d0%be%d0%bb%d0%b5-incar/