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;钢铁企业数字化工厂解决方案需求要点 详细资料请看本解读文章的最后内容 钢铁行业数字化转型背景与意义 当…