LINUX.ORG.RU

Raspberry Pi Pico

 , ,

Raspberry Pi Pico

2

4

Команда Raspberry Pi выпустила плату на кристалле RP2040 с 40-нм архитектурой: Raspberry Pi Pico.

Спецификация RP2040:

  • Двухядерный Arm Cortex-M0+ @ 133МГц
  • 264Кб RAM
  • Поддержка до 16МбFlash памяти через выделенную шину QSPI
  • DMA контроллер
  • 30 GPIO пинов, 4 из которых могут быть использованы как аналоговые входы
  • 2 UART, 2 SPI и 2 I2C контроллера
  • 16 ШИМ каналов
  • USB 1.1 контроллер с поддержкой host-режима
  • 8 Raspberry Pi I/O (PIO) программируемых конечных автоматов
  • Режим USB mass-storage boot с поддержкой прошивки через UF2

Raspberry Pi Pico разработана как оригинальная, недорогая (цена всего 4$) плата для RP2040. Она содержит RP2040 с 2 Мб флэш-памяти и микросхемой блока питания, поддерживающего входное напряжение от 1,8 до 5,5 В. Это позволяет питать Pico от различных источников, включая две или три AA батареи последовательно или от одного литий-ионного аккумулятора.

На базе чипа RP2040 так же скоро будут доступны платы от сторонних производителей:

Adafruit ItsyBitsy RP2040

Adafruit Feather RP2040

SparkFun Thing Plus - RP2040

Документация

>>> Подробности

★★★★☆

Проверено: Shaman007 ()
Последнее исправление: atsym (всего исправлений: 5)

Ответ на: комментарий от Legioner

Ух ты… С другой стороны в РФ такого магазина вообще нет. Но и в этом магазине ничего в наличии нету.

kirill_rrr ★★★★★
()
Ответ на: комментарий от skyman

Интересно было бы пощупать что-то подобное, но с каким нибудь микро линуксом

удвою. Самое дешевое, что я находил умеющего в линукс – это orange pi one за 500 руб

pihter ★★★★★
()
Ответ на: комментарий от Reset

Зачем там ось?

если там нет ОСи, то блин, зачем это? Микроконтроллеров как грязи. Я уж разул варежку, думал так какой-никакой линукс со всеми плюшками, а так – 640 atmega8 хватит (почти) всем.

pihter ★★★★★
()
Последнее исправление: pihter (всего исправлений: 1)
Ответ на: комментарий от ahdenchik

Не совсем - FPU и MMU бывают в кортексах 3-4

MPU, а не MMU.

gag ★★★★★
()
Ответ на: комментарий от Harald

Линукс можно запустить?

нет

Тогда зачем переводить на это кремний, которого может не хватить? :) (судя по последним новостям автопрома)

pihter ★★★★★
()
Ответ на: комментарий от kirill_rrr

что этим можно делать?

все то же, что и на обычных мегах – люди вон пароли вводят. Только на мегах проще, дешевле, ламповее )

pihter ★★★★★
()
Ответ на: комментарий от EXL

вангую, будет очередная ардуина-компатбл плата.

vvviperrr ★★★★★
()
Ответ на: комментарий от cocucka

Зачем тебе линукс в этой фитюльке?

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

pihter ★★★★★
()

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

ZERG ★★★★★
()
Ответ на: комментарий от pihter

Под линукс масса возможностей готовых

Например? Можно мигать светодиодом через системд?

cocucka ★★★★☆
() автор топика
Ответ на: комментарий от mv

Не, так себе идея.

Лучше бы 1.8-24v сделали, чтобы в бортовую сеть автомобиля тоже можно было напрямик цеплять.

Наученный предыдущим горьким опытом с первой версией своего CarPC, зарёкся что-либо из плат общего назначения пихать напрямую в бортовую сеть. Вторую версию заказывал уже в специсполнении, с лаком и всё по-взрослому. И все возможные развязки. Сразу.

Тут проблема не в том, что преобразователь напряжения сожрёт место на плате и сделает плату слегка более дорогой, в конце-концов, он стоит копейки. Тут проблема в том, что температура, вибрация и охлаждение это отдельные вопросы, которые решать приходится, если мы хотим CarPC именно, а не какое-то быдлоподелие, которое спалит сеть а/м в самый неподходящий для этого момент. Например, душевнейше не рекомендую для охлаждения платы брать забортный воздух напрямую. Ибо конденсат будет, откуда появится повышенная коррозия. Ну и ещё море вопросов типа такого. Неочевидно на первый взгляд, но шишки набиваются только в путь.

И, если пихнуть напрямую самопал в бортовую сеть, то неясно как на этот самопал эта самая сеть отреагирует. Обидно выжечь мозги а/м выехав куда-нибудь в лес, к чёрту на рога, где связь только по «Иридиуму».

Moisha_Liberman ★★
()
Ответ на: комментарий от kirill_rrr

Если именно этим,

то какую-нибудь управлялку «умными выключателями» или «умными розетками», что-нибудь типа такого. Или, если навесить какую-нибудь самопальную метеостанцию, то отображение информации с неё на какой-нибудь монитор.

Тут применён Cortex-M0, это самый «дохленький» по возможностям проц из семейства ARM, так что что-то серьёзное тут запускать вряд ли получится, программирование тут либо bare metal (сразу, т.е., без ОС), либо взгромоздить туда что-нибудь типа FreeRTOS. Но, хоть проц и дохленький по вычислительным возможностям, жрёт по питанию он крайне мало. Отсюда заява про пару батареек AA.

Вот ещё подумалось что можно на базе этой платки сгондобить какие-нибудь «умные счётчики» на электроэнергию, воду, газ. Считать импульсы хватит. Вопрос передачи данных на центр мониторинга можно решить сторонними средствами.

Ну вот, как-то вот так, в общем.

Moisha_Liberman ★★
()
Ответ на: комментарий от kirill_rrr

То же самое что и с любым другим, разве что тут прошивка просто через стандартный ФМ закидывается, не нужен прогамматор и понимание того как оно вообще работает.

anonymous
()
Ответ на: комментарий от skyman

Расскажите неосведомлённым, как для неё софт писать? Так же как и ардуино (написал setup и loop функции на сях и залил по усб), или что-то другое?

По ссылке написано Си или Питон.

fehhner ★★★★★
()
Ответ на: комментарий от Harald

на atmega вот можно! Даже с графоном!

anonymous
()
Ответ на: Если именно этим, от Moisha_Liberman

Найти бы по рекомендованной цене в 4$. У нас поди завезут будет по 10~15, а по началу все 20~30 загнут и не поморщатся. Ща ещё вдруг майнеры применение найдут типа через эти хрени аппаратные таблетки делать например и всё ГГшенька

anonymous
()
Ответ на: комментарий от skyman

Всё... "просто". =)

как для неё софт писать

Я бы сказал что под эту платку bare metal это наше всё. Т.е., берёте crossdev в Gentoo, ставите его (emerge crossdev), дальше собираете через crossdev нужный Вам для данного случая toolchain. В toolchain входят:

  • gcc для данного проца; Компиль, линкер, вот это вот всё.
  • glibc или иная библиотека run time. Варианты musl, uClibc, но они разве что имеют меньший размер чем glibc, по скорости исполнения они не быстрее;
  • binutils для данного проца; Т.е., тот же objdump, например, будет у Вас и для Вашей основной системы и для данного процессора.

Как готовить toolchain для именно этого проца я не в курсе, там бы посмотреть надо на спеки, а рыться сейчас лень. В общем и целом «техпроцесс» расписан здесь – https://wiki.gentoo.org/wiki/ARM. Только надо учитывать что для Cortex M0 ядро проца будет по-моему, armv6-m архитектуры, навскидку не помню.

Т.е., положим, с toolchain Вы разобрались. Дальше надо подготовить QEMU/KVM чтобы иметь возможность спокойно и без напряга разбираться с программированием. Поверьте, это дешевле чем напрямую на железо пытаться сразу писать.

Т.е., в /etc/portage/make.conf вписываем как минимум:

QEMU_SOFTMMU_TARGETS=«arm»

QEMU_USER_TARGETS=«arm»

Далее делаем emerge qemu kvm; gpasswd -a [you_login] kvm. У Вас две записи в make.conf позволят Вам собрать и qemu-system-xxx для эмуляции всей системы, включая периферию (например, с Linux или Windows на борту). И qemu-xxx, которая позволяет запускать отдельные приложения, без ОС, что очень хорошо подходит для bare metal как раз. Т.е., в Вашем случае запуск некоего Вашего приложения, которое вы напишите, скомпилите тулчейном в некий my_soft.img (например), будет выглядеть как qemu_arm … my_soft.img.

Ну а дальше смотрите спеки на проц, определяйтесь с адресами, веткорами и вперёд и с песней. Для начала как минимум Вам следует понять что нужно проинициализировать в процессоре (и как именно) при его старте (подаче питания).

Это, скажем так, я расписал «крупными мазками» путь программирования этой железки. Там ещё будет хренова гора тонкостей. Но путь эмбеддера, это Вам не на пистончике отступы считать, тут… «работа тонкая, понимать надобно». =)))

Moisha_Liberman ★★
()
Ответ на: Не, так себе идея. от Moisha_Liberman

И, если пихнуть напрямую самопал в бортовую сеть, то неясно как на этот самопал эта самая сеть отреагирует. Обидно выжечь мозги а/м выехав куда-нибудь в лес, к чёрту на рога, где связь только по «Иридиуму».

Я именно так и езжу. http://jamesbayroad.com/ttr/ Приблуда на Arduino Due + двойной CAN-шилд: https://github.com/vtl/volvo-ddd И ещё всякой фигни воткнуто.

От вибрации и штатная электроника, бывает, глючит.

mv ★★★★★
()
Ответ на: комментарий от mv

Я тут случайно обнаружил, что джамп на этом поделии выполняется 2 микросекунды

код где выполняется - в SRAM или FLASH ? Для встронной SRAM цифра какая-то неправильная

anonymous
()
Ответ на: комментарий от anonymous

код где выполняется - в SRAM или FLASH ? Для встронной SRAM цифра какая-то неправильная

Не знаю. Всё остальное быстро работает, только бранчевание медленное.

mv ★★★★★
()
Ответ на: Если именно этим, от Moisha_Liberman

А с реальным миром оно как может взимодействовать? Допустим считать напряжения с датчиков понятно, а какое нибудь реле оно может дёргать? А с другими (какими?) устройствами взаимодействовать?

И дохленький цпу это насколько дохленький? Контроллер векторного электропривода на такой плате может быть реализован, или не вывезет столько каналов на достаточной скорости обрабатывать?

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 1)
Ответ на: комментарий от ahdenchik

Не совсем - FPU и MMU бывают в кортексах 3-4

MMU на cortex-m вроде не бывает. А вот в FPU согласен. и да, там для cortex-m0 еще и несколько упрощенный набор команд.

abondarev ★★★
()
Ответ на: комментарий от kirill_rrr

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

nioelumiijke
()
Ответ на: комментарий от skyman

Интересно было бы пощупать что-то подобное, но с каким нибудь микро линуксом

А линукс без линукса подойдет? :) Тогда можно Embox запихнуть. Он и куда меньшей EFM32 работает

abondarev ★★★
()
Ответ на: Всё... "просто". =) от Moisha_Liberman

Я бы сказал что под эту платку bare metal это наше всё. Т.е., берёте crossdev в Gentoo, ставите его (emerge crossdev), дальше собираете через crossdev нужный Вам для данного случая toolchain. В toolchain входят:

Зачем придумывать, почему нельзя просто прочитать по ссылке? Берёшь, пишешь простейший код на си в обычном ардуино иде, заливаешь туда и оно мигает твоими лампочками. А эта поделка ещё и питон поддерживает.

fehhner ★★★★★
()
Ответ на: комментарий от kirill_rrr

Например, учиться программированию. Настоящему. Весь код открыт, архитектура проста и понятна, документация открыта, SDK в наличии и под нормальной лицензией (кроме некоторых сторонних компонентов, ох уж эти GPLщики со своими исключениями). Полноценный дебаггер, он же программатор собирается из второго Pi Pico заливкой образа через режим «mass storage».

Двухядерный с любопытной организацией памяти: 4kb + 4kb + 64kb + 64kb + 64kb + 64kb, но в то же время современная «плоская» модель. Есть возможность пересылать данные между ядрами через специально выделенный аппаратный блок.

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

anonymous
()
Ответ на: комментарий от kirill_rrr

Для несведущих в микроконтроллерах вообще, что этим можно делать?

Посмотри Alex Gyver на ютубе, он постоянно что-то на русском языке собирает.

fehhner ★★★★★
()
Последнее исправление: fehhner (всего исправлений: 1)
Ответ на: комментарий от kirill_rrr

Реле управлять может(как и все микроконтроллеры, через ключ с обвязкой от эдс самоиндукции). Если более-менее делали на слабой ардуине любительские электропривода с векторным управлением, то эта железка должна потянуть полюбому. А так стандартный набор протоколов(i2c, spi, uart) позволяют работать с жк. дисплеями, с цветными жк. дисплеями, с внешними eeprom, с датчиками тока, или например работать с внешним приемо-передатчиком на 2,4 ГГц, модулями SIM, bluetooth, wifi. И прочее и прочее.

NightFobos
()
Ответ на: комментарий от kirill_rrr

А с другими (какими?) устройствами взаимодействовать

У сабжа есть:

  • аппаратная реализация UART;
  • аппаратная реализация SPI;
  • аппаратная реализация I2C;
  • отдельный контроллер ввода-вывода со своим набором специализированных инструкций для всего остального.

Это не считая GPIO и аппаратного Full Speed USB 1.1 (и девайс и хост).

На гитхабе есть репозиторий с примерами.

anonymous
()
Ответ на: комментарий от mv

Во! Круто!

Респект и уважуха, однако.

Я пошёл, правда, несколько иным путём. Я CarPC первую версию сгондобил на базе Raspberry Pi 2. Сейчас четвёртая, с 8Gb RAM. И плата уже под заказ сделана. Так дороже, но и надёжнее.

Во-во… Именно:

От вибрации и штатная электроника, бывает, глючит.

Хоть у меня и Mazda BT-50, под покатушки по асфальту такие агрегаты не берут, всё больше по буеракам, но перебрать дохрена чего пришлось, да и жгуты поменять, т.к. пора уже, да и на дизелях от паров соляры, которые хотите-не хотите, но есть, проводка становится со временем деревянной. И можно доездиться до того, что ёлочная гирлянда будет вместо проводов. Видел разок такого клоуна.

Фоток не делал, да и фотографун из меня как из говна пуля, так что просто «на словах» опишу что за проблемы приключились. Чем читать «вопли» про «горизонт завален» и прочую хню. Или читать «а пачиму ни на Qt?!?»

Короче, в качестве башки я не стал делать два экранчика. В Вашем решении понятно почему именно так. У меня есть сразу HDMI, 7" тач полез как родной в панель. Панель взял за 1600р., которая предназначена на замену штатной и позволяет ставить магнитолу 2 DIN. Про то, что тачскирин завёлся в полпинка, даже не говорю.

Из софта – ОС православная генточка под ARM, шевелится нормально, на 4-й малинке, так вообще чума. Понятно что realtime на Linux недостижим, но лишнее всё вырублено без жалости. Графон – XFCE в режиме киоска, хотя, если чё, то emerge –sync; emerge -uDN @ world, стоя возле дома, не проблема сделать. =) Или по wifi качнуть фильмов, музычки в дорогу. У меня гараж возле моего частного дома, так что wifi есть даже в гараже. =)

Из софта – основа это конечно аналог «сканнера» ODB-II, отображение текущего статуса (то, что у Вас на мелком экранчике выведено), ошибки, если не дай Бог возникают, учёт средств (статистика заправок, показания сколько проехал с одометра), напоминалки по замене расходников (расчёт замены масла по километражу, с одометра то же самое). Показания снимаю по проводу, никакого bluetooth, и так любопытных «умников» девать вокруг некуда. Прикрутил туда датчики давления в шинах (на песке или болоте иной раз шины чуток приспускаю, при выезде на трассу лучше бы подкачать чтобы меньше расход был и лучше такие вещи не забывать), парктроники, камера у меня в комплекте с навигатором, да и к габаритам уже давно как привык, но для гарантии нелишне.

Вот тут-то засада и приключилась с первой версией. Полез чего-то печку посмотреть, снял панель, глянул на схему и прифигел. Коррозия, мать её. Понятно что если перегорит, то полбеды. Беда может случиться, если как раз замкнёт. Неприятно на разъёме ODB-II словить 12V. Реакция железа машины может быть… непредсказуемой. Ну и как Вы сами понимаете, западло может случится не где-нибудь в Московской области, а где-нибудь в районе Лабытанги (название нас пункта взято чисто для примера, со связью там нормально всё). И будешь сидеть-куковать с палёным движком до следующего длинномера, идущего по зимнику. Приятного мало, как я перспективы прикинул. После этого плату и зарядил себе в специсполнении. Софт только перекомпилировать пришлось.

Ну и так… приятные мелочи из софта и железа типа наблюдения за машиной, если за рулём не я, а жена, например. Всего уже не перечислишь.

Навигатор у меня отдельно, я на Garmin плотно и давно сижу, сейчас вот Drive 51 RUS LMT. Слава Богу, есть примерно в 40 городах по РФ, где бываю и где это важно из-за возможных пробок, развёрнутая TMC, там приёмник есть штатно, плюс, по Подмосковью рисует развязки грамотно. Короче, это не Яндекс-Нафигатор, ему «сеть» как таковая ненужна.

По сканнеру я конечно сильно убился. С софтом у меня накладочка вышла – пришлось сильно матчасть почитать, т.к. MAzda BT-50 это Ford Ranger в девичестве, по крайней мере, по запчастям на 80% где-то совпадает. Но вот контроллеры там могут быть одной из двух версий, пришлось копать тему. По железу, кстати, тоже. У меня нет вообще разёмных соединений кроме одного – самого по себе подключения на разъём ODB-II справа под рулём в кабине. А так-то везде пайка, я специально так герберы и разводил, чтобы минимизировать число разъёмных соединий. Резон тот же – коррозия и вибрация. Весь модуль упрятан в алюминиевый корпус, ввод кабелей через резиновые уплотнители. Охлаждение – воздух из салона и два вентилятора внутри отсека под магнитолу. Причина та же – забортный воздух более влажный, коррозия обеспечена. Охлаждение проца сразу на корпус выведено через термопасту и частота памяти/проца там не разогнана, это лишнее. Правда, на 4-ке пришлось микропрограмму менять, т.к. в первых версиях столкнулся с тем, что грелась она уж больно от души как-то. Сейчас, вроде, нормально всё. Понятно, что на экран состояние всего CarPC, температура загрузка и прочее, всё выводится.

Ладно. Тут долго можно. И так изините что так длинно получилось.

В любом случае, как бы там ни было, приятно увидеть человека, который на той же теме «сдвинут». =) Как говорят мои собратья-пикаповоды, «ща, ещё 200 метров и асфальт». Желаю чтоб всегда была возможность доехать своим ходом. Судя по приведённой Вами карте, тоже в жёстковатых условиях катаетесь. =)

Moisha_Liberman ★★
()
Последнее исправление: Moisha_Liberman (всего исправлений: 1)
Ответ на: Во! Круто! от Moisha_Liberman

После этого плату и зарядил себе в специсполнении.

а специсполнение в чём заключается?

Harald ★★★★★
()

Эмммм… а вот если взять value line STM32F730, он вроде как по всем параметрам лучшее и дешевлее.

Что подозрительно:

  • USB без кварца не умеет
  • QSPI только один (нельзя 2 штуки запараллелить и гонять без простоев)
  • Ядро без плавучки

Но конкуренция это всегда хорошо.

Vit ★★★★★
()

После того как разобрал приборную панель автомобиля жены, и нашел на плате atmega 368p в qfp - уже ничему не удивлюсь в CarPC.

windows10 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.