教程:VENTUNO Q/用户手册
概述
本用户手册将介绍 Arduino® VENTUNO™ Q 的主要功能,以及如何开始使用该开发板。VENTUNO Q 是一块采用双脑架构的开发板,搭载 Qualcomm® Dragonwing™ QCS8275(MPU)、STM32H5F5 微控制器(MCU)、Wi-Fi® 6 / Bluetooth® 5.3 模块,并提供大量连接器与扩展端口。
<img src="
" alt="VENTUNO Q" />
通过将屏幕、显示器与鼠标连接到其专用 HDMI 与 USB 连接器,这块开发板可用作单板电脑(SBC)。
Dragonwing™ QCS8275 具有:
- Qualcomm® Hexagon™ Tensor Processor,最高 40 dense TOPS,可运行高级计算机视觉应用与本地 LLM
- Spectra™ 690 ISP 高性能图像处理引擎
- Qualcomm® Adreno™ 623 GPU,提供高性能图形能力
- 2x8GB LPDDR5(RAM) 与 64GB eMMC
硬件与软件要求
硬件要求
- 也可使用其他电源,电压范围为 7–24 V,电流 ≥ 3 A。更多信息请参阅 电源概述部分。
注意:
Arduino USB-C Power Supply (65W) 附带一个可将 USB-C® 转换为 DC 圆口插头的小型适配器。如需通过圆口连接器为开发板供电,请使用该适配器。
此外,要将开发板用作 单板电脑(SBC),你还需要以下设备:
- 鼠标
- 键盘
- HDMI 线缆
- 显示器
- USB 扩展坞(可选)*
注意:
- 鼠标、键盘和显示器可连接到 USB-A 与 HDMI 连接器。如需更多外设,请使用连接到 USB-C® 连接器的 USB-C® 扩展坞。
软件要求
产品概述
VENTUNO Q 旨在将高性能计算与实时感知和执行相结合。其双脑架构使开发板能够与现实世界交互并处理大量数据,支持 Edge AI 与物联网中的众多用例。
Dragonwing™ QCS8275(MPU)运行具有上游支持的完整 Ubuntu Linux OS,而 STM32H5F5(MCU)在 Zephyr OS 上运行 Arduino sketch。借助内置 RPC 库,两个系统可以无缝通信。
VENTUNO Q 还提供大量连接器与扩展端口:
- USB-C®
- USB-A
- HDMI
- 以太网 2.5Gb
- 40 针 RPI 连接器
- CAN-FD(螺丝端子)
- 3x MIPI/CSI(相机)连接器
- Qwiic
- 用于内存扩展的 M.2 连接器
应用示例
VENTUNO Q 能够在多个领域运行大量高性能应用:
- 离线语音助手:运行语音转文本模型与本地 LLM,创建离线语音助手
- 高级机器人:利用 3 个专用相机连接器构建计算机视觉应用,并通过 MCU 与专用 CAN 端口或其他外设接口。
- 智能环境: 创建可与物理空间中各组件与系统交互的本地智能家居中枢。
开发板架构概述
<img src="
" alt="VENTUNO Q 的 IC 概览" />
- MPU:Dragonwing™ QCS8275 是一款 MPU,具有八核处理器与 Kryo™ Gen 6 CPU 子系统(最高 2.35 GHz)、Adreno™ A623 GPU/VPU(877 MHz)以及最高 40 TOPS 的 Hexagon Tensor AI Processor(NPU)。它运行具有上游支持的 Ubuntu Linux OS,非常适合 LLM、VLM、TTS / STT 等高性能应用。它还具有 Qualcomm Spectra 692 图像信号处理器(ISP),用于处理多路相机连接。
- 微控制器(MCU):STM32H5F5 微控制器具有运行于 250 MHz 的 Arm® Cortex®-M33 核心,配备 4 MB 闪存与 1.5 MB SRAM。STM32H5F5 的 GPIO 可通过开发板引脚访问。MCU 可使用 bridge 框架通过 RPC 与 MPU 通信。
- 无线连接:Wi-Fi® / Bluetooth® 无线电模块提供三频 Wi-Fi® 6(2.4/5/6 GHz)与 Bluetooth® 5.3 连接,并带有 2 个板载天线。
- RAM:16 GB LPDDR5 RAM。
- 存储: 64 GB eMMC 存储,可通过 M.2 连接器使用 NVME Gen.4 外部存储进行扩展。
- 多媒体编解码器:MAX98091 音频编解码器通过 JMISC 高密度连接器实现音频输入/输出。
连接器概述
<img src="
" alt="VENTUNO Q 连接器概览" />
VENTUNO Q 具有非常丰富的连接器,包括 3 个专用相机连接器、HDMI、以太网、2x USB-A、40 针 RPi Hat 连接器等。
更多信息请参阅 连接器与扩展端口 部分。
电源概述
<img src="
" alt="VENTUNO Q 供电选项" />
VENTUNO Q 有多种为开发板供电的方式:
- USB-C® PD(9–20 V,最大 3 A)1
- 圆口插孔(7–24 V,最大 5 A)
- 螺丝端子(7–24 V,最大 10 A)
警告:
1 USB 供电要求 至少 9 V(Power Delivery 协商)。仅使用例如 5 V(例如通过电脑 USB 端口)供电不被接受,并将导致 USB 故障(USB 旁红色 LED 闪烁)。此错误不会损坏开发板,断电重启即可消除 LED 闪烁。
建议使用 最大 5 A 的 12/24 V 电源。超过 5 A 会损坏 DC 插孔。
DC 插孔的最大额定值(使用 12/24 V 电源时)为:
- 12 V × 5 A = 60 W
- 24 V × 5 A = 120 W
电源安全注意事项
警告:
请仔细阅读这些说明,因为供电不当可能损坏开发板。
请注意,以较低电压为开发板供电时,开发板可汲取的功率会受限。
- 以 7 V / 5 A 供电时,开发板最大可汲取 35 W。在未连接任何外部电路时,开发板(满载)大约消耗 ~25 W。
- 请注意,通过例如 USB-A 连接器连接额外外设会增加功耗。更多信息请参阅以下部分。
USB-A 功耗
2 个 USB-A 连接器还可各自提供最高 5 V × 1.71 A = 8.55 W,最大总汲取约 ~17 W。如果开发板以较低电压供电(例如 7 V 5 A),而 USB-A 总共汲取约 17 W,这将损坏插孔。
5 V / 3.3 V 电源轨
+3V3_LIMITED 与 +5V_LIMITED 网络(用于 shields、hats、Qwiic 连接器、UNO 引脚)限制为 2.8 A
- 3.3 V × 2.8 A = ~9.5 W
- 5 V × 2.8 A = 14 W
说明:
请注意,carrier 连接器 与 JOMEGA 不属于受限网络,可以汲取更多功率。
VIN 引脚额定值
VIN 引脚的输入电压为 7–24 V,由 1.1 A PTC 保险丝保护(在 24 V 时约限制为 26 W)。由于开发板在 *未* 连接任何外设时大约消耗 25 W~,通过 VIN 引脚为开发板供电 并不理想。
用户功能
引脚图
<img src="
" alt="VENTUNO Q 简易引脚图" />
要查看完整引脚图,请访问以下链接:
数据手册
完整数据手册可从以下链接以 PDF 形式下载:
原理图
完整原理图可从以下链接以 PDF 形式下载:
STEP 文件
完整 STEP 文件可从以下链接下载:
外形尺寸
VENTUNO Q 采用更大的外形尺寸(160 mm x 100 mm),但配备经典 UNO 排针,以确保与官方 Arduino shields 以及社区制作的 shields 兼容*。
- 这仅指机械与引脚兼容性,而非软件兼容性。
<img src="
" alt="VENTUNO 外形尺寸" />
开发板净空
警告:
请始终将 VENTUNO Q 安装在随附的支撑柱上。否则,底部外露焊点可能与导电表面短路,从而损坏开发板。
包装中为此附带四个垫片与螺母:在开发板四个角下方各放一个垫片,然后从上方安装孔用螺母固定。
Arduino App Lab
<img src="
" alt="Arduino App Lab" />
Arduino App Lab 是面向基于 Linux 的 Arduino 开发板的统一开发环境。通过在 Arduino App Lab 中创建并部署 Apps,你可以在 Linux 处理器(Dragonwing™ QCS8275)上运行 Python 脚本,并在 MCU(STM32H5F5)上运行 sketch。
要构建 Apps,可选择多个 Bricks(构建块),其中一些与预配置的 AI 模型配对(可在 Arduino App Lab 中更换)。
初次设置
要开始使用我们的开发板,可以从三种方式中选择。
- PC 模式 — 使用 Arduino App Lab 桌面应用(macOS/Windows/Linux)通过 USB-C® 连接到 VENTUNO Q
- 网络模式 — 使用 Arduino App Lab 桌面应用(macOS/Windows/Linux)通过 本地网络 连接到 VENTUNO Q。*
- 单板电脑(SBC)模式 — 在连接显示器、键盘和鼠标的情况下,直接在 VENTUNO Q 上使用 Arduino App Lab(开发板上预装了 Arduino App Lab)。
- 此选项仅在完成 初次设置 后可用。
为开发板供电
无论你打算如何使用开发板,都需要为其供电:
可通过以下方式为开发板供电:
- 通过 USB-C® 连接器,使用 9–20 V 输入源(最大 3 A)。*
- 通过圆口插头连接的外部 +7–24 VDC(最大 5 A)电源。
- 连接到螺丝端子排的外部 +7–24 VDC 电源(最大 10 A)。
- 仅在 网络模式 或 单板电脑 模式下可用。
警告:
USB 供电要求 至少 9 V。仅使用例如 5 V(例如通过电脑 USB 端口)供电不被接受,并将导致 USB 故障(USB 旁红色 LED 闪烁)。此错误不会损坏开发板,断电重启即可消除 LED 闪烁。
PC 模式(USB-C®)
说明:
初次设置的完整说明记录在 VENTUNO Q - 初次设置 教程中。
与开发板交互最常见的方式是使用 PC 模式:从电脑通过 USB-C® 或本地网络为开发板编程。
- 将 Arduino USB-C Power Supply (65W) 连接到圆口连接器为开发板供电。
- 通过 USB-C® 将开发板连接到电脑。
<img src="" alt="连接 USB-C® 线缆" />
- 下载 Arduino App Lab 并运行该应用。如果开发板已连接到电脑,它应会出现,点击它以继续。
<img src="" alt="选择开发板" />
- 首次启动时,系统会提示你设置 Board Name、Keyboard Language 和 Wi-Fi® 凭据。完成配置并执行所需的开发板更新。
配置与更新完成后,即可在 Arduino App Lab 中运行示例 🚀。
通过选择示例并点击 "Run" 按钮来运行 Apps。
<img src="
" alt="运行 App" />
网络模式(本地 Wi-Fi®)
完成首次配置后,如果开发板与 PC 在同一网络上,即可使用 网络模式。要使用网络模式:
- 重新启动 Arduino App Lab。
- 你的开发板旁应出现一个小的 Wi-Fi® 符号。点击它。
<img src="" alt="网络模式" />
- 你需要输入的是 开发板 的密码,而不是网络密码。
输入密码后,即可通过本地 Wi-Fi® 网络使用 Arduino App Lab 为开发板编程!
单板电脑(SBC)模式
说明:
将开发板设置为单板电脑的完整说明记录在 VENTUNO Q - 单板电脑 教程中。
VENTUNO Q 运行完整的 Ubuntu 操作系统,并带有图形用户界面。换句话说:它可以设置为普通电脑,配备鼠标、键盘和显示器。
若要将开发板设置为 单板电脑(SBC),你将需要:
- 键盘 + 鼠标
- 显示器 + HDMI 线缆
- Arduino USB-C Power Supply (65W)
<img src="
" alt="将 VENTUNO Q 设置为 SBC" />
- 将键盘与鼠标连接到 USB-A 连接器
- 通过 HDMI 连接器将显示器连接到开发板
- 使用连接到圆口或螺丝端子的电源为开发板供电。
- 在首次设置期间,你需要选择一个密码。
选择密码后,你将看到开发板的主屏幕,应如下图所示:
<img src="
" alt="VENTUNO Q 上的 Ubuntu" />
要启动 Arduino App Lab,请点击导航栏中的图标:
<img src="
" alt="启动 Arduino App Lab" />
程序将启动,然后你就可以在 Arduino App Lab 中运行示例了 🚀。
开机时运行 App
可将 Apps 配置为在 VENTUNO Q 上电时启动。这在部署开发板时非常有用。
- 打开你的自定义 App(或示例的副本)。
- 在左上角找到 App 名称。
- 点击名称旁的箭头(▼)打开菜单。
- 将 Run at startup 开关拨到 ON 位置。
<img src="
" alt="开机运行选项" />
配置完成后,App 名称旁将出现 DEFAULT 徽章,表示它将在启动时自动运行。
说明:
请注意,内置示例无法在启动时运行,你需要点击 "Copy and Edit App" 按钮才能使用此功能。
高级:使用 CLI
或者,你可以在终端内使用命令行界面(CLI)设置默认 App:
arduino-app-cli properties set default user:<NAME_OF_YOUR_APP>
通过 SSH 或 ADB 访问(终端)
使用开发板的另一种方式是通过 ssh(本地网络)或 adb(通过 USB-C®)访问开发板终端。
请注意,要通过 ssh 访问,需要将开发板连接到 Wi-Fi® 网络,这可通过 Arduino App Lab 完成,或先通过 adb 访问开发板。
说明:
建议在通过 ADB 或 SSH 连接之前先完成 Arduino App Lab 的首次配置,这样你可以为开发板设置密码,并连接到 Wi-Fi® 网络。
通过 ADB 访问
Android Debug Bridge(ADB)用于通过 USB-C® 访问开发板,可安装在 MacOS、Windows 与 Linux 上。
MacOS:
brew install android-platform-tools
Windows:
winget install Google.PlatformTools
Linux:
sudo apt-get install android-sdk-platform-tools
要通过 adb 访问 VENTUNO Q,请打开终端并运行:
adb devices #lists connected devices
adb shell #access the board's shell
进入后,你可以通过终端浏览 Ubuntu 系统。
连接到 Wi-Fi® 网络
要启用 ssh 通信,开发板需要与主机电脑连接到同一网络。要连接到 Wi-Fi® 网络,请使用 nmtui 工具:
sudo nmtui
<img src="
" alt="连接到 Wi-Fi 网络" />
通过 SSH 访问
要通过 ssh 访问,开发板需要连接到你的本地网络。要连接网络,可以使用 Arduino App Lab,或通过 adb 访问开发板并运行 sudo nmtui 选择网络。连接后,还可运行 hostname -I 获取开发板 IP 地址(也可在 Arduino App Lab 中查看)。
要连接到开发板:
- 在终端中运行
ssh arduino@<ipaddress> - 在要求生成指纹时输入
yes - 输入开发板密码
现在你可以通过 ssh 使用开发板的 shell。
通过 Arduino App CLI 运行 App
借助 Arduino App CLI,我们可以直接从终端启动 Apps。为进行测试,我们使用 blink 示例:
arduino-app-cli app start examples:blink
这应会在开发板上启动该 App,启动后 LED 应开始闪烁。
<img src="
" alt="板载 LED 闪烁" />
要查看所有已安装 Apps(以及用户 Apps),请运行 arduino-app-cli app list 命令。这将给出完整列表。
Arduino IDE(Beta)
Arduino VENTUNO Q 兼容标准 Arduino IDE,使你能够使用熟悉的 Arduino 语言与生态系统为开发板的微控制器侧(STM32)编程。
说明:
要了解更多关于使用 Arduino IDE 烧录微控制器的信息,请访问 本教程。
板载用户界面
VENTUNO Q 开箱即用,额外提供一套用于板载控制与反馈的用户界面。
<img src="
" alt="VENTUNO Q 板载用户界面" />
- LED Matrix — 8x13 LED 矩阵,用于显示动画、图标、文本等。
- MCU LEDs — 4x RGB LED,可用于反馈。
- 电源按钮 — 用于复位开发板。
- 用户按钮 — 可编程按钮。
LED 矩阵
开发板具有由 MCU 管理的 8×13 蓝色 LED 矩阵。
<img src="
" alt="LED 矩阵" />
LED 矩阵在 MCU 侧编程,可用于显示动画、图标、数字与文本(滚动格式)。LED 矩阵也可用于创建迷你游戏。
矩阵通过 Arduino_LED_Matrix 控制,提供多种控制方法。该库内置于核心(ArduinoCore-zephyr),并预装在 STM32F5H5 MCU 上。
说明:
要了解更多关于控制 LED 矩阵的信息,请访问 VENTUNO Q LED 矩阵指南。
RGB LED
VENTUNO Q 具有 4 个连接到 STM32 微控制器的 RGB LED。
<img src="
" alt="VENTUNO Q RGB LED" />
可像往常一样使用 digitalWrite 函数设置各自 GPIO 的状态来控制它们。
void setup(){
// Configure the pins as outputs
pinMode(LED3_R, OUTPUT);
pinMode(LED3_G, OUTPUT);
pinMode(LED3_B, OUTPUT);
// As they are active low, turn them OFF initially
digitalWrite(LED3_R, HIGH);
digitalWrite(LED3_G, HIGH);
digitalWrite(LED3_B, HIGH);
}
void loop(){
digitalWrite(LED3_R, LOW); // Turn ON red segment
digitalWrite(LED3_G, HIGH);
digitalWrite(LED3_B, HIGH);
delay(1000);
digitalWrite(LED3_R, HIGH);
digitalWrite(LED3_G, LOW); // Turn ON green segment
digitalWrite(LED3_B, HIGH);
delay(1000);
digitalWrite(LED3_R, HIGH);
digitalWrite(LED3_G, HIGH);
digitalWrite(LED3_B, LOW); // Turn ON blue segment
delay(1000);
}
要在代码中控制它们,请参考下表:
| LED | Red | Green | Blue |
|---|---|---|---|
| LED 1 | LED1_R
|
LED1_G
|
LED1_B
|
| LED 2 | LED2_R
|
LED2_G
|
LED2_B
|
| LED 3 | LED3_R
|
LED3_G
|
LED3_B
|
| LED 4 | LED4_R
|
LED4_G
|
LED4_B
|
说明:
RGB LED 为低电平有效,这意味着逻辑 '0' 时点亮。
电源按钮
VENTUNO Q 具有可用于重启开发板的 电源按钮。
<img src="
" alt="VENTUNO Q 电源按钮" />
- 长按:按下按钮 10+ 秒时,开发板将完全关机。在断开并重新接通电源之前,它将保持关闭。
说明:
开发板上电后会自动启动,无需按电源按钮。
用户按钮
<img src="
" alt="VENTUNO Q 用户按钮" />
VENTUNO Q 上的 用户按钮 连接到 Dragonwing™ QCS8275 上的 GPIO_79。
可使用 gpiod 访问该按钮。快速测试时,在开发板终端(通过 adb 或 ssh 访问)运行以下命令:
gpiomon gpiochip2 79
你应看到类似如下内容:
<img src="
" alt="用户按钮已按下" />
用户按钮示例脚本
你也可以编写 Python 脚本来访问用户按钮。
- 创建虚拟环境:
python3 -m venv /path/to/venv - 激活虚拟环境:
source /path/to/venv/bin/activate - 安装
gpiod:pip install gpiod - 通过运行
nano user-button.py创建 Python 脚本,并将下面示例中的代码添加到脚本中。 - 保存脚本(在编辑模式下按 CTRL+X)。
- 使用
python3 user-button.py运行它
说明:
你也可以使用
--verbose标志运行此脚本,例如python3 user-button.py --verbose,以显示有关按钮点击的更多数据。
user-button.py
import gpiod
import argparse
import sys
from gpiod.line import Direction, Edge, Bias
def main():
parser = argparse.ArgumentParser(description="Monitor GPIO 79 Pushbutton")
parser.add_argument('-v', '--verbose', action='store_true',
help="Print detailed event timestamps and types")
args = parser.parse_args()
CHIP_PATH = "/dev/gpiochip2"
LINE_OFFSET = 79
try:
with gpiod.request_lines(
CHIP_PATH,
consumer="button-monitor",
config={
LINE_OFFSET: gpiod.LineSettings(
direction=Direction.INPUT,
edge_detection=Edge.BOTH,
bias=Bias.PULL_UP
)
},
) as request:
if args.verbose:
print(f"DEBUG: Monitoring {CHIP_PATH} line {LINE_OFFSET}")
print("DEBUG: Waiting for events...")
else:
print("Ready! Press the button.")
while True:
# Wait for events
if request.wait_edge_events():
for event in request.read_edge_events():
# VERBOSE MODE: Print everything
if args.verbose:
print(f"DEBUG Event: {event.event_type} | Timestamp: {event.timestamp_ns}ns")
# REGULAR MODE: Only print on "Falling" edge (the press)
else:
if event.event_type == gpiod.EdgeEvent.Type.FALLING_EDGE:
print("Button Pressed!")
except PermissionError:
print("Error: Permission denied. Try running with 'sudo'.")
except KeyboardInterrupt:
print("\nExiting...")
except Exception as e:
print(f"Unexpected Error: {e}")
if __name__ == "__main__":
main()
<img src="
" alt="用 Python 脚本测试用户按钮" />
UNO 排针
VENTUNO Q 顶部具有经典 UNO 风格排针,可用于原型制作与调试。它们具有旧版 UNO 中熟悉的数字与模拟排针,从而与基于 UNO 外形的 shields 向后兼容。
数字引脚
通过 UNO 排针可使用来自 MCU 的 22 个数字引脚(D0–D21),功能如下:
| MCU Pin | UNO Header | Pin Functionality |
|---|---|---|
| PB11 | D0 / RX | GPIO / UART RX |
| PB10 | D1 / TX | GPIO / UART TX |
| PB0 | D2 | GPIO |
| PB1 | D3 | GPIO / OPAMP OUT |
| PB6 | D4 / FDCAN2_TX | GPIO / CAN Bus TX |
| PB5 | D5 / FDCAN2_RX | GPIO / CAN Bus RX |
| PB2 | D6 | GPIO |
| PB3 | D7 | GPIO |
| PB4 | D8 | GPIO |
| PB7 | D9 | GPIO |
| PB12 | D10 / SS | GPIO / SPI CS |
| PB15 | D11 / MOSI | GPIO / SPI MOSI |
| PB14 | D12 / MISO | GPIO / SPI MISO |
| PB13 | D13 / SCK | GPIO / SPI SCK |
| PA4 | D14 / A0 / DAC0 | GPIO / ADC / DAC |
| PA5 | D15 / A1 / DAC1 | GPIO / ADC / DAC |
| PE12 | D16 / A2 | GPIO / ADC / OPAMP IN + |
| PE13 | D17 / A3 | GPIO / ADC / OPAMP IN - |
| PE14 | D18 / A4 | GPIO / ADC |
| PE15 | D19 / A5 | GPIO / ADC |
| PH12 | D20 | GPIO / I2C SDA |
| PH11 | D21 | GPIO / I2C SCL |
说明:
请注意,引脚 D14 到 D19 也具有模拟功能。
VENTUNO Q 的数字引脚可通过 Arduino 编程语言的内置函数用作输入或输出。
数字引脚的配置在 setup() 函数中使用内置函数 pinMode() 完成,如下所示:
// Pin configured as an input
pinMode(pin, INPUT);
// Pin configured as an output
pinMode(pin, OUTPUT);
// Pin configured as an input, internal pull-up resistor enabled
pinMode(pin, INPUT_PULLUP);
配置为输入的数字引脚状态可使用内置函数 digitalRead() 读取,如下所示:
// Read pin state, store value in a state variable
state = digitalRead(pin);
配置为输出的数字引脚状态可使用内置函数 digitalWrite() 更改,如下所示:
// Set pin on
digitalWrite(pin, HIGH);
// Set pin off
digitalWrite(pin, LOW);
说明:
要了解更多,请访问 VENTUNO Q 微控制器示例 - 数字 I/O。
模拟引脚
VENTUNO Q 在 JANALOG 连接器上具有 6 个模拟引脚,包含 6x ADC 通道、2x DAC 通道与运放。
说明:
引脚 A0–A5 可用作 GPIO,但不能与其他功能同时使用。
模数转换器(ADC)
在 JANALOG 连接器上,VENTUNO Q 有 6 个 12 位 ADC 引脚,映射如下:
| Microcontroller Pin | Arduino Pin Mapping | Pin Functionality |
|---|---|---|
| PA4 | A0 | GPIO / ADC / DAC |
| PA5 | A1 | GPIO / ADC / DAC |
| PE12 | A2 | GPIO / ADC / OPAMP IN + / SPI SCK |
| PE13 | A3 | GPIO / ADC / OPAMP IN - / SPI MISO |
| PE14 | A4 | GPIO / ADC / SPI MOSI |
| PE15 | A5 | GPIO / ADC |
模拟输入引脚可通过 Arduino 编程语言的内置函数使用。
VENTUNO Q ADC 分辨率 可使用 analogReadResolution(bits) 函数配置为 12、10 或 8 位:
// ADC resolution set to 12-bit (0 to 4095)
analogReadResolution(12);
默认 ADC 电压参考 为 3.3V,可通过软件使用函数 analogReference() 与以下参数更改:
| Analog Voltage Reference (V_REF+) | Argument | Source |
|---|---|---|
| 1.5 V | AR_INTERNAL1V5 | Internal |
| 1.8 V | AR_INTERNAL1V8 | Internal |
| 2.048 V | AR_INTERNAL2V05 | Internal |
| 2.5 V | AR_INTERNAL2V5 | Internal |
| 2 V ~ VDD | AR_EXTERNAL | External |
说明:
使用
AR_EXTERNAL参考时,可通过 AREF 引脚提供外部电压参考。
要将模拟参考设置为与默认不同的值,请参见以下示例:
analogReference(AR_INTERNAL2V5);
说明:
要了解更多,请访问 VENTUNO Q 微控制器示例 - ADC。
数模转换器(DAC)
VENTUNO Q 有两个 DAC 输出,映射如下:
| Microcontroller Pin | Arduino Pin Mapping | Pin Functionality |
|---|---|---|
| PA4 | DAC0 | GPIO / ADC / DAC |
| PA5 | DAC1 | GPIO / ADC / DAC |
VENTUNO Q 的数模转换器可通过 Arduino 编程语言的内置函数输出模拟电压。
可使用 analogWriteResolution() 函数将 DAC 输出分辨率配置为 8 到 12 位,如下所示:
// DAC resolution set to 12-bit (0 to 4095)
analogWriteResolution(12); // enter the desired resolution in bits (8, 10, 12)
警告:
警告: ADC 与 DAC 不能同时使用。
说明:
要了解更多,请访问 VENTUNO Q 微控制器示例 - DAC。
PWM 引脚
VENTUNO Q 有 6 个 PWM(脉冲宽度调制)引脚,映射如下:
| Microcontroller Pin | Arduino Pin Mapping | Pin Functionality |
|---|---|---|
| PB1 | D3 | GPIO / PWM |
| PB5 | D5 | GPIO / PWM |
| PB2 | D6 | GPIO / PWM |
| PB7 | D9 | GPIO / PWM |
| PB12 | D10 | GPIO / PWM |
| PB15 | D11 | GPIO / PWM |
此功能可与内置函数 analogWrite() 一起使用,如下所示:
analogWrite(pin, value);
默认情况下,输出分辨率为 8 位,因此输出值应在 0 到 255 之间。要设置更高分辨率,请使用内置函数 analogWriteResolution,如下所示:
// PWM resolution set to 10-bit (0 to 4095)
analogWriteResolution(10);
说明:
要了解更多,请访问 VENTUNO Q 微控制器示例 - PWM。
连接器与扩展端口
USB-C 连接器
VENTUNO Q 具有 USB-C 连接器,用途不仅限于为开发板编程与供电。
<img src="
" alt="USB-C 连接器" />
下表列出了扩展 VENTUNO Q 能力的 USB-C 连接器主要特性。
| Feature | Description |
|---|---|
| USB Power (Sink) | Receive power, 9-20 VDC 3 A (PD) |
| USB Power (Source) | Provide power, 5 VDC 3 A (15 W) |
| USB Standard | USB 3.1 Gen 1 (5 Gb/s) |
| Display over USB-C | DisplayPort |
说明:
开发板也可为 USB-C® 外设供电,即支持双角色供电(DRP)规范。开发板可通过其 USB-C® 端口接收与提供电源。
通过使用 USB-C 扩展坞(适配器/集线器),你还可以利用以下功能:
| Feature | Description |
|---|---|
| Video Output | HDMI support |
| Video Input | USB camera support |
| Audio | USB or 3.5mm headset (speaker + microphone) |
| Ethernet | Internet through Ethernet supported |
| HID | USB keyboard/mouse and other HID devices |
| Storage | External microSD card or USB drive support |
USB-A 连接器
VENTUNO Q 具有两个高速 USB 3.0 Type-A 端口,提供熟悉的接口,可将多种标准外设直接连接到 Dragonwing™ QCS8275。
在将开发板用作 SBC 时,此连接器非常适合连接鼠标与键盘,或通过 USB 轻松集成相机。
<img src="
" alt="USB-A 连接器" />
下表列出了集成到 VENTUNO Q 中的 USB-A 连接器主要特性。
| Feature | Description |
|---|---|
| USB Standard | USB 3.0 (SuperSpeed) |
| Data Rate | Up to 5 Gb/s |
| Quantity | 2x Type-A Ports (plus 2x via header) |
利用这些端口,你可以原生支持各类硬件以扩展边缘 AI 应用:
| Feature | Description |
|---|---|
| Camera Input | USB 3.0 High-definition camera support |
| Audio | USB Soundcards and USB headsets |
| HID | Keyboard, mouse, and game controllers |
| Storage | External USB flash drives or SSDs |
| Serial/COM | Programming other boards or sensor modules |
Qwiic
VENTUNO Q 具有板载 Qwiic 连接器,为连接 I²C 设备提供简单、免工具的方案。由 SparkFun Electronics 开发的 Qwiic 生态系统已成为使用 I²C 设备快速原型开发的行业标准,使你无需焊接或复杂接线即可连接传感器、显示器和其他外设。
<img src="
" alt="I2C Qwiic 连接器" />
Qwiic 系统的主要优势包括:
- 即插即用连接:无需面包板、跳线或焊接
- 极性连接器:防止意外反接
- 菊花链能力:串联连接多个设备
- 内置上拉电阻:无需外部电阻
- 标准引脚定义:与所有 Qwiic 生态系统设备兼容
说明:
VENTUNO Q 上的 Qwiic 连接器连接到辅助 I2C 总线(I2C4),使用
Wire1对象而非Wire对象。请注意,Qwiic 连接器仅为 3.3 V。
Qwiic 连接器使你能够连接我们的 Modulino 节点,以开发免焊接项目。
<img src="
" alt="Modulino 节点" />
- 查看完整的 Modulino 系列,其中有多种 传感器 与 执行器 可扩展你的项目。
- 所有 Modulino 节点的源代码与 API 文档可在 Arduino_Modulino Github 仓库 中找到
以太网连接器
VENTUNO Q 具有高性能 2.5 Gbps RJ45 以太网端口,为多路视频流或本地服务器通信等高带宽边缘 AI 任务提供超快有线网络能力。
<img src="
" alt="VENTUNO Q 以太网连接器" />
网络子系统由专用 QCA-8081 PHY 与 TRJT9010A98NL 连接器驱动,确保稳定的工业级连接。
| Feature | Description |
|---|---|
| Interface | RJ45 (8P8C) |
| Maximum Speed | 2.5 Gbit/s (NBASE-T) |
| Controller/PHY | Qualcomm QCA-8081 |
| Compatibility | 10/100/1000/2500 Mbps auto-negotiation |
借助高速以太网端口,VENTUNO Q 可用于:
| Feature | Description |
|---|---|
| High-Speed Uplink | Rapid data transfer to local servers or NAS |
| Low Latency | Real-time control in industrial environments |
| Video Streaming | Low-latency IP camera (RTSP/ONVIF) processing |
| Network Boot | Potential for PXE or network-based deployments |
| Secure Gateway | Acting as a secure edge AI firewall/gateway |
HDMI
<img src="
" alt="HDMI 连接器" />
VENTUNO Q 具有垂直安装在开发板上的全尺寸 HDMI Type A 连接器,直接连接到 Qualcomm Dragonwing™ QCS8275。它与位于 JMEDIA 排针上的 MIPI-DSI 连接器复用,意味着同一时间只能有一个显示输出(HDMI 或 MIPI-DSI)处于活动状态。
该连接器承载三对 TMDS 差分数据对(TX0–TX2)外加差分时钟,实现高质量数字视频与音频输出。它还包括用于从已连接显示器读取 EDID 数据的 DDC/I2C 线(SCL/SDA)、用于通过 HDMI 链路控制设备的 CEC 线,以及 5 V 热插拔检测信号(500 mA 聚合物保险丝保护)。
| Feature | Description |
|---|---|
| Type | HDMI Type A (19-pin) |
| Video signal | 3× TMDS differential pairs + clock |
| DDC / EDID | I²C (SCL / SDA) for display identification |
| CEC | Yes (Consumer Electronics Control) |
| Hot-plug detect | Yes (5 V, 500 mA polyfuse protected) |
| ESD protection | Yes (TVS diodes on data and HPD lines) |
M.2 连接器
<img src="
" alt="M.2 连接器" />
VENTUNO Q 具有通过 PCIe Gen 4 x4 接口提供高速存储扩展的 M-key M.2 插槽,直接连接到 Qualcomm Dragonwing™ QCS8275。这使开发板的 64 GB eMMC 基础存储可以通过快速 NVMe 驱动器补充或超越。
连接额外内存后,它将在 Linux 环境中可用。
该连接器暴露四对 PCIe Gen 4 差分 TX/RX 通道、参考时钟、标准 PCIe 控制信号(WAKE、CLKREQ、RST),以及用于设备管理的 SMBus 接口。
| Feature | Description |
|---|---|
| Key type | M-key |
| Interface | PCIe Gen 4 x4 |
| SMBus | Yes (device management) |
| Power rails | 3.3 V, 1.8 V |
警告:
警告: 连接任何外部设备时,请确保 VENTUNO Q 已断电。
兼容设备
M.2 M-key 插槽仅兼容 2230 外形的 NVMe SSD。安装支撑柱针对 2230 模块定位,因此更大的驱动器(2242、2260、2280)无法用固定螺钉固定。
| Form Factor | Dimensions | Common Use |
|---|---|---|
| 2230 | 22 mm × 30 mm | Compact NVMe SSDs |
注意:
M-key 插槽仅支持 PCIe(NVMe) 驱动器。基于 SATA 的 M.2 驱动器 不 兼容。
RPi 40 针排针
开发板具有 40 针公头排针,便于与 RPi "hats" 集成。这些引脚通过电平转换器连接在 MPU(1.8 V)与排针(3.3 V)之间,连接到 Dragonwing™ QCS8275。
<img src="
" alt="RPi 排针" />
请注意,该排针具有 2 个 5V 引脚 以匹配 RPi hat 标准。手动连接任何跳线时请谨慎,因为开发板同时使用 5 V 与 3.3 V。
该排针具有 28 个已连接的 GPIO,列表如下:
| Pin No. | Dragonwing™ QCS8275 (MPU) | Function |
|---|---|---|
| 1 | - | +3V3 |
| 2 | - | +5V |
| 3 | MD_GPIO_17 | SE0_SDA |
| 4 | - | +5V |
| 5 | MD_GPIO_18 | SE0_SCL |
| 6 | - | GND |
| 7 | MD_GPIO_83 | GPIO |
| 8 | MD_GPIO_86 | SE2_TX |
| 9 | - | GND |
| 10 | MD_GPIO_87 | SE2_RX |
| 11 | MD_GPIO_85 | SE2_RFR |
| 12 | MD_GPIO_116 | I2S1_SCK |
| 13 | MD_GPIO_109 | GPIO |
| 14 | - | GND |
| 15 | MD_GPIO_90 | GPIO |
| 16 | MD_GPIO_105 | GPIO |
| 17 | - | +3V3 |
| 18 | MD_GPIO_106 | GPIO |
| 19 | MD_GPIO_26 | SE3_MOSI |
| 20 | - | GND |
| 21 | MD_GPIO_25 | SE3_MISO |
| 22 | MD_GPIO_107 | GPIO |
| 23 | MD_GPIO_27 | SE3_SCK |
| 24 | MD_GPIO_28 | SE3_CS |
| 25 | - | GND |
| 26 | MD_GPIO_88 | GPIO |
| 27 | MD_GPIO_19 | SE1_SDA |
| 28 | MD_GPIO_20 | SE1_SCL |
| 29 | MD_GPIO_89 | GPIO |
| 30 | - | GND |
| 31 | MD_GPIO_80 | GPIO |
| 32 | MD_GPIO_77 | GPIO |
| 33 | MD_GPIO_81 | GPIO |
| 34 | - | GND |
| 35 | MD_GPIO_117 | I2S1_WS |
| 36 | MD_GPIO_84 | SE2_CTS |
| 37 | MD_GPIO_108 | GPIO |
| 38 | MD_GPIO_118 | I2S1_DATA0 |
| 39 | - | GND |
| 40 | MD_GPIO_119 | I2S1_DATA1 |
注意:
请注意,在使用 Bluetooth® 时,以下引脚在 JHAT 上不可用,既不能用作 UART,也不能用作 GPIO:
- 引脚 8(UART TX,
MD_GPIO_86)- 引脚 10(UART RX,
MD_GPIO_87)- 引脚 11(UART RFR,
MD_GPIO_85)- 引脚 36(UART CTS,
MD_GPIO_84)这四个引脚为 JHAT 连接器电平转换为 3.3 V,但在 1.8 V 侧(转换前)它们与 MPU 和板载 Wi-Fi®/Bluetooth® 模块之间使用的 UART(包括流控)共享。只要 Bluetooth® 处于活动状态,此 UART 链路就会占用全部四个引脚,使其无法用于外部 HAT。
MIPI / CSI 相机
说明:
更多详情与现成脚本,请访问 VENTUNO Q MIPI-CSI 相机指南。
<img src="
" alt="VENTUNO Q MIPI / CSI 连接器" />
说明:
注意: 目前仅支持 IMX577 相机模块。
VENTUNO Q 具有 三个专用 MIPI CSI-2 相机连接器(CAMERA0、CAMERA1、CAMERA2),每个都由 Dragonwing™ QCS8275 内的 Qualcomm Spectra 692 ISP 驱动。这允许同时连接最多三个独立相机,用于立体视觉、360° 采集或多角度目标检测等多相机边缘 AI 应用。
每个连接器都是 22 针 FPC 连接器(TF31-22S-0.5SH,0.5 mm 间距),承载完整的 4-lane MIPI CSI-2 接口、I²C 控制总线、一条 GPIO 控制线以及 3.3 V 电源轨。所有高速数据通道(RCLAMP0524TCT)以及电源与 I²C 线(DF2B7ASL,L3F)均提供 ESD 保护。
| Connector | Label | Interface | Control | Power |
|---|---|---|---|---|
| J3_1 | CAMERA2 | MIPI CSI-2 4-lane | I²C4 + 1× GPIO (3.3 V) | 3.3 V |
| J3_3 | CAMERA1 | MIPI CSI-2 4-lane | I²C2 + 1× GPIO (3.3 V) | 3.3 V |
| J3_2 | CAMERA0 | MIPI CSI-2 4-lane | I²C0 + 1× GPIO (3.3 V) | 3.3 V |
每个连接器上的 GPIO 线(引脚 17)通常用于相机复位与电源使能控制。I²C 总线(SCL/SDA,3.3 V)用于配置相机传感器寄存器。
安装 Gstreamer
要使用通过 MIPI/CSI 连接的相机,我们需要使用特定版本的 gstreamer,更具体地说是 gstreamer1.0-plugins-qcom。
要安装此包,请在开发板上打开 shell(通过 ssh、adb 或在 SBC 模式下打开终端),然后安装该包。
sudo apt update
sudo apt upgrade -y
sudo apt install gstreamer1.0-plugins-qcom -y
将相机连接到开发板,安装后 重启 开发板。然后在开发板上打开新的 shell,并运行:
sudo dmesg | grep Probe
你应看到类似如下内容:
[ 28.182686] CAM_INFO: CAM-SENSOR: cam_sensor_driver_cmd: 1250: Probe failed for cmk_imx577 slot:23, slave_addr:0x34, sensor_id:0x577
[ 28.213671] CAM_INFO: CAM-SENSOR: cam_sensor_driver_cmd: 1250: Probe failed for cmk_imx577 slot:24, slave_addr:0x34, sensor_id:0x577
[ 28.231128] CAM_INFO: CAM-SENSOR: cam_sensor_driver_cmd: 1250: Probe failed for cmk_imx577 slot:25, slave_addr:0x34, sensor_id:0x577
[ 28.268640] CAM_INFO: CAM-SENSOR: cam_sensor_driver_cmd: 1290: Probe success for cmk_imx577 slot:26,slave_addr:0x34,sensor_id:0x577
[ 28.688703] CAM_INFO: CAM-SENSOR: cam_sensor_driver_cmd: 1250: Probe failed for cmk_imx577 slot:27, slave_addr:0x34, sensor_id:0x577
查找 Probe success 行(在此例中为第 4 条)。
这意味着相机已被识别并正在工作。
录制视频
完成上述步骤后,我们现在可以测试录制视频流。
运行以下命令。这将开始录制。用 CTRL + C 结束录制。视频文件将位于运行该命令的同一目录中(或由 location 标志另行指定)。
gst-launch-1.0 -e qtiqmmfsrc camera=0 name=camsrc video_0::type=preview ! video/x-raw,format=NV12_Q08C,width=3840,height=2160,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! mp4mux ! queue ! filesink location=capture.mp4
在开发板上实时预览
要设置简单的相机实时预览,可使用以下 Python 脚本。
注意:
请注意,使用此示例需要通过 HDMI 将显示器连接到 VENTUNO Q。
import os
import signal
import sys
import time
# Must be set before GStreamer/Wayland touches the display — do this first,
# so the script works whether it's launched from the graphical session or
# from a plain SSH/serial shell that never inherited these.
os.environ.setdefault("XDG_RUNTIME_DIR", f"/run/user/{os.getuid()}")
os.environ.setdefault("WAYLAND_DISPLAY", "wayland-0")
import gi
gi.require_version("Gst", "1.0")
from gi.repository import Gst, GLib
_wayland_socket = os.path.join(
os.environ["XDG_RUNTIME_DIR"], os.environ["WAYLAND_DISPLAY"]
)
HAS_DISPLAY = os.path.exists(_wayland_socket)
if HAS_DISPLAY:
_SINK = "waylandsink name=sink sync=false"
else:
print(
f"no wayland compositor socket at {_wayland_socket} — "
"running headless, dropping frames via fakesink instead of displaying them",
file=sys.stderr,
)
_SINK = "fakesink name=sink sync=false"
PIPELINE_DESC = (
"qtiqmmfsrc camera=0 name=camsrc video_0::type=preview ! "
"video/x-raw,format=NV12_Q08C,width=1920,height=1080,framerate=30/1,"
"interlace-mode=progressive,colorimetry=bt601 ! "
"queue ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! "
"v4l2h264dec ! video/x-raw,format=NV12 ! "
f"queue ! {_SINK}"
)
PRINT_INTERVAL_S = 1.0
def main():
Gst.init(None)
pipeline = Gst.parse_launch(PIPELINE_DESC)
sink = pipeline.get_by_name("sink")
sinkpad = sink.get_static_pad("sink")
last_print = [0.0]
def on_probe(pad, info):
buf = info.get_buffer()
if buf is None or buf.pts == Gst.CLOCK_TIME_NONE:
return Gst.PadProbeReturn.OK
now_wall = time.monotonic()
if now_wall - last_print[0] < PRINT_INTERVAL_S:
return Gst.PadProbeReturn.OK
last_print[0] = now_wall
clock = pipeline.get_clock()
if clock is None:
return Gst.PadProbeReturn.OK
running_time = clock.get_time() - pipeline.get_base_time()
latency_ms = (running_time - buf.pts) / 1e6
print(f"latency (capture -> encode -> decode -> display): {latency_ms:.2f} ms")
return Gst.PadProbeReturn.OK
sinkpad.add_probe(Gst.PadProbeType.BUFFER, on_probe)
loop = GLib.MainLoop()
def on_bus_message(bus, message):
t = message.type
if t == Gst.MessageType.ERROR:
err, debug = message.parse_error()
print(f"gst error: {err} ({debug})", file=sys.stderr)
elif t == Gst.MessageType.EOS:
loop.quit()
return True
bus = pipeline.get_bus()
bus.add_signal_watch()
bus.connect("message", on_bus_message)
def shutdown():
print("\nstopping...")
pipeline.set_state(Gst.State.NULL)
loop.quit()
return GLib.SOURCE_REMOVE
GLib.unix_signal_add(GLib.PRIORITY_DEFAULT, signal.SIGINT, shutdown)
pipeline.set_state(Gst.State.PLAYING)
try:
loop.run()
finally:
pipeline.set_state(Gst.State.NULL)
if __name__ == "__main__":
main()
运行示例后,你应在终端中看到日志(延迟),并且显示器上应出现画面。
<img src="
" alt="通过 MIPI-CSI 相机录制视频" />
CAN-FD
开发板支持控制器局域网灵活数据速率(CAN-FD)协议,并带有专用螺丝端子(CAN-H 与 CAN-L)。
开发板具有连接到 STM32H5F5 的 ATA6563 CAN 收发器(物理层 / PHY)。STM32H5F5 有三个 FDCAN 接口,可通过多路复用选项将它们路由到物理 CAN 收发器。
CAN 总线在 Linux OS 中访问,后者通过处理 CAN 通信的预装固件与 MCU 交互。这意味着无需用户 sketch 即可与 CAN 总线接口。
要与 CAN 总线交互,请先在 shell 中使用以下命令进行设置(例如使用 adb 或 ssh,或直接在开发板上使用终端):
安装 can-utils:
sudo apt-get update
sudo apt-get install can-utils
配置 CAN 总线:
sudo ip li set can0 down # the interface must be down to configure it
sudo ip li set can0 type can bitrate 500000 # CAN 2.0
sudo ip link set can0 type can bitrate 500000 dbitrate 2000000 fd on # CAN-FD (Flexible Data-Rate)
sudo ip li set can0 up
说明:
注意: CAN 物理比特率上限为 5 Mbps。
要向总线发送消息,请使用以下格式:
cansend <device> <can_frame>
<device>可以是:can0、can1或can2。(can0是通过螺丝端子(PHY)暴露的那个)<can_frame>遵循以下结构:
| Structure | Note |
|---|---|
<can_id>#{data}
|
for Classical CAN 2.0 data frames |
<can_id>#R{len}
|
for Classical CAN 2.0 data frames |
<can_id>#{data}_{dlc}
|
for Classical CAN 2.0 data frames |
<can_id>#R{len}_{dlc}
|
for Classical CAN 2.0 data frames |
<can_id>##<flags>{data}
|
for CAN FD frames |
发送示例:
cansend can0 123#DEADBEEF
要监听 CAN 总线,请使用:
candump can0
螺丝端子引脚定义
螺丝端子引脚通过 FDCAN1_RX 与 FDCAN1_TX 直接连接到 CAN_PHY(ATA6563)。
| Screw Terminal | Description | CAN PHY | MCU Pins |
|---|---|---|---|
| CAN-H | CAN High Bus | FDCAN1_RX | PD0 |
| CAN-L | CAN Low Bus | FDCAN1_TX | PD1 |
CAN 接口
| CAN Bus | MCU Pin | JOMEGA Header Pin | Note |
|---|---|---|---|
| FDCAN1_TX | PD0\* | \*Exposed via Screw Terminal | |
| FDCAN1_RX | PD1\* | \*Exposed via Screw Terminal | |
| FDCAN1_TX | PD5 | Pin 86 | Shared Bus |
| FDCAN1_RX | PI9 | Pin 88 | Shared Bus |
| FDCAN2_TX | PA10 | Pin 92 | |
| FDCAN2_RX | PD9 | Pin 94 | |
| FDCAN3_TX | PF6 | Pin 98 | |
| FDCAN3_RX | PF7 | Pin 100 |
CAN 收发器连接
| Pin No. | Transceiver Pin | Signal | Connection | Logic Level |
|---|---|---|---|---|
| 1 | TXD | CAN TX | MCU PD1 | 3.3 V |
| 2 | GND | Ground | GND | - |
| 3 | VCC | Power | +5 V | - |
| 4 | RXD | CAN RX | MCU PD0 | 3.3 V |
| 5 | VIO | MCU Voltage | Reference | 3.3 V |
| 6 | CANL | CAN Low | Screw Terminal | Bus Level |
| 7 | CANH | CAN High | Screw Terminal | Bus Level |
| 8 | STBY | Standby | MCU PI11 | 3.3 V |
| 9 | GND | Ground | GND | - |
<img src="
" alt="VENTUNO Q CAN-FD 引脚" />
UNO Carrier 排针 / 连接器
开发板具有一套独特的排针,可扩展开发板功能。
JMEDIA
<img src="
" alt="JMEDIA 连接器" />
JMEDIA 连接器位于开发板底部,工作于 1.8V。连接器上的引脚直接连接到 Dragonwing™ QCS8275,引脚表见下。此连接器主要用于配合配件扩展开发板功能。
| JMEDIA Pin | Signal (Dragonwing™ QCS8275) | GPIO |
|---|---|---|
| Pin 1 | GND | |
| Pin 2 | GND | |
| Pin 3 | MIPI_DSI0_CLK_M | |
| Pin 4 | MIPI_DSI0_L1_P | |
| Pin 5 | MIPI_DSI0_CLK_P | |
| Pin 6 | MIPI_DSI0_L1_M | |
| Pin 7 | GND | |
| Pin 8 | GND | |
| Pin 9 | MIPI_DSI0_L2_M | |
| Pin 10 | MIPI_DSI0_L0_P | |
| Pin 11 | MIPI_DSI0_L2_P | |
| Pin 12 | MIPI_DSI0_L0_M | |
| Pin 13 | GND | |
| Pin 14 | GND | |
| Pin 15 | MIPI_DSI0_L3_M | |
| Pin 16 | SOC_CAM_MCLK0 | GPIO_67 |
| Pin 17 | MIPI_DSI0_L3_P | |
| Pin 18 | SOC_CAM_MCLK1 | GPIO_68 |
| Pin 19 | GND | |
| Pin 20 | GND | |
| Pin 21 | CSI0_C0_LN0_M | |
| Pin 22 | CCI_I2C2_SDA1 | GPIO_59 |
| Pin 23 | CSI0_B0_LN0_P | |
| Pin 24 | CCI_I2C2_SCL1 | GPIO_60 |
| Pin 25 | GND | |
| Pin 26 | GND | |
| Pin 27 | CSI0_B1_LN1_M | |
| Pin 28 | CSI1_B2_LN3_P | |
| Pin 29 | CSI0_A1_LN1_P | |
| Pin 30 | CSI1_C2_LN3_M | |
| Pin 31 | GND | |
| Pin 32 | GND | |
| Pin 33 | CSI0_A0_CLK_M | |
| Pin 34 | CSI1_C1_LN2_P | |
| Pin 35 | CSI0_NC_CLK_P | |
| Pin 36 | CSI1_A2_LN2_M | |
| Pin 37 | GND | |
| Pin 38 | GND | |
| Pin 39 | CSI0_A2_LN2_M | |
| Pin 40 | CSI1_NC_CLK_P | |
| Pin 41 | CSI0_C1_LN2_P | |
| Pin 42 | CSI1_A0_CLK_M | |
| Pin 43 | GND | |
| Pin 44 | GND | |
| Pin 45 | CSI0_C2_LN3_M | |
| Pin 46 | CSI1_A1_LN1_P | |
| Pin 47 | CSI0_B2_LN3_P | |
| Pin 48 | CSI1_B1_LN1_M | |
| Pin 49 | GND | |
| Pin 50 | GND | |
| Pin 51 | CCI_I2C0_SCL1 | GPIO_58 |
| Pin 52 | CSI1_B0_LN0_P | |
| Pin 53 | CCI_I2C0_SDA1 | GPIO_57 |
| Pin 54 | CSI1_C0_LN0_M | |
| Pin 55 | GND | |
| Pin 56 | GND | |
| Pin 57 | VIN (IN, 1.5 A max) | |
| Pin 58 | +3V3 (OUT) | |
| Pin 59 | VIN (IN, 1.5 A max) | |
| Pin 60 | +3V3 (OUT) |
JMISC
<img src="
" alt="JMISC 连接器" />
JMISC 排针连接到开发板上的多个关键组件,包括:
- STM32H5F5(MCU)
- Dragonwing™ QCS8275(MPU)
- 音频编解码器(MAX98091)
此连接器也用于扩展开发板功能,并在连接 carrier 时配合使用。
| JMISC Pin | Signal | GPIO / Function |
|---|---|---|
| Pin 1 | MCU_PSSI_D0 | PA9 |
| Pin 2 | MCU_TRACE_CLK | PE2 |
| Pin 3 | MCU_PSSI_D1 | PC7 |
| Pin 4 | MCU_TRACE_D0 | PE3 |
| Pin 5 | MCU_PSSI_D2 | PC8 |
| Pin 6 | MCU_TRACE_D1 | PE4 |
| Pin 7 | MCU_PSSI_D3 | PE1 |
| Pin 8 | MCU_TRACE_D2 | PE5 |
| Pin 9 | MCU_PSSI_D4 | PC11 |
| Pin 10 | MCU_TRACE_D3 | PE6 |
| Pin 11 | MCU_PSSI_D5 | PD3 |
| Pin 12 | MCU_USART2_RX | PE7 |
| Pin 13 | MCU_PSSI_D6 | PF4 |
| Pin 14 | MCU_USART2_TX | PE8 |
| Pin 15 | MCU_PSSI_D7 | PI7 |
| Pin 16 | MCU_I2C2_SCL | PF1 |
| Pin 17 | MCU_PSSI_PDCK | PA6 |
| Pin 18 | MCU_I2C2_SDA | PF0 |
| Pin 19 | MCU_PSSI_RDY | PI5 |
| Pin 20 | MCU_GPIO_PA0 | PA0 |
| Pin 21 | MCU_PSSI_DE | PH8 |
| Pin 22 | MCU_GPIO_PA1 | PA1 |
| Pin 23 | MCU_UART4_RX | PA11 |
| Pin 24 | MCU_GPIO_PA2 | PA2 |
| Pin 25 | MCU_UART4_TX | PA12 |
| Pin 26 | GND | |
| Pin 27 | GND | |
| Pin 28 | EAR_P | |
| Pin 29 | MIC_IN+ | |
| Pin 30 | EAR_M | |
| Pin 31 | MIC_IN- | |
| Pin 32 | LINEOUT_P | |
| Pin 33 | MIC_BIAS | |
| Pin 34 | LINEOUT_M | |
| Pin 35 | GND | |
| Pin 36 | HPH_L | |
| Pin 37 | SOC_GPIO_10_SE0 | MISO |
| Pin 38 | HPH_R | |
| Pin 39 | SOC_GPIO_11_SE0 | MOSI |
| Pin 40 | HPH_REF | |
| Pin 41 | SOC_GPIO_12_SE0 | SCK |
| Pin 42 | HS_DET | |
| Pin 43 | SOC_GPIO_13_SE0 | CS0 |
| Pin 44 | GND | |
| Pin 45 | SOC_GPIO_15_SE0 | CS2 |
| Pin 46 | SOC_GPIO_120 | I2S2_SCK |
| Pin 47 | SOC_GPIO_14_SE0 | CS1 |
| Pin 48 | SOC_GPIO_121 | I2S2_WS |
| Pin 49 | SOC_GPIO_73 | |
| Pin 50 | SOC_GPIO_122 | I2S2_DATA0 |
| Pin 51 | SOC_GPIO_74 | |
| Pin 52 | SOC_GPIO_123 | I2S2_DATA1 |
| Pin 53 | +3V3 (OUT) | |
| Pin 54 | +5V USB (OUT) | |
| Pin 55 | +3V3 (OUT) | |
| Pin 56 | +5V USB (OUT) | |
| Pin 57 | +1V8 (OUT) | |
| Pin 58 | GND | |
| Pin 59 | SOC_VCOIN (IN) | MCU_VBAT |
| Pin 60 | NC |
注意:
引脚 59(SOC_VCOIN / MCU_VBAT)是 RTC 备份电池输入,可接受最高 3.3 V 的电池。它仅为 MPU 与 MCU 上的实时时钟供电,以便在开发板断电时保持时间——此处的 "backup" 并非指为开发板其余部分提供备用电源。预期电流消耗非常低。
JOMEGA 扩展排针
<img src="
" alt="JOMEGA 扩展排针" />
JOMEGA 排针是连接到开发板上多个组件的高级 100 针高密度连接器:
- USB 主机控制器(TUSB7340)
- STM32H5F5(MCU)
- Dragonwing™ QCS8275(MPU)
- 音频编解码器(MAX98091)
该排针设计用于向配件扩展功能,具有专用于 USB、SPI 与 CAN 通信以及 JTAG 的引脚。以下是用于熟悉该排针的引脚表:
| JOMEGA Pin | Signal | GPIO / Function |
|---|---|---|
| Pin 1 | VIN (IN) | |
| Pin 2 | GND | |
| Pin 3 | VIN (IN) | |
| Pin 4 | GND | |
| Pin 5 | VIN (IN) | |
| Pin 6 | GND | |
| Pin 7 | VIN (IN) | |
| Pin 8 | GND | |
| Pin 9 | VIN (IN) | |
| Pin 10 | GND | |
| Pin 11 | VIN (IN) | |
| Pin 12 | GND | |
| Pin 13 | VIN (IN) | |
| Pin 14 | GND | |
| Pin 15 | GND | |
| Pin 16 | GND | |
| Pin 17 | GND | |
| Pin 18 | USB1_SS_TX_P | |
| Pin 19 | GND | |
| Pin 20 | USB1_SS_TX_N | |
| Pin 21 | GND | |
| Pin 22 | GND | |
| Pin 23 | GND | |
| Pin 24 | USB1_HS_D_P | |
| Pin 25 | GND | |
| Pin 26 | USB1_HS_D_N | |
| Pin 27 | GND | |
| Pin 28 | GND | |
| Pin 29 | GND | |
| Pin 30 | USB1_SS_RX_P | |
| Pin 31 | GND | |
| Pin 32 | USB1_SS_RX_N | |
| Pin 33 | GND | |
| Pin 34 | GND | |
| Pin 35 | GND | |
| Pin 36 | USB2_SS_TX_P | |
| Pin 37 | GND | |
| Pin 38 | USB2_SS_TX_N | |
| Pin 39 | MCU_GPIO_PC0 | |
| Pin 40 | GND | |
| Pin 41 | MCU_GPIO_PC1 | |
| Pin 42 | USB2_HS_D_P | |
| Pin 43 | MCU_GPIO_PC2 | |
| Pin 44 | USB2_HS_D_N | |
| Pin 45 | MCU_GPIO_PC3 | |
| Pin 46 | GND | |
| Pin 47 | MCU_GPIO_PD12 | |
| Pin 48 | USB2_SS_RX_P | |
| Pin 49 | MCU_GPIO_PD13 | |
| Pin 50 | USB2_SS_RX_N | |
| Pin 51 | MCU_GPIO_PD14 | |
| Pin 52 | GND | |
| Pin 53 | MCU_GPIO_PD15 | |
| Pin 54 | USB1_PWRON | |
| Pin 55 | MCU_GPIO_PI2 | |
| Pin 56 | USB1_OVERCUR | |
| Pin 57 | MIC2_IN+ | |
| Pin 58 | USB2_PWRON | |
| Pin 59 | MIC2_IN- | |
| Pin 60 | USB2_OVERCUR | |
| Pin 61 | MIC2_BIAS | |
| Pin 62 | MISO | GPIO_39 |
| Pin 63 | JTAG_TMS | |
| Pin 64 | MOSI | GPIO_40 |
| Pin 65 | JTAG_TDO | |
| Pin 66 | SCK | GPIO_37 |
| Pin 67 | JTAG_TDI | |
| Pin 68 | CS | GPIO_38 |
| Pin 69 | JTAG_TCK | |
| Pin 70 | PM_PS_HOLD | |
| Pin 71 | JTAG_SRST | |
| Pin 72 | FORCE_USB_BOOT | GPIO_52 |
| Pin 73 | JTAG_TRST | |
| Pin 74 | POWER_EN | |
| Pin 75 | GND | |
| Pin 76 | USER_BUTTON | GPIO_79 |
| Pin 77 | +1V8_SPX3 (OUT) | |
| Pin 78 | PMIC_RESET | |
| Pin 79 | +1V8 (OUT) | |
| Pin 80 | RTSS_RESET | |
| Pin 81 | +1V8 (OUT) | |
| Pin 82 | RTSS_PS_HOLD | |
| Pin 83 | QUP0_SE7_TX | GPIO_71 |
| Pin 84 | GND | |
| Pin 85 | QUP0_SE7_RX | GPIO_72 |
| Pin 86 | FDCAN1_TX | PD5 |
| Pin 87 | PWR_DISABLE | |
| Pin 88 | FDCAN1_RX | PI9 |
| Pin 89 | FORCE_BOOT | |
| Pin 90 | GND | |
| Pin 91 | +3V3 (OUT) | |
| Pin 92 | FDCAN2_TX | PA10 |
| Pin 93 | +3V3 (OUT) | |
| Pin 94 | FDCAN2_RX | PD9 |
| Pin 95 | +3V3 (OUT) | |
| Pin 96 | GND | |
| Pin 97 | +5V (OUT) | |
| Pin 98 | FDCAN3_TX | PF6 |
| Pin 99 | +5V (OUT) | |
| Pin 100 | FDCAN3_RX | PF7 |
通信
用户手册的本节介绍 VENTUNO Q 支持的不同通信协议。
Bridge - Remote Procedure Call (RPC) Library
VENTUNO Q 使用 RPC(远程过程调用)在 Linux(Qualcomm MPU)侧与实时 STM32 MCU 之间交换数据。该机制允许在一个处理器上运行的函数从另一个处理器透明地调用,就像本地调用一样。
<img src="
" alt="VENTUNO Q RPC" />
Bridge 库在 Arduino_RPClite 框架之上提供通信层。它管理 MPU 与 MCU 之间的双向 RPC 流量,处理方法绑定、请求转发与异步响应。
- Linux 侧(Dragonwing™ QCS8275):运行更高层服务,并可远程调用 MCU 函数。
- MCU 侧(STM32,Zephyr RTOS):处理时间关键任务,并通过 RPC 向 Linux 处理器暴露函数。
说明:
要阅读更多关于 Bridge 库的信息,请访问 Bridge 文章。
SPI
VENTUNO Q 支持 SPI 通信,允许在开发板与其他兼容 SPI 的设备之间传输数据。
VENTUNO Q 上用于 SPI 通信协议的引脚如下:
| Microcontroller Pin | Arduino Pin Mapping |
|---|---|
| PB12 | SS / D10 |
| PB15 | MOSI / D11 |
| PB14 | MISO / D12 |
| PB13 | SCK / D13 |
请参阅用户手册的 开发板引脚图部分 以在开发板上定位它们。
在 sketch 顶部包含 SPI 库以使用 SPI 通信协议。SPI 库提供用于 SPI 通信的函数:
#include <SPI.h>
在 setup() 函数中,初始化 SPI 库,定义并配置片选(SS)引脚:
#define SS D10
void setup() {
// Set the chip select pin as output
pinMode(SS, OUTPUT);
// Pull the SS pin HIGH to unselect the device
digitalWrite(SS, HIGH);
// Initialize the SPI communication
SPI.begin();
}
说明:
要了解更多,请访问 VENTUNO Q 微控制器示例 - SPI。
I2C
说明:
请参阅关于 Qwiic 的部分,了解如何通过开发板的 Qwiic 连接器直接连接 Modulino 节点和其他设备。
VENTUNO Q 支持 I2C 通信,允许在开发板与其他兼容 I2C 的设备之间传输数据。VENTUNO Q 上用于 I2C 通信协议的引脚如下:
| Microcontroller Pin | Arduino Pin Mapping (Wire) | Microcontroller Pin | Arduino Pin Mapping (Wire1) |
|---|---|---|---|
| PH11 | SCL / D21 | PA8 | I2C3_SCL (Qwiic) |
| PH12 | SDA / D20 | PC9 | I2C3_SDA (Qwiic) |
请参阅用户手册的 开发板引脚图部分 以在开发板上定位它们。
要使用 I2C 通信,请在 sketch 顶部包含 Wire 库。Wire 库提供用于 I2C 通信的函数:
#include <Wire.h>
在 setup() 函数中,初始化 I2C 库:
// Initialize the I2C communication
Wire.begin(); // I2C in UNO-style headers (D20, D21)
// or
Wire1.begin(); // I2C in Qwiic connector
说明:
要了解更多,请访问 VENTUNO Q 微控制器示例 - I2C。
UART
VENTUNO Q 上用于 UART 通信协议的引脚如下:
| Microcontroller Pin | Arduino Pin Mapping |
|---|---|
| PB10 | USART3_TX / D1 |
| PB11 | USART3_RX / D0 |
请参阅用户手册的 开发板引脚图部分 以在开发板上定位它们。
说明:
要通过 JDIGITAL 连接器上的硬件串口引脚通信,必须使用
Serial1对象。否则,Serial将与你的 USB 串口终端通信。
要开始 UART 通信,你需要先进行配置。在 setup() 函数中,设置波特率(比特每秒):
// Start UART communication at 115200 baud
Serial1.begin(115200);
要通过 UART 向另一设备传输数据,可使用 write() 函数:
// Transmit the string "Hello VENTUNO Q"
Serial1.write("Hello VENTUNO Q");
Serial1.write("\r\n"); // new line
你也可以使用 print 与 println() 发送不带换行符或以换行符结尾的字符串:
// Transmit the string "Hello VENTUNO Q"
Serial1.print("Hello VENTUNO Q");
// Transmit the string "Hello VENTUNO Q" followed by a newline character
Serial1.println("Hello VENTUNO Q");
说明:
要了解更多,请访问 VENTUNO Q 微控制器示例 - UART。
硬件调试 UART 接口
VENTUNO Q 提供专用的底层 UART 接口,用于调试与系统诊断。此接口直接连接到 MPU 的主控制台(TTY),使你能够在 SSH 或 ADB 等网络服务可用之前观察启动与内核日志、排查系统问题,或访问 shell 环境。
要访问日志,我们推荐 Arduino® Bughopper,因为它专为此开发板设计。*
警告:
警告: 使用 Bughopper 以外的串口设备可能导致 VENTUNO Q 启动异常。这是因为 Dragonwing™ QCS8275 处理器可能通过 TX/RX 引脚意外被反供电。Bughopper 旨在防止这种情况,因为 TX/RX 通道由开发板本身供电(而非来自串口适配器)。
<img src="
" alt="VENTUNO Q + Bughopper 放置" />
此接口通过 VENTUNO Q 上的 JCTL 连接器提供。详情请参阅 引脚图 部分,并按照上方接线示例进行访问。
无线连接
VENTUNO Q 具有 NFA725B 无线电模块,为开发板提供双频 Wi-Fi® 6 2.4/5/6 GHz 与 Bluetooth® 5.1。这为物联网与外设通信提供无缝无线连接。
<img src="
" alt="无线电模块" />
无论是连接到本地网络、将数据上传到云端,还是与智能手机和传感器等支持蓝牙的设备通信,VENTUNO Q 都为你的项目提供灵活可靠的选择。
Wi-Fi®
VENTUNO Q 上的 Wi-Fi 连接使开发板能够连接到本地网络或互联网,以访问在线服务、执行软件更新,并与远程服务器通信。此外,可将 Wi-Fi 配置为与板载微控制器共享其互联网连接,使两个系统无需额外网络硬件即可保持连接。
如果你已完成 Arduino App Lab 首次设置,则应已连接到互联网。不过,还有若干替代方案,如下所列。
通过 Ubuntu 桌面连接(SBC)
如果已将开发板设置为 SBC,你可以点击右上角菜单并选择要连接的 Wi-Fi 网络。
<img src="
" alt="连接到 Wi-Fi 网络" />
通过终端连接(Nmtui)
你也可以使用 nmtui 访问基于终端的 UI 以连接到 Wi-Fi 网络。
sudo nmtui
<img src="
" alt="通过 nmtui 连接" />
通过终端连接(Nmcli)
要连接或断开网络,我们可以使用开发板上预装的 nmcli。
# Connect to a network
sudo nmcli d wifi connect <SSID> password <YOUR_PASSWORD>
#Disconnect from a network
sudo nmcli d disconnect wlan0
说明:
wlan0是 Wi-Fi 接口的典型名称,可在终端运行nmcli device进行确认。
WPA2-Enterprise 连接(Nmcli)
要连接到 WPA2-Enterprise 网络,你需要提供额外的身份验证配置。可能的配置可能很复杂;请参阅 官方文档 以获取完整选项列表。
例如,以下是 Eduroam(面向科研与教育用户的国际 Wi-Fi 漫游服务)的配置。
nmcli con add \
type wifi \
connection.id Eduroam \ # Connection name
wifi.ssid eduroam \ # Network Wi-Fi SSID
wifi.mode infrastructure \
wifi-sec.key-mgmt wpa-eap \
802-1x.eap peap \
802-1x.phase2-auth mschapv2 \
802-1x.identity <your identity>
以下是另一个使用 TTLS 身份验证与 PAP 的示例:
nmcli con add \
type wifi \
connection.id ExampleNetwork \ # Connection name
wifi.ssid <your Wi-Fi SSID> \ # Network Wi-Fi SSID
wifi.mode infrastructure \
wifi-sec.key-mgmt wpa-eap \
802-1x.eap ttls \
802-1x.phase2-auth pap \
802-1x.domain-suffix-match example.com \
802-1x.identity <your identity>
如果你希望不以明文存储密码(尤其是当它包含特殊字符时),可在连接时使用 --ask 标志以交互方式提示输入密码:
nmcli --ask con up <your network name>
MCU 上的 Wi-Fi
默认情况下,MCU 上不可用 Wi-Fi,因为它仅连接到 Dragonwing™ QCS8275。不过,你可以通过 TCP over RCP 调用为 MCU 提供互联网访问,该方法记录在以下链接中:
Bluetooth®
Bluetooth® 连接使 VENTUNO Q 能够与智能手机、电脑或传感器等附近设备通信。它可用于数据交换、远程控制,或连接键盘、耳机和串口设备等蓝牙外设。根据设置,VENTUNO Q 既可充当蓝牙外设也可充当主机,为各种应用提供灵活的短距通信。
你可以在单板电脑模式下点击右上角菜单来管理蓝牙功能,例如选择要连接的设备。
<img src="
" alt="蓝牙管理器" />
你也可以在终端中使用 bluetoothctl 管理蓝牙连接,如下所示:
bluetoothctl power on # turn on Bluetooth
bluetoothctl power off # turn off Bluetooth
可通过运行 bluetoothctl 进入蓝牙管理器提示符,并在其中运行特定命令:
power on # turn on Bluetooth
power off # turn off Bluetooth
scan on # start searching for nearby Bluetooth devices
scan off # stop searching for devices
connect <MAC_ADDRESS> # pair to the device with the specified MAC address
以下是从终端搜索蓝牙设备时的示例:
<img src="
" alt="蓝牙扫描" />
故障排除
MDNS
网络模式依赖 本地网络发现(mDNS) 自动查找同一网络上的开发板。某些网络配置(如访客 Wi-Fi、企业或物联网网络、VPN 或严格防火墙规则)可能阻止自动发现,即使开发板已连接到 Wi-Fi。
发现故障排除
- Windows 用户: 首次启动 Arduino App Lab 时,你可能会收到 Windows Defender(或其他安全软件)关于
mdns-discovery.exe的提示。你必须 允许 此访问,开发板才能被发现。*注意:在曾运行过 Arduino IDE 的系统上,该提示可能不会出现。* - 防火墙设置: 如果开发板未出现,请确保防火墙允许 UDP 端口 5353 上的流量,这是 mDNS 发现所必需的。
>注意:能够通过浏览器、SSH 或 IP 地址访问开发板,并不保证它会出现在网络模式中。Arduino App Lab 使用本地网络发现来自动列出开发板。
支持
如果在使用 VENTUNO Q 时遇到任何问题或有疑问,我们提供各种支持资源帮助你找到答案与解决方案。
帮助中心
探索我们的 帮助中心,其中提供面向 VENTUNO Q 的全面文章与指南集合。Arduino 帮助中心旨在提供深入的技术协助,帮助你充分利用设备。
论坛
加入我们的社区论坛,与其他 VENTUNO Q 用户交流、分享经验并提出问题。论坛是向他人学习、讨论问题以及发现与 VENTUNO Q 相关的新想法与项目的绝佳场所。
联系我们
如果你需要个性化协助,或有前述帮助与支持资源未涵盖的问题,请联系我们的支持团队。我们很乐意为你解答有关 UNO Q 的任何问题或咨询。
原文:https://docs.arduino.cc/tutorials/ventuno-q/user-manual/ 本页为 Arduino 官方教程的中文翻译,供内部查阅。命令与代码保持原文。
" alt="连接 USB-C® 线缆" />
" alt="选择开发板" />
" alt="网络模式" />