感谢面包板社区,今天刚收到了寄来评测的Milk-V Duo开发板,迫不及待地来发第一篇评测报告。
Duo开发板简介
首先介绍一下开发板,Milk-V Duo 是一款基于 CV1800B 芯片的超紧凑型嵌入式开发平台。 它可以运行 Linux 和 RTOS,为专业人士、工业 ODM、AIoT 爱好者、DIY 爱好者和创作者提供可靠、低成本、高性能的平台。
包装盒内只有一块开发板,比较简洁,建议盒内至少附带排针呀
引脚分配见下图,MilkV-Duo 40针针座上有多达26个GPIO引脚,可以访问内部外设,如SDIO、I2C、PWM、SPI、J-TAG和UART。

CV1800B 简介
开发板的核心是使用的CV1800B ,
- 主处理器 RISCV C906 @ 1.0Ghz
- 32KB I-cache, 64KB D-Cache
- 集成矢量(Vector)及浮点运算单元 (FPU)
- 协处理器 RISCV C906 @ 700Mhz
- 集成浮点运算单元 (FPU)
- 集成浮点运算单元 (FPU)
这是一款高性能、低功耗芯片,适用于住宅消费监控 IP 摄像机、家庭智能等众多产品,集成 H.264/H.265 视频压缩编码器和 ISP;支持数字宽动态、3D降噪、去雾、镜头畸变校正等图像增强和校正算法,为客户提供专业级的视频图像质量。
该芯片集成了自主研发的智能参考解决方案(人体检测、区域检测、运动检测),内置 DDR 以及完整的外围设备和外围设备,为支持客户产品开发和量产提供了高度集成且简单的解决方案。
官方给出的芯片支持功能如下所示,支持的协议还是比较全面的,甚至支持10M/100M以太网、SDIO接口,可以做物联网相关的开发。
- 集成 POR, Power sequence
- 3 个单端 ADC (1 in mcu domain)
- 4 个 I2C
- 3 个 SPI
- 5 组 UART
- 4 组(13 通道) PWM
- 2 个 SDIO 接口
- 一个支持 3V 连接 SD 3.0 Card(支持最大容量 SDXC 2TB, 支持速度为 UHSI)
- 一个支持 3.0V 连接其他 SDIO 3.0 设备.(支持速度为 UHS-I)
- 51 GPIO 接口 (9 in mcu domain)
- 集成 keyscan 及 Wiegand
- 集成 MAC PHY 支持 10/100Mbps 全双工或半双工模式.
- 一个 USB Host / device 接口
镜像烧录
从Milk-V 官方GitHub下载镜像:github.com/milkv-duo/duo-buildroot-sdk/releases,我这里下的是arduino-milkv-duo-sd-v1.1.4.img.zip 这个文件。
准备一张大于 1GB 的 microSD 卡、一个读卡器、一根能稳定传输数据的Type-C 数据线
使用 balenaEtcher 或 Rufus 烧录镜像,我这里用的是Rufus。
先选择设备,注意选你插上去的读卡器那个盘,再选择镜像,最后点击开始即可。
连接开发板
在下图所示的位置插入刚刚烧录镜像的micro-SD卡,注意要插到底
使用typec数据线连接PC和开发板,等待几秒后,开发板的蓝色LED闪烁,表明已经进入系统了。
Duo开发板在系统上默认启用了 CDC-NCM 和 DHCP,正常来说,PC上会自动识别这个USB网络。我们可以在设备管理器中,查看到名为UsbNcm Host Device的设备,这就说明PC正常识别了开发板。如果没有正常识别,可以参考 milkv.io/zh/docs/duo/getting-started/setup
下一步,在cmd中使用命令登录开发板。
首次连接会有如下提示,直接输入 yes。密码是 milkv 这个不回显,敲完回车即可。
进入系统,简单输入几个命令,确认系统版本号和内存占用情况。
通过命令可以关闭闪烁的蓝色LED灯,方便我们使用命令做GPIO测试。LED闪烁是通过开机脚本设定的,我们只需要把blink.sh改个名,让它开机时执行不了这个脚本就行。
mv /mnt/system/blink.sh /mnt/system/blink.sh_backup && sync
等待重启完毕后,LED就不会自动闪烁了。
GPIO引脚控制实验
通过原理图可知,蓝色LED连接到了XGPIOC[24]引脚
查阅引脚映射可知,XPIOC[0]对应的NUM=416,那么XPIOC[24]对应NUM=440
通过以下命令导出GPIO440
cd /sys/class/gpio
运行命令,列出 GPIO 目录,检查是否出现 gpio440,确认导出成功。
ls /sys/class/gpio
运行命令
echo "out" > gpio440/direction将 gpio440 方向设置为输出。
通过命令查看确认设置成功
cat gpio440/direction
运行命令,将GPIO440的值设为1,即高电平,观察到开发板蓝色LED常亮;反之设为0,则LED熄灭
echo "1" > gpio440/value
/1 