RP2040 как альтернатива

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

RP2040 как альтернатива

#1

Сообщение Ingwar » 24.01.2023{, 00:07}

Некоторых из нас, начиная с первой волны пандемии и дефицита чипов (как оказалось искусственного), волнует вопрос о доступности и стоимости микроконтроллеров. Камни семейства AVR подорожали и практически исчезли у оф. дилеров. Ну а про STMicroelectronics можно даже не говорить... Мне кажется это их рук дело (инициирование искусственного дефицита) :yes: Подсадить весь мир на дешевые и быстрые камни, а потом, когда куча устройств будет разработано под их чипы - взвинтить цены в потолок. И никуда производители оборудования не денутся, а переложат возросшие расходы на покупателя, ибо разрабатывать устройства заного это время и деньги.
Из реально доступного остались только ESP. Но меня всегда смущало и смущает то, что наш код работает не напрямую с железом и стабильность работы устройства в целом, зависит не только от кривости нашего кода и грамотности изготовленного устройства, но и от программной прослойки (SDK) с его специфическими и не всегда очевидными нюансами.
Итак, в постоянных поисках альтернативы с минимальным уровнем вхождения, а именно с поддержкой IDE, мы замечаем на рынке Raspberry Pi Pico на чипе RP2040, а также различные вариации плат на тему.
После первых восторженных публикаций на форуме я тоже решил присмотреться к "претенденту". Нашел у китайских друзей очень выгодное (на фоне других чипов) предложение. Да, там партия из 500 штук и нужно еще столько же чипов памяти. Но на круг получается 100 рублей за комплект чипа сопоставимого с некоторыми моделями STM (жаль только, что нет FPU). Отложил я это дело в корзину и думал прикупить по случаю себе камушков к выходу на пенсию :smile38: Уже месяц как лежит товар и ждет, когда у меня появятся шальные деньги.
И тут мне на работе удается заказать на пробу десяток в ЧипеДипе. Да за дорого, но деньги не мои, как говориться - не жалко ))
Камни пришли и можно тестить. Для пробы решил не делать отдельно тестовую плату, а заменить микроконтроллер в небольшом существующем проекте. Там и дисплейчик по SPI, и энкодер и пачки импульсов с изменяемой скважностью определенной формы (по принципу формирования синусоиды в частотниках).
Итак, первая нетривиальная задача - плата. Некоторые не заморачиваются и заказывают изготовление, но это не наш метод :smile110:
Пятаки под камушек (для сравнения справа STM32F401 без ножек)
СпойлерПоказать
stm_rp2040.png
Дорожки в 0,2мм не совсем хоббийный размер
Но поскольку есть успешный опыт работы на STM с ногами в 0,3мм
СпойлерПоказать
IMG_20230123_192942.jpg
и без ног
СпойлерПоказать
IMG_20230123_192606.jpg
То берем новенькую фрезу и... почти хорошо
СпойлерПоказать
IMG_20230123_072903.jpg
Скальпелем уберем огрехи, покупаем в жидком олове
СпойлерПоказать
IMG_20230123_082619.jpg
После распайки основных элементов (размер 1206)
СпойлерПоказать
IMG_20230123_103027.jpg
попробуем посадить виновника... Вроде даже попал ))
СпойлерПоказать
IMG_20230123_114112.jpg
IMG_20230123_211635.jpg
Плата минимально для проверки собрана, пробую подключиться по USB и обламываюсь...
СпойлерПоказать
usb_rp2040.png
Поднимаю, сажаю по новой камень и кварц - пофигу. На одном из фото видны 2 резистора по 120 Ом. Эти "товарищи" стоят в сигнальных цепях USB. По рекомендации производителя необходимы сопротивления в р-не 27 Ом.
However, these I/Os do require 27Ω series termination resistors (R3 and R4 in Figure 9), placed
close to the chip, in order to meet the USB impedance specification.

Но переводить мне было дальше лень и у меня все равно таких нет. Ну и по классике "кашу маслом не испортишь" как итог поставил 120 Ом. Хотя если почитать умную книжку дальше, то обнаружим:
Even though RP2040 is limited to full speed data rate (12Mbps), we should try and makes sure that the characteristic
impedance of the transmission lines (the copper tracks connecting the chip to the connector) are close to the USB
specification of 90Ω (measured differentially). On a 1mm thick board such as this, if we use 0.8mm wide tracks on
USB_DP and USB_DM, with a gap of 0.15mm between them, we should get a differential characteristic impedance of
around 90Ω.

Каюсь, я это прочитал значительно позже. А перед этим просто предположил, что повышенное сопротивление линии передачи данных срежет фронты сигнала. Подумал и ... тупо впаял перемычки на 0 Ом))
Включил опять и бинго
СпойлерПоказать
usb_rp2040_good.png
В проводнике появился дополнительный диск и вот его содержимое
СпойлерПоказать
expl_rp2040.png
В IDE добавил плату, нарисовал блинк и даже "прошил"
СпойлерПоказать
ide_rp2040_1.png
но на GPIO3 тишина...
Буду дальше копать буржуйские сайты в поисках "что/куда/залить/прошить".
А так же не откажусь от совета знающих в целях экономии времени ))).
Предварительно могу сказать собственные ощущения о "претенденте" на альтернативу:
плюсы - цена, доступность
минусы - для домашнего изготовления не всем подойдет, нет аппаратной поддержки вычислений с плавающей запятой
Что касается реализации аппаратных возможностей в IDE ничего сказать пока не могу. Но если будут траблы с PWM и прерываниями, то камень не для меня.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

Аватара пользователя
DrMario
Лейтенант
Сообщения: 371
Зарегистрирован: 07.11.2016{, 13:11}
Репутация: 58
Откуда: Камень-на-Оби
Имя: Евгений
Контактная информация:

RP2040 как альтернатива

#2

Сообщение DrMario » 24.01.2023{, 00:25}

Хороший пост, даже порадовался за автора. Но высказывание буржуйские сайты огорчило

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

RP2040 как альтернатива

#3

Сообщение Ingwar » 24.01.2023{, 01:08}

DrMario писал(а):
24.01.2023{, 00:25}
Но высказывание буржуйские сайты огорчило
Никакой подоплеки в эту фразу я не вкладывал. Для многих выросших в СССР это просто синоним "зарубежные".

Отправлено спустя 8 минут 25 секунд:
Пока застрял на том, что при подключении с любым состоянием на пине QSPI_SS, контроллер стартует в режиме RP2 Boot.
И закидывание в него flash_nuke.uf2 приводит только к перезагрузке... А по факту режим загрузки не пропадает и не появляется COM. Даже любопытно, куда "грузит" IDE скомпилированный скеч?)))
Пишет, что в СОМ4, но в диспетчере нет последовательных портов...
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 452
Откуда: Шатура
Имя: Энвер

RP2040 как альтернатива

#4

Сообщение ecoins » 24.01.2023{, 06:54}

Ingwar писал(а):
24.01.2023{, 01:17}
Пока застрял на том, что при подключении с любым состоянием на пине QSPI_SS, контроллер стартует в режиме RP2 Boot.
И закидывание в него flash_nuke.uf2 приводит только к перезагрузке... А по факту режим загрузки не пропадает и не появляется COM. Даже любопытно, куда "грузит" IDE скомпилированный скеч?)))
Пишет, что в СОМ4, но в диспетчере нет последовательных портов...
Так получается грузить скетчи?
У нас на готовых модулях получается просто.
Да, есть особенности первого запуска - необычно что не надо первый раз указывать в Arduino IDE номер порта - после первой загрузки он присваивается.
Немного об этом здесь viewtopic.php?f=227&t=8171#p116440

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

RP2040 как альтернатива

#5

Сообщение Ingwar » 24.01.2023{, 11:20}

ecoins, спасибо за ссылку на другое ядро.
Продолжение танцев с бубном :smile250:
По рекомендации ecoins добавил другое ядро в IDE. Тот же блинк в качестве теста, различные версии плат... а изменилась только информация о загрузке.
СпойлерПоказать
ide_rp2040_2.png
По прежнему что то пишется на диск, камень перегружается, но продолжает стартовать в режиме boot и сам накопитель содержит содержит 2 файла.
Кстати, пробовал их удалять... IDE ругается, но после сброса прежние файлы опять на диске))
Стал смотреть - а есть ли вообще обращение к флеш во время старта. Есть и даже неоднократно, после отпускания кнопки сброса, SS "тянется" к земле много раз. Решил глянуть - а есть ли обмен (хотя это за гранью моего понимания) ...
Открываем даташит на память, а там 3 режима работы)) Ну ножек 6, а щупов 4 и мой выбор очевиден - буду считать, что используется Standard or Dual SPI instructions.
Подключаемся, делаем сброс, пишем... К сожалению скрин на тот период делать не стал просто менял развертку и снова сбрасывал, но поверьте на слово - хрень полная)))
Ну не может (точнее не должен) сигнал на линии данных иметь форму экспоненты!!!
Посидел, "почесал репу", подумал флешь перепаять ..., а раз щупы подключены, дай думаю посмотрю, что происходит в момент "прошивки" из IDE.
Картинка более чем адекватная
СпойлерПоказать
RigolDS0.png
но главное не в этом!!!
Произошло "чудо" после прошивки с подключенными щупами - система увидела "Устройство с последовательным интерфейсом" и заработал блинк... :smile44:
Ну и IDE распознала пациента.
СпойлерПоказать
ide_rp2040_3.png
Немного изменяем скетч, заливаем (с подключенными щупами) - удачно.
Убираю щупы, прошиваю - удачно.
Ну что же, буду считать квест "сделай свою Pico" завершенным )). Хотя вопрос о первоначальной прошивке остается открытым.
Да, у меня линии на флеш имеют разную длину (до сантиметра) и геометрию. Но в Hardware design with RP2040 какие то особые требования к распайке внешней памяти не оговариваются.
Наверняка есть некие требования к схемотехнике SERIAL FLASH, но я как истинный ... сначала делаю, потом читаю :smile390:
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 452
Откуда: Шатура
Имя: Энвер

RP2040 как альтернатива

#6

Сообщение ecoins » 24.01.2023{, 11:54}

Ingwar писал(а):
24.01.2023{, 11:20}
Произошло "чудо" после прошивки с подключенными щупами - система увидела "Устройство с последовательным интерфейсом" и заработал блинк.
Отлично и полезно. У нас тоже в планах уходить от платы непосредственно к чипу.
Вы писали о последовательных резисторах USB - на родном модуле стоят 27 ом
raspberry-pi-pico-schematic.jpeg
==================
Очень бы хотелось "поднять" в Arduino IDE и далее в FLProg функции Wi-Fi на модуле Raspberry Pi Pico W.
Модули есть, а вот текущих возможностей позаниматься этой задачей пока нет.
Если кому-то интересно и готов поисследовать (совсем не обязательно с законченным результатам), готовы оперативно выслать модуль.

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

RP2040 как альтернатива

#7

Сообщение Phazz » 24.01.2023{, 14:42}

ecoins, пробежал бегло, синтаксис практически одинаковый с ESP

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 452
Откуда: Шатура
Имя: Энвер

RP2040 как альтернатива

#8

Сообщение ecoins » 24.01.2023{, 15:04}

Phazz писал(а):
24.01.2023{, 14:42}
ecoins, пробежал бегло, синтаксис практически одинаковый с ESP
Может попробуете повозиться? Мы бы прислали бы и плату, и стандартные отладочные платы, и наш стенд.
Пока мы с Wi-Fi использовали через функции левого окна (под ESP8266 или ESP32) - здесь видимо придется (и правильнее) делать отдельным блоком. Хорошо бы с функциями как например с Wi-Fi -manager и хотелось бы без delay (очень любят для ожидания подключения делать что-то вроде delay(5000).
Вообще в комплексе задача не тривиальная.
Может возьметесь? Линия Raspberry Pi Pico сразу может стать приоритетной - по сравнению с ESP32 не дороже, а все остальное и лучше, и перспективнее,

fsergei70
Капитан
Сообщения: 786
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 54
Имя: Сергей

RP2040 как альтернатива

#9

Сообщение fsergei70 » 24.01.2023{, 15:17}

ecoins писал(а):
24.01.2023{, 15:04}
по сравнению с ESP32 не дороже
Что то цены походу повысились. Сейчас Raspberry Pi Pico без WIFi плюс ESP-01 подешевле будут.

Отправлено спустя 2 минуты :
Вы по чем покупали Raspberry Pi Pico W если не секрет. Может ссылочку дадите на продавца
Последний раз редактировалось fsergei70 24.01.2023{, 15:20}, всего редактировалось 1 раз.

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

RP2040 как альтернатива

#10

Сообщение Phazz » 24.01.2023{, 15:20}

ecoins, можно попробовать). Но честно сказать в плане вэб не смогу много сделать.

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 452
Откуда: Шатура
Имя: Энвер

RP2040 как альтернатива

#11

Сообщение ecoins » 24.01.2023{, 15:26}

Phazz писал(а):
24.01.2023{, 15:20}
ecoins, можно попробовать). Но честно сказать в плане вэб не смогу много сделать.
Отлично. И в я в плане web не очень, но в команде ecoins есть у кого консультации можно получить.
Совместными усилиями что-то сделаем.
Вышлите в личку координаты, завтра отправим.

Отправлено спустя 9 минут 35 секунд:
fsergei70 писал(а):
24.01.2023{, 15:19}
Вы по чем покупали Raspberry Pi Pico W если не секрет. Может ссылочку дадите на продавца
https://aliexpress.ru/store/1897172?spm ... 4aa6X4aVmu
Если тема интересна, может и подключитесь?

fsergei70
Капитан
Сообщения: 786
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 54
Имя: Сергей

RP2040 как альтернатива

#12

Сообщение fsergei70 » 24.01.2023{, 16:00}

Ссылка не работает.
Сейчас смотрю у других продавцов цена Raspberry Pi Pico W в 2 раза выше чем ESP32.

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 452
Откуда: Шатура
Имя: Энвер

RP2040 как альтернатива

#13

Сообщение ecoins » 24.01.2023{, 16:09}

fsergei70 писал(а):
24.01.2023{, 16:00}
Ссылка не работает.
Сейчас смотрю у других продавцов цена Raspberry Pi Pico W в 2 раза выше чем ESP32.
https://aliexpress.ru/item/100500472600 ... 1665662101
Около 500р.

fsergei70
Капитан
Сообщения: 786
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 54
Имя: Сергей

RP2040 как альтернатива

#14

Сообщение fsergei70 » 24.01.2023{, 16:13}

ecoins писал(а):
24.01.2023{, 16:09}
Около 500р.
и доставка еще 500. Стоит ли игра свеч?

Отправлено спустя 2 минуты 59 секунд:
Я пару месяцев назад по 180 покупал без WIFI. Похоже замануха у китайцев закончилась.
Вложения
Безымянный.jpg

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 452
Откуда: Шатура
Имя: Энвер

RP2040 как альтернатива

#15

Сообщение ecoins » 24.01.2023{, 16:16}

fsergei70 писал(а):
24.01.2023{, 16:13}
и доставка еще 500. Стоит ли игра свеч?
На наш взгляд стоит. Просто Raspberry Pi Pico тоже были дорогими, теперь подешевели.
В итоговых проектах самым дорогим остается soft, в подобных проектах стоимость "железа" не существенна.
Цена сопоставима с ESP32S3.

fsergei70
Капитан
Сообщения: 786
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 54
Имя: Сергей

RP2040 как альтернатива

#16

Сообщение fsergei70 » 24.01.2023{, 16:26}

А PIO блоки в ядре для ардуино реализованы? А то получается как с CTM32, контроллеры хорошие а простенький проект память сжирает и DMA нет.

Отправлено спустя 10 минут 55 секунд:
Буду пробовать pico без wifi, потому что есть 5 шт в наличии, и esp всегда можно прикрутить если WIFI понадобится. А по цене дешевле будет

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 452
Откуда: Шатура
Имя: Энвер

RP2040 как альтернатива

#17

Сообщение ecoins » 24.01.2023{, 16:40}

fsergei70 писал(а):
24.01.2023{, 16:37}
А PIO блоки в ядре для ардуино реализованы?
В явной форме не видел, но освоить было бы "мощно".

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

RP2040 как альтернатива

#18

Сообщение Ingwar » 24.01.2023{, 20:11}

Результаты нескольких тестов.
Простой генератор с выходом на пин - минимальный период 4мкс. Джиттер присутствует.
ШИМ на любом пине - работает.
Два независимых ядра - работает с оговоркой. Полной независимости нет. В качестве теста использовал: на одном ядре генератор на период 2мкс с выходом на пин и счетчик с преобразованием результата в стринг, на другом дисплей ST7565 с софтовым SPI, ШИМ подсветкой и выводом на экран постоянного значения в каждом цикле.
Код первого ядра запущенный соло дает на выходном пине период 42мкс. Включение второго ядра увеличивает период на 15мкс. Добавление чтения вторым ядром значения счетчика (стринг) прибавляет еще 15мкс. Увеличение времени цикла не могу назвать ни абсолютным, ни относительным. Просто поленился менять проекты.
Функция "разгона" работает. Увеличение штатной частоты с 133Мгц до 250Мгц кратно уменьшило время цикла.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

Аватара пользователя
bsn
Лейтенант
Сообщения: 347
Зарегистрирован: 22.07.2018{, 07:24}
Репутация: 90
Откуда: Ростовская обл.
Имя: Сергей

RP2040 как альтернатива

#19

Сообщение bsn » 24.01.2023{, 20:58}

Ingwar писал(а):
24.01.2023{, 00:07}
Итак, в постоянных поисках альтернативы с минимальным уровнем вхождения, а именно с поддержкой IDE, мы замечаем на рынке Raspberry Pi Pico на чипе RP2040, а также различные вариации плат на тему.
Уважаемый Ingwar сдаётся мне, что Ваша, безусловно очень полезная и нужная тема, не совсем логично помещена в раздел "Просто поболтать". Из болтологии тут, разве совсем немного чьих-то печальных стенаний, в виде обиды про "буржуйские сайты"(ну и моего данного текста) :smile38: .
Всё остальное очень по делу, с кучей примеров и обсуждений про освоение новой технологической линейки. Если, со временем, тема уйдёт вниз - то видимо её проще будет искать, например, в разделе "Пользовательские контроллеры".
Так и хочется проплюсовать Ваше творческое начинание. Но в разделе про болтологию оценки логично не предусмотрены.
Прошу Вас перенести эту замечательную тему в технический раздел, например "Пользовательские контроллеры". Или прошу наших админов помочь Вам это сделать.

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

RP2040 как альтернатива

#20

Сообщение Ingwar » 25.01.2023{, 08:17}

Провел тест вычислений с флоат - жесточайшее разочарование...
Точность всего семь знаков!!! Не важно где запятая. Например в результате вычислений получили 1234567,8 и в этом числе 100% число "8" НЕВЕРНОЕ.
А если результат 87654321,01 то НЕВЕРНЫЕ цифры начиная с "1" и далее вправо.
Это фиаско :shok:
AVR на максималках (

Отправлено спустя 58 минут 47 секунд:
Интересное добавление к ядру от Earle Philhower's
https://github.com/khoih-prog/RPI_PICO_TimerInterrupt
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

Ответить

Вернуться в «Пользовательские контроллеры»