简介这是一份围绕联发科 MT7681 Wi-Fi 芯片整理的硬件设计与开发参考资料面向无线模块硬件工程师、嵌入式开发者及相关专业学生可用于芯片选型评估、电路原理图参考、模块调试与基础联网实验。压缩包共 225 个文件约 5.32MB包含 html 说明文档、pdf 资料、png/gif 图示、txt 记录及 c 示例代码等兼顾原理图查阅、引脚与参数理解、代码级验证和文档检索。内容中可见 uIP 协议栈示例、ARP 主循环演示、Doxygen 文档与配套样式资源便于读者从硬件连接、驱动移植到网络通信流程建立较完整的认识也能据此对照模块工作方式整理自己的调试记录。资料结构以文档说明为主线图像与源码作为补充方便按功能模块快速定位。已有 262 人学习适合作为 MT7681 方案入门、原理图核对与嵌入式联网实验的轻量参考资料包。1. 从一块丝印模糊的板子说起MT7681 电路图到底要复刻什么手上只有一块丝印被磨掉的小板、一张分辨率不够的截图、一份从旧项目目录里翻出来的 PDF然后想把 WIFI MT7681 这一套电路重新画出来——这是很多做硬件的人真实遇到过的起点。MT7681 这颗芯片把射频、基带、MAC 和一颗小容量 MCU 塞进同一个封装里外围器件少、成本压得低早年的智能插座、Wi-Fi 模块、小家电联网板里到处是它的影子。所以“电路图及资料”这几个字背后站着两类人一类想照着复刻一个能稳定工作的最小系统另一类想给手上的旧板子做维修或替代设计。下面按第一类人的路径走先弄清芯片对电路提了什么硬约束再把最小系统一块一块画出来接着讲资料怎么取舍、怎么用脚本核对最后落到打样前的复核和上电验证。新手能照着顺序做熟手可以直接跳到参数表和踩坑那两章找边界。2. 规格书里的硬约束MT7681 的电源、射频与引脚边界照着别人的 MT7681 电路图抄连线抄完板子能跑但一连 AP 就重启、或者隔一堵墙就掉线——这类问题九成不出在“线连错了”而出在规格书里那几行没人细看的最大值和最小值。原理图是拓扑规格书才是边界这两者得一起读。这一章把供电、射频、引脚复用三块的硬约束拆开讲讲完再动手画会省掉后面很多返工。2.1 单 3.3V 供电为什么还要分三处去耦MT7681 的电源引脚通常不止一个常见做法是模拟部分和数字部分分开引出封装内部未必完全隔离外部就得靠走线和电容把噪声挡住。很多人看到“3.3V 单电源”就以为随便接一路 LDO 就行结果射频一发射电压就塌一下芯片自己复位。原因很直接Wi-Fi 发射是脉冲式负载平均电流看着只有几十毫安峰值能冲到几百毫安持续几百微秒到几毫秒LDO 的环路带宽跟不上这种跳变只能靠芯片脚边上的电容就地供电流。所以去耦电容在这类板子上不是“滤波”是“本地储能”。我一般按三层摆位置典型取值作用放错的后果芯片电源脚旁 2mm 内100nF 陶瓷供高频瞬态电流放到板子另一头等于没放电源入口处10uF 陶瓷或钽平抑中频波动只用 100nF发射瞬间电压跌落超标靠近 LDO 输出22uF 及以上稳住 LDO 环路省掉后 LDO 可能自激振荡LDO 选型上物联网常电设备最该看的是静态电流和峰值能力这两项而不是价格。静态电流从几十微安涨到毫安级一颗纽扣电池供电的产品续航会差一个数量级峰值能力则要留足余量芯片峰值拉几百毫安LDO 标称 300mA 往往不够选 500mA 起的型号更稳。压差也要看用 5V 降到 3.3V 的场合压差不是问题用锂电池 3.7V 降到 3.3V 时压差 0.4V 以内的型号才能撑到电池末端。注意电源引脚附近的 100nF 电容回流路径比电容本身更重要。地焊盘到芯片地脚的过孔要就近打别让瞬态电流绕半个板子才回到地。2.2 射频口到天线50 欧姆、净空和匹配网络的三件事射频输出引脚到天线之间是一段传输线工程上默认按 50 欧姆控制。这段线在 2.4GHz 上很短几厘米就能让阻抗严重偏离所以布局上优先做两件事一是把天线或天线座尽量放在板边二是让这段走线尽可能短、直、不换层。换层意味着过孔过孔在 2.4GHz 上是明显的阻抗不连续点能不用就不用。匹配网络常见的是 π 型三元件两个并联电容加一个串联电感位置紧贴射频引脚不要放到天线那头。这三个元件在打样阶段是留给你调的不是焊上去就完事。第一版我一般先按参考设计的取值焊预留 0402 或 0201 的焊盘方便后面用矢量网络分析仪微调。没有网分也不要紧用拉距实测的方式做二分调整虽然粗糙但能出结果。净空是另一个翻车高发点。天线正下方和周围一圈不能铺铜、不能走线、不能放电池和金属结构件常见做法是天线投影区及周边留出几毫米的完全净空具体尺寸以你手上参考设计的要求为准。塑料外壳的壁厚、螺丝柱的位置、电池的摆放都会把这个净空吃掉。有一类很典型的现象是裸板测试距离很好装进壳子里立刻掉一半问题就出在净空被结构件占了。2.3 引脚复用表怎么读成一张能照着连线的核对表这颗芯片尺寸小、引脚少所以每个引脚都身兼数职靠复位时的电平或者寄存器配置决定上电后干哪件事。规格书里那张引脚定义表是最该花时间的一张表光看一遍不够得把它整理成自己能核对的形式。我习惯导成一张 CSV字段固定为引脚号、默认功能、复用功能、复位状态、内部上下拉、可容忍电压、外部必须接的元件。整理这张表有三个价值。第一能提前发现引脚冲突——比如某个脚复位时是启动模式选择脚你却在上面挂了一颗 LED 和一个下拉电阻上电时电平被拉错芯片进不了正常启动流程。第二能发现电气约束——多数这类芯片的 IO 不耐 5V外围如果接了 5V 器件必须加电平转换这一条在画图阶段漏掉打样后只能飞线。第三能当作布线约束单哪些脚是射频、哪些是晶振、哪些是复位走线优先级完全不同。整理的时候有一个小技巧把“复位状态”这一列单独标色。所有在复位期间有确定电平要求、而且这个电平会影响启动行为的引脚都在原理图上加批注。等板子回来点不亮的时候这张标注表就是你的第一手排查依据比翻 PDF 快得多。3. 最小系统四块电路供电、时钟、复位下载口、天线匹配怎么画理解了约束接下来是落图。MT7681 的最小系统可以拆成四块相对独立的电路供电路径、外部时钟、复位与下载口、天线与匹配网络。这四块分开画、分开核对比一口气画完再检查要可靠。下面每一块给出元件清单和布局顺序取值按常见做法给具体数值以你手上的规格书和参考设计为准。3.1 供电路径从 5V 输入到芯片 3.3V 的元件顺序一个典型的供电链路是USB 或 DC 输入 → 输入保护 → LDO → 输出去耦 → 芯片电源脚。顺序不能乱尤其是保护器件的位置放在 LDO 后面等于没保护。环节元件常见取值说明输入保护自恢复保险丝500mA 保持电流防反接和短路按整板功耗选输入滤波陶瓷电容10uF 100nF靠近 LDO 输入脚稳压LDO输出 3.3V能力 500mA 起静态电流按产品形态选输出储能陶瓷电容22uF稳住 LDO 环路芯片就近陶瓷电容100nF × 电源脚数量每个电源脚一颗不放共用画图时把 LDO 的输出电容和芯片的去耦电容当成两组不同的东西对待前者服务稳压环路后者服务芯片瞬态。两者都省不得但优先级不同——预算紧张时先保芯片脚边那颗 100nF它决定发射瞬间电压跌不跌。3.2 外部晶振与负载电容两颗电容的取值算法外部晶振给射频和系统提供参考时钟常见是 40MHz 这一档具体频率按规格书核对。晶振旁边两颗负载电容的取值不是拍脑袋定的有个标准算法先看晶振规格书给的负载电容 CL再假设 PCB 分布电容 Cstray 大约 3 到 5pF两边的电容取值相等时C 2 × (CL − Cstray)。举例晶振标称 CL 8pF取 Cstray 4pF那么每颗电容取 8pF。如果晶振标 CL 12pF同样 Cstray电容就要取到 16pF 左右。取值偏差带来的后果是频率偏移频偏偏大时射频指标直接崩表现出来是能连上但灵敏度差、丢包多。布局上还有几条硬要求晶振尽量贴近芯片走线短且等长晶振下方不走任何其他信号线最好整块挖空或者铺完整地晶振外壳如果接地要单独打过孔到地主地。这几条不是玄学是这类小封装芯片最容易忽略又最容易出问题的地方。提示负载电容先用算出来的值焊打样后用频率计或者综测仪看一眼实际频偏再决定要不要微调。别在第一版就把焊盘做成只能焊一个封装。3.3 复位电路、启动脚与 UART 下载口复位电路看着简单一个上拉电阻加一颗电容到地但这颗电容取值太大会导致上电复位时间过长太小又抗不住干扰。常见做法是 10k 上拉配 100nF具体按规格书推荐的复位时间常数核对。复位引脚最好不要直接引到外部排针上不加保护静电打进来第一颗坏的就是它。启动脚是另一个必须逐条核对的点。这类芯片通常有一到两个引脚在上电瞬间被采样决定从哪个介质启动、进不进烧录模式。这些脚在复位期间的电平由外部电阻决定所以原理图上必须明确画出上拉或下拉不能靠“芯片内部有默认值”蒙混。我的习惯是在原理图上给这类脚加一个醒目的网络标签比如 BOOT_SEL并且在 BOM 备注里写清楚这一颗电阻不能省。UART 下载口用来烧录和调试接线是三根TX、RX、GND。交叉连接是最常见的翻车点——模块的 TX 接 USB 转串口的 RX反过来接才通。电平上要注意如果 USB 转串口芯片输出是 3.3V 电平可以直接接如果是 5V 电平必须加电平转换别赌芯片 IO 扛得住。下载口的走线不用做阻抗控制但要远离晶振和射频区域。注意调试口旁边预留两个测试点一个接地一个接启动脚。板子回来点不亮时这两个点能让你在三十秒内确认是不是启动模式的问题。3.4 天线座与 π 型匹配网络的布局顺序如果做成模块形态天线用 IPEX 座子引出如果做成板载天线就要在 PCB 上留出天线图形和匹配位。两种形态的布局顺序是一样的射频引脚 → 隔直电容如果有→ π 型匹配 → 天线座或天线馈点。元件顺序不能颠倒匹配网络一定在靠近芯片那一侧。π 型网络的三个位置第一版建议全部留焊盘、按参考设计取值先焊上。串联电感通常是 nH 级并联电容是 pF 级这两个量级的元件对焊接工艺敏感手工焊容易虚焊或者偏移表现出来就是灵敏度忽好忽坏。批量生产时这几个元件的精度直接决定一致性选 1% 精度、高 Q 值的型号成本增加有限换来的是抽测时不用一颗颗挑。天线区域的走线宽度按 50 欧姆算两层板和三到四层板的算法不一样用阻抗计算工具按你的叠层算一遍再画。算完还要让板厂按你给的叠层和阻抗要求做别只写一句“50 欧姆”就发出去板厂不会替你做阻抗设计决策。4. 资料取舍与自动核对规格书、参考设计、引脚表怎么串起来“资料”这两个字在硬件项目里经常被理解成一堆 PDF 和一个压缩包实际上真正能救命的资料是分层的哪些是定义边界的、哪些是给参考的、哪些是必须自己重新生成的。分不清这三层资料越多越乱。这一章讲一份能开工的资料清单长什么样拿到参考设计后先核对哪三处最后给一段脚本把引脚表和原理图网标做一次机械对比。4.1 一份能直接开工的资料清单该有哪几样按重要性排第一层是定义边界的资料芯片规格书电气特性、引脚定义、时序图、封装尺寸图、推荐的上电和复位时序。这三样缺一个都会在某个环节卡住。特别是时序图很多“上电不启动”的问题最后都能在时序图上找到解释——某路电源还没稳复位就已经释放了。第二层是参考设计最小系统原理图、参考布局、BOM。参考设计的价值是给你一个已知能工作的基线不是让你闭眼抄。抄之前要确认参考设计用的是不是你手上这个封装、这个频率档、这个天线形态任何一项不同抄过去的取值都可能不适用。第三层是认证和应用文档射频认证的测试报告、常见问题的应用笔记。这类文档在打样阶段用不上但在产品要过认证、或者出现莫名其妙的射频问题时是唯一的解释来源。资料类型用途缺失后果规格书电气特性表确定电压、电流、时序边界电源和复位设计靠猜引脚定义表整理复用与约束核对表引脚冲突到打样才发现参考原理图提供可工作的基线匹配网络取值没有起点参考布局射频和晶振的布局参照距离指标不达标BOM确认元件精度和封装批量一致性差4.2 拿到参考设计先核对网标、封装和 ESD 三处参考设计到手别急着改。先做三处核对做完再动手。第一处是网络标号。参考设计的网标命名习惯和你自己的项目往往不一样直接复制过来会出现两个同名网络连到一起的低级错误。做法是把参考设计的网标全部列出来和你的命名规范做一次映射映射表留档后面改图时对着看。第二处是封装。同一个型号可能有不同的封装选项引脚数和引脚定义都会变。核对方式是拿封装尺寸图对一遍引脚间距、焊盘尺寸、散热焊盘位置确认和你要投的封装一致。散热焊盘这一项尤其容易漏焊盘尺寸不对会导致焊接空洞射频性能直接受影响。第三处是 ESD 防护。参考设计里如果有 TVS 或者压敏电阻要看它保护的是哪些线——通常是 USB、按键、外部接口。如果你的产品有外壳防护等级要求不同这部分要重新评估不能照搬。4.3 用 Python 把引脚表和原理图网标对一遍手工核对几十个引脚出错是必然的。引脚表整理成 CSV原理图导出网标成 CSV用一段脚本做差集几分钟能查出人眼漏掉的东西。脚本不复杂逻辑是三个集合运算表里有图上没有、图上有表里没有、两边都有但网络名不一致。import csv def load_csv(path, key_field, value_field): 把 CSV 读成 {key: value} 字典跳过空行和以 # 开头的注释行 table {} with open(path, newline, encodingutf-8-sig) as f: for row in csv.DictReader(f): key (row.get(key_field) or ).strip() if not key or key.startswith(#): continue table[key.upper()] (row.get(value_field) or ).strip() return table # 两张表的 key 都是引脚号value 是该引脚挂的网络名 pin_spec load_csv(pin_table.csv, pin, net) # 规格书整理的引脚表 sch_net load_csv(schematic_nets.csv, net, pin) # 原理图导出的网标 missing sorted(set(pin_spec) - set(sch_net)) # 表里有、图上没有 extra sorted(set(sch_net) - set(pin_spec)) # 图上有、表里没有 print(图上缺失的引脚:, missing) print(图上多出的引脚:, extra) # 两边都有的引脚比对网络名是否一致 mismatch [ (p, pin_spec[p], sch_net[p]) for p in set(pin_spec) set(sch_net) if pin_spec[p] and sch_net[p] and pin_spec[p] ! sch_net[p] ] for p, a, b in sorted(mismatch): print(f引脚 {p}: 引脚表{a} 原理图{b})逻辑说明load_csv把两张表统一读成字典encodingutf-8-sig是为了兼容从表格软件导出的带 BOM 文件不加这一项第一列的键会多一个不可见字符导致全部对不上。三个集合运算分别对应三类错误漏画、多画、画错。参数说明pin_table.csv至少要有pin和net两列pin填引脚号net填该引脚应该连的网络名schematic_nets.csv从原理图软件导出通常是net加pin两列如果你的软件导出格式不同改一下列名参数即可。引脚号的格式要统一一边写1一边写P1会对不上导出前先做一次格式规整。提示这段脚本跑在画图阶段不要等打样前才跑。每改一版原理图就跑一次成本几乎为零能挡掉大部分“明明检查过却还是接错”的情况。5. 复刻踩坑记录五类翻车现象的原因与改法下面这五条是这类小板子复刻过程中出现频次最高的每一条都按现象、原因、解决三段写。有些坑第一版踩过第二版还会踩因为现象和原因之间隔着一层不拆开看不出来。5.1 上电反复重启电源瞬态扛不住射频峰值现象板子能启动串口有打印但一发起连接或者射频功率拉高芯片立刻复位串口重新打印启动信息如此循环。原因供电路径的瞬态响应不足。射频发射是脉冲负载峰值电流远超平均值LDO 环路响应跟不上输出电压瞬间跌到复位阈值以下。常见于用了一颗小电流 LDO、或者去耦电容离芯片太远、或者输入电容被省掉的设计。解决先量电压。用示波器看芯片电源脚触发设在发射瞬间看跌落到多少。如果跌到 3.0V 以下先加芯片脚边的 100nF再加电源入口的 10uF还不够就换峰值能力更大的 LDO。别一上来就怀疑芯片坏了这类现象九成是电源问题。5.2 能连上但距离短天线净空被自己的铺铜吃掉现象近距离连接正常隔一堵墙就掉线或者信号强度比同类产品低十几 dB。原因天线净空不足。常见的是天线投影区下方铺了地、走了信号线或者外壳里有电池、金属螺丝柱、屏蔽罩。也有匹配网络元件取值不对的情况但先排查净空因为它的概率更高。解决把天线区域下方的铜全部挖掉周围留出足够的无铜区电池和金属件移开。改完重新拉距测试如果改善明显就是净空问题如果没改善再动匹配网络用网分看输入端口的阻抗或者用二分法调整串联电感和并联电容。5.3 晶振不起振或起振慢负载电容算错现象部分板子上电后不启动或者启动时间明显比别的板子长用示波器探头碰晶振脚能看到波形但频率偏离标称值。原因负载电容取值和晶振规格不匹配或者 PCB 分布电容估得不准。也有晶振走线过长、靠近干扰源的情况。探头本身的电容也会影响起振测量时要注意。解决按 CL 公式重算电容先按 Cstray 取 3pF 算一版不行再试 5pF。晶振走线缩短、下方不走其他信号、外壳可靠接地。如果整批都不起振先怀疑焊接和物料如果只有个别板子怀疑布局和分布电容。5.4 烧录不进去启动脚电平与串口交叉现象烧录工具连不上串口没有任何回应或者偶尔能连上但不稳定。原因三类。启动脚在复位期间的电平不对芯片没进烧录模式串口 TX/RX 没交叉USB 转串口是 5V 电平而芯片是 3.3V电平不匹配导致通信失败。解决先量启动脚在复位期间的电平对照规格书确认是不是烧录模式要求的电平。再确认串口线序模块 TX 接转接板 RX。最后确认电平5V 转接板必须加电平转换或者换 3.3V 的转接板。5.5 批量一致性差匹配元件公差与阻抗偏差现象小批量十块板子拉距测试距离参差不齐最好和最差差一倍以上。原因匹配网络元件精度不够或者 PCB 阻抗控制没做到位。射频元件对容差敏感5% 精度的电容和 1% 精度在实际阻抗上差别明显板厂如果没按阻抗要求做50 欧姆线可能偏到 40 或者 60。解决匹配元件换成 1% 精度高 Q 值型号投板时把叠层和阻抗要求写清楚要求板厂出阻抗测试报告量产前做一次小批量抽测确认分布范围可接受。这一步花的时间比售后返修便宜得多。6. 打样前的最后一小时上电验证顺序与射频拉距实测板子回来之前那一小时最值得做的不是再画一版而是把验证顺序写下来。我吃过亏板子一到手就焊天线、装壳子、连手机结果连不上然后从最末端往回查浪费一整天。正确的顺序是从电源往里推每一级确认了再往下走。6.1 上电顺序先看电流再看串口第一步不焊芯片只焊电源部分上电测输出电压确认 3.3V 在容差内空载电流正常。第二步焊上芯片串一个毫安表或者用可调电源看电流正常启动的电流曲线是上电一个小台阶稳定在一个静态值如果电流直接冲到限流立刻断电查短路。第三步接串口先发一条最简单的查询指令看有没有回应。# 配置串口为 115200 8N1无流控原始模式用于收发十六进制 stty -F /dev/ttyUSB0 115200 cs8 -cstopb -parenb -crtscts raw -echo # 发一条查询指令看模块是否回应 printf AT\r\n /dev/ttyUSB0 # 两秒内抓取返回内容十六进制显示便于看不可见字符 timeout 2 cat /dev/ttyUSB0 | xxd | headstty那一行的参数含义115200是波特率cs8是 8 位数据位-cstopb是 1 位停止位-parenb是无校验-crtscts关闭硬件流控raw -echo关掉行缓冲和回显避免系统替你加工数据。波特率不对是最常见的问题规格书里如果给了默认值就按默认值来改之前先确认烧录工具的设置一致。第四步电流和串口都正常之后再接天线做射频测试。这个顺序的好处是每一步的失败原因都是唯一的不会出现电源问题和射频问题混在一起查不清的情况。6.2 射频拉距与一致性抽测拉距测试不需要专业场地也能做粗略评估。做法是选一条相对空旷的直线路径模块固定在发射端接收端用手机或者另一块已知良好的板子每隔一段距离记录一次信号强度和丢包情况。重点不是绝对距离而是同一批板子之间的相对差异——如果十块板子里有三块明显偏差那是工艺或物料问题如果全部偏差那是设计问题。一致性抽测建议至少做五块记录三组数据静止时的信号强度、走动过程中的丢包率、连续工作一小时后的温升。温升这一项容易被忽略但如果你的外壳是密闭的射频连续工作时芯片温度上来频率会漂表现出来就是工作一段时间后连接变差。注意拉距测试的结果受环境影响很大同一条路径上午测和下午测可能差不少。做对比时尽量固定时间、固定路径、固定人体朝向减少变量。我自己的习惯是每版板子留一份“失败记录”写清楚这版哪里没通过、当时的判断是什么、最后怎么改的。这份记录比任何规格书都值钱因为它是你自己踩出来的边界。这类小板子的设计门槛不高真正拉开差距的是对边界的把握和对失败原因的归因能力。希望帮到你。本文还有配套的精品资源点击获取