Неисповедимы пути микроконтроллеров...

Mar 31, 2022 20:12

Весьма странная ситуация с ценами линейки Raspberry Pi
Вот взять, хотя бы, Zero последней версии 2W: Википедия сообщает, что он стоит $15, но ни у farnell ни у mouser их нет в наличии, на амазоне же торгуются по $78, у китайцев с али запросы чуть скромнее - по $68, но тем не менее...
Хотя та же википедия вообщает, что Zero - модель 2021 года, то есть она в настоящее время должна вовсю производиться и повода взвинчивать цены быть не должно. На практике, судя по всему, есть некие сложности.

Зато с моделью Pico ситуация обратная. При объявленной в Вики цене $5 у китайцев можно найти не дороже 500 рублей. Учитывая внушительные характеристики - цена очень демократичная, и пока есть возможность, надо хватать. Благо предложений на алиэкспрессе выше крыши, есть даже китайские клоны с объемом флэша аж до 16 Мб.

Кстати, о клонах... Еще существует вериант RP2040 connect, за который хотят ни много ни мало, $47... А отличие только в том, что на борту у этой платы есть Wi-Fi. Странная цена, учитывая, что нет проблем прикрутить к оригинальному Pico какую-нибудь дешманскую ESP8266. Но этот connect - чисто фэновский проект, на который даже денежки краудфандингом собирали. Весьма удачно, кстати, собирали, в разы больше, чем требовалось.

А вот с программным обеспечением для Pico не все шоколадно.
Дело в том, что официальный API описывает ряд функций для параллельной работы двух ядер. Диспетчера, как в ESP32 там нет, и ядра должны работать независимо в раздельных потоках, не переключаясь. А для обмена данными предусмотрен FIFO-конвейер.

Должны, да не работают. При попытке запустить второе ядро наблюдается непредсказуемое поведение - либо первое останавливается, либо оба. Иногда проскакивает один символ, посылаемый в последовательный порт вторым потоком, но не более.

Тем не менее удалось найти альтернативное ядро, с которым два потока на этом процессоре таки можно запустить. Вот оно.
Запустилось это ядро только через Arduino IDE,  и хотя в документации присутствует способ подключения его к более удобной среде разработки PlatformIO, мне этого сделать не удалось :(

Ну, а поскольку пришлось вновь перелезть на ненавистный Arduino, напомню, что у него пины SPI по умолчанию иные, чем у PlatformIO.
Чтобы не заморачиваться с перетыканием штырей туда-сюда (а вдруг они допилят код и он пойдет на PlatformIO?), пришлось вникнуть в механизм конфигурирования. Оказалось не так и сложно:

SPI.setRX(4);
SPI.setCS(5);
SPI.setSCK(2);
SPI.setTX(3);
Ethernet.init(0);
Ethernet.begin(mac, ip);

И всё, можно ничего не перетыкать...

удивительное рядом, электроника, pico, покупки, программирование

Previous post Next post
Up