▲ 點(diǎn)擊上方 藍(lán)字 關(guān)注我們,不錯(cuò)過任何一篇干貨文章!
2021年,樹莓派推出其首款售價(jià)僅為4美元的MCU——Raspberry Pi Pico,它基于RP2040構(gòu)建。而后又推出添加英飛凌CYW43439無線芯片的6美元Raspberry Pi Pico W。
時(shí)隔三年,再看這個(gè)產(chǎn)品,誰(shuí)也沒想到這一產(chǎn)品能夠大獲歡迎,不僅本身可玩性強(qiáng),還被實(shí)際用在工業(yè)中。但仔細(xì)想想,這個(gè)產(chǎn)品又有許多設(shè)計(jì)上的不足,包括片上存儲(chǔ)、低功耗空閑和封裝選項(xiàng)等,同時(shí)內(nèi)核速度也不夠快。
前兩天,樹莓派推出5美元的Raspberry Pi Pico 2。這一次,他們不僅升級(jí)了內(nèi)核和功能,還加入了RISC-V,這引發(fā)了工程師大規(guī)模的討論。其中,不乏一些吐槽。
付斌|作者
電子工程世界(ID:EEWorldbbs)|出品
依然經(jīng)濟(jì)實(shí)惠的設(shè)計(jì)
Pico 2延續(xù)了Pico一代“經(jīng)濟(jì)實(shí)惠”這一準(zhǔn)則進(jìn)行了大量升級(jí)。
相同點(diǎn)方面,兩款產(chǎn)品均基于40nm工藝節(jié)點(diǎn)制造,通過專用 QSPI 總線支持高達(dá) 16MB 的片外閃存,支持DMA控制器,全連接AHB橫桿,片上可編程LDO(用于產(chǎn)生內(nèi)核電壓),2個(gè)片上PLL(用于生成USB和內(nèi)核時(shí)鐘),30個(gè)GPIO引腳(其中 4 個(gè)可用作模擬輸入),外設(shè)支持2個(gè)UART、2個(gè)SPI 控制器、2個(gè)I2C控制器、USB1.1控制器和PHY。
不同點(diǎn)方面,SRAM近乎翻倍,從264KB片上SRAM升級(jí)到520KB;板載4MB的外部Flash,相對(duì)Pico的2MHz擴(kuò)充了一倍;PWM 通道從16個(gè)提升到24個(gè);從8 PIO狀態(tài)機(jī)提升為3個(gè)可編程IO(PIO) 模塊,總共12個(gè)狀態(tài)機(jī)。
RP2040
RP2350
核心架構(gòu)
雙 Arm Cortex-M0+
雙Arm Cortex-M33、雙RISC-V Hazard3或Arm Cortex-M33+RISC-V Hazard3
時(shí)鐘速度
133MHz
150MHz
片上SRAM
264KB
520KB
板載閃存
2 MB QSPI
4 MB QSPI
GPIO
26
26(可支持4 x ADC)
USB
USB 1.1(Micro USB)
升級(jí)USB 1.1,支持主機(jī)和設(shè)備(Micro USB)
安全功能
基本安全功能
Arm TrustZone、簽名啟動(dòng)、SHA-256、TRNG、故障檢測(cè)器
外設(shè)接口
2×UART、2×SPI、2×I2C 、 ADC、PWM、USB 1.1
增強(qiáng)的外設(shè)、額外的PIO 狀態(tài)機(jī)、更多的 GPIO 引腳、更高的電源效率
不止如此,這次樹莓派還提供了更多的封裝選項(xiàng)。我們都知道,Pico(RP2040)僅提供單個(gè)7×7mm QFN56封裝選項(xiàng),這次Pico 2(RP2350)提供四種不同選擇:具有 30 個(gè) GPIO 的7×7mm QFN60 封裝 (RP2350A) 或具有48個(gè)GPIO的10×10mm QFN80封裝 (RP2350B);以及每個(gè)型號(hào)都具有2MB的堆疊封裝QSPI閃存(RP2354A 和 RP2354B)。
樹莓派稱,我們一如既往地堅(jiān)持可負(fù)擔(dān)的價(jià)格:盡管我們的硅芯片面積已經(jīng)從RP2040的 2mm2增加到了5.3mm2,但RP2350A的價(jià)格僅比RP2040高10美分,3400個(gè)單元卷軸的價(jià)格為0.80美元,單單元數(shù)量為1.10美元。RP2350B將比RP2350A貴10美分,而RP2354變體將比他們的無Flash版本貴20美分。
在軟件方面,推出了Pico SDK的更新版本,以及新的MicroPython和CircuitPython圖像,與谷歌推出原生支持Pico 2的Pigweed SDK,此外未來還會(huì)支持Rust語(yǔ)言。
目前Pico 2已經(jīng)開始在英國(guó)銷售,價(jià)格為5美元。在日本,Switch Science和KSY計(jì)劃在不久的將來開始銷售。對(duì)于產(chǎn)能,樹莓派表示,盡管目前渠道中的庫(kù)存相對(duì)較少,但 Pico 2 正處于全速生產(chǎn)中,由合作伙伴Sony負(fù)責(zé)。此外,許多授權(quán)經(jīng)銷商都在運(yùn)作預(yù)訂和預(yù)留方案。
在年底之前,樹莓派還將推出搭載與Pico W相同的Infineon 43439調(diào)制解調(diào)器的無線版 Pico 2 W,以及預(yù)安裝0.1英寸排針的Pico 2和Pico 2 W版本。
M33和RISC-V雙核齊飛
如果要找出Pico 2與Pico第一代最大的不同,就是內(nèi)核。
第一代Pico基于雙核配置Arm Cortex-M0+(133MHz)的RP2040,而這一次,樹莓派RP2350提供了兩種內(nèi)核:一是150MHz的Arm Cortex-M33,一個(gè)是樹莓派研發(fā)的150MHz Hazard 3 RISC-V內(nèi)核。
從方便開展嵌入式教育的角度出發(fā),樹莓派基金會(huì)特別在RP2350中添加了兩個(gè) Cortex-M33和兩個(gè)RISC-V核。在芯片的啟動(dòng)階段,用戶可以從4個(gè)核心中任選兩個(gè),由此產(chǎn)生了以下的組合:
雙核Cortex-M33;
雙核 RISC-V;
一個(gè)Cortex-M33和一個(gè)RISC-V。
從內(nèi)核角度來看,這次Pico 2的確是“史詩(shī)級(jí)”升級(jí)。
首先,Arm Cortex-M33是Cortex-M3和Cortex-M4的繼任者,性能更強(qiáng),具有DSP浮點(diǎn)運(yùn)算功能,它基于ARMv8-M架構(gòu),而M++則基于Armv6-M,整整差了兩代。
對(duì)比起來,M33采用了TrustZone技術(shù),支持PSA Certified認(rèn)證,也就是說Pico 2更安全了;同時(shí)DSP拓展可以為系統(tǒng)增加85個(gè)新指令,支持?jǐn)U展浮點(diǎn)單元 (FPU) ,也就是說Pico 2的AI性能提升了,很多MCU跑小型的邊緣AI都靠DSP和FPU。
從Datasheet中,我們也看到,Pico 2的M33內(nèi)核配備了DSP、FPU、MPU(用于任務(wù)隔離的存儲(chǔ)保護(hù)單元,8個(gè)SAU區(qū)域、8個(gè)安全MPU區(qū)域和8個(gè)非MPU區(qū)域),同時(shí)支持TrustZone安全性和安全啟動(dòng)(簽名啟動(dòng)支持、8KB的片上反熔絲一次性可編程OTP內(nèi)存、SHA-256加速、硬件真隨機(jī)數(shù)生成器TRNG)。
其次,RISC-V內(nèi)核Hazard3可大有來頭,它由樹莓派的天才ASIC工程師Luke Wren業(yè)余時(shí)間所設(shè)計(jì)。Hazard3完全是他自己設(shè)計(jì),并授權(quán)給樹莓派。
據(jù)了解,Luke在16歲時(shí)利用空閑時(shí)間開始設(shè)計(jì)基于7400系列邏輯的處理器,并受到RISC-V ISA的啟發(fā)。Hazard3是Luke之前設(shè)計(jì)之一Hazard5的分支,專注于在小硅封裝內(nèi)實(shí)現(xiàn)MCU時(shí)鐘頻率的最佳性能。從Hazard5到Hazard3的第一個(gè)實(shí)例的開發(fā)過程,Luke只用了不到一周的時(shí)間。
Luke把該內(nèi)核的設(shè)計(jì)在GitHub( https://github.com/Wren6991/Hazard3 )上以Apache 2.0的形式提供任何人學(xué)習(xí)。未來的處理器設(shè)計(jì)人員可以查看Hazard3的未經(jīng)編輯的提交歷史記錄,并從 Luke的開發(fā)過程中學(xué)習(xí),包括他的錯(cuò)誤以及他如何糾正這些錯(cuò)誤。學(xué)習(xí)處理器設(shè)計(jì)的學(xué)生可以在RP2350上開發(fā)和測(cè)試軟件工作負(fù)載,修改處理器以包含他們自己的自定義指令,然后在FPGA上測(cè)試新版本。
通過GitHub公開的數(shù)據(jù)顯示,Hazard3在RP2350配置中,跑分達(dá)到了3.81 CoreMark/MHz,接近Cortex-M33在Arm Compiler 6.17下4.06的結(jié)果。
此外,Hazard3兼容RISC-V RVI20U32 Profile,包括M、A 和C可選擴(kuò)展以及B、Zbc、Zbkb、Zicsr、Zcb和Zcmp非Profile擴(kuò)展。這些RISC-V內(nèi)核可以在啟動(dòng)時(shí)選擇,并可以訪問所有MCU外設(shè)。
大部分工程師對(duì)于這種設(shè)計(jì)還是比較認(rèn)可的,覺得樹莓派這次有點(diǎn)東西,畢竟Pico 2很便宜,這次性能升級(jí)夠看,而且RISC-V內(nèi)核的發(fā)布比較讓人意外。
也有工程師感到疑惑,設(shè)計(jì)得有點(diǎn)怪異,畢竟一個(gè)裝有四個(gè)內(nèi)核的芯片,但你一次只能使用其中的兩個(gè)。其中兩個(gè)內(nèi)核有一個(gè) FPU、一個(gè) DSP、一個(gè) MPU,并支持 TrustZone 安全性和安全啟動(dòng),另外 2 個(gè)內(nèi)核僅用于整數(shù),但可以在沒有任何安全性的情況下訪問所有芯片資源(AFAICS,不經(jīng)過MPU,很像玄鐵C910向量單元),很奇怪的設(shè)計(jì)。的確,當(dāng)人們從Pico(RP2040)的兩個(gè)M0+之一中比重一個(gè)HDMI信號(hào)時(shí),他們本可以用RV32I做同樣的事情。對(duì)他來說,仍然是一個(gè)奇怪而令人費(fèi)解的設(shè)計(jì)。
工程師反駁了上面的觀點(diǎn),他們認(rèn)為樹莓派是為了盡量控制成本,畢竟升級(jí)之后漲價(jià)了1美元。價(jià)格上漲對(duì)某些人來說可能是一種恥辱,盡管提供了額外的處理魅力。
非常注重安全的一代
我們都知道,這一次Pico 2里面包含很多安全方面的升級(jí)。為了讓它更安全,樹莓派“定了個(gè)小目標(biāo)”。不僅是與DEF CON黑客大會(huì)合作,甚至是直接貼出10000美元的懸賞,獎(jiǎng)勵(lì)第一個(gè)發(fā)現(xiàn)漏洞的人。(懸賞計(jì)劃: https://github.com/raspberrypi/rp2350_hacking_challenge )
根據(jù)樹莓派的介紹,RP2350安全模型的基石是簽名引導(dǎo)。如果啟用了安全性,則只有使用私鑰的二進(jìn)制文件進(jìn)行簽名,且相應(yīng)公鑰的哈希值存儲(chǔ)在 OTP 中的情況下,才能引導(dǎo)該二進(jìn)制文件。防止攻擊者運(yùn)行任意代碼大大增加了提取 OTP 內(nèi)容(包括用于代碼保護(hù)的加密密鑰)的難度。
雖然RP2350使用多種技術(shù),包括硬件快速故障檢測(cè)器和我們正在申請(qǐng)專利的冗余協(xié)處理器,以保護(hù)控制流和數(shù)據(jù)完整性免受故障注入攻擊,但他們想在啟動(dòng)過程中發(fā)現(xiàn)并修復(fù)缺陷。希望在RP2350部署到關(guān)鍵應(yīng)用程序中之前盡早發(fā)現(xiàn)這些缺陷。
EEWorld論壇,工程師認(rèn)為這一代產(chǎn)品之所以如此看中安全方面問題,估計(jì)是因?yàn)橛玫降腗33核,這顆核心在之前出現(xiàn)過一些黑客事件。當(dāng)然,相比來說,這顆芯片還是通用產(chǎn)品,只是增強(qiáng)了安全方面功能。
被爭(zhēng)論的USB
在外網(wǎng),工程師們爭(zhēng)論的核心在于USB。他們認(rèn)為,Pico 2使用之前相同的表面貼裝micro-USB,這種USB總是從板上掉下來,或者數(shù)據(jù)引腳首先在背面分離。反觀其它大多數(shù)MCU板(例如 esp32)都換成了USB-C,它在機(jī)械上更加堅(jiān)固且可逆,有些則支持PD,以支持>5V的電源輸出。
工程師們普遍認(rèn)為,這是升級(jí)USB-C的好機(jī)會(huì),畢竟這次推出了一個(gè)性能大升級(jí)的產(chǎn)品,沒有換成USB-C很令人失望。
也有工程師猜測(cè)樹莓派為什么一直使用使用micro-USB。一種可能性是為了保持兼容性,保持和上一代Pico一致,就像與Pi Zero 2 W保持其前身的硬件兼容性是一樣的,有些OEM/工業(yè)客戶可能依賴micro-USB連接器,設(shè)計(jì)師會(huì)想要“插頭兼容性”。另一種可能性可能是會(huì)增加復(fù)雜度和產(chǎn)品的價(jià)格,畢竟想保持5美元還是挺難的。
除了沒有換到USB-C,也有工程師對(duì)于USB 1.1有意見,他們需要主機(jī)設(shè)備延遲,而目前最多只能削減到1毫秒。他們發(fā)出疑問,USB 2.0是否存在技術(shù)或成本問題?擁有USB 2.0支持會(huì)讓它變得史詩(shī)般美好。
有工程師解釋,USB 2.0的芯片面積很大,需要為芯片邊緣的物理體增加更多空間,因此硅領(lǐng)域的成本是很大的。此外,它還占用更多的 GPIO。所以說,雖然技術(shù)上可行(雖然需要大量的工作),但模具區(qū)域的成本令人望而卻步。
備受爭(zhēng)議的ADC
樹莓派Pico(RP2040)是好產(chǎn)品嗎?絕對(duì)是。但它為什么一直處在一個(gè)“不上不下”的地位,或許是因?yàn)锳DC有一定問題,甚至被工程師稱為“缺陷”。
去年,就有工程師發(fā)帖稱“使用Pico有缺陷的ADC會(huì)收到多少錯(cuò)誤”,他表示,RP2040中的ADC無法滿足最初預(yù)期的性能,實(shí)際在使用時(shí)誤差幅度很大,而且引腳在某些電壓上誤差幅度更高。
工程師曾經(jīng)發(fā)帖分享,通過MicroPython編寫的程序,測(cè)量ADC的差分非線性,即當(dāng)信號(hào)掃過該范圍時(shí),是否存在缺失或接近缺失代碼。最后發(fā)現(xiàn),存在4個(gè)奇怪的峰值。同時(shí),由于電容器充電和放電時(shí)波形的指數(shù)性質(zhì),直方圖的兩端高于中間,仔細(xì)檢查輸出文件會(huì)發(fā)現(xiàn)許多其他異常。
對(duì)于這個(gè)問題,有的工程師用軟件簡(jiǎn)單修復(fù)了一些,似乎也能恢復(fù)正常,但很明顯這種情況應(yīng)用到工業(yè)中是存在問題的。
一個(gè)工程師就表示,曾考慮將RP2040芯片用在一個(gè)項(xiàng)目中,但“缺乏”ADC是一個(gè)殺手,因此我們最終換成了STM32。
在Pico 2(RP2350)發(fā)布以后,很多工程師第一時(shí)間就去Datasheet中尋找ADC修復(fù)相關(guān)的信息。他們?cè)谧钚碌腞P2350的Datasheet中發(fā)現(xiàn),RP2040-E11 所述,消除了代碼 0x200、0x600、0xa00 和0xe00的差分非線性尖峰,將ADC的精度提高了約0.5 ENOB。將外部ADC輸入通道的數(shù)量從4個(gè)增加到8個(gè)通道,僅在QFN-80封裝中(海報(bào)說明:例如僅限 RP2350B)。
對(duì)用戶來說,是個(gè)好消息,不過具體實(shí)際情況,還需要進(jìn)一步測(cè)量。不過,至少樹莓派意識(shí)到了這個(gè)問題,也在抓緊修復(fù)。
參考文獻(xiàn)
[1] 樹莓派官網(wǎng):https://www.raspberrypi.com/news/raspberry-pi-pico-2-our-new-5-microcontroller-board-on-sale-now/
[2] 樹莓派技術(shù)手冊(cè):https://datasheets.raspberrypi.com/rp2350/rp2350-datasheet.pdf?_gl=1*qge7dd*_ga*MTQ1NTEyNzczLjE3MjM0MzAwNDQ.*_ga_22FD70LWDS*MTcyMzQ0MjQ1NC4yLjEuMTcyMzQ0MjQ4NC4wLjAuMA..
[3] RISC-V基金會(huì):https://riscv.org/news/2024/08/raspberry-pi-launch-new-rp2350-microcontroller-and-pico-2-development-board-with-risc-v-support/
[4] 樹莓派論壇:https://forums.raspberrypi.com/viewtopic.php?t=299904
[5] The Register:https://www.theregister.com/2024/08/08/pi_pico_2_risc_v/
歡迎將我們?cè)O(shè)為“星標(biāo)”,這樣才能第一時(shí)間收到推送消息。
領(lǐng)領(lǐng)取自動(dòng)駕駛、輔助駕駛等方面免費(fèi)資料包!
掃碼添加小助手回復(fù)“進(jìn)群”
和電子工程師們面對(duì)面交流經(jīng)驗(yàn)
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.