工业现场里跑 SPI 这件事说简单也简单四根线一接、时钟一对数据就通了说麻烦也真麻烦一旦两端地电位不同、现场有电机或继电器在频繁动作通信就开始随机丢包、误码甚至把主控的 IO 打坏。我这两年做工业采集板反复踩过这类坑最后稳定下来的方案就是用数字隔离器把 SPI 链路整条隔开。这篇就围绕 MAX14431BAEE 和 MKV46F256VLH16 这一对组合把隔离 SPI 的选型逻辑、硬件设计、时序约束和调试方法完整讲一遍适合正在做工业嵌入式、需要把通信链路做可靠的同行参考。1. 为什么工业 SPI 链路必须做隔离1.1 不隔离的 SPI 到底会出什么问题很多人第一次做工业板子思路还是消费电子的思路主控和从设备共地SPI 直接连。实验室里跑得好好的一到现场就出状况。最常见的是三种表现通信偶发丢包、ADC 采样值跳变、以及主控 SPI 引脚被击穿。先说丢包。工业现场的地并不是理想零电位两台设备之间如果各自接了不同的供电回路地电位差可能达到几伏甚至几十伏。SPI 是单端信号参考的就是本地地当地电位在两端之间浮动时接收端判断高低电平的阈值就跟着漂原本干净的方波在接收端看起来就变形了采样点一旦落在边沿附近误码就来了。再说采样跳变。这个更隐蔽。SPI 本身不直接采模拟量但如果从设备是 ADC 或者带模拟前端的 MCU地电位差会通过地环路耦合进模拟部分表现为采样值周期性抖动。很多人以为是 ADC 的问题换芯片、加滤波电容折腾一圈发现根源在通信链路的地环路上。最严重的是打坏 IO。现场如果有感性负载继电器、电磁阀、电机在开关会产生很高的瞬态电压。如果两端地电位差叠加这个瞬态超过 IO 的绝对最大额定值SPI 引脚就直接击穿了。我见过一块板子现场跑了三个月SPI 的 MOSI 引脚对地短路拆下来一测ESD 二极管已经烧穿。1.2 隔离到底隔的是什么隔离的本质是在两个电气域之间切断直流的电气连接但保留信号和能量的传递通道。对 SPI 来说需要隔离的是四类东西电源、地、信号线、以及可能的使能/中断线。电源隔离通常用隔离 DC-DC 或者带隔离输出的电源模块把从设备侧的供电单独做出来。地隔离就是让主控侧的地和从设备侧的地不再直接相连各自独立。信号隔离则是把 SCLK、MOSI、MISO、CS 这几根线通过隔离器传递过去。这里有个关键点隔离不是简单地把线断开而是要让信号在隔离栅两侧正确重建。数字隔离器内部用的是变压器或者电容耦合把输入侧的边沿信息编码后传过去再在输出侧还原成数字信号。所以隔离器本身是有传播延迟的这个延迟会直接影响 SPI 能跑多快。1.3 光耦隔离和数字隔离器的取舍早些年大家做隔离 SPI第一反应是光耦。光耦便宜、成熟、隔离耐压高但用在 SPI 上有几个硬伤。第一是速度。普通光耦的上升下降时间在微秒级SPI 时钟一上到几 MHz波形就完全塌了。高速光耦能到 10MHz 以上但价格上去了而且功耗不小。第二是共模瞬态抗扰度CMTI。光耦在共模电压快速变化时容易误触发工业现场恰恰是共模干扰最凶的地方。第三是通道间延迟匹配。SPI 是多线并行如果 SCLK 和 MOSI 走的隔离通道延迟不一致采样窗口就会被压缩高速下直接采错。数字隔离器就是为解决这些问题出现的。以 MAX14431 这类器件为例它用变压器耦合传播延迟在纳秒级通道间匹配好CMTI 通常能做到 25kV/µs 以上而且功耗低、寿命长。代价是价格比普通光耦高但考虑到工业设备的可靠性和维护成本这个投入是值得的。提示不是所有场景都必须上数字隔离器。如果只是低速、短距离、共地的板内通信直接连就行。隔离是给跨电气域和强干扰环境准备的。2. MAX14431BAEE 在 SPI 隔离里的角色定位2.1 这颗器件的通道配置和方向MAX14431BAEE 是一颗多通道数字隔离器做 SPI 隔离时通道方向和数量要对着 SPI 的信号定义来配。标准 SPI 是四线SCLK、MOSI、MISO、CS。其中 SCLK、MOSI、CS 是从主控流向从设备MISO 是从从设备流回主控。所以隔离器的通道方向配置是三路正向主到从一路反向从到主。选型时要确认器件支持这种方向组合或者用两颗单向隔离器拼。MAX14431 这类器件通常提供多个正向通道加若干反向通道的配置正好覆盖 SPI 的需求。如果从设备还需要中断线比如 ADC 转换完成通知主控那还要再留一路反向通道。如果从设备需要复位线再留一路正向。所以实际选型时通道数要按SPI 四线 中断 复位 预留来算宁多勿少。2.2 传播延迟对 SPI 时钟上限的约束这是隔离 SPI 设计里最容易被忽略、也最容易翻车的地方。隔离器不是透明传输它有传播延迟而且正向和反向通道的延迟可能不一样。SPI 的时序里主控在 SCLK 边沿发数据从设备在另一个边沿采样。MISO 方向从设备发、主控采。如果 MISO 路径上的隔离延迟太大主控在采样时刻拿到的还是上一个 bit 的数据就错了。粗略估算假设隔离器单向传播延迟是 tpdSPI 一个时钟周期是 T。对于 MISO 路径主控采样时刻要留出至少 tpd 的余量。如果 tpd 是 10ns那理论上时钟周期不能短于 20ns 左右还要叠加从设备的输出延迟和 PCB 走线延迟也就是时钟上限大概在 25MHz 量级。实际工程里我会留一倍余量把时钟压在 10MHz 以内稳。这里要强调数据手册上的 tpd 通常是典型值最大值可能翻倍。算时钟上限时要用最大值不能用典型值。2.3 隔离器供电和电平匹配MAX14431 这类隔离器两侧各自供电VDD1 接主控侧电源VDD2 接从设备侧电源。两侧电压可以不同这正好解决了主控 3.3V、从设备 5V 的电平匹配问题省掉额外的电平转换芯片。但要注意两侧电源的建立顺序。如果一侧先上电、另一侧还没上电隔离器的输出可能处于不确定状态给从设备一个错误的 CS 或者 SCLK。稳妥的做法是在软件里加上电延时等两侧电源都稳定后再初始化 SPI。硬件上也可以在 CS 线上加下拉保证未上电时 CS 处于无效状态。另外隔离器的两侧电源都要有良好的去耦。我一般每侧放一个 0.1µF 加一个 1µF紧贴器件引脚。隔离器内部是开关电容或者变压器结构对电源纹波敏感去耦不好会直接反映到输出抖动上。3. MKV46F256VLH16 作为从设备侧的 SPI 配置要点3.1 这颗 MCU 的 SPI 外设特性MKV46F256VLH16 是带模拟前端的 MCU常用于电机控制、工业采集这类场景。它的 SPI 外设支持标准的主从模式、可配置时钟极性和相位、支持硬件片选。作为隔离链路的从设备侧它要配置成从模式由主控提供 SCLK 和 CS。从模式配置有几个关键点。第一CPOL 和 CPHA 必须和主控严格一致。SPI 有四种模式模式 0 是 CPOL0、CPHA0最常用。如果两边模式不一致数据会整体错位表现为读回来的值全是乱的。第二从模式下 SCLK 由外部提供MCU 的 SPI 外设要能跟上外部时钟不能超过它的最大从模式时钟频率。第三CS 的建立和保持时间要满足从设备要求太短会导致帧同步错误。3.2 从模式下的时序余量计算从设备侧的时序余量主要看三个参数CS 有效到第一个 SCLK 边沿的建立时间、最后一个 SCLK 边沿到 CS 无效的保持时间、以及数据输出有效到 SCLK 采样边沿的时间。以 MKV46F256 这类 MCU 为例从模式数据输出延迟通常在十几纳秒量级。主控侧采样时要保证采样点落在数据有效窗口的中间。如果隔离器在 MISO 路径上又加了延迟这个窗口就被进一步压缩。我的做法是先在示波器上量出从设备 MISO 的实际输出延迟再叠加隔离器的最大传播延迟算出主控侧的最早有效采样时刻然后调整主控 SPI 的采样相位让采样点尽量靠后但又不越过数据保持窗口。这个过程要实测不能只靠算。3.3 从设备侧的电源和地处理从设备侧的地是隔离后的独立地这块地的处理直接影响通信质量。要点有三个。第一隔离后的地从设备侧要单独铺地不要和主控侧的地有任何直接连接包括不要通过安装孔、外壳、线缆屏蔽层意外连通。我见过一个案例隔离器装得好好的结果从设备侧的屏蔽线接到了主控侧的机壳地隔离直接失效。第二从设备侧的电源要干净。隔离 DC-DC 的输出纹波通常比普通 LDO 大如果从设备对电源敏感要在隔离电源后面再加一级 LDO 或者 LC 滤波。第三从设备侧的 SPI 走线要短。隔离器到 MCU 的这段走线越短越好减少引入干扰的机会。如果必须走长要做阻抗控制和包地处理。4. 隔离 SPI 的硬件设计细节4.1 隔离器两侧的布局分区PCB 布局上隔离器是一条明确的分界线。主控侧的所有器件、走线、铺铜在一边从设备侧的在另一边中间以隔离器为界下方禁止铺铜跨越。具体做法在隔离器下方挖空所有层包括电源层和地层形成一个物理上的隔离带。这个隔离带的作用是保证两侧的爬电距离和电气间隙满足隔离耐压要求。如果隔离器标称 2.5kVrms 隔离那隔离带宽度要按这个耐压对应的爬电距离来设计通常几毫米量级。信号线跨越隔离带时只能通过隔离器本身不能有其他任何走线跨越。这一点在多层板里尤其要注意内层的电源和地平面如果跨越了隔离带隔离就形同虚设。4.2 SPI 信号线的走线规则隔离 SPI 的信号线走线核心原则是等长、短、远离干扰源。SCLK 是时钟线最容易辐射也最容易受干扰要优先走尽量短两侧包地。MOSI 和 MISO 是数据线尽量和 SCLK 等长减少 skew。CS 是控制线速度相对低但建立保持时间要保证也不能走太随意。如果 SPI 时钟上到 10MHz 以上要考虑走线的阻抗。一般做 50 欧姆单端阻抗控制源端可以串一个小电阻22 到 33 欧姆做阻尼抑制过冲和振铃。这个电阻放在主控侧靠近引脚的位置。另外SPI 线不要和电源线、电机驱动线平行走。如果必须交叉尽量垂直交叉减少耦合。4.3 隔离电源的选型与纹波控制隔离电源是隔离 SPI 的另一个关键件。选型时看三个指标输出功率、隔离耐压、输出纹波。输出功率要按从设备侧的总功耗算包括 MCU、传感器、可能的隔离器从侧供电。留 30% 以上余量。隔离耐压要和隔离器匹配不能隔离器 2.5kV、电源只有 1kV那整体耐压就被电源拉低了。输出纹波是容易被忽略的。隔离 DC-DC 的开关频率通常在几百 kHz 到 MHz纹波会耦合到 SPI 信号上。如果从设备对电源敏感要在隔离电源输出后加 LC 滤波或者 LDO。我一般会加一级 LDO把纹波压到几毫伏以内。注意隔离电源的开关噪声可能通过隔离器的电源引脚耦合到信号通道导致通信误码。布局时隔离电源要远离隔离器的信号引脚去耦电容要紧贴引脚。4.4 保护器件的加装位置工业现场的 SPI 接口除了隔离还要考虑浪涌和 ESD 保护。保护器件的加装位置有讲究。如果保护加在主控侧那保护的是主控但隔离器本身可能被浪涌打坏。如果加在从设备侧保护的是从设备但浪涌可能通过隔离器耦合到主控侧。正确的做法是两侧都加主控侧加 TVS 管从设备侧加 TVS 管隔离器夹在中间。TVS 的选型要匹配信号电平。3.3V 的 SPI 线选钳位电压在 5V 到 6V 的 TVS结电容要小避免影响高速信号。结电容大的 TVS 会把 SCLK 的边沿拉缓高速下直接导致通信失败。5. 软件侧的初始化与通信流程5.1 主控侧 SPI 初始化的顺序主控侧 SPI 初始化顺序很重要。我的习惯是先配置 GPIO 复用再配置 SPI 外设参数最后使能 SPI。配置 GPIO 时SCLK、MOSI、CS 配成复用推挽输出MISO 配成复用输入或者浮空输入看 MCU。注意 CS 如果用的是硬件片选要配成复用如果用软件片选配成普通 GPIO 输出由软件控制。SPI 参数配置包括主模式、时钟极性相位、时钟分频、数据位宽、MSB/LSB 顺序。这些参数必须和从设备严格一致。我一般会把这些参数做成宏定义主从两侧共用一份配置避免手抖写错。使能 SPI 之前先把 CS 拉高无效使能后再开始第一次通信。这样避免使能瞬间产生一个错误的时钟脉冲。5.2 从设备侧的从模式配置从设备侧 MKV46F256 配置成 SPI 从模式要点是使能从模式、配置和主控一致的 CPOL/CPHA、使能接收和发送、配置中断或 DMA。从模式下MCU 不产生时钟完全跟随主控。所以从设备的 SPI 初始化要在主控开始通信之前完成。如果从设备还没准备好主控就发时钟从设备会收到错误的数据。从设备的 CS 处理也要注意。硬件片选模式下CS 由外部引脚控制MCU 检测到 CS 有效后开始收发。软件片选模式下需要额外的 GPIO 中断来检测 CS 变化。我一般用硬件片选简单可靠。5.3 一次完整通信的时序拆解一次完整的 SPI 通信从主控角度看是这样的拉低 CS产生 SCLK在 SCLK 边沿移出 MOSI 数据、移入 MISO 数据发完预定字节数后拉高 CS。在隔离链路里每个环节都叠加了延迟。CS 拉低后要等隔离器的传播延迟从设备才看到 CS 有效。SCLK 的每个边沿也要等隔离延迟才到从设备。MISO 数据从从设备发出再等隔离延迟回到主控。所以主控在采样 MISO 时实际上采的是隔离延迟之前从设备发出的数据。只要时钟频率不超过隔离链路能承受的上限这个延迟是固定的不影响正确性。但如果时钟太快采样点落在数据跳变附近就会出错。5.4 通信超时和重试机制工业现场通信不能假设一次就成功。我的做法是在软件里加超时和重试。超时机制每次 SPI 传输设定一个最大等待时间超过就判定失败。重试机制失败后重试若干次如果连续失败超过阈值上报故障。重试时要注意重试前要先复位 SPI 状态机拉高 CS 再重新开始。如果直接重发可能因为状态机没复位而错位。另外重试次数不要太多否则会阻塞主循环。我一般设 3 次超过就上报。6. 实测调试与常见问题排查6.1 用示波器看隔离前后的波形调试隔离 SPI示波器是必备的。重点看隔离器两侧的波形对比。先看 SCLK。主控侧的 SCLK 应该是干净的方波从设备侧的 SCLK 应该和主控侧同频同相只是幅度可能不同取决于两侧供电。如果从设备侧的 SCLK 边沿变缓、幅度变小说明隔离器驱动能力不足或者负载太重。再看 MISO。从设备侧的 MISO 是 MCU 输出的主控侧的 MISO 是隔离器还原的。对比两者的时序量出隔离延迟。如果主控侧 MISO 的边沿和 SCLK 采样点太近就要调整采样相位。还要看 CS。CS 的建立保持时间要满足从设备要求太短会导致帧错误。6.2 通信误码的排查链路遇到通信误码我一般按这个顺序排查。第一步确认 CPOL/CPHA 一致。这是最常见的错误两边模式不一致数据全错。用示波器看 SCLK 空闲电平和第一个边沿对照从设备手册确认模式。第二步降速测试。把 SPI 时钟降到 1MHz 以下如果通信正常了说明是时序余量不够问题在隔离延迟或者走线。如果降速还错说明是配置或者硬件连接问题。第三步看电源。量隔离器两侧的电源纹波如果纹波太大加滤波。量从设备侧的电源确认在通信时没有明显跌落。第四步看地。确认隔离两侧的地确实隔离了没有意外连通。用万用表量两侧地的电阻应该是无穷大或者很高。第五步看信号完整性。用示波器看 SCLK 和 MISO 的过冲、振铃如果太严重加阻尼电阻或者调整走线。6.3 隔离失效的隐蔽原因隔离失效是最难查的因为表面上看不出来。常见原因有几个。一是隔离带被走线跨越。多层板里内层走线如果跨越了隔离带隔离就失效了。检查方法是看 PCB 的每一层确认隔离带下方没有任何走线。二是屏蔽层或外壳意外连通。从设备侧的屏蔽线如果接到了主控侧的机壳地隔离就短路了。检查方法是断开所有非信号连接只留隔离器看隔离是否恢复。三是隔离器本身损坏。隔离器被浪涌打坏后可能表现为隔离电阻下降。用万用表量隔离器两侧的电阻如果明显偏低就是坏了。四是安装孔或固定螺丝连通。如果从设备侧的固定螺丝拧到了主控侧的金属外壳上也可能形成通路。6.4 提升通信稳定性的几个实操技巧分享几个我实测有效的技巧。第一SCLK 上串阻尼电阻。22 到 33 欧姆放在主控侧靠近引脚能明显抑制过冲提升高速下的稳定性。第二MISO 上加小电容。几皮法到十几皮法能滤掉高频毛刺但注意不要加太大否则会拉缓边沿。第三CS 上加 RC 延时。如果从设备的 CS 建立时间要求比较严可以在 CS 上加一个小 RC延缓 CS 的下降沿保证建立时间。但注意 RC 太大会影响通信速度。第四软件上做多次采样取多数。对于关键数据连续读三次取中间值或者多数值能有效过滤偶发误码。第五通信前先做一次握手。主控发一个固定的测试字节从设备回一个固定值确认链路正常后再传实际数据。7. 隔离 SPI 方案的扩展与选型建议7.1 多从设备场景下的片选管理如果一条隔离链路上挂多个从设备片选管理就复杂了。每个从设备需要独立的 CS如果都用隔离器通道数就上去了。我的做法是如果从设备都在同一个隔离域内那隔离器只需要隔离 SCLK、MOSI、MISO 三根共用线CS 在隔离域内由从设备侧的 MCU 或者译码器产生。这样隔离器通道数少成本低。如果从设备分布在不同的隔离域那每个域都要独立的隔离器和 CS。这种场景下建议用带多通道的隔离器或者用隔离器加隔离 IO 扩展。7.2 不同速率需求下的器件选型隔离 SPI 的速率需求差异很大。低速场景几百 kHz用普通数字隔离器就够中速几 MHz 到十几 MHz要选传播延迟小、通道匹配好的高速几十 MHz要考虑专门的隔离器甚至用隔离器加时钟恢复。选型时看几个参数最大数据速率、传播延迟、通道间延迟匹配、CMTI、隔离耐压。这几个参数要综合看不能只看速率。7.3 成本与可靠性的平衡隔离 SPI 的成本主要在隔离器和隔离电源。如果项目对成本敏感可以考虑几个方向。一是减少隔离通道数。能共用的信号就共用能放到隔离域内处理的就放过去。二是选集成度高的器件。有些隔离器集成了隔离电源一颗芯片解决供电和信号隔离省掉独立的隔离 DC-DC。三是分级隔离。不是所有信号都需要高等级隔离关键信号高隔离辅助信号低隔离。但可靠性不能省。工业设备的维护成本远高于器件成本一次现场故障的代价可能超过整批器件的差价。所以我的原则是该隔离的必须隔离隔离等级不能降。7.4 从 SPI 隔离延伸到其他接口隔离SPI 隔离的思路可以延伸到其他接口。I2C 隔离、UART 隔离、CAN 隔离原理类似都是切断电气连接、保留信号传递。区别在于各接口的时序特性不同。I2C 是开漏双向总线隔离时要处理双向和上拉UART 是异步对延迟不敏感但对波特率匹配有要求CAN 是差分隔离时要处理差分信号。掌握了 SPI 隔离的设计方法其他接口的隔离就是举一反三的事。核心还是那几条切断地环路、匹配时序、控制电源纹波、做好保护。我在实际项目里这套隔离 SPI 方案已经跑过好几个工业现场最长的连续运行两年多通信没出过问题。踩过的坑主要集中在时序余量和隔离带处理上这两块只要设计时留足余量、布局时严格分区基本就不会翻车。如果你正在做类似的隔离通信链路建议先用示波器把隔离前后的波形摸清楚再上软件调试能省很多时间。
企业数字化 ERP 产品动态
相关推荐
MAX14431BAEE+与PIC18F4620隔离SPI通信链路设计 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:03:59
FPGA时序约束中逻辑互斥与物理互斥的本质区别及避坑指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:02:59
STM32F072 SPI隔离设计:数字隔离器选型与时序布线实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:02:59
多智能体自适应编队控制技术与实践 1. 多智能体编队控制的核心价值与挑战在无人机集群表演、自动驾驶车队协同、工业机器人协作等场景中,多智能体系统的编队控制一直是研究热点。传统编队控制往往预设固定队形和通信拓扑,但在实际应用中,环境扰动、个体故障、任务变更等因素会打… · 2026/11/3 4:21:47
Codex桌面版组织设置为空:策略加载链路与日志排查指南 1. 更新后组织设置一片空白,先分清策略下发的四条链路Codex 桌面版更新完之后重新打开,组织设置那一栏空了——不弹错误、不崩溃、也不提示失败,就是安安静静地退回到"未配置"的样子。这种表现最容易把人带偏:第一反应往… · 2026/11/3 4:21:47
TensorFlow入门指南:从安装到部署的完整实践教程 做机器学习这几年,TensorFlow一直是我绕不开的框架。从2017年第一次用1.x版本跑MNIST,到后来用2.x做服务化部署,中间也换过PyTorch,但TensorFlow在工业落地这件事上确实有它独特的位置。今天这篇文章不打算整那些虚的,… · 2026/11/3 4:21:47
Solidity智能合约访问控制实践与安全优化 1. Solidity智能合约中的访问控制基础在智能合约开发中,访问控制(Access Control)是确保合约安全性的第一道防线。简单来说,它决定了"谁可以在什么条件下执行哪些操作"。想象一下银行的金库——不是每个人都能随意进出&… · 2026/11/3 4:21:47
螺旋矩阵算法解析与分层法实现 1. 螺旋矩阵问题解析螺旋矩阵是一个经典的二维数组填充问题,要求按照顺时针方向从外向内依次填充数字。这个问题看似简单,但蕴含着丰富的编程思想和边界处理技巧。我第一次遇到这个问题是在准备技术面试时,当时就被它优雅的解法所吸引。螺旋矩… · 2026/11/3 4:21:47
MCP与A2A深度对比:Agent工具接入与协作协议的真实差异 2026年年初,我所在的Agent开发者群里最热闹的话题不是哪个新模型又刷榜了,而是两个协议:MCP和A2A。一边是Anthropic带起来的Model Context Protocol,一边是Google联合一堆厂商推的Agent-to-Agent,群里几乎每天都能看到… · 2026/11/3 4:20:47
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 5:17:18
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 5:17:18