疫情肆虐,芯片迎來史上最大的缺貨潮,然后2021 年 1 月 21 日,樹莓派基金會(huì)卻發(fā)布了微處理器(Microcontroller)級(jí)新品 Raspberry Pi Pico,給寒冷的冬天注入一絲溫暖。該產(chǎn)品基于樹莓派基金會(huì)自研的 RP 2040 芯片構(gòu)建,售價(jià)僅為 4 美元。據(jù)介紹,Pico 作為一款微處理器,它擅長(zhǎng)低時(shí)延的 I/O 通信和模擬信號(hào)輸入,功耗低,可以彌補(bǔ)樹莓派在與物理世界互動(dòng)方面的不足。一起來揭開這款新品的神秘面紗吧。
Raspberry Pi Pico 是一款搭載了 RP 2040 芯片的微處理器開發(fā)板。對(duì)于 Pico 的參數(shù)和配置的介紹,我們分兩步進(jìn)行:先看 RP 2040 芯片,再看 Pico 開發(fā)板。
RP 2040 芯片
RP 2040 芯片由樹莓派基金會(huì)設(shè)計(jì)開發(fā)。在 官網(wǎng) Blog 中,首席運(yùn)營(yíng)官、首席硬件工程師 James Adams 調(diào)侃道:似乎現(xiàn)在每個(gè)水果公司都在研制自己的芯片了,我們也不例外。
RP 2040 芯片采用 40 nm 制程工藝,7×7 mm QFN-56 封裝。它的具體規(guī)格參數(shù)如下:
搭載雙核 ARM Cortex M0+ 處理器,運(yùn)行頻率 133 MHz
內(nèi)置 264 KB 的片上 RAM
可通過專用 QSPI 總線支持最高 16 MB 的片外閃存
外掛內(nèi)插器和整數(shù)除法器
30 個(gè) GPIO 引腳,其中 4 個(gè)可用于模擬信號(hào)輸入
2 個(gè) SPI、2 個(gè) I2C、2 個(gè) UART
16 個(gè) PWM 通道
主機(jī)和設(shè)備支持的 USB 1.1
8 個(gè)樹莓派可編程 I/O 狀態(tài)機(jī)
支持 UF2 的 USB 大容量存儲(chǔ)啟動(dòng)模式,用于拖放式編程
樹莓派Pico 開發(fā)板
以下展示 Raspberry Pi Pico 開發(fā)板的參數(shù)和配置 3。為了準(zhǔn)確、完整地展示 Pico 的參數(shù)和配置,RP 2040 芯片的部分關(guān)鍵參數(shù)會(huì)被再次列舉。
搭載上述 RP 2040 芯片。
采用雙核 ARM Cortex M0+ 處理器,運(yùn)行頻率 133 MHz。
搭載 264 KB 的片上 RAM,板載 2 MB 閃存。
主機(jī)和設(shè)備支持的 USB1.1。
支持低功耗的睡眠和休眠模式。
采用拖放式編程。
擁有 26 個(gè) GPIO 引腳,其中 3 個(gè)可用于模擬信號(hào)輸入(即 3 路 12 位 ADC)。
擁有 2 個(gè) SPI、2 個(gè) I2C、2 個(gè) UART、16 路 PWM。
片上時(shí)鐘、計(jì)時(shí)器;片上浮點(diǎn)庫(kù);搭載溫度傳感器。
可通過 Micro USB 供電,也支持 1.8-5.5 V 直流電源供電。因此我們用串聯(lián)的干電池或者鋰電池即可驅(qū)動(dòng) Pico,這使得 Pico 的應(yīng)用更加靈活。
配備 1 個(gè) LED 燈和一個(gè)開關(guān)按鈕。該按鈕用于向 Pico 燒錄程序時(shí)控制 Pico 進(jìn)入 USB 大容量存儲(chǔ)模式,也可用于通用的輸入。
40 個(gè)引腳均為 “焊孔 + 齒狀邊緣” 的形態(tài),由用戶靈活選擇安裝方式,便于與其他開發(fā)板焊接。
從參數(shù)和配置來看,Pico 就是一款微處理器開發(fā)板,也就是我們常說的「單片機(jī)」開發(fā)板。做個(gè)類比,它不是一款可以運(yùn)行操作系統(tǒng)、五臟俱全的「樹莓派」電腦,而是一款擁有豐富通用輸入輸出接口、可以與傳感器和組件高效互動(dòng)的「Arduino」開發(fā)板。
開發(fā)方法
對(duì)于 Pico 的編程開發(fā),官方開發(fā)了 Pico C/C++ SDK 和 Pico Python SDK 軟件開發(fā)工具包,用戶可以選擇 C/C++ 或者 Python 對(duì) Pico 進(jìn)行開發(fā)。
對(duì) Pico 的編程和燒錄需要在計(jì)算機(jī)上進(jìn)行。所支持的操作系統(tǒng)和計(jì)算機(jī)包括:
搭載 Raspberry Pi OS 的樹莓派
其他搭載基于 Debian 的 Linux 系統(tǒng)的平臺(tái)
搭載 MacOS 的計(jì)算機(jī)
搭載 Windows 的計(jì)算機(jī)等。
其中,作為親兒子,搭載 Raspberry Pi OS 的樹莓派 4B 或樹莓派 400 的開發(fā)環(huán)境配置最為便捷,通過一行 setup 腳本命令便可以完成大部分的配置工作。
Pico 采用頗為便捷的拖放式編程:將 Pico 通過 USB 與計(jì)算機(jī)連接,Pico 會(huì)被計(jì)算機(jī)識(shí)別為大容量存儲(chǔ)設(shè)備,向其中拖放編程文件即可完成程序燒錄。接下來的「上手體驗(yàn)」環(huán)節(jié)會(huì)對(duì)此做具體介紹和展示。
上手體驗(yàn)
目前,樹莓派基金會(huì)在全球 53 個(gè)國(guó)家和地區(qū)的授權(quán)代理商均開始發(fā)售 Pico,售價(jià)基本為 4 美元。
接下來跟一元硬幣和鑰匙來張合照。看了這張照片,大家應(yīng)該可以對(duì) Pico 的「小」有了一個(gè)比較清晰的認(rèn)識(shí)。掏出你手里的鑰匙,它就是那么小!Pico 開發(fā)板為雙層 PCB 板,除了小,還很薄。拿在手上,這種輕薄的手感和齒狀的邊緣讓人有種拿著一片蘇打餅干的感覺。
現(xiàn)在來看看下圖所展示的 Pico 正反兩面,圖中為了方便大家正確區(qū)分正反兩面的方向,我用紅色原點(diǎn)對(duì) 40 號(hào)引腳加以標(biāo)記。Pico 的正面分布有 RP 2040 芯片、按鈕、LED 燈、電源芯片等元件。正面只對(duì) 1、2、39 號(hào)引腳進(jìn)行了標(biāo)識(shí)。其背面無(wú)分布其他元件,背面 PCB 上對(duì) 40 個(gè)引腳的功能進(jìn)行了標(biāo)識(shí)。Pico 正面的引腳標(biāo)記缺失可能會(huì)對(duì)剛接觸 Pico 的用戶帶來不便。
現(xiàn)在我們來開發(fā) Pico。
我們嘗試按照官方入門指南 Getting started with Raspberry Pi Pico 的指引,在搭載 Raspberry Pi OS 的樹莓派 4B 上使用 C/C++ SDK 開發(fā)。
使用 C/C++ SDK 開發(fā) Pico 的思路是,利用軟件將使用 C 語(yǔ)言編寫的程序轉(zhuǎn)化為可被 Pico 識(shí)別的 .uf2 文件,燒錄到 Pico 中,由 Pico 運(yùn)行。
首先在樹莓派安裝 Git 工具,如果已經(jīng)安裝過,則可以忽略:
$ sudo apt install git
接下來在根目錄「/home/pi」下新建「pico」目錄,并在該目錄中下載用于開發(fā) Pico 的 SDK 和示例程序:
$ cd ~/
$ mkdir pico
$ cd pico
$ git clone -b master https://github.com/raspberrypi/pico-sdk.git
$ cd pico-sdk
$ git submodule update --init
$ cd ..
$ git clone -b master https://github.com/raspberrypi/pico-examples.git
完成后,我們可以在「/home/pi/pico」目錄下看到「pico-examples」和「pico-sdk」兩個(gè)目錄。現(xiàn)在安裝開發(fā)工具 CMake:
$ sudo apt update
$ sudo apt install cmake gcc-arm-none-eabi build-essential
至此,針對(duì) Pico 開發(fā)的配置工作基本完成。
對(duì)于搭載 Raspberry Pi OS 的樹莓派,以上操作可以通過運(yùn)行配置開發(fā)環(huán)境的腳本來更加便捷地完成。我們執(zhí)行克隆命令來獲取腳本,運(yùn)行腳本后重啟樹莓派即可完成所有的配置工作,包括新建目錄、下載 SDK 和示例程序、下載 Visual Studio Code 等軟件,等等:
$ git clone https://github.com/raspberrypi/pico-setup.git
$ pico-setup/pico_setup.sh
$ sudo reboot
現(xiàn)在,我們?cè)凇?home/pi/pico」目錄下新建目錄「myProject」:
$ cd /home/pi/pico
$ mkdir myProject
$ cd myProject
在「~/myProject」目錄下,我們需要準(zhǔn)備三個(gè)文件:
文件 1:用 C 語(yǔ)言編寫控制 Pico 上 LED 等閃爍的「blink.c」程序,LED 燈連接的是 25 號(hào)引腳:
#include "pico/stdlib.h"
int main() {
const uint LED_PIN = 25;
gpio_init(LED_PIN);
gpio_set_dir(LED_PIN, GPIO_OUT);
while (true) {
gpio_put(LED_PIN, 1);
sleep_ms(250);
gpio_put(LED_PIN, 0);
sleep_ms(250);
}
}
文件 2:創(chuàng)建「CMakeLists.txt」文件:
cmake_minimum_required(VERSION 3.12)
include(pico_sdk_import.cmake)
project(test_project)
pico_sdk_init()
add_executable(myProject
blink.c
)
pico_add_extra_outputs(myProject)
target_link_libraries(myProject pico_stdlib)
文件 3:從「~/pico-sdk/external」目錄復(fù)制「pico_sdk_import.cmake」文件:
$ cp ../pico-sdk/external/pico_sdk_import.cmake .
準(zhǔn)備好三個(gè)文件后,在「~/myProject」目錄下新建并進(jìn)入目錄「build」并執(zhí)行:
$ mkdir build
$ cd build
$ export PICO_SDK_PATH=../../pico-sdk
$ cmake ..
$ make
make 命令即為「編譯」,它將在「~/myProject/build」目錄下生成 .uf2 文件和其他文件。
現(xiàn)在用 Micro USB 轉(zhuǎn) USB 數(shù)據(jù)線將 Pico 和樹莓派 4B 連接。按住 Pico 的開關(guān)按鈕,將 Pico 通過 Micro USB 數(shù)據(jù)線與樹莓派 4B 連接,隨后松開按鈕。此時(shí),Pico 會(huì)被樹莓派 4B 識(shí)別為「USB Mass Storage Device」。將「~/myProject/build」目錄下的「myProject.uf2」文件拖入其中,即可完成燒錄,Pico 上的 LED 燈便開始閃爍了。
編輯:hfy
-
微處理器
+關(guān)注
關(guān)注
11文章
2274瀏覽量
82779 -
樹莓派
+關(guān)注
關(guān)注
117文章
1710瀏覽量
105882
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論