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