Arduino Core mbed 2.0 поддерживает Raspberry Pi Pico и Arduino Nano RP2040 Connect


На прошлой неделе мы рассматривали неофициальное ядро Raspberry Pi Pico Arduino Core, которое работает на платах RP2040, включая Raspberry Pi Pico. Все работало нормально.

Но недавно представители Arduino написали в Твиттере о выпуске ядре Arduino Core mbed 2.0 для плат Raspberry Pi RP2040, включая платы Arduino Nano RP2040 Connect и Raspberry Pi Pico.

Arduino сначала использовала mbed для своей платы Arduino Nano 33 BLE, поскольку у них не было официального ядра Arduino для микроконтроллера Nordic nRF52840 Cortex-M4, и, похоже, они сделали то же самое для Raspberry Pi RP2040, чья реализация mbed основана на C SDK.

Давай посмотрим, насколько это сложно? Мы можем найти релиз и журнал изменений на Github с некоторыми инструкциями на основном Github.

Во-первых, мы можем скопировать репозиторий в каталог скетчей (см. Настройки Arduino IDE), в нашем случае это ~/Arduino:

mkdir -p ~/Arduino/hardware/arduino-git
cd ~/Arduino/hardware/arduino-git/
git clone https://github.com/arduino/ArduinoCore-mbed mbed

Также потребуется скопировать ArduinoCore-API:

git clone https://github.com/arduino/ArduinoCore-API
ln -s ~/ArduinoCore-API/api mbed/cores/arduino/api

Затем можно перейти в диспетчер плат, найти mbed и установить «платы Arduino Mbed OS RP2040».

Затем можно выбрать в меню плату Raspberry Pi Pico, а также порт, к которому она подключена: /dev/ttyACM0.

Пример Blink может быть собран, но образец не может быть загружен на плату.

Мы попробовали с двумя платами Raspberry Pi Pico, и обе вышли из строя, в то время как они отлично работали с неофициальным портом Arduino Core. Посмотрим на журнал ядра в Ubuntu 20.04 после подключения платы:

[19281.103834] usb 1-1: new full-speed USB device number 11 using xhci_hcd
[19281.279258] usb 1-1: New USB device found, idVendor=2e8a, idProduct=000a, bcdDevice= 1.00
[19281.279263] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[19281.279265] usb 1-1: Product: PicoArduino
[19281.279267] usb 1-1: Manufacturer: Raspberry Pi
[19281.279269] usb 1-1: SerialNumber: E6605838833D8338
[19281.315348] cdc_acm 1-1:1.0: ttyACM0: USB ACM device

Устройство ttyACM0 определено правильно:

 bt -l
 port |  age (sec) | device     | driver           | description          
------+------------+------------+------------------+----------------------
 *  0 |         46 | ttyACM0    | cdc_acm          | Board CDC

Но при попытке сохранить прошивку на плату, перезагружает ее в режиме BOOT, и последовательный порт пропадает, раздел Pico (RPI-RP2) монтируется:

[19354.726744] usb 1-1: USB disconnect, device number 11
[19354.729182] cdc_acm 1-1:1.0: failed to set dtr/rts
[19355.005594] usb 1-1: new full-speed USB device number 12 using xhci_hcd
[19355.173187] usb 1-1: New USB device found, idVendor=2e8a, idProduct=0003, bcdDevice= 1.00
[19355.173192] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[19355.173196] usb 1-1: Product: RP2 Boot
[19355.173199] usb 1-1: Manufacturer: Raspberry Pi
[19355.173201] usb 1-1: SerialNumber: E0C912D24340
[19355.175326] usb-storage 1-1:1.0: USB Mass Storage device detected
[19355.175506] scsi host2: usb-storage 1-1:1.0
[19356.183622] scsi 2:0:0:0: Direct-Access     RPI      RP2              1    PQ: 0 ANSI: 2
[19356.184049] sd 2:0:0:0: Attached scsi generic sg2 type 0
[19356.184363] sd 2:0:0:0: [sdc] 262144 512-byte logical blocks: (134 MB/128 MiB)
[19356.185221] sd 2:0:0:0: [sdc] Write Protect is off
[19356.185223] sd 2:0:0:0: [sdc] Mode Sense: 03 00 00 00
[19356.187259] sd 2:0:0:0: [sdc] No Caching mode page found
[19356.187266] sd 2:0:0:0: [sdc] Assuming drive cache: write through
[19356.217512]  sdc: sdc1
[19356.221243] sd 2:0:0:0: [sdc] Attached SCSI removable disk

На этом этапе IDE Arduino должна скопировать файл UF2 в раздел, но этого не происходит. Мы нашли обходной путь на форуме Raspberry Pi. Мы нашли файл uf2 в /tmp /arduino*:

jaufranc@cnx-laptop-4:/tmp/arduino_build_781291$ ls -l
total 5824
-rwxrwxr-x 1 jaufranc jaufranc   89672 Apr 12 16:45 Blink.ino.bin
-rwxrwxr-x 1 jaufranc jaufranc 1567000 Apr 12 16:45 Blink.ino.elf
-rw-rw-r-- 1 jaufranc jaufranc  179712 Apr 12 16:45 Blink.ino.elf.uf2
-rw-rw-r-- 1 jaufranc jaufranc  252290 Apr 12 16:45 Blink.ino.hex
-rw-rw-r-- 1 jaufranc jaufranc 4047278 Apr 12 16:45 Blink.ino.map
-rw-r--r-- 1 jaufranc jaufranc    1852 Apr 12 16:45 build.options.json
drwxr-xr-x 2 jaufranc jaufranc    4096 Apr 12 16:45 core
-rw-r--r-- 1 jaufranc jaufranc     449 Apr 12 16:45 includes.cache
drwxr-xr-x 2 jaufranc jaufranc    4096 Apr 12 16:45 libraries
drwxr-xr-x 2 jaufranc jaufranc    4096 Apr 12 16:45 preproc
drwxr-xr-x 2 jaufranc jaufranc    4096 Apr 12 16:45 sketch

и скопировали на диск:

cp Blink.ino.elf.uf2 /media/jaufranc/RPI-RP2/

И у нас на плате мигал светодиод. Поскольку это предварительный порт, этим объясняется, почему представители Arduino просто написали об этом в Твиттере, а не написали сообщение в блоге, объявив о выпуске Arduino Core mbed 2.0 для плат RP2040.

Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 vote
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Inline Feedbacks
View all comments