1. 项目概述:从零开始构建一个嵌入式网络核心板
最近在做一个物联网网关的项目,核心需求是让一个嵌入式设备稳定地接入以太网,同时具备足够的本地处理能力。经过一番选型,最终敲定了STM32F103RCT6作为主控,搭配W5500这颗硬核网络芯片的方案。方案定了,下一步就是把它从想法变成可以打板的电路图。作为硬件工程师的“画笔”,Altium Designer自然是不二之选。今天,我就来详细拆解一下,如何用 AD 从零开始绘制这套STM32+W5500的电路原理图。这个过程不仅仅是连线的艺术,更是对电源、时钟、通信、抗干扰等核心硬件设计的系统性思考。无论你是刚接触硬件设计的新手,还是想梳理一下规范流程的老鸟,相信这篇基于实战的分享都能给你带来一些启发。
2. 核心芯片选型与设计思路解析
2.1 为什么是STM32F103和W5500?
在开始画图之前,得先搞清楚为什么选这两颗芯片。这决定了后续原理图设计的绝大部分细节。
STM32F103RCT6,江湖人称“国民MCU”,选它理由很充分:
- 性能与资源平衡:72MHz的Cortex-M3内核,处理网络协议栈和用户应用绰绰有余。256KB Flash、48KB RAM,对于跑一个轻量级的TCP/IP栈(比如LwIP)加上业务逻辑,空间是足够的。
- 外设齐全:它拥有多达5个串口(UART)、2个SPI接口、2个I2C接口以及丰富的定时器。我们需要至少一个SPI接口以最高速率与W5500通信,同时预留串口用于调试和连接其他传感器,它完全满足。
- 开发生态成熟:资料多、社区活跃、各种库(HAL/LL)支持完善,能极大缩短开发调试周期。
- 成本与供货:在消费级和工业控制领域,它的性价比和供货稳定性经历了长期考验。
W5500是一颗全硬件TCP/IP协议栈的以太网控制器。与软件协议栈(如ENC28J60+软件栈)或更复杂的MAC+PHY方案(如LAN8720)相比,它的优势在于:
- 硬核卸载,MCU零负担:TCP/IP协议栈(TCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE)全部由硬件逻辑实现。MCU只需要通过简单的Socket API进行数据收发,无需处理复杂的协议解析、重传、拥塞控制,大大降低了MCU的CPU占用率和编程复杂度。
- 集成PHY,设计简化:它内部集成了10/100M以太网PHY(物理层收发器)和MAC(媒体访问控制器),外围只需要一个网络变压器(RJ45带变压器)即可连接到网口,极大简化了电路设计,减少了布板面积和元件数量。
- 通信接口简单:通过标准的SPI接口与MCU连接,最高时钟可达80MHz,通信速率有保障。
- 稳定可靠:硬件协议栈避免了软件栈可能存在的内存泄漏、死锁等问题,在网络数据冲击下表现更稳定,特别适合工业环境。
组合起来的设计思路就是:STM32作为大脑,负责业务逻辑和Socket调用;W5500作为专职的网络通信助理,处理所有繁琐的网络协议。两者通过高速SPI“交谈”。这样的架构清晰、职责分明,是快速实现稳定以太网功能的经典组合。
2.2 整体原理图模块划分
在动笔(鼠标)之前,先在脑海里或纸上把整个原理图分成几个功能模块。模块化设计不仅让图纸清晰,也便于后期检查和复用。我的图纸主要分为以下几大块:
- MCU最小系统电路:这是STM32能跑起来的最基本电路,包括电源、复位、时钟、启动模式、调试接口。
- W5500网络模块电路:包含W5500芯片及其外围必要电路、SPI接口、网络变压器和RJ45接口。
- 电源电路:将外部输入的电源(比如12V或5V)转换为系统所需的3.3V(给STM32、W5500等数字部分)和可能需要的其他电压。
- 通信与调试接口:如SWD/JTAG调试口、串口转换电路(USB to TTL)、预留的GPIO排针等。
- 外设与扩展接口(可选):根据项目需要,可以添加SD卡、OLED屏幕、传感器等电路的预留位置。
每个模块在Altium Designer中可以用一个“图纸符号”来表示,或者在同一张图纸中用明显的虚线框隔开,保持逻辑清晰。
3. 核心电路设计与Altium Designer实操要点
3.1 STM32最小系统设计精讲
最小系统是基石,必须设计得稳健可靠。
电源部分(VDD/VSS):
- STM32F103RCT6的工作电压是2.0V~3.6V,通常我们使用3.3V。芯片有多个VDD/VSS引脚,必须全部连接,不能遗漏。每个VDD引脚附近都需要放置一个去耦电容。
- 去耦电容的布局是关键:我的习惯是,在芯片的每个VDD引脚到最近的GND之间,放置一个100nF(0.1uF)的陶瓷电容,电容务必靠近引脚放置(在原理图上体现为网络连接,在PCB布局时要物理靠近)。此外,在整板3.3V电源入口处,还会并联一个10uF的钽电容或电解电容作为储能电容,应对瞬时大电流需求。
- 模拟部分供电:如果用到ADC,需要注意VREF+、VDDA(模拟电源)必须连接一个干净的3.3V,并通过磁珠或0Ω电阻从数字3.3V隔离,同时靠近引脚放置10uF和100nF电容到模拟地(VSSA)。
复位电路:
- 采用经典的阻容复位。一个10kΩ电阻上拉到3.3V,一个100nF电容下拉到地,中间点接到NRST引脚。这种设计简单可靠,上电时电容充电产生低电平脉冲实现复位。也可以预留一个复位按钮,并联在电容两端,用于手动复位。
时钟电路:
- 高速外部时钟(HSE):为了获得72MHz主频和精确的USB等时钟,强烈建议使用外部晶振。通常选择8MHz的无源晶振,负载电容根据晶振规格书选择,常见为20pF。在OSC_IN和OSC_OUT引脚接晶振,并分别对地接一个20pF(或晶振要求的)负载电容。记得在晶振外壳附近放置一个1MΩ的反馈电阻(有些芯片内部已有)。
- 低速外部时钟(LSE):如果用到RTC(实时时钟),需要接一个32.768kHz的晶振,同样搭配负载电容(通常12.5pF)。
启动模式配置:
- 通过BOOT0和BOOT1引脚设置。最常用的模式是从主Flash启动(BOOT0=0)。我会将BOOT0通过一个10kΩ电阻下拉到地,BOOT1(在部分型号上是PB2)直接接地或作为普通IO使用,确保上电后稳定进入用户程序模式。
调试接口(SWD):
- 相比传统的JTAG,SWD占用引脚少(仅需SWDIO和SWCLK两根线),是STM32调试的首选。我会引出SWDIO、SWCLK、GND,以及可选的NRST和3.3V(用于给调试器供电或检测)。在SWDIO和SWCLK线上串联一个100Ω左右的电阻(可选,用于阻抗匹配和减少过冲),并上拉一个10kΩ电阻到3.3V,有助于稳定连接。
实操心得:在Altium Designer中绘制这部分时,不要直接从库中拉出一个芯片就开连。先使用“放置”->“线”绘制清晰的电源轨(3.3V、GND)和总线。为每一个VDD网络放置“电源端口”(如VCC3V3),为GND放置“GND端口”。这样不仅图纸美观,后续进行电气规则检查(ERC)和生成网表也更清晰。
3.2 W5500电路设计全解析
W5500电路是本次设计的核心,其稳定性直接决定网络功能。
芯片供电与去耦:
- W5500同样使用3.3V供电(VCC3V3)。它内部有模拟和数字部分,所以AVDD(模拟电源)和DVDD(数字电源)引脚需要分别处理。通常的做法是:将AVDD和DVDD都连接到3.3V,但要在靠近芯片引脚处,为每个电源引脚单独放置一个100nF的去耦电容到AGND或DGND。在芯片的VCC3V3入口处,再并联一个更大的电容(如4.7uF)。
- 地线连接:AGND和DGND在芯片内部并未直接连接,所以在原理图上,我们需要将AGND和DGND通过网络标签(Net Label)连接到同一个“GND”网络。在PCB布局时,建议在芯片下方或附近,通过一个0Ω电阻或磁珠将模拟地和数字地单点连接,以减少数字噪声对模拟PHY电路的干扰。
时钟电路:
- W5500需要一颗25MHz的晶振或无源晶体为其内部PHY和MAC提供时钟。电路与MCU晶振类似,在XI和XO引脚接晶振和负载电容(通常为20pF)。务必选择精度高、稳定性好的晶振,这是网络链路稳定的基础。
SPI接口设计:
- W5500支持标准SPI模式0和3。与STM32的连接通常如下:
W5500_SCSn-> 连接STM32任意GPIO(用于片选)W5500_SCLK-> 连接STM32的SPI时钟引脚(如PA5)W5500_MOSI-> 连接STM32的SPI主出从入引脚(如PA7)W5500_MISO-> 连接STM32的SPI主入从出引脚(如PA6)W5500_RSTn-> 连接STM32任意GPIO(用于硬件复位)W5500_INTn-> 连接STM32的外部中断引脚(用于接收数据中断通知)
- 上拉电阻:
/RST和/INT引脚内部可能有弱上拉,但为了可靠性,我习惯在外部增加一个10kΩ的上拉电阻到3.3V。/SCS片选线是否上拉取决于STM32端GPIO的默认状态,通常也会加上。
网络变压器与RJ45接口:
- 这是连接网线的物理接口。W5500的TX+/TX-, RX+/RX-差分信号线直接连接到网络变压器的中心抽头。网络变压器(通常集成在RJ45插座内,如HR911105A)的作用是信号耦合、电气隔离和抗干扰。
- 关键细节:
- 终端电阻:在W5500的TX和RX差分线对上,靠近芯片引脚处,需要并联一个49.9Ω的精密电阻(1%精度)到地。这个电阻用于阻抗匹配,消除信号反射,对信号完整性至关重要。
- 中心抽头接法:变压器中心抽头需要通过一个0.1uF电容耦合到地,同时通过一个电阻(如49.9Ω)连接到3.3V。具体接法需严格参照你选择的网络变压器或RJ45带变压器插座的数据手册。
- LED指示灯:RJ45插座通常有网络连接(Link)和活动(Activity)指示灯。将对应的引脚连接到W5500的
PHY_LED和SPD_LED引脚(需配置),并串联一个限流电阻(如470Ω)到3.3V。
注意事项:W5500的差分信号线(TPOUT+/TPOUT-, TPIIN+/TPIN-)在PCB布线时属于高速信号,必须遵循差分走线规则(等长、等距、紧耦合),并远离噪声源。这部分在原理图阶段就要规划好,预留足够的空间和清晰的网络标签。
3.3 电源电路设计考量
一个干净的电源是系统稳定的前提。我们的输入可能是USB的5V,也可能是外部适配器的7-12V。
方案选择:LDO vs DCDC
- 对于电流不大(整个系统<500mA)、对噪声敏感(模拟电路、高速数字电路)的场景,低压差线性稳压器(LDO)是首选,因为它噪声小、电路简单。常用型号如AMS1117-3.3。
- 如果系统功耗较大,或者输入输出电压差大(如12V转3.3V),使用LDO会导致效率低下,发热严重。此时应选择开关稳压器(DCDC),如MP2359、LM2596等,效率可达80%以上,但电路稍复杂,噪声较大,需要良好的滤波和布局。
以经典的AMS1117-3.3为例:
- 输入电容:在Vin引脚附近放置一个10uF的电解电容或钽电容,用于输入滤波。
- 输出电容:在Vout引脚附近放置一个22uF的电解电容或钽电容,并并联一个100nF的陶瓷电容。AMS1117对输出电容的ESR有要求,钽电容或低ESR的电解电容是合适的,具体值需参考数据手册。
- 散热:如果输入输出压差大、电流大,需要计算功耗(P=(Vin-Vout)*Iout)并考虑加散热片或选用更大封装的器件。
电源路径与保护:
- 在电源入口处,建议放置一个自恢复保险丝(PPTC)和一個防反接二极管(如1N4007),防止电源反接或过流损坏后续电路。
- 可以使用磁珠(Ferrite Bead)将数字电源、模拟电源、PLL电源等进行隔离,防止噪声串扰。
在Altium Designer中,我会为电源模块单独创建一个原理图子页或区域,清晰地标注输入输出电压、电流能力,并使用“参数集”或文本标注说明关键元件的选型依据。
4. Altium Designer绘制原理图实战流程
4.1 库管理与元件创建
“工欲善其事,必先利其器”。在连线之前,确保所有元件的原理图符号和PCB封装都准确无误。
- 建立项目与库:新建一个PCB项目,然后在项目中添加一个原理图库和一个PCB封装库。我习惯为这个特定项目创建一个集成库(.LibPkg),将原理图符号和PCB封装关联起来。
- 绘制STM32原理图符号:
- 对于STM32这种多引脚芯片,不建议用一个矩形框画满100个引脚。应采用分部件(Part)的方式。例如,将电源引脚(VDD/VSS)作为一个部件,调试口(SWD)作为另一个部件,GPIO按端口(PA, PB, PC…)分成多个部件。这样在原理图上放置时清晰明了,连线方便。
- 引脚名称(Designator)必须与数据手册完全一致(如
PA0,VDD_1,NRST)。引脚编号(Number)也必须正确。 - 为电源引脚设置正确的电气类型(如
VDD设为Power,NRST设为Input)。
- 绘制W5500原理图符号:同样,可以将电源、SPI、网络差分线、时钟等分到不同部件。特别注意差分信号对(如
TPOUT_P/TPOUT_N)的命名要清晰。 - 制作/查找PCB封装:
- STM32F103RCT6是LQFP64封装。在AD的封装库中搜索
LQFP-64,通常能找到标准封装,但务必核对引脚间距(Pitch)是否为0.5mm,焊盘尺寸是否合适。 - W5500通常是QFN-48或LQFP-48封装。QFN封装底部有散热焊盘,制作封装时一定要加上,并打好过孔连接到地平面用于散热。
- 电阻、电容、晶振、网络变压器等无源元件,使用标准的0805、0603封装或根据实物尺寸自定义。
- STM32F103RCT6是LQFP64封装。在AD的封装库中搜索
- 关联模型:在原理图库中,为每个符号指定对应的PCB封装(Footprint),并可以关联3D模型(STEP文件)以便后续进行三维预览和干涉检查。
踩坑记录:曾经因为贪快,用了别人库里的STM32符号,结果引脚编号是错的,导致PCB焊接后所有IO对不上,整板报废。血的教训告诉我们:关键芯片的原理图符号和PCB封装,一定要亲自对照官方数据手册核对至少两遍!可以利用Altium Designer的“引脚报告”功能来检查。
4.2 原理图绘制与连线规范
元件准备妥当,就可以开始“作画”了。
- 模块化布局:在原理图图纸上,按照之前划分的模块,将各个部件(Part)放置到相应区域。留出足够的空间用于走线和标注。
- 连线与网络标签:
- 对于短距离、直观的连接,使用“放置线”直接连接。
- 对于跨页或远距离的连接,强烈推荐使用“网络标签”(Net Label)。例如,将STM32的
PA5引脚放置一个名为SPI1_SCK的网络标签,在W5500的SCLK引脚也放置同样的SPI1_SCK标签,AD会自动认为它们连接在一起。这比画长长的跨页连线清晰得多。 - 电源和地线,使用“电源端口”(Power Port),如
VCC3V3、GND。这些端口具有全局作用域,整个项目内同名端口自动连接。
- 总线使用:对于一组相关的信号线,如数据总线
D[0..7]或地址总线,可以使用“总线”和“总线入口”来绘制,使图纸更简洁。但STM32和W5500之间主要是SPI和GPIO,信号线不多,直接使用网络标签即可。 - 放置注释与参数:
- 为关键元件添加“参数”,如电阻的阻值、电容的容值和电压、晶振的频率。这些信息会传递到PCB和BOM表中。
- 使用“文本字符串”添加必要的说明,如“此电容需靠近芯片VDD引脚”、“差分线需等长布线”等设计备注。
- 在每一页原理图的角落,放置“标题栏”,填写图纸名称、版本、作者、日期等信息。
绘制顺序建议:先绘制核心的MCU最小系统和W5500模块,确保电源、地、时钟、复位、SPI连接正确。然后再添加电源电路、调试接口等外围部分。每画完一个模块,就进行局部检查。
4.3 电气规则检查与编译
原理图绘制完成后,绝不能直接导出PCB。必须进行电气规则检查(ERC)和项目编译。
- 设置ERC规则:在项目选项中,设置好检查规则。例如,未连接的引脚、未连接的电源、重复的网络标签等通常设为错误(Error)或警告(Warning)。
- 编译项目:点击“工程”->“Compile PCB Project…”。AD会进行编译,并在“Messages”面板中列出所有错误和警告。
- 排查问题:
- 常见错误:两个输出引脚短路、电源引脚未连接、网络标签拼写错误。
- 常见警告:未连接的输入引脚(如未用的GPIO,这是正常的,可以忽略或放置“No ERC”标志)、单个网络(通常需要检查是否真的只有一个连接点)。
- 生成网表:编译无误后,实质上已经生成了内部的网表。你可以通过“设计”->“Netlist For Project”->“Protel”生成一个网表文件,作为备份或与其他EDA工具交互的中间文件。
实操心得:在编译前,我习惯将所有未使用的GPIO引脚,通过一个小技巧处理:在原理图上将它们通过一个电阻(如10kΩ)上拉到3.3V或下拉到地,或者标记为“No ERC”。这样可以避免悬空引脚引入噪声或导致功耗异常,同时消除ERC警告。对于STM32,将未用的引脚设置为模拟输入模式是软件上的最佳实践,但在硬件原理图上给出一个确定的电平也是个好习惯。
5. 从原理图到PCB的预备工作与设计输出
5.1 封装完整性检查与PCB板框导入
原理图确认无误后,重心开始转向PCB设计。
- 封装管理器:使用“工具”->“封装管理器”,检查项目中每一个元件的PCB封装是否都已正确关联。在这里可以批量修改或添加封装。
- 导入PCB:在PCB项目中新建一个PCB文件。然后,在原理图界面,点击“设计”->“Update PCB Document …”。在弹出的“工程变更订单”中,你会看到所有要添加的元件、网络和房间。点击“验证变更”,确保全部打勾(绿色√),然后点击“执行变更”。此时,所有元件和网络连接(飞线)都会导入到PCB文件中,堆叠在板框外的一个区域。
- 定义板框:根据产品外壳或尺寸要求,在
Mechanical 1层或Keep-Out Layer层绘制板框。可以使用“放置”->“走线”画一个闭合轮廓,然后选中所有轮廓线,点击“设计”->“板子形状”->“按照选择对象定义”。
5.2 关键设计规则预设
在开始布局布线之前,预先设置好设计规则(Design Rules),能让后续工作事半功倍,避免大量返工。
- 电气规则:
- 安全间距(Clearance):设置不同网络之间的最小间距。对于普通3.3V信号,6mil(0.152mm)是常见值。对于电源网络,可以适当加大到8-10mil。
- 短路规则(Short-Circuit):不允许短路。
- 未连接引脚规则(Un-Routed Net):所有网络都必须连接。
- 布线规则:
- 线宽规则(Width):这是重点。需要为不同电流的网络设置不同线宽。
- 电源线:根据电流计算。3.3V主电源,假设最大电流500mA,使用1oz铜厚,通过在线线宽计算器可得,温升10°C时线宽约需15mil(0.38mm)。我会为
VCC3V3网络设置一个范围(如最小10mil,首选20mil,最大30mil)。 - 信号线:常规信号线(SPI、GPIO)设置8-10mil即可。
- GND地线:通常不专门走线,而是通过铺铜实现。但规则中可以设置一个较宽的默认值。
- 电源线:根据电流计算。3.3V主电源,假设最大电流500mA,使用1oz铜厚,通过在线线宽计算器可得,温升10°C时线宽约需15mil(0.38mm)。我会为
- 过孔规则(Routing Via Style):设置过孔尺寸。外径(Diameter)24mil,内径(Hole Size)12mil是一个通用性很好的尺寸。
- 线宽规则(Width):这是重点。需要为不同电流的网络设置不同线宽。
- 高速信号规则(针对W5500差分对):
- 差分对规则(Differential Pairs Routing):需要先在原理图中将
TPOUT_P和TPOUT_N定义为一对差分对(通过放置差分对指示符或在PCB中手动定义)。然后在规则中设置差分对的线宽、间距(如线宽8mil,间距6mil)和最大/最小耦合长度。 - 等长规则(Matched Lengths):为这对差分对设置等长规则,允许的长度误差(Tolerance)可以设为5mil。确保正负信号长度一致,以减少信号偏移(Skew)。
- 差分对规则(Differential Pairs Routing):需要先在原理图中将
5.3 生成生产文件清单
原理图设计的最终目的是为了生产和焊接。在提交给PCB制板厂和SMT贴片厂前,需要生成一系列文件。
- 物料清单(BOM):点击“报告”->“Bill of Materials”。在弹出窗口中,选择需要导出的列,如
Comment(元件值)、Designator(位号)、Footprint(封装)、Quantity(数量)。可以分组(Group By)Comment和Footprint,这样相同规格的元件会合并。导出为Excel或CSV格式,方便采购。 - 智能PDF输出:点击“文件”->“智能PDF”。这是一个非常实用的功能,可以生成包含原理图所有页面、元件链接、书签的PDF文件,方便归档、评审和查阅。
- 网络表与装配图:虽然AD中直接更新PCB即可,但导出网络表(Netlist)和生成装配图(在PCB文件中,分别打印顶层和底层的丝印层、焊盘层)仍然是与外部协作或备份的好习惯。
注意事项:在生成BOM前,务必确保原理图中每个元件的
Comment属性填写正确、统一。例如,所有104电容都应该是“100nF”或“0.1uF”,不要有的写“104”,有的写“0.1uF”,这会导致BOM统计错误。同样,电阻值也要统一为“10k”或“10KΩ”。
6. 常见设计陷阱与调试心得
即使原理图设计得再仔细,实际项目中还是会遇到各种问题。分享几个我踩过的坑和调试经验。
6.1 电源相关的问题
问题现象:板上电后,STM32或W5500不工作,或者工作不稳定,时而复位。排查思路:
- 测量电压:首先用万用表测量3.3V电源输出是否稳定。如果电压偏低或波动大,检查LDO或DCDC的输入输出电容是否焊好、容值是否正确。AMS1117如果输入输出反接或短路,极易烧毁。
- 检查去耦电容:用示波器探头(设置为交流耦合)点测芯片的VDD引脚和最近的GND,观察电源纹波。如果纹波过大(如超过100mV),很可能是去耦电容不足或布局太远。务必确保每个VDD引脚都有一个100nF陶瓷电容,并且物理位置紧贴引脚。
- 上电顺序:虽然STM32和W5500对电源上电顺序不敏感,但若系统中有多个电源域,需要确认是否存在竞争或倒灌。
6.2 时钟与复位问题
问题现象:程序下载不进去,或者下载后不运行。排查思路:
- 晶振不起振:这是最常见的问题之一。首先检查晶振两脚电压,正常约为VCC/2(1.6V左右)。如果电压为0或接近VCC,可能晶振损坏、负载电容错误(太大或太小)或芯片OSC引脚损坏。可以尝试更换晶振,或者暂时使用STM32的内部HSI时钟(修改代码中时钟配置)来排除问题。
- 复位引脚被拉低:测量NRST引脚电压,正常应为高电平(3.3V)。如果一直被拉低,检查复位电路电容是否短路、复位按钮是否卡住,或者是否有其他电路误连接到NRST。
- 启动模式:确认BOOT0和BOOT1的电阻焊接正确,确保上电时BOOT0为低电平。
6.3 网络连接问题
问题现象:网线插入后,RJ45的Link灯不亮,或者闪烁异常,无法ping通。排查思路:
- 检查差分终端电阻:这是重中之重!用万用表测量W5500的TX+和TX-之间、RX+和RX-之间是否并联了约50Ω的电阻(实际测量值可能是两个49.9Ω并联,约25Ω)。如果电阻没焊或焊错,信号反射会导致无法建立连接。
- 检查网络变压器:确认变压器型号是否支持10/100M自适应,中心抽头的接法是否与原理图一致。可以用替换法试试。
- 检查软件配置:确认STM32的SPI初始化时序(模式0,时钟极性CPOL=0,相位CPHA=0)和速率是否正确。W5500的初始化代码中,是否正确地配置了MAC地址、子网掩码、网关和IP地址。
- 示波器观察:用示波器(最好是有差分探头的)观察TX+/TX-差分信号。当有网络数据时,应该能看到清晰的差分脉冲。如果信号幅度太小或形状畸变,检查电源和终端电阻。
6.4 SPI通信失败
问题现象:无法读写W5500的寄存器,读回的ID不正确。排查思路:
- 电气连接:用万用表蜂鸣档检查SPI四根线(SCLK, MOSI, MISO, /CS)以及/RST、/INT是否与STM32相应引脚连通,有无短路到电源或地。
- 片选信号:用示波器观察片选信号
/CS。在SPI通信期间,它应该是被拉低的脉冲。如果一直是高电平,说明STM32的GPIO配置或代码有问题。 - 时钟和数据:观察SCLK和MOSI波形,看是否有数据发出。对照W5500数据手册的读写时序图,检查时钟极性和相位(Mode 0或3)是否匹配。
- 上拉电阻:确认
/CS、/RST、/INT等信号是否按需增加了上拉电阻,确保默认状态稳定。
绘制原理图是硬件设计的第一步,也是最基础、最关键的一步。它直接决定了后续PCB设计、焊接调试乃至整个项目的成败。对于STM32+W5500这样的组合,抓住电源完整性、时钟可靠性、SPI通信正确性和网络差分信号完整性这几个核心,严格按照数据手册设计,并在Altium Designer中通过规范的模块划分、清晰的网络标签和彻底的ERC检查来保证图纸质量,就能为打造一块稳定可靠的嵌入式网络核心板打下坚实的基础。最后,别忘了,原理图上的每一个元件、每一根线,最终都要落实到真实的物理世界,多思考、多核对、多借鉴成熟设计,你的电路就会越来越稳健。