Из реально доступного остались только ESP. Но меня всегда смущало и смущает то, что наш код работает не напрямую с железом и стабильность работы устройства в целом, зависит не только от кривости нашего кода и грамотности изготовленного устройства, но и от программной прослойки (SDK) с его специфическими и не всегда очевидными нюансами.
Итак, в постоянных поисках альтернативы с минимальным уровнем вхождения, а именно с поддержкой IDE, мы замечаем на рынке Raspberry Pi Pico на чипе RP2040, а также различные вариации плат на тему.
После первых восторженных публикаций на форуме я тоже решил присмотреться к "претенденту". Нашел у китайских друзей очень выгодное (на фоне других чипов) предложение. Да, там партия из 500 штук и нужно еще столько же чипов памяти. Но на круг получается 100 рублей за комплект чипа сопоставимого с некоторыми моделями STM (жаль только, что нет FPU). Отложил я это дело в корзину и думал прикупить по случаю себе камушков к выходу на пенсию Уже месяц как лежит товар и ждет, когда у меня появятся шальные деньги.
И тут мне на работе удается заказать на пробу десяток в ЧипеДипе. Да за дорого, но деньги не мои, как говориться - не жалко ))
Камни пришли и можно тестить. Для пробы решил не делать отдельно тестовую плату, а заменить микроконтроллер в небольшом существующем проекте. Там и дисплейчик по SPI, и энкодер и пачки импульсов с изменяемой скважностью определенной формы (по принципу формирования синусоиды в частотниках).
Итак, первая нетривиальная задача - плата. Некоторые не заморачиваются и заказывают изготовление, но это не наш метод
Пятаки под камушек (для сравнения справа STM32F401 без ножек)
Но поскольку есть успешный опыт работы на STM с ногами в 0,3мм
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 Ом))
Включил опять и бинго
Буду дальше копать буржуйские сайты в поисках "что/куда/залить/прошить".
А так же не откажусь от совета знающих в целях экономии времени ))).
Предварительно могу сказать собственные ощущения о "претенденте" на альтернативу:
плюсы - цена, доступность
минусы - для домашнего изготовления не всем подойдет, нет аппаратной поддержки вычислений с плавающей запятой
Что касается реализации аппаратных возможностей в IDE ничего сказать пока не могу. Но если будут траблы с PWM и прерываниями, то камень не для меня.