Pico2?ICE FPGA 開發板:從開箱到跑通示例的全歷程

FPGA 和 MCU 結合的開發板不多,而 Pico2?ICE 則把小巧、靈活和易上手完美結合。搭載 RP2350 雙核 RISC-V MCU + Lattice iCE40UP5K FPGA,配合官方 SDK,你可以一步步跑通各種示例,從 LED 到 VGA,再到 MCU 與 FPGA 協作應用。

下面就來詳細看看 官方 SDK 的實際歷程。

官方歷程地址:

https://github.com/tinyvision-ai-inc/pico2-ice

零、硬件

硬件開源地址(暫無Pico2):

https://github.com/tinyvision-ai-inc/pico-ice

https://pico2-ice.tinyvision.ai/

一、準備開發環境

克隆 SDK 倉庫

git?clone?https://github.com/tinyvision-ai-inc/pico-ice-sdk.git
cd?pico-ice-sdk
git submodule update --init

選擇目標板

官方 SDK 支持 pico_ice 和 pico2_ice,構建時通過 cmake 指定:

mkdir build &&?cd?build
cmake -DPICO_BOARD=pico2_ice ..

編譯示例

make -j8

生成 .uf2 文件后,直接拖入 Pico2-ICE 板子,即可燒錄。

類比:就像拿到房子鑰匙后,把家具和燈都搬進去。

二、LED 閃爍示例:FPGA 入門

進入 examples/led_blink,這是最基礎的 FPGA 示例。

核心 Verilog:

module top(input clk,output reg led
);reg [23:0] counter;always @(posedge clk) begincounter <= counter + 1;if(counter == 24'd0)led <= ~led;end
endmodule

操作歷程:

編譯生成 bitstream。

用 MicroPython 或 TinyUF2 拖拽燒寫到 FPGA。

上板觀察 LED 閃爍。

小結:讓新手從零感受 FPGA 的硬件邏輯跑起來的過程。

三、串口回環示例:MCU 與 FPGA 協作

進入 examples/pico_usb_uart:

歷程步驟:

MCU 通過 USB?CDC 接口收數據。

MCU 將數據通過 SPI 或內存共享傳給 FPGA。

FPGA 將數據原樣送回 MCU。

Python 演示代碼:

import serialser = serial.Serial('COM3', 115200)
ser.write(b"Hello Pico2-ICE")
print(ser.read(16)) ?# 接收 FPGA 回傳的數據

功能效果:發送一句話,立即被回顯,驗證 MCU ? FPGA 橋接邏輯。

四、VGA 彩條示例:FPGA 直接驅動外設

在 examples/vga_colorbar:

歷程步驟:

FPGA 生成行列計數信號。

根據計數輸出 RGB 信號。

連接 VGA 顯示器即可看到彩條畫面。

簡化 Verilog:

always @(posedge clk) beginif?(hcount == HMAX) beginhcount <= 0;if(vcount == VMAX) vcount <= 0;else?vcount <= vcount + 1;end?else?beginhcount <= hcount + 1;end
end

五、MicroPython 控制 FPGA

官方 SDK 提供 examples/micropython_fpga,使用 MicroPython 調用 ice 模塊加載 bitstream:

from machine import Pin
import icefpga = ice.fpga(cdone=Pin(40), clock=Pin(21), creset=Pin(31),cram_cs=Pin(5), cram_mosi=Pin(4), cram_sck=Pin(6), frequency=48)
with open("bitstream.bin",?"br") as f:fpga.start()fpga.cram(f)

操作歷程:

通過 Python 打開 bitstream。

FPGA 開始加載。

加載完成后可直接執行邏輯。

六、USB?SPI 示例:外部數據橋接

在 examples/pico_usb_spi,可以把 USB 數據通過 SPI 傳給 FPGA 內部模塊,支持 SRAM、Flash 操作。

歷程步驟:

MCU 收到 USB 命令。

FPGA 接收 SPI 數據并寫入內部 RAM。

MCU 讀取結果,完成回傳。

總結

Pico2-ICE + 官方 SDK 的歷程,提供了從 硬件跑燈 → MCU ? FPGA 通信 → 外設驅動 → MicroPython 控制 的完整體驗。

新手可以從 LED 和串口回環入手,逐步嘗試 VGA 彩條和 MicroPython 控制。老玩家則可以快速驗證 FPGA + MCU 協作原型。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/94762.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/94762.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/94762.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java圖形圖像處理【Swing圖像拖拽】【五】

Java圖形圖像處理【Swing圖像拖拽】 18.3.3 Swing圖像對象拖拽功能 18.3.3 Swing圖像對象拖拽功能 上文討論的是java.awt.dnd包中提供的拖拽API接口&#xff0c;也可稱之為AWT組件的拖拽功能。下面我們要討論的是Swing框架的拖拽功能&#xff1a;Swing組件也提供了對拖拽功能的…

狀態模式與幾個經典的C++例子

1. 狀態模式定義與核心思想 狀態模式解決的是當控制一個對象狀態轉換的條件表達式過于復雜時的情況。通過將狀態的判斷邏輯轉移到表示不同狀態的一系列類中,可以把復雜的判斷邏輯簡化。 核心思想: 狀態抽象:將對象的每個狀態都封裝到一個獨立的類中。 委托代替條件判斷:…

SyncBackPro 備份及同步軟件中的腳本功能簡介

腳本提供了一種靈活而簡單的方法來自動執行任務和擴展應用程序的功能。腳本是一個小程序&#xff0c;能夠自定義和控制備份作業。例如&#xff0c;用戶可以編寫腳本來復制、重命名或刪除特定文件、自定義用戶界面或更改配置文件設置。SyncBackPro 的腳本功能類似于 Microsoft O…

部署2.516.2版本的jenkins,同時適配jdk8

&#x1f4cc; 前言 在企業級開發中&#xff0c;我們常常面臨 新老項目并存 的復雜局面&#xff1a; 老項目基于 JDK 8 開發&#xff0c;短期內無法升級&#xff1b; 新項目采用 JDK 17&#xff08;LTS&#xff09;甚至更高版本&#xff1b; 而作為 CI/CD 核心的 Jenkins&#…

Autodesk Maya 2026.2 全新功能詳解:MotionMaker AI 動畫、LookdevX 材質增強、USD 工作流優化

軟件介紹 Autodesk Maya 2026.2是一款專業的3D計算機圖形軟件&#xff0c;它為數字內容創作者提供了豐富的工具集&#xff0c;以實現高質量的建模、動畫、模擬和渲染。該版本帶來了多項性能優化和工作流程改進&#xff0c;特別是針對生成式動畫工具MotionMaker進行了重大升級&…

STM32之DMA詳解

一、DMA 1. DMA的引入 在嵌入式系統或計算機系統中&#xff0c;數據的傳輸和處理是非常重要的操作。以下通過一個簡單的示例來展示傳統數據操作方式與 DMA 引入的必要性&#xff1a; int a 10; int b 20;a b;上述代碼包含了變量定義、初始化以及變量數據賦值操作。在傳統…

鏈表有環找入口節點原理

環形鏈表入口檢測算法數學解釋 數學原理假設定義: 鏈表頭到環入口的距離為 a環入口到相遇點的距離為 b相遇點到環入口的距離為 c環的長度為 b c第一次相遇時: 慢指針走了 s a b 步快指針走了 f a b n(b c) 步&#xff0c;其中 n 是快指針在環內轉的圈數由于快指針速度是…

Java 基本類型與包裝類詳解

Java 基本類型與包裝類詳解 在 Java 開發中&#xff0c;理解 基本數據類型與包裝類、字符串處理、以及高精度計算類是非常核心的能力。這不僅關系到程序性能&#xff0c;還影響代碼的正確性和可維護性。本文將詳細講解這些知識點&#xff0c;并給出常見的使用技巧和陷阱。 1?…

CRYPT32!CryptMsgUpdate函數分析之CRYPT32!PkiAsn1Decode函數的作用是得到pci

第一部分&#xff1a; CryptMsgUpdate( #endifIN HCRYPTMSG hCryptMsg,IN const BYTE *pbData,IN DWORD cbData,IN BOOL fFinal) {ContentInfo *pci NULL;if ((PHASE_FIRST_FINAL pcmi->dwPhase) &&(0 pcmi->dwMsgType)) {if (0 …

華為交換機S5700設置acl

1.、配置ACL1.1、定義允許的ACL規則[sw1]acl number 3001[sw1-acl-adv-3001]rule permit ip source 192.168.20.0 0.0.0.255 destination 192.168.40.1 0[sw1-acl-adv-3001]rule permit ip source 192.168.30.0 0.0.0.255 destination 192.168.40.1 01.2、定義禁止的ACL規則[sw…

在使用spring ai進行llm處理的rag的時候,選擇milvus還是neo4j呢?

在使用spring ai進行llm處理的rag的時候&#xff0c;選擇milvus還是neo4j呢&#xff1f; 對于Spring AI中的RAG&#xff08;Retrieval-Augmented Generation&#xff09;應用&#xff0c;選擇Milvus還是Neo4j&#xff0c;主要取決于你的數據類型以及RAG流程中對數據檢索的側重點…

計算機視覺與深度學習 | 視覺里程計技術全景解析:從原理到前沿應用

視覺里程計技術全景解析:從原理到前沿應用 一、定義與核心價值 二、技術原理與分類體系 2.1 基本工作流程 2.2 主流技術路線對比 2.3 算法范式演進 三、典型應用場景 3.1 地面移動機器人 3.2 自動駕駛領域 3.3 深空探測 3.4 增強現實 四、核心技術挑戰與突破路徑 4.1 主要技術…

Wireshark和USRP捕獲同一信號波形差異原因

一、波形差異 在前面的博客中我對比繪制了同一信號的Wireshark和USRP兩種波形&#xff1a; 可以看出波形差別還是挺大的&#xff0c;尤其是在信號分布間隔方面。 我猜想Wireshark的一條數據包在物理上并不是連續的&#xff1a; 而是分組發送&#xff0c;但在Wireshark中合并在…

Python-GEE遙感云大數據分析、可視化與Satellite Embedding應用

隨著航空、航天、近地空間遙感平臺的持續發展&#xff0c;遙感技術近年來取得顯著進步。遙感數據的空間、時間、光譜分辨率及數據量均大幅提升&#xff0c;呈現出大數據特征。2025年7月&#xff0c;Google DeepMind發布了革命性的AlphaEarth Foundations模型及Satellite Embedd…

Python常見設計模式2: 結構型模式

文章目錄適配器模式橋接模式組合模式外觀模式代理模式適配器模式 將一個類的接口轉換成客戶希望的另一個接口。適配器模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。兩種實現方式&#xff1a; 類適配器&#xff1a;使用多繼承對象適配器&#xff1a;使用組合…

HDMI2.1 8K驗證平臺

本文推薦其中一個平臺ZCU106HDMI2.1 FMC Card 一、ZCU106主要特性與優勢 經過優化&#xff0c;可采用 Zynq Ultrascale MPSoC 快速進行應用原型設計集成型視頻編解碼器單元支持 H.264/H.265HDMI 視頻輸入輸出PCIe 端點 Gen3x4、USB3、DisplayPort 和 SATADDR4 SODIMM – 64 位…

R語言使用隨機森林對數據進行插補

數據插補的目的是為了恢復數據的完整性&#xff0c;以便后續的數據分析和挖掘工作能夠順利進行。插補方法的選擇取決于數據的特點和缺失模式。常見的插補方法包括均值插補、回歸插補、多重插補等。均值插補簡單易行&#xff0c;但可能會改變數據分布&#xff1b;回歸插補考慮了…

論文閱讀:ICLR 2024 GAIA: A Benchmark for General AI Assistants

https://arxiv.org/pdf/2311.12983 https://www.doubao.com/chat/18484357054754562 GAIA: A Benchmark for General AI Assistants GAIA&#xff1a;通用人工智能助手基準測試 該論文介紹了GAIA&#xff08;General AI Assistants&#xff09;基準測試&#xff0c;這是一…

【Cmake】靜態庫(編譯-鏈接-引用)相關函數

目錄 一.file 1.1.示例一 1.2.示例二 1.2.1.GLOB 1.2.2.GLOB_RECURSE 1.3.示例三 1.3.1.GLOB 1.3.2.GLOB_RECURSE 1.4.file(GLOB)的缺點 二.add_library 示例 1&#xff1a;創建一個簡單的靜態庫 示例 2&#xff1a;創建一個簡單的共享庫&#xff08;動態庫&#x…

【50頁PPT】鋼鐵企業數字化工廠解決方案需求要點(附下載方式)

篇幅所限&#xff0c;本文只提供部分資料內容&#xff0c;完整資料請看下面鏈接 https://download.csdn.net/download/2501_92796370/91716817 資料解讀&#xff1a;鋼鐵企業數字化工廠解決方案需求要點 詳細資料請看本解讀文章的最后內容 鋼鐵行業數字化轉型背景與意義 當…