Комментарии 54
Мне интересно собственный чип RP2040 это хорошо или нет?
К примеру на основе дизайна плат Arduino можно создавать свои платы под конкретные задачи и все компоненты широко доступны, а где искать RP2040?
По большей части собственный чип это хорошо для нормальной конкуренции.
В своё время создание оригинального одноплатника Raspberry Pi подстегнуло других производителей снижать цены и выпускать что-то интересное.

Я не пробовал искать сам чип, но несколько компаний уже анонсировали выпуск своих плат на базе этого чипа. Не думаю, что они будут бросаться обещаниями если не могут организовать поставки. Время покажет.
Смотря что сравнивать. А то получается как при выборе яблока или апельсина.
Например, тех же блоков PIO (ради них я взял поиграться) на ESP32 нет. Так же на ESP32 нет такого количества железных PWM. Ещё на ESP32 количество и разрешение ADC меньше, так же нет поддержки USB.
Зато на ESP32 есть WiFi и Bluetooth. Есть много проектов, где нужен WiFi, но не нужно ADC и USB. Там ESP32 лучше подойдёт, конечно.
Если уметь использовать изюминку каждого микроконтроллера по назначению, то этот микроконтроллер будет особенно подходящим.
Плохо вырезают. В их datasheet'е есть пару упоминаний Bluetooth, но не в списках фич. Явно пропустили когда скопировали из документа от ESP32.
Вот за это я и не люблю кошек Китай. Сегодня пропустили в документации, завтра пропустят в кристалле. А ты вынужден тратить свое драгоценное время (которое=деньги), пока разберешься что к чему.
Особенно классно, когда разные куски доков скопипастили из разных мест, и сиди гадай, в каком правильно.
тех же блоков PIO (ради них я взял поиграться) на ESP32 нет

PIO блоки дают возможность создавать свои интерфейсы. Например, можно запрограммировать интерфейс WS2812, добавить I2S, SDIO или VGA и т.п.

ULP-RISC-V в esp32-s2 случайно не позволяет делать то же самое?


UPD: частота у него слишком маленькая конечно для VGA, это скорее для другого, да.

ULP на ESP32 вроде как обычный проц, но с акцентом на потребление.
PIO в RP2040 заточен на I/O и за счёт этого может получить интересные скорости, которые не влияют от производительности основного камня. То есть, VGA как раз реально.
Цитата из datasheet'а (страница 325):
When outputting DPI, PIO can sustain 360 Mb/s during the active scanline period when running from a 48 MHzsystem clock.
А как он в сравнении с ESP32?

Вопрос на мой взгляд не имеет особого смысла. Логичнее было бы спросить, — этот продукт — продукт рынка плат разработчика Cortex-M0+, в первую очередь, а малина-шмалина — это уже второй вопрос. Cortex-M0+ — это самый бюджетный край армов, далеко не всем он интересен, а кому интересен, так у них выбор среди тысяч самых разных плат этого класса, есть дешевле, есть дороже. В чем конкретная фишка по отношению к продукции хотя бы основных игроков на этом рынке, каковых наверное десяток-два? Могли бы пробежаться по каждому игроку и разъяснить, в чем их переплюнули. У этой шмалины большой портфель типов плат и они могут предложить ступенчатый апгрейд, как для STM32 c Cortex-M0+ до STM32H7? Или уникальный набор периферии на все случаи жизни? Или у них 32-битные таймеры для частот до гигагерца, или что-то еще? Микроконтроллеры — это про hardware, не про Питон. Питон — всего лишь один из очень многих инструментов, не более того.

Возможно, я не прав и опыта в микроконтроллерах у меня нет, но для домашних целей с нуля создать проект для stm32 мне показалось сложным (с ESP32 не пробовал, с arduino — пробовал, там тоже несложно, но сама arduino слабая по характеристикам).
В данном случае, судя по описанию, установка простая и писать на микропитоне можно без особой подготовки. А то что стоит 4 доллара — ну и ладно, для штучных экспериментов сэкономленное время будет ценнее.

Зависит от опыта. Мои первые попытки что-то делать под МК были как раз на STM32. У меня тогда зашло без проблем.
Пожалуй, ESP32 было позамороченнее и это спустя несколько лет как я пробовал STM32.
Не совсем понял, что значит «Arduino слабая». В чём слабость платформы? Для прототипов подходит, порог вхождения ниже если сравнивать с тем же STM32. Большой парк плат и МК (в том числе STM32 и ESP32).
Можно еще реалтековские контроллеры поковырять, там еще больше заморочек, но главным образом на этапе первоначальной настройки и за счет закрытых бинарников.
Верно. Одна из фишек RP2040 — бОльшая открытость. Сам кристал не является Open Source, но всё остальное вроде как открыто.
Ардуино, это среда разработки и некоторая «экосистема», прежде всего. Так что она не может быть «слабой по характеристикам». Там можно и под тот же stm32 писать и под x86, если уж так.

У неё проблема в низком уровне вхождения — те кто ей пользуются, зачастую, мало что знают о конкретных микроконтроллерах и о том, как вообще надо их использовать. И в том, что от вас там пытаются скрыть слишком много сложностей. А также в качестве библиотек и.т.п. Но не в том, что можно писать под довольно слабые AVR. Даже «родные» для неё платы есть на довольно мощных ARM.
У любой системы есть характеристики. И по ним их можно сравнивать. Сравнивать arduino как ide можно с чем угодно. И она слабая. Сравнивать arduino как hal можно с mbed. mbed даёт больше гибкости, так что тут arduino так же слабая. В arduino есть и OS. Так же слабая, в сравнении с промышленными стандартами. Единсьвенное сильное место arduino — комунити.
К слову, про библиотеки не согласен: многие библиотеки из экосистемы arduino очень даже хороши.
Не думаю, что это имелось в виду.
К тому же, в перечисленных вами «слабостях» ардуино её же сила — всё предельно упрощено, и именно поэтому то комюнити… =)
IDE для Arduino — на выбор пользователя. Можно в Visual Studio Code если привычнее.
OS (когда она есть) в Arduino скрыто от пользователя. Вроде как для ESP используется FreeRTOS внутри. Но фишка Arduino как раз в полной абстракции от OS и это хорошо.
Для многих проектов не нужны такие усложнения и невостребованная гибкость. Тут важнее «Time-to-Market».
Возможно, я не прав и опыта в микроконтроллерах у меня нет, но для домашних целей с нуля создать проект для stm32 мне показалось сложным

«Для домашних целей с нуля», как вариант, можно зайти на os.mbed.com/platforms/, посмотреть платформа какого производителя больше нравится, например, STMicroelectronics — 50 плат, выбрать конкретную плату, например NUCLEO-F446RE Cortex-M4 +, FPU, 180MHz, 512KB Flash, 128KB SRAM, купить ее где-нибудь, подключить по USB к компьютеру, дать mbed.com ее распознать, выбрать какой-нибудь пример кода на C, клацнуть на него, тем самым загрузить его в онлайн, то есть в браузере среду разработки, скомпилировать и перебросить результат на эту NUCLEO, которая видна как flash drive. Все, отключили плату, включили — код работает, проще трудно придумать. (Все это по памяти, давно этим не занимался, может сейчас еще проще) Сообщество по этим STM32 не уступает таковому по малине, насколько я знаю. Не уступает ни по количеству народа, ни по качеству общения.
На малиновском МК сообщество пока не особо в силу его новизны и возраста.
Но чем больше разных хороших сообществ, тем лучше и проще в плане выбора МК под какие-то определённые задачи.
На основе этого чипа будет довольно много сторонних плат, в том числе с WiFi/Bluetooth, в том числе от Arduino, с портированными библиотеками. Так что да, свои платы можно будет создавать.

И где же купить за 4$? Поделитесь ссылочкой. А то чёт не нашёл.

У меня есть возможность купить в offline. В online они только начинают появляться.
На rs-online есть. Adafruit уже продаёт (вчера вроде не было). Во многих европейских магазинах уже появились.
Тут можно посмотреть где купить за $4: www.raspberrypi.org/products/raspberry-pi-pico
В списке нет России, но можно найти в соседних странах с доставкой. Сама доставка, конечно, будет не бесплатная.
К сожалению, я не знаю кто в Казани может продавать похожее локально.
А что за PIO? Можно для ардуинщиков тех кто в танке поподробней?
В грубом приближении с помощью PIO можно реализовать свои протоколы, которые будут работать как новая периферия без нагрузки на центральный проц.
Например, надо управлять WS2812 — можно запрограммировать PIO на этот протокол и теперь он будет. По скорости это будет намного быстрее, чем делать bit-bang самому, а свободное время процессора потратить на что-то более важное.
Пишется мелкий код на чем-то подобном асме специально для PIO блока.
Почему не описано? Я же не выдумал это. Есть официальное описание в datasheet'ах, которые я привёл в статье. В datasheet'е от RP2040 есть целая глава 3 с подробным и увлекательным описанием.
Тут небольшое введение на эту тему.
PIO — это сопроцессор ввода-вывода — простой процессор со своей системой команд, который можно программировать на ассемблере, чтобы реализовать протокол какого-то интерфейса без задействования основных ядер
Спасибо за обзор. Если бы на борту был WiFi, была бы бомба, а так, функциональность получается заметно ограниченной. Проект, где ничего не нужно принимать/отдавать по сети, сейчас уже редкость :)
Не всегда нужен WiFi на борту. Но вроде как Arduino объявила о выходе своей платы на RP2040 с WiFi.

По поводу проектов: автоматическая подсветка, регулировка температуры/влажности, автономный робот и прочее.

Спасибо за статью! PIO тоже очень заинтересовал с момента анонса контроллера, было бы интересно почитать опыт работы с ним. В частности интересно, можно ли на нем достаточно эффективно реализовать 1-wire, про другие протоколы часто упоминают как примеры для PIO, а этот — нет. Особенно учитывая, что 1-wire ни в одном из популярных контроллеров аппаратно не поддержан.
Два ядра — тоже необычность, хотелось бы услышать про то, какие средства синхронизации есть, как работает обработка прерываний, поддержка со стороны SDK, прочие особенности.

Автор меня опередил, стал писать обзорку этой платы исключительно по документации. Самому интересно было про синхронизацию. 2 FIFO однонаправленных C0->C1, C1->C0 и 32 «аппаратных мьютекса». Как предполагаю, надо в код смотреть именно Питона, возможно на 1 ядре сам интерпретатор крутится, а на втором — нативные библиотеки. Там еще много чего интересного. Аппаратный делитель, интерполяторы. Используется в Питоне, судя по документации.

Ну и что, что "опередил". Не сказать, что статьями прямо "засыпало", тем более если описывать разные аспекты камня и личный опыт. Если есть энергия — всегда лучше всегда писать. (= Сейчас особенно интересно, пока этот камень дойдет до нас (Россия) по адекватной цене и пока до него свои руки дойдут...

Энергия есть, таланта писательского нет:( Обычно, от задумки до релиза проходит несколько месяцев, и тема становится не актуальной…
Надо по свежему идти всегда. У меня в черновиках лежит недописанная статья уже года четыре или пять про самодельную машинку с управлением по Bluetooth. Но она вряд ли увидит свет.
Про Pico я узнал на hackaday (20 января), потом в пятницу метнулся за ними в магазин и выходные игрался. В воскресенье пришла идея написать статью по свежему.
Хорошая идея по поводу 1 wire. У меня есть несколько DS1820. Я попробую поиграться в этом плане с PIO.
Для второго ядра у меня пока нет особо идей, да и PIO привлекательнее для экспериментов.
Лет 5-6 назад эта плата была бы интересной. Сегодня она выглядит, как попытка запрыгнуть в последний вагон уходящего поезда.

Поезд микроконтроллеров никогда не "уйдет", они всегда будут нужны. Выбор разработчика продиктован в основном ценником и качеством экосистемы. Добавить к этому тот факт, что цикл жизни микроконтроллера составляет 10-20 лет и входить в тему можно когда угодно, только составь достойную конкуренцию.

Полностью согласен. Тем более, что требования только растут и производители выпускают что-то новенькие для удовлетворения этих требований.
Особенно когда это не просто МК общего назначения, а ещё какие-то аппаратные фишки и ускорения, что бы задачу можно решить ещё более эффективно.
Например, лет 10 назад МК для машинного обучения был не так нужен как сейчас.
Почему бы и нет. Куча людей выбирает ардуино «ну потому что ардуино», хотя есть и аналоги. Куча людей любит малинку «ну потому что малинка», хотя есть и аналоги. Вот и на этот продукт найдутся любители.
У малинки очень хорошая репутация и сообщество. Я как-то попробовал другой SBC, солазнившись на завленные характеристики, оказалось — выброшенные деньги.
Поэтому уже только поэтому можно надеятся, что даже если не взлетит, провала не будет.
Верно. Это называется «community» или «поддержка». Новичок может чувствовать себя увереннее когда знает, что ему помогут в освоении чего-то совершенно нового. Да и потом охотнее будет делиться своими знаниями с другими.
Почему сегодня она не интересна? Новые микроконтроллеры появляются достаточно часто и всегда есть рынок на это. Хотелки на них только пухнут со временем.
Что за Teenzy? Если речь про Teensy, то у них слишком много плат, что бы можно было сравнить со всеми. У них даже есть AVR.

А по поводу таблички, то мне кажется, что там очень грамотное сравнение. Можно подумать, что PIO и ULP — это одно и то же. А это не так и потому в одно поле вставлять не совсем верно.
Ещё максимальный Flash у RP2040 будет 16MB и для ESP32 вроде как 16MB, а там указано 2 и 4 только.
Так же написано, что нет I2S и CAN. Это немного вводит в заблуждение, так как PIO может реализовать эти протоколы.
да, речь про teensy. мне напоминает teensy 2.0.
жаль, что pico разобрали так быстро. ждать апреля-мая…
Teensy 2.0 на AVR, я бы не сравнивал так. Слишком уж она старая.
Тут лучше сравнивать с тем же Cortex M0+. Например, Teensy-LC.

Да, pico быстро разобрали. Я успел только парочку купить, но зато по промо-скидке.
Думал взять ещё, но уже было поздно. Впрочем, не удивительно. Перекупщики и тут малину испортили.
Сегодня заглянул в магазин, где я покупал. Там уже завезли тоже, я даже купил ещё на опыты. Я так понял, что с поставками проблем нет.

Почему ниши нет? Pi Pico, например, почти во всём лучше «Arduino Nano(Pro Mini)». Легко может её заменить.
С Blue Pill вполне можно сравнить, так как у них есть свои плюсы и минусы. Проект может грамотно использоваться плюсы той ли иной платы.
ESP/Nordic немного о другом и поэтому не совсем правильно сравнивать.
Pi Pico, например, почти во всём лучше «Arduino Nano(Pro Mini)». Легко может её заменить.
Программируется в среде Ардуино с ее разнообразием софта и простотой? Может долговременно работать напрямую от LiIon или CR2032? Ардуино Нано(Pro Mini) идеальна для отладки простых устройств, устройств с низким потреблением, впоследствии легко заменяется ATmega328P в DIP или TQFP с обвязкой из 3х конденсаторов, кварца и резистора.

ESP/Nordic немного о другом и поэтому не совсем правильно сравнивать.
Все это платы с микроконтроллерами для прототипирования/встраивания/самоделок, нижнего ценового диапазона, поддерживаемые средой Ардуино.

Я это именно так вижу.
Программируется в среде Ардуино с ее разнообразием софта и простотой?

Не сегодня, но завтра будет. Arduino тоже не сразу портировали на ESP и STM32.

Может долговременно работать напрямую от LiIon или CR2032?

Может. Но тут, конечно, зависит от определения слова «долговременно». Уж очень сложно измерить это слово количественно без дополнительной информации.

… впоследствии легко заменяется ATmega328P в DIP или TQFP с обвязкой из 3х конденсаторов, кварца и резистора.

Верно, именно так было давно. Сам даже так делал в своё время.
Но сейчас в DIP делают редко, да и по больше мере это новички в пайке для упрощения процесса. Но они уже перешли на платы (типа той же Нано), что бы даже с DIP'ом не возиться. Нано не сильно больше ATmega328P в DIP корпусе.
Сейчас возможность сделать на DIP не несёт такой ценности как это было лет 10 назад. Сегодня возможности самого чипа и среды разработки важнее вариаций с корпусом.
Народ ставить гребёнку 2,54 и делает DIP из всей платы если это необходимо. А это можно поставить практически на любую популярную плату.

Про ESP/Nordic я сказал так, потому что они дают беспроводное соединение. Нано и RP2040 такого предоставить не могут и потому они в разных категориях применения.
Конечно, можно использовать ESP32 как обычную Нано для простого управления светом по сенсору, а к Нано добавить WiFi модуль, но мы же говорим про голые МК и платы.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.