资讯详情

资讯详情

SPI电气隔离实战:MAX14431配合STM32F107的工业通信隔离设计

做嵌入式的人估计都被工业现场的通信故障折磨过。我自己在测试台架上看过不少次这样的现象板子和设备之间就隔了两米线数据就开始跳字节偶尔整个 SPI 总线卡死严重时还直接烧掉从机芯片。排查到最后十有八九不是协议写错了而是地电位差和噪声串进了通信链路。今天要聊的这个项目就是用 MAX14431BAEE 把 STM32F107VCT6 引出的 SPI 信号做电气隔离把两套完全独立的地系统之间的数据交换变得安全可靠。这个方案解决的核心问题用四个字说就是电气隔离。SPI 是同步串行总线主器件和从器件之间有 SCLK、MOSI、MISO、CS 四根信号线再各自带着自己的参考地。在工业控制、电机驱动、电源变换这些场景里主控板的地和远端设备的地往往不在同一个电位上两者之间可能长期存在几伏甚至几十伏的直流偏置还有频繁的瞬态冲击。信号线直接硬接轻则误码重则器件损坏。MAX14431BAEE 是一颗四通道数字隔离器放在 STM32F107VCT6 和外设之间把电气连通的信号线变成通过隔离栅耦合的通道两边各玩各的地互不干扰。这篇文章就把整个方案的选型思路、电路设计、软件配套和实测过程完整拆一遍适合正在做工业数据采集、通信板卡或者想给现有嵌入式系统加隔离保护的工程师参考。1. 工业现场为什么要折腾隔离这件事1.1 一场典型的通信事故复盘先说一个我印象很深的案例。当时调试一块基于 STM32F107VCT6 的数据采集板板上有扩展出来的 SPI 接口模拟量采集模块距离主控板大概一米五中间走航空插头和屏蔽线。实验室里怎么跑都没事一到客户现场就连不上多试几次之后采集模块直接烧了。事后分析原因其实很简单。那个采集模块由另一路 24V 电源供电模块外壳和大功率电机共用机柜地。电机一启动机柜地上有大电流涌动采集模块的参考地相对主控板的地被抬高了接近 20V而且叠加着很陡的共模噪声。SPI 的四根线上主控板输出的是标准的 03.3V 电平但对端的地电位已经变掉了这些信号到了从机那边就完全不是原来的含义。再加上共模噪声的高频分量信号完整性彻底崩溃从机输入引脚上的闩锁电流直接把器件打穿。这种场景在工厂里太常见了不是板子设计差而是地电位差这个物理问题没处理。从那次之后我养成一个习惯只要系统里有超过一个独立供电的设备、或者任何可能产生大电流冲击的负载就先问一句这两边的地是不是同一个地。答案是否定的通信链路就必须隔离没有第二种选择。1.2 SPI隔离比串口隔离更麻烦很多工程师一听说隔离第一反应是光耦。比如 RS485 隔离、I2C 隔离都有不少现成套路但 SPI 隔离要麻烦得多。主要原因在 SPI 本身是四根线同步通信时钟频率动辄 9M、18M光耦根本跟不上。普通低速光耦的传播延迟都是微秒级而 9Mbit/s 的 SPI 时钟周期只有 110ns 左右信号经过光耦再出来边沿早就面目全非了。再加上 MOSI 和 MISO 方向相反光耦需要两个方向分别布置CS 还要单独一路一算下来光耦方案体积巨大、功耗高、延迟大还受老化漂移影响实际没人会这么用。数字隔离器就是替代光耦的现代方案。它的内部以电容或变压器作为隔离介质把电信号转变成电场或磁场的变化穿过隔离栅之后再重建为数字电平。传播延迟只有十几到几十纳秒支持几百兆的码率功耗还非常低完全适合 SPI 这种中高速同步接口。所以这个项目选数字隔离器而不是光耦不是风格偏好而是速度、延迟和功耗三重约束下唯一合理的解。顺便说一句数字隔离器对电源的要求也简单两边各供各的电不像光耦需要调输入电流限流电阻原理图干净不少。1.3 MAX14431为什么天然适合SPIMAX14431BAEE 在 MAX14430 系列里的通道方向配置是 3 进 1 出正好对应 SPI 的四根线SCLK、MOSI、CS 全部从主控侧往对侧传MISO 从对侧往主控侧回。这个 31 的通道布局不是巧合而是这类四通道隔离器专门为 SPI 准备的通用形态。如果你遇到的是纯 4 路输入场景可以选 MAX14430如果是 2 进 2 出可以选 MAX14432整个家族兼容类似的封装和 PCB 设计换型非常方便。这一点在选型时很省心不需要为了配合通道方向硬改板子。而且 MAX14431 系列主打低功耗和宽电压主控侧和对端设备无论工作在 3.3V 还是其他常见电压都能直接对接。对嵌入式系统来说少一级电平转换就少一级故障点这正是它在这个方案里比某些需要额外供电的高功耗隔离器更合适的原因。2. 器件选型背后的具体考量2.1 MAX14431BAEE的关键参数怎么看数字隔离器选型核心关心的其实就四样隔离耐压、数据速率、传播延迟、功耗。MAX14431BAEE 这几个参数我说下实际感受。隔离耐压方面这颗器件提供 3.75kVrms 级别的隔离耐压满足一般工业设备在操作侧和现场侧之间的绝缘要求。如果你的应用更苛刻比如直接面对变频器母线或者要求更高隔离等级可以选家族里耐压更高一档的型号。这里要提醒的一点是手册里标的耐压通常指短时间内隔离栅能扛住的极限反映的是击穿风险而实际长期运行时的可靠性更多取决于 PCB 上的爬电距离这是后面硬件设计要解决的问题。数据速率完全不是瓶颈。MAX14431 支持远高于 SPI 实际需求的码率配合几十纳秒级别的传播延迟STM32F107VCT6 的 SPI 外设满速跑也绰绰有余。功耗方面这个系列主打低功耗每通道的动态电流是很低的水平对散热受限的嵌入式系统非常友好。两边分别供电典型 3.3V 下直接和 STM32 电平完美对接不需要额外的电平转换电路。至于后缀 BAEE 的含义按我理解B 表示器件版本A 对应封装编码EE 通常代表宽温版本 表示无铅环保工艺。说实话 Maxim 系的型号编码规则比较绕不同批次的后缀含义可能有差异我自己的习惯是下单前把完整型号丢到正规代理商的选型器里核对一遍确认隔离等级、封装和温度范围别只看前面几个字母就拍板。这个环节省不得工业项目最怕买到封装对不上或者温度等级不够的批次。2.2 STM32F107VCT6的SPI资源盘点STM32F107VCT6 是 ST 的互联型型号Cortex-M3 内核主频 72MHz256KB Flash、64KB RAM100 脚 LQFP 封装。这颗片子的最大特点是外设齐全以太网 MAC、USB OTG、两个 CAN、多个 UART还有三个 SPI 模块。对于工业设备主控来说一颗片子上既要跑业务逻辑又要挂多个外设三个 SPI 的配置非常实用。具体到 SPI 资源SPI1 挂在 APB2 总线上外设时钟最高 72MHz分频之后最高能到 18Mbit/sSPI2 和 SPI3 挂在 APB1 总线上时钟最高 36MHzSPI 最高 9Mbit/s。所以需要高速率时优先用 SPI1默认引脚是 PA5 做 SCK、PA6 做 MISO、PA7 做 MOSI、PA4 做 NSS。SPI2 也可以用对应 PB13、PB14、PB15、PB12。我这块板子最后用的是 SPI1跑在 9Mbit/s留了足够的时序余量。选这颗片子还有个实际原因工业产品对元器件的长期供货和可替代性很敏感F107 这颗料上市多年、资料全、参考设计多团队里新人上手也快。相比一味追新这种成熟器件加上隔离器方案反而更容易过评估和量产。2.3 组合方案的适配逻辑MAX14431BAEE 和 STM32F107VCT6 这套组合本质是围绕3.3V 电平、中高速率、多外设、需要隔离保护这个典型工业嵌入式需求来配的。主控侧和从机侧都工作在 3.3V隔离器两边不用做电平转换引脚对引脚直连SPI 速率在隔离器支持范围内余量充足隔离器四通道刚好覆盖 SPI 四线功耗又低主控板给隔离器供电的负载几乎可以忽略。从成本上看一颗四通道数字隔离器比四个光耦加外围元件的总成本更低PCB 面积也更省。从调试角度看这套方案全部是数字逻辑不涉及模拟调校软件层面只需要按普通 SPI 从设备处理接入成本很低。所以这个项目的定位很清楚用一颗成熟的工业级隔离器保护一颗资源丰富的主流 MCU可靠性优先成本可控后期维护也省心。3. 硬件电路设计实操要点3.1 两边电源划分隔离的前提是真隔离先要明确一个概念隔离器本身把信号地分开了但每个隔离区都要有自己的电源。MAX14431BAEE 左侧主控侧的电由 STM32 板的 3.3V 供右侧设备侧的电必须由设备侧自己的电源供不能从主控侧直接拉过来否则隔离就没意义了。两侧电源的参考地一旦通过供电网络连在一起隔离栅就白装了。每个电源引脚旁边我放了 0.1uF 的陶瓷电容做高频去耦稍远一点位置又加了一颗 1uF 电容稳住低频。这是数字隔离器最常见的退耦做法别省。尤其隔离器在高频翻转时电流脉冲很集中去耦电容的位置比容值更重要。我见过一块板子因为去耦电容放得离芯片太远地弹噪声导致隔离器输出波形上叠加了明显的振铃后面重新改板才解决。所以我的经验是电容尽量贴着电源引脚放走线先经过电容再到芯片。如果设备侧电源不好取比如从机是纯被动模块那就得在主控侧加一个隔离型 DC-DC 模块把 3.3V 变换成隔离的 3.3V专门给隔离器右侧和设备供电。这个思路在本项目里没有用到因为对端模块自带电源但如果你要做的是隔离外挂 SPI Flash 之类无源器件这一条就绕不开否则从机根本没电可用。3.2 通道分配与信号连接细节通道分配我按常规做法SCLK 走通道 1MOSI 走通道 2CS 走通道 3三个都是主控侧到设备侧方向MISO 走通道 4是设备侧回主控侧方向。连接时输入输出方向不能弄反MAX14431 每一对引脚是有方向定义的接反了信号过不去现象就是一侧怎么发都读不到第一次做的人很容易在这上面卡半天。还有一个特别容易踩坑的地方信号闲置电平。SPI 空闲时 SCLK 停在既定极性上CS 一定是高电平。隔离器在上电瞬间输出状态可能是未知的如果 CS 输出端出现低电平毛刺从机会误以为主机开始通信产生一次虚片选。我的处理办法是在设备侧的 CS 线上加一个 10kΩ 上拉电阻同时把 MCU 初始化顺序调整为先把 CS 对应的 GPIO 配置成高电平再初始化 SPI 外设。这样即使隔离器输出端上电时短暂不稳定外部上拉也会把 CS 钳在高位从机不会误动作。MISO 线如果存在多条从机并联的共享总线情况还要考虑隔离器输出端的推挽驱动和另一侧器件的开漏输出会不会打架。本项目是单从机结构不存在这个冲突所以 MISO 上只加了一个 4.7kΩ 上拉保证静态电平明确没有额外做缓冲。如果你是多从机架构建议认真算一下上下拉电阻和扇出不能直接照抄单从机的配置。3.3 PCB布局隔离栅不是画个线就完事PCB 上隔离器最核心的布局要求是左右两侧的地不能藕断丝连。我把隔离器正下方的地层彻底挖空左右两侧的净距做到 8mm 以上并且在地层上开了一道隔离槽让两侧地平面在地层上完全断开。这是爬电距离的实际落地器件手册上标的隔离耐压是在特定爬电距离下测出来的PCB 上不给够距离隔离等级就打了折扣。布线时还有一个极易忽视的点隔离器下方和周围尽量不要走跨过隔离栅的信号线更不要走两侧混用的电源线。我调试时见过一块板子为了省面积在隔离器旁边走了一根从主控侧电源到设备侧 DC-DC 的反馈线结果噪声顺着这根线把共模干扰带了过去隔离效果大幅下降最后绕线才解决。这个教训值一次改板周期写出来提醒后来人。另外主控侧 SPI 信号从 STM32 引脚到隔离器输入端的走线尽量短、尽量宽20mil 以上减少天线效应隔离器输出到设备端连接器的走线也一样。如果隔离器输出要接长排线可以在输出端加 2233Ω 的串联电阻稍微牺牲一点边沿速度换得更低的反射这个做法对长距离 SPI 非常有效。安装孔的处理也要注意四角螺丝孔如果直接和整片地铜皮相连可能把两侧地重新短接具体后面在实测部分展开说。3.4 速率上限与信号完整性的预估MAX14431BAEE 这项指标很充裕但实际系统能跑多快不完全取决于隔离器还看 PCB 走线、连接器、排线的质量。我实测下来普通板上走线加端子排9Mbit/s 非常稳定拉到 18Mbit/s短距离还行长排线下 MISO 回环路径的建立时间会比较紧张需要仔细看波形。SPI 通信对时序的要求可以理解成一个回环预算主机发出 SCLK数据线路经过隔离器正向通道到从机从机内部把结果放到 MISO 上再经过隔离器反向通道回到主机这整个来回的延迟都要小于 SCLK 周期内留出的采样窗口。隔离器双程几十纳秒的延迟加上线缆传输延迟跑到 9Mbit/s 时大约只占用不到三分之一的时钟周期余量很足跑到 18Mbit/s 就需要认真测。所以我的建议是不要盲目拉满速速度是现场测出来的不是配置出来的。尤其带隔离的方案宁可降一档速率换稳定强上高速率在现场翻车代价远远大于那一点吞吐量提升。4. 软件实现与驱动细节4.1 基于标准外设库的SPI1初始化STM32F107VCT6 的软件生态比较成熟HAL 库和标准外设库都有人用。我这个项目为了减少依赖、方便老代码移植用的是标准外设库核心初始化代码如下配置成主机模式、8 位数据、软件片选。SPI_InitTypeDef SPI_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; /* 使能 SPI1 和 GPIOA、GPIOE 时钟 */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1 | RCC_APB2Periph_GPIOA, ENABLE); /* SPI1 SCKPA5 MOSIPA7 MISOPA6 复用推挽输出 */ GPIO_InitStructure.GPIO_Pin GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz; GPIO_Init(GPIOA, GPIO_InitStructure); /* CSPE4 普通推挽输出初始化为高电平 */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE); GPIO_InitStructure.GPIO_Pin GPIO_Pin_4; GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz; GPIO_Init(GPIOE, GPIO_InitStructure); GPIO_SetBits(GPIOE, GPIO_Pin_4); SPI_InitStructure.SPI_Direction SPI_Direction_2Lines_FullDuplex; SPI_InitStructure.SPI_Mode SPI_Mode_Master; SPI_InitStructure.SPI_DataSize SPI_DataSize_8b; SPI_InitStructure.SPI_CPOL SPI_CPOL_Low; SPI_InitStructure.SPI_CPHA SPI_CPHA_1Edge; SPI_InitStructure.SPI_NSS SPI_NSS_Soft; SPI_InitStructure.SPI_BaudRatePrescaler SPI_BaudRatePrescaler_8; SPI_InitStructure.SPI_FirstBit SPI_FirstBit_MSB; SPI_Init(SPI1, SPI_InitStructure); SPI_Cmd(SPI1, ENABLE);有几个参数我特别说一下。SPI 时钟极性 CPOL 和相位 CPHA 必须和从机对齐我的从机手册要求模式 0也就是 CPOLLow、CPHA1Edge。很多项目默认都是模式 0但不同厂家的从机可能要求模式 1 或模式 2忘了对齐就会出现数据读出来是错的但波形看起来正常的诡异现象。SPI_BaudRatePrescaler_8 配合 72MHz 的 APB2得到 9Mbit/s这一步在前面信号完整性评估里已经确认过余量。如果你接手的是已经迁移到 HAL 库 的工程初始化思路完全一样CubeMX 里把 SPI1 配成主模式、软件 NSS、Motorola 帧格式时钟分频选 APB2/8生成的代码和手工配置的结果是一致的。换库不影响隔离方案本身需要关心的始终是时钟极性、速率、片选方式这三件事。4.2 软件片选是隔离方案的正确姿势代码里我用的是 SPI_NSS_Soft也就是软件片选。为什么不用硬件 NSS因为隔离链路里硬件 NSS 引脚上任何 CS 毛刺都会被隔离器如实地传到对端。软件片选的好处在于你可以完全控制 CS 的拉低和拉高时机在上电初始化阶段先把 CS 保持在高电平配合隔离器输出端的外部上拉虚片选问题从一开始就被堵死。实际操作时我封装了一个最简单的读写函数下面这段代码展示了最基本的 SPI 事务框架拉低 CS、发送命令、读写数据、拉高 CS。多字节连续读写时CS 在整个事务期间保持低电平从机才能识别为一次完整的长事务。uint8_t spi1_xfer_byte(uint8_t tx_byte) { while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) RESET); SPI_I2S_SendData(SPI1, tx_byte); while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) RESET); return SPI_I2S_ReceiveData(SPI1); } void spi1_read_regs(uint8_t addr, uint8_t *buf, uint16_t len) { GPIO_ResetBits(GPIOE, GPIO_Pin_4); /* CS 拉低 */ spi1_xfer_byte(addr); /* 发送寄存器地址 */ for (uint16_t i 0; i len; i) { buf[i] spi1_xfer_byte(0x00); /* 连续读回数据 */ } GPIO_SetBits(GPIOE, GPIO_Pin_4); /* CS 拉高 */ }要注意的是每次事务结束后拉高 CS如果紧接着又拉低开始下一次事务从机内部可能有最小 CS 高电平时间要求具体要查从机数据手册。我用的模块要求 CS 高电平至少 100ns靠代码循环天然满足。如果你发现第一次读写失败、第二次就正常的间歇性问题大概率是连续片选间隔太短在两次事务之间加一点延时即可。4.3 轮询、中断还是DMA隔离方案本身不改变 SPI 的传输架构选轮询、中断还是 DMA主要看数据量。我的数据量很小一次事务几十字节用轮询就足够了代码简单、逻辑清晰不容易留下并发隐患。如果将来要搬运几百字节甚至几千字节比如外扩 SPI Flash 读写建议上 DMA 加完成中断MCU 不用一直卡在轮询循环里。用 DMA 时有一个容易踩的坑SPI 在 DMA 模式下的错误表现比轮询更隐蔽。轮询模式下如果从机长时间不回 MISO 数据程序会一直卡在 RXNE 等待你很快能发现并加超时处理DMA 模式下则可能出现传输挂起的假象因为 DMA 没有自然完成也不会触发超时。所以不管用哪种方式我都建议在 SPI 事务外层加一个软件超时计数器超过预设时间没完成读写就强制复位 SPI 外设并重新初始化这是工业软件可靠性的基本功之一。4.4 上电顺序与初始化顺序影响通信成败隔离器两侧分别上电时如果主控侧先上电而设备侧后上电隔离器右侧输出在断电期间是未知状态。实测下来设备侧未上电期间MISO 回主控侧的通道输出电平不确定可能让 MCU 的 SPI 读到随机数据。解决办法是在主控侧的初始化序列里先做一次无效读并丢弃再开始真正的通信。另一个实用技巧是在设备侧电源建立稳定后再拉低 CS 发命令。我在代码里用一个 GPIO 做设备侧电源状态检测输入检测到设备供电正常后才进入主循环开始访问从机。没有这个检测时偶尔会在设备还没完全起来时发命令导致设备端状态机错乱之后必须掉电重启才能恢复。这些细节在实验室里暴露不出来到了现场就变成稳定性的分水岭。5. 波形实测与问题排查实录5.1 示波器上应该看到什么硬件回来后第一步不是跑业务代码而是看波形。我把示波器探头分别挂在隔离器左侧输入和右侧输出同时观察 SCLK、MOSI、CS。左侧是 MCU 直接输出的干净方波右侧应该看到延迟几十纳秒后、边沿基本保持整齐的复制波形。如果右侧波形有明显台阶或振铃先查去耦电容位置和走线长度再考虑加串阻匹配。MISO 的时序检查是重点。用示波器同时抓 SCLK 和 MISO确认从机数据在 SCLK 有效沿之前已经建立。我实测在 9Mbit/s 下MISO 数据在 SCLK 采样沿之前约 80ns 就已经稳定余量足够。如果你观察到数据刚好卡在边沿上说明回环延迟偏大优先降低 SPI 分频系数而不是去调代码。还要留意隔离器工作时两侧电源轨上的纹波。我用 100MHz 带宽示波器观察 3.3V 轨翻转瞬间的噪声尖峰大概几十毫伏属于正常范围。如果尖峰超过 100mV多半是退耦电容不够或者位置不对先处理电源问题不然 SPI 误码率会时好时坏极难排查。5.2 我踩过的几个伪隔离坑第一个坑是两侧地通过安装孔连起来了。PCB 四角的螺丝孔如果直接和整片地铜皮相连设备侧板子又通过金属机柜接地那么就算 PCB 上有隔离槽安装孔这个路径也会把两侧地重新连在一起。隔离器表面在工作实际两边的地已经被结构件短路了隔离效果为零。我把安装孔周围的地铜皮挖空、加绝缘垫圈才解决这个问题。第二个坑是设备侧的 SPI 从机供电由主控板顺便提供。一开始为了省事从机板的 3.3V 直接从主控板通过排线引过去结果两边参考地通过电源地线连在一起共模干扰照样进入通信链路。后来从机板改成独立供电并确认从机板的地与主控板地之间没有其他连接路径才算真正隔离。这里我反复跟团队强调一句话隔离是系统级的任何一个金属路径都会让它失效。第三个坑是上电瞬间 CS 毛刺前文提过。实际发生时的现象是主控板一上电从机日志里就出现一次短暂唤醒等真正开始通信时从机的状态机已经乱了。解决方式就是 CS 外部上拉加上电初始化顺序调整双管齐下才彻底消除。单靠上拉或者单靠软件顺序都只能覆盖一部分时序窗口。5.3 常见问题速查表现象常见原因处理办法通信完全无响应隔离器通道方向接反核对 MAX14431 数据手册引脚方向定义高速率下随机误码回环延迟过大或端接不匹配降低 SPI 分频加串阻缩短排线上电即发生一次假通信CS 上电毛刺CS 外部上拉软件初始化先置高 CS看似隔离但仍受干扰两侧地通过结构件或电源连线连通挖空安装孔地铜皮设备侧独立供电从机偶发状态错乱设备侧电源未稳定就发命令增加电源状态检测稳定后开始通信隔离器输出波形有振铃去耦电容位置偏、走线过长退耦电容贴近电源引脚加宽走线这个表是我自己调试时整理的速查版原则是先查硬件连接再查时序配置最后查代码逻辑。因为隔离链路里任何一个连接点都可能引入问题直接从代码下手容易南辕北辙。先量波形、再调配置、最后改软件这个顺序能省下大量无效排查时间。6. 一些值得再展开的思路和体会6.1 从四通道扩展到更多信号这个方案用四通道隔离器覆盖 SPI 四线如果从机还需要额外的控制信号比如复位、中断请求、忙状态四通道就不够用了。两个思路可以选一是换成六通道型号二是用一颗四通道加一颗双通道组合。我个人倾向于后者灵活性更好两颗芯片可以分布在 PCB 不同位置适应不同走线方向调试时也能独立定位问题。如果传输距离超过几米我的建议是不要想着把 SPI 隔离后拉长线更合理的做法是先把 SPI 转换成 RS485、以太网等适合长距离传输的总线到远端再转回 SPI。短距离、中速率用数字隔离器是性价比最高的方案但死磕长线缆的 SPI 隔离只会把系统和成本都拖累。6.2 实测下来这套方案最值得说的三个点第一MAX14431BAEE 的使用体验非常顺滑。它本质是数字器件不需要外围模拟电路调校原理图干净代码零额外负担这对嵌入式项目来说太重要了。第二隔离效果不是玄学波形和误码率都能直接测出来调试过程有据可循不像早些年用光耦方案时主要靠经验判断。第三STM32F107VCT6 虽然是一颗老芯片但在可靠性和外设丰富度要求高、成本敏感的场景里它反而比很多新料更成熟配套资料和参考设计都齐全。我把这几年的经验浓缩成一句话隔离这件事宁可早做也不要后期补。早期在原理图里放一颗隔离器PCB 布局隔离槽一早就规划好增加的成本很小后期板子出了问题再叠加隔离模块往往要整体改板工时和现场维护成本远高于器件成本。如果你正在设计下一块工业板卡只要存在跨地通信的可能就把这套方案考虑进去。省的调试时间比省下的那几十块钱物料费值多了。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →