ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

树莓派CM3开发板实战:38美元核心板烧录、GPIO与载板设计指南

树莓派CM3开发板实战:38美元核心板烧录、GPIO与载板设计指南 第一次看到树莓派Compute Module 3CM3开发板的时候我第一反应是这不是一根内存条吗DDR2 SO-DIMM的封装样式拿在手里甚至能感受到笔记本内存条的分量但它确确实实是一台功能完整的微型计算机。最近这块板子挺火一块支持CM3的开发载板Dev Board价格已经压到了38美元左右算上模块本身整套起步成本不到70美元就能拥有一套可跑Linux、带完整GPIO引脚的嵌入式核心。对于想做边缘计算设备、智能硬件原型、或者想给自己搞一块带树莓派SoC定制载板的工程师来说这个价格确实是个很实在的切入点。普通树莓派买回来接口都是焊死的想换个接口组合只能飞线或者重新设计而CM3把计算核心做成模组载板自己定38美元这块板子就是最好的评估起点。这篇我把自己从选型、烧录、GPIO定位到踩坑的完整过程写出来给准备入坑CM系列的同学一个可复现的参考。1. 为什么说CM3是“长成内存条的树莓派”它到底解决什么问题1.1 核心板加载板一种更接近工业习惯的硬件形态树莓派基金会做Compute Module系列目的从来不是给普通玩家当第二块树莓派用而是瞄准了产品化这个场景。Raspberry Pi CM3的硬件核心和树莓派3B基本一致博通BCM2837四核Cortex-A53处理器主频1.2GHz1GB LPDDR2内存VideoCore IV GPU。但封装形式完全不同它做成了一条200pin的DDR2 SO-DIMM模组需要插到载板上才能用。这种设计逻辑在嵌入式行业里非常成熟你可以类比成电脑的CPU和主板关系CM3是CPU模组载板是主板你想配什么接口、什么尺寸、什么电源方案只要在载板上实现就行不需要重新画核心的SoC最小系统。对产品开发者来说这意味着整个板卡的电气设计难度直接降了一个等级不用操心BGA焊接、DDR布线、PMIC调校这类高门槛环节把精力放在自己的应用接口上。1.2 和普通树莓派3B相比CM3到底强在哪很多人会问我直接买块树莓派3B不行吗非要折腾这个。拿参数对比一下就知道差别在哪项目树莓派3BCM3含CM3 Lite处理器BCM2837四核A53 1.2GHz同左完全一致内存1GB LPDDR21GB LPDDR2存储microSD卡板载eMMC标准版/ 无Lite版形态固定PCB接口焊死200pin SO-DIMM模组扩展方式40pin排针固定接口通过载板自定义所有接口适用场景桌面学习、个人项目批量产品、嵌入式设备、定制载板所以CM3的核心价值不是性能提升而是把计算部分和接口部分解耦了。比如你想做一个带4G通信模块、两个RS485口、一个工业显示屏的网关设备用树莓派3B你得硬凑USB转串口体积、功耗、稳定性都不理想用CM3定制载板所有接口都是原生的PCB尺寸可以做到一张名片大小这差别在实际产品里非常大。1.3 38美元这块开发板的用户画像是谁我个人的看法是这类CM3 Dev Board最典型的用户有三类硬件工程师准备设计自己的CM3/CM4载板先用这块板子验证软件和系统再照它的电路画原型。产品经理/创业者想快速做出一台可交互的智能设备Demo需要灵活IO但不打算投入巨资开模。进阶玩家玩腻了树莓派固定接口想理解核心板载板架构顺便把手里的eMMC版CM3利用起来。不管属于哪类38美元的载板加上一块标准CM3模块就是这个生态里成本最低的入场券。2. 38美元的CM3 Dev Board硬件配置究竟给到了什么程度2.1 开发板的接口全览该有的都有虽然不同厂商的CM3 Dev Board在细节上有差异但主流的38美元档位配置基本能覆盖一个完整的最小系统。我手上这块的接口分布大致是40pin GPIO排针与树莓派3B引脚定义一致方便直接叠HAT扩展板全尺寸HDMI输出支持常见1080p显示4个USB 2.0 Type-A口通常由LAN9514芯片扩展10/100M RJ45以太网口和USB共用同一个Hub芯片microSD卡座专门给CM3 Lite版本用CSI摄像头排线座和DSI显示排线座Micro USB电源口5V供电输入电源指示LED和ACT活动LED这个配置放在38美元的价位上是合格的。尤其是LAN9514这颗芯片的选择很聪明它是树莓派3B上同一颗USB Hub以太网控制器方案非常成熟Linux内核原生支持插上就能用省掉了很多第三方芯片可能带来的兼容性问题。2.2 供电设计别小看那根Micro USB线开发板供电路径一般是外部5V进入经过保险丝/二极管/滤波电容然后直接供给CM3模组模组内部再通过DC-DC降压出3.3V、1.8V等各个电压域。官方建议CM3供电电流至少要2.5A所以那种电脑前面板的USB口基本喂不饱它最好用5V/3A以上的适配器供电。这块38美元的板子做得比较朴素没有加很高端的电源保护电路比如防反接、过压保护这类在工业载板上常见的设计在这个价位就不要指望了。所以实操时要记住两条电源质量要干净别用劣质充电头上电前确认电压是5V插反了直接烧CM3也不是没可能。2.3 与官方CMIO3板卡的对比便宜在哪里树莓派官方有一块Compute Module IO Board V3售价折合人民币大几百元比这块38美元板子贵出好几倍。官方的优势是接口更全、排版更规整、有完整的工业级设计和调试工具支持甚至预留了PCIe、SATA这类扩展槽位。但扪心自问对绝大多数开发项目来说最重要的就是GPIO、HDMI、USB、SD卡槽和网口这些38美元的板子全都有。官方IO板上的那些高端接口普通项目用到的不多。所以如果你不是要画官方级载板的参考电路没有必要多花那个钱38美元板子作为学习评估工具完全够用。需要注意一点这个价位板卡的PCB做工和丝印质量参差不齐选购时优先选有原理图开源或者有用户评价的。我见过一些杂牌载板把GPIO丝印印错位置插上排针直接短路的情况这钱省得就不值了。2.4 一个容易忽略的点CM3不带无线CM3模组本身没有板载WiFi和蓝牙这和树莓派3B不一样3B是板载了无线模块的。所以如果你需要联网要么在载板上插USB无线网卡要么通过USB口外接一个4G模块要么就用网线。这一点在评估开发板时特别容易被忽略。很多人在树莓派3B上写好了程序一把烧到CM3上发现连不上WiFi然后才反应过来少了个无线模块。做产品的时候要在载板设计阶段就预留无线方案别等软件调完了再补硬件。3. 首次启动完整流程eMMC烧录、SD卡启动与远程连接3.1 先搞清楚你手里是CM3还是CM3 LiteCM3系列在购买时一定要分清版本这决定了你的启动路径标准CM3板载eMMC存储容量有4GB到32GB可选系统直接烧进eMMC整体稳定性和抗震动性更好。CM3 Lite没有板载eMMC必须依靠载板上的microSD卡座启动烧录方式和普通树莓派完全一样。如果你买的是标准CM3那问题就来了eMMC是空的要怎么把系统写进去答案是借助USB boot模式让电脑把CM3识别成一个U盘然后往里写镜像。这是第一次使用最容易卡住的地方我详细走一遍。3.2 用rpiboot给eMMC烧录系统在Linux环境下流程是这样的。先安装工具并克隆官方usbboot仓库sudo apt update sudo apt install git libusb-1.0-0-dev pkg-config git clone --depth 1 https://github.com/raspberrypi/usbboot cd usbboot make然后把开发板上标记为USB SLAVE或USB PROG的接口通常和USB转烧录相关不是普通的USB Hub口用数据线连到电脑。上电之前有些板子需要按住BOOT跳线或者短接特定焊盘具体看你买的那块的说明书但大多数38美元板子直接上电即可。执行sudo ./rpiboot此时CM3会被引导到USB大容量存储模式电脑上多出一个块设备。你可以用lsblk查看新增的盘符假设是/dev/sdb然后写入镜像sudo dd if2024-11-19-raspios-bookworm-armhf.img of/dev/sdb bs4M statusprogress sync注意三件事镜像选armhf32位版本兼容性最稳。虽然BCM2837是ARMv8架构64位系统也能跑但第三方驱动的适配和官方优化基本都围绕32位验证除非你明确需要大内存寻址否则不必冒这个险。dd写入的是块设备不是分区千万别写成了/dev/sdb1。写完一定要sync然后等系统把缓存落盘再断电否则eMMC的文件系统可能损坏。Windows用户也能用usbboot但需要额外安装WinUSB驱动官方GitHub仓库里有详细说明。macOS同样有编译好的版本可用。3.3 CM3 Lite的SD卡启动路径如果你手里是CM3 Lite那就简单多了。直接用Raspberry Pi Imager把镜像写到一张至少16GB的microSD卡里插到载板的SD卡座上上电就能启动。Lite版本的载板SD卡座通常设计在PCB侧面有些板子支持免工具插拔有些需要拆螺丝买的时候可以留意一下。要注意的是SD卡的启动稳定性不如eMMC在高温、振动环境里可能出现偶发读卡失败批量产品如果要用Lite版一定要在SD卡选型和固定方式上下点功夫。3.4 远程连接SSH和串口双通道系统起来之后最简单的连接方式是SSH。CM3在DHCP网络中会自动获取IP可以从路由器后台找主机名如果支持mDNS直接ssh piraspberrypi.local默认账号是pi密码raspberry新版Raspberry Pi OS首次启动可能要求自行设置。如果要调试内核启动阶段或做无显示环境的嵌入开发串口更可靠。把USB转串口模块接在GPIO14UART TX和GPIO15UART RX上GND共地然后用screen /dev/ttyUSB0 115200连接后能看到完整的内核日志。注意新版树莓派OS默认把串口控制台分配给蓝牙需要先在/boot/config.txt里加一行dtoverlaydisable-bt否则你会看到串口有输出但是输入不进去。登录后先做健康检查cat /proc/cpuinfo vcgencmd measure_temp dmesg | grep -i mmc df -h确认CPU型号、温度空载应该在45到55摄氏度之间、eMMC识别情况和分区挂载都正常这块CM3 Dev Board就算成功跑起来了。4. 看懂GPIO引脚图从CM3的200pin到CM4的板对板连接器4.1 为什么那么多人搜CM4的GPIO引脚图我看到相关热词里有raspberry pi compute module 4 gpio引脚图这个需求在CM用户里非常普遍。原因很简单CM3是200pin的SO-DIMM封装CM4改成了两个100pin的板对板连接器两种连接器形态完全不同很多原本用树莓派排针的开发者拿到CM系列就懵了不知道哪个引脚对应哪个GPIO所以必须查引脚图。而且在CM3上大量引脚是复用的。同一个物理引脚既可能是GPIO也可能是I2C、SPI、UART或者PWM具体是什么功能完全由软件配置决定。这样一来光看引脚图还不够还得理解复用机制。4.2 CM3的引脚分配逻辑先找GPIO0到27CM3的200pin引脚图看起来密集但拆开看有清晰规律。首先GPIO0到GPIO27这28个引脚和普通树莓派40pin排针上的GPIO编号是一一对应的。你如果很熟树莓派排针那CM3的这部分引脚就不陌生如果你常用的传感器是接到排针的GPIO17、GPIO22这类那在CM3上找同编号引脚就行。除此之外CM3还引出了GPIO28到GPIO45这18个额外的GPIO分布模组的其他引脚上。这部分是普通树莓派没有的主要用来接一些额外的外设比如PCM音频、SPI0、I2C0这些总线。设计载板的时候就可以把这些多余的GPIO利用起来大幅增加系统的可扩展性。看引脚图我有几个实操建议不要把整张200pin图从头看到尾而是先按功能分组电源/地一组GPIO一组显示/摄像头一组USB/网络信号一组。下载官方的CM3 datasheet PDF版本用PDF阅读器搜索引脚名比自己数编号效率高很多。对照载板的原理图因为有些载板会把GPIO丝印印在背面如果PCB上标了引脚的编号和datasheet交叉验证会避免不少低级错误。4.3 CM4的变化不止换了个连接器CM4把原来的200pin SO-DIMM换成了两个100pin板对板连接器这个变化是结构性的。除了物理形态变了CM4还增加了一个PCIe Gen2 x1接口这可以接NVMe SSD或PCIe转接卡扩展性和带宽都比CM3时代强很多。与此同时GPIO的数量和复用表也和CM3不完全相同。CM4依然有GPIO0到27这28个引脚但在连接器上的物理位置发生变化新增的GPIO28到45也引出了且部分引脚的默认功能有调整。所以如果有人想从CM3载板直接改到CM4不能只换模组不换板引脚定义就对不上。这也是为什么网上搜CM4 GPIO引脚图的人特别多——因为设计CM4载板时接线必须以CM4的datasheet和引脚图为准不能凭借CM3的记忆照抄。4.4 软件层面的引脚复用dtoverlay和config.txt硬件上找到引脚只是第一件事软件上把引脚复用到你想要的功能才是关键。树莓派OS使用设备树管理引脚功能最常用的操作是在/boot/config.txt里加dtoverlay配置。比如你想启用I2C1dtparami2c_armon想启用SPI1并支持3个片选dtoverlayspi1-3cs想禁用板载蓝牙释放串口dtoverlaydisable-bt每加一个配置重启后生效。查看当前所有引脚的功能状态可以用raspi-gpio get这个命令会把每个GPIO编号、当前电平、复用功能列出来排查硬件问题时特别好用。我调试时经常是先用万用表量引脚电压再用raspi-gpio get确认软件配置对不对两面对上才能确定问题出在硬件还是系统。GPIO点灯是最直接的验证手段用gpiozero库几行代码就够了from gpiozero import LED from time import sleep led LED(17) while True: led.on() sleep(1) led.off() sleep(1)注意GPIO是3.3V电平千万别把5V直接接到GPIO引脚上否则CM3可能当场报废没有商量余地。5. 从评估板到自研载板这几个坑我建议你提前避开5.1 供电和散热CM3不是省油的灯CM3在满载运行时四核A53的功耗并不低瞬间电流可能超过1A如果散热条件差eMMC附近温度会迅速上升。我自己实测下来不加散热片跑stress压测CPU温度能冲到85度以上虽然不会立刻死机但已经触发了降频性能和稳定性都会受影响。所以建议无论用官方还是第三方板卡拿到的第一件事就是把散热片贴上。CM3型号出厂自带金属金属散热壳体CM3普通版则需要自己处理。散热片选带3M胶的那种铝合金小方块就行注意不要盖住eMMC的字样判断不了型号就行虽然盖住也无所谓但有些人会在验收时看丝印。开发板的5V供电输入也建议直接接稳压电源或者质量过硬的适配器。劣质充电头在负载波动大的时候电压会跌落CM3对电压敏感低于4.8V时eMMC可能出现写入错误。5.2 SO-DIMM插槽的插拔哲学CM3模组插到载板SO-DIMM插槽的过程和笔记本内存条非常像斜着45度插入然后向下按压卡扣会自己弹起来扣住。以前插过内存条的人应该都能无障碍上手。想提醒的是另一件事SO-DIMM插槽的寿命和可靠性其实不如BGA焊接。反复插拔、频繁振动、环境粉尘都可能导致接触不良。我碰到过一次CM3在运行中偶尔重启排查了一天最后发现是模组没有完全压紧重新插拔后就好了。所以如果你在做产品原型初期验证阶段尽量让模组和载板之间稳固连接甚至可以用一点热熔胶固定卡扣防止振动导致接触不良。5.3 从Dev Board到自己画载板应该参考什么一块38美元开发板的另一个隐藏价值就是它本身就是一份可参考的电路设计实例。如果你要画自己的载板强烈建议按这个顺序推进先在开发板上把Linux系统、所有外设的软件驱动全部调通。下载官方CM3 datasheet和设计指南确认电源时序、启动模式引脚、eMMC走线要求。照着开发板的原理图把你需要的接口部分抠出来砍掉不要的部分。画PCB时重点处理电源走线宽度、去耦电容的位置、USB和HDMI的差分线阻抗匹配。打样回来后先不焊CM3插槽只测试电源转换电路的电压是否正常再插模组上电。图省事直接抄官方IO板的原理图也可以但那个板子太大了很多接口你用不到最后PCB面积和成本都失控。最好的思路是保持核心最小系统一致接口按需裁剪。5.4 采购时的几点提醒最后聊聊买板子。38美元这个价位的CM3 Dev Board在海外和国内渠道都能找到但有几个点要注意确认载板是支持标准CM3、CM3 Lite还是两者都支持有些板卡为了成本只留了SD卡座你手里的eMMC版插上去没法烧录。兼容性声明看清楚是否也支持CM3Compute Module 3 PlusCM3的引脚定义基本一致但载板电源设计最好能覆盖更高电流需求。模组本身的价格波动比较大标准CM3 4GB版大概二三十美元CM3 Lite更便宜但要注意货源是否正规市场上流通着不少二手翻新或拆机eMMC写入后容易报错。如果要做长期产品我建议直接评估CM4虽然现在载板贵一些但CM4的供货周期和性能储备比CM3健康模块的散热设计也更合理。我的习惯是收到开发板后先不要把系统烧进去而是把CM3插好、上电用万用表量一下载板上3.3V和5V测试点是否正常再检查GPIO引脚有没有对地短路确认无异常后才会插电脑烧系统。多花十分钟能省下后面排查烧毁元件的时间。现在再看这个38美元的CM3 Dev Board它其实就是在价格和功能完整度之间找到了一个不错的平衡点。硬件设计不豪华但所有核心开发能力都保留了下来。如果你手头正好有一块闲置的CM3模组或者一直在犹豫要不要进入Compute Module生态从这块板子开始试错成本绝对可控。
返回列表