KNX收发器TP1物理层与三路电源设计避坑 简介《STKNX芯片手册中文版》是一份面向KNX节点开发者的收发器芯片中文数据手册对应STMicroelectronics的STKNX器件可帮助硬件工程师快速理解KNX TP1-256物理层设计并以较少外围器件完成紧凑型节点方案。压缩包仅含1个PDF文件约937KB轻量便于随查随用。手册围绕VFQFPN244x4x1.0mm小型封装展开覆盖-40℃至85℃工作范围、3.3V/5V线性调节器、1V至12V降压转换器、最高30mA总线取电、可调总线电流斜率、无需晶振、引脚定义、方框图与热特性等关键规格。文中还给出多组典型应用电路及外部组件典型值参考表涉及阻抗调制器、母线交流耦合电容、降压与线性调节器配置便于器件选型、原理图设计、PCB布局及硬件调试参考。目前已有430人学习下载适合需要查参数、对照电路并缩短KNX硬件调试周期的开发者。1. KNX 收发器的反直觉之处数据不是“发电压”而是“抽电流”在 KNX 双绞线上量电压静态是 21–30V 的直流一旦有报文示波器上出现的也不是干净的方波而是一串幅度十几伏的负向台阶。这颗 4mm×4mm、引脚间距 0.5mm 的 KNX 收发器芯片手册值得逐页抠原因就在这里它把“总线取电、阻抗调制、收发判决、两路稳压”压进 24 个引脚任何一处外围取值偏了节点都不会立刻罢工而是变成“装机时好、跑三个月开始丢帧”的玄学故障。搞懂它的机制本质上是搞懂 KNX TP1 物理层为什么必须长成这样也只有搞清楚这点联调时才有依据把“通信问题”和“电源问题”分开判断。2. KNX TP1 物理层为什么用阻抗调制而不是推电压2.1 两线制里供电与数据复用电压驱动会立刻打架KNX TP1 的一条线路上设备从同一对双绞线取电同时在同一对线上收发数据。行业里常见的配置是总线电源提供几百毫安的负载能力单台总线供电设备取电不超过 10mA一条线最多挂 256 个设备地址。这种拓扑下如果发送端像 RS-485 那样去“推”一个电压差等于拿一个低阻输出直接怼总线电源的低内阻输出电流完全不可控近端节点一发送远端电压先塌谁发得响谁赢多节点同时发送就是烧驱动。KNX 选择的做法是叠加一个受控的电流吸收通常叫阻抗调制。发送端在总线上“抽走”一份电流总线电源的内阻加上线路电阻把这个电流转换成压降接收端检测这个压降。这个选择带来三个直接后果也是后面所有外围元件的由来。电流源可以并联多个节点同时抽电流不会互相烧毁冲突表现为总线电压跌得更深可以被检测出来。压降随线路电阻增大而增大远端节点看到的幅度反而不比近端小长线通信的余量是天然存在的。代价全部压在斜率上抽电流的动作一旦太快边沿的 dv/dt 会通过线间电容耦合到相邻回路并与总线电源的感性回路形成振铃太慢又会在 9600 bps 的眼图里把边沿拖进位宽。手册里“可调的 KNX 总线电流旋转速率 dI/dt”这条规格说的就是这件事。注意阻抗调制的本质是“改变呈现给总线的阻抗”不是“把总线拉低到某个电平”。测量时如果发现压降幅度随节点数增加而变浅先查总线取电预算而不是换接收阈值。2.2 CP_H/CP_L/VGAT/VFLT/VREF五个引脚合伙调出一个电流台阶手册的引脚表把这组引脚写得很克制但把功能连起来看就清楚了。CP_H 和 CP_L 是均衡电容连接端分别对应总线的正负各挂一颗 100nF、耐压不低于 50V 的 MLCCVGAT 接阻抗调制器的存储电容VFLT 是阻抗调制器的补偿端配 47nFVREF 是阻抗调制器的基准配 470nF 去耦VDDHV 既是功率输入也是调制环路的反馈点CVDDHV 要求不低于 100µF、耐压 35V 以上同时 VDDHV_PD 是这个环路的功率输出。把这几个元件按能量流排一下各自职责就出来了。CVDDHV 是能量池负责在抽电流的瞬间提供电荷避免总线电压被自己的调制动作拖塌VGAT 是第二级缓冲管的是调制台阶本身的建立与保持CP_H/CP_L 的 100nF 提供高频交流回路让调制电流不冲击直流工作点VFLT 是环路补偿决定边沿形状和环路稳定性VREF 去耦决定台阶幅度的精度。少一颗电容表现不是“完全不工作”而是边沿振铃、台阶幅度漂移、温度一变通信距离就缩水。绝对最大额定值表里藏着一条容易被忽略的约束CP_H、CP_L、R68、KNX_AC、VDDHV_PD 的上限都是 KNX_A 0.3V而 VGAT 的下限是 max(-0.3, KNX_A - 7.2)。换言之VGAT 相对总线最多允许低 7.2V这条限定了大电容的充放电窗口也解释了为什么 VGAT 的容量要在手册表 7 的范围内选而不能“越大越稳”——容量太大充放电时间常数超出窗口调制台阶就建立不起来。2.3 KNX_AC 的 9.7V 偏置接收端为什么必须交流耦合引脚表对 KNX_AC 的描述是“总线输入和 Tx 反馈的 Rx 输入交流耦合直流电流偏置于 9.7V典型”。这一句话里其实塞了三个设计决策。第一是交流耦合。总线直流电平在 21–30V 之间随负载、距离、节点数漂移重载时还会更低如果用绝对电平做比较阈值今天调好的阈值明天就不成立。串一颗 10nF、耐压 50V 的 CAC 把边沿送进比较器直流工作点由芯片内部固定在 9.7V判决就只跟边沿幅度有关跟总线直流漂到哪无关。第二是“Tx 反馈”。本节点发送时也会在总线上留下压降KNX_AC 把这段边沿一并收回来等于给自己留了一路回读通道。做冲突检测、判断自己的驱动是否真的生效、观察边沿有没有被外围参数拖坏都靠这一路。没有它节点只能“发完就当成功”出问题只能靠抓总线。第三是抗噪与抗反接。手册里 D4 被标为可选的 KNX_AC 钳位二极管并注明在噪声环境中建议加上以提高抗扰度。KNX 总线本身不区分极性实际施工里接反的情况并不罕见交流耦合加钳位让接收端在这种场景下不会第一时间被打穿。代价也很明确交流耦合丢掉了低频成分连续的长“1”或长“0”在耦合之后会衰减。KNX 用曼彻斯特编码保证每个比特中点必有一次跳变正是在给这种耦合方式兜底。编码和耦合电路是一对设计拆开看任何一个都会得出错误结论。3. 片内供电拓扑两路稳压器和 30mA 总线取电怎么共存3.1 3.3V/5V 线性稳压器VCC_SEL 为什么用 6µA 下拉片内第一路是线性稳压器输出可选 3.3V 或 5V负载能力 20mA输出引脚是 VCCCORE。VCCCORE 不只是给外部小传感器供电那么简单它是整颗芯片数字接口的电平参考KNX_TX、KNX_RX、KNX_OK、VCC_OK、VCC_SEL 的绝对最大额定值都写成 min(5.5, VCCCORE 0.3)意思是这些引脚的电平上限跟着 VCCCORE 走。这条设计让收发器可以直接对接 3.3V 或 5V 的 MCU中间不需要电平转换也是手册里“易于与微控制器的接口”那句话的物理基础。VCC_SEL 的接法值得单独说。它内部有一个 6µA 的弱下拉悬空或接地选 3.3V绑到 VCCCORE 选 5V。用弱下拉而不是强上拉是典型的失效安全取向——引脚悬空、走线沾污、焊盘虚焊时默认落到 3.3V不会把一个 5V 电平灌进只支持 3.3V 的 MCU。6µA 这个量级也说明它只用于确定状态不驱动任何负载PCB 上不需要特殊处理但绝不能把它当作可编程引脚去驱动。VDD_REGIN 是这路线性稳压器的电源输入。手册明确写了把 VDD_REGIN 短接到 VCCCORE即可禁用线性稳压器改由外部向 VCCCORE 供电。这条“禁用”路径在系统里很常用——主板已经有一路干净的 3.3V 时没必要让片内 LDO 再空转发热。3.2 降压转换器的三个旋钮FB 分压、软启动、输出电感片内第二路是高效的直流/直流降压开关转换器输入从 DCDC_IN 进开关节点是 DCDC_LX输出可调范围 1V 到 12V负载能力 150mA。它有三个可调的旋钮每一个都对应手册里的一组元件。反馈分压是第一个。DCDC_FB 的参考电压是 1V输出电压由 RFB1 和 RFB2 决定# 降压转换器输出设定FB 参考 1VRFB2 建议 10kΩ手册上限 100kΩ VREF_FB 1.0 RFB2 10_000 def rfb1_for(vout: float) - float: # 由 VOUT VREF * (1 RFB1/RFB2) 反解 return (vout / VREF_FB - 1) * RFB2 for v in (1.0, 3.3, 5.0, 12.0): r rfb1_for(v) # RFB1 0 时输出 1V手册称之为“虚拟输出”此时 CFB1 不贴 print(fVOUT{v:5}V RFB1{不贴(0Ω) if r 0 else f{r/1000:.2f}kΩ})这段计算回答的是“我这个系统要 5V两个电阻怎么配”。参数上要注意两点RFB2 手册建议 10kΩ 且不超过 100kΩ取值太大时反馈脚的漏电流会变成明显的误差项RFB1 为 0Ω 对应 1V 输出此时 CFB1 按公式 1/(2π·RFB1·28kHz) 算出来是无穷大实际就是不贴——手册直接写了 NM不装配。软启动是第二个旋钮。DCDC_SS 外接 10nF 到 470nF 的电容按手册等式(3)编程软启动时间。在总线供电系统里这个功能不是可选项上电瞬间输出电容要吃一大口电流如果没有软启动浪涌会顺着总线取电通路把总线电压拉低同一线路上的其他节点可能因此复位。用等式(3)反解电容时先把目标软启动时间和手册给出的充电电流代进去再在 10nF–470nF 的范围内取标准值。第三个旋钮是电感。手册给的是 33µH饱和电流要大于 550mA额定电流要大于 150mA。饱和电流留到负载电流的三倍以上是为了在负载瞬变和启动瞬间不进入饱和——电感一饱和开关管电流会瞬间冲高效率掉、发热涨严重时直接损坏。3.3 三路电源的禁用与共存四种典型电路其实在教你怎么做减法手册给了四张典型应用电路图乍看是排列组合实际是在演示不同负载条件下怎么做减法降压加线性全开、降压加线性另一种拓扑、降压禁用只留线性、线性禁用只留降压。判断依据是三件事——外部负载要多少电流、热预算还剩多少、板面积够不够。禁用方式在手册里写得很直接DCDC_IN 接地或悬空开关转换器关闭VDD_REGIN 短接 VCCCORE线性稳压器关闭。注意这两个动作性质不同前者是断输入后者是把输入和输出短接让外部电源直接顶上。搞混了会得到“芯片不启动”或“输出被反灌”这类很难查的现象。剩下的第三路电源是总线取电。片内集成的 KNX 总线电源提取器支持从总线取到 30mA供外部设备和收发器自身使用并按 KNX 规范限制取电电流的斜率。这三路电源的功耗预算必须一起算因为封装的热阻是共享的。手册给的热阻 RthJA 是 35°C/W条件是装在 2s2p 的 PCB 上、底部通过过孔连到散热面最高结温 110°C环境温度上限 85°C倒推一下RthJA 35.0 # °C/W手册条件2s2p PCB 底部散热过孔 Tj_max 110.0 # °C Tamb_max 85.0 # °C p_allowed (Tj_max - Tamb_max) / RthJA print(f85°C 环境下允许的总功耗{p_allowed:.3f} W) # 对比24V 总线用 LDO 直接降到 3.3V 供 150mA p_ldo (24 - 3.3) * 0.150 print(f若用 LDO 供 150mA{p_ldo:.2f} W - 远超预算) # 降压方案按 85% 效率估算 p_buck (3.3 * 0.150) * (1 / 0.85 - 1) print(f若用降压供 150mA{p_buck:.3f} W - 量级合适)算完就明白为什么这颗芯片要在 4×4 的封装里塞一个开关转换器0.71W 的总预算LDO 方案一笔就超了四倍多散热根本压不住。反过来说只要系统里同时开了总线取电最多 30mA、线性稳压20mA和降压150mA总功耗就必须回到这张预算表上对一遍而不是等板子烫手了再回头改。4. 引脚与外围元件那张组件表其实是一份稳定性契约4.1 24 个引脚按能量流分三组把引脚表按能量流重排比按引脚号死记要有效得多。下面这张表是我自己整理时会用的分法左边是手册里的引脚名右边是我关心的失效模式。分组引脚关键约束典型失效总线与调制KNX_A、KNX_B、CP_H、CP_L、VGAT、VFLT、VREF、VDDHV、VDDHV_PD、KNX_AC、R68绝对最大 45VVGAT 相对总线不低于 -7.2V边沿振铃、通信距离缩水电源转换VDD_REGIN、DCDC_IN、DCDC_LX、DCDC_GND、DCDC_SS、DCDC_FB、VCCCOREDCDC_IN 推荐 13–32VDCDC_FB 最大 3.6V输出不受控、上电浪涌拉垮总线数字接口KNX_TX、KNX_RX、KNX_OK、VCC_OK、VCC_SEL上限 min(5.5, VCCCORE0.3)电平不匹配、状态误判热与地外露焊盘接模拟地最大化焊接面积结温超限、参数漂移这里有个容易看漏的点KNX_B 和 DCDC_GND 是两组地手册的绝对最大额定值里专门写了“不同接地引脚之间的变化不超过 ±0.3V”。超过这个值内部衬底二极管就会导通轻则测量异常重则闩锁。布板时把功率地和模拟地单点连不是讲究是硬约束。数字侧的两个状态输出值得展开。KNX_OK 指示总线电源是否正常VCC_OK 指示 VCCCORE 是否正常都是 CMOS 推挽输出。手册对前者的描述里有一句“为总线功率损失提供总线监控警告”——这是给 MCU 留的后悔药总线掉电的瞬间先把关键数据写进非易失存储比事后从通信超时里反推要可靠得多。KNX_TX 内部也有一个 6µA 下拉作用是在 MCU 还没上电、引脚高阻时把发送端钉在“不发送”状态避免上电瞬间往总线上打垃圾。4.2 外围元件表的每一行都在兜住一个失效模式手册表 1 列了二十多项外围元件逐行读下来会发现没有一个值是随手写的。R68 那颗 68Ω 电阻标了 Pdiss ≥ 1W它是发送通路的限流电阻。按欧姆定律粗算稳态功耗远到不了 1W之所以要 1W是因为要扛住总线短路、误接、长时间持续发送这类异常工况——异常工况下的功率不是按正常工作点算的。同组的 RSH、RSL 各 1kΩ串在 CP_H 和 CP_L 上作用是限制均衡电容的充放电电流保护内部调制级。R_DIS 那颗 4.7MΩ 的反极性放电电阻取值逻辑很有意思。它的职责是总线接反时把储能电容上的电缓慢泄放掉避免重新接线时打火。但如果取值太小正常工作时它会持续从 24V 总线抽电流白吃功耗4.7MΩ 在 24V 下只有约 5µA既不违反总线取电预算又能在几十秒量级把电容放干净。这是典型的“两个约束夹出来的一个值”。电容的耐压普遍标到 35V 或 50V 以上而总线正常工作电压才 24V 左右。降额不是保守是必须的MLCC 的直流偏压特性会让标称容量在额定电压附近掉一半以上X7R 材质尤其明显再加上总线上的浪涌和感性回路的尖峰35V 的余量其实是刚好。CAC 和 CP_H/CP_L 上的 100nF 标 ≥50V就是给这些尖峰留的位置。TVS 的选型更能说明问题。D2 标注的是 SMAJ40CA 或钳位电压更低的型号而 KNX_A 的绝对最大额定值是 45V。TVS 的钳位电压必须压在这条线以下否则保护就落空了。同理D1、D3、D4 用 LL4148标的是反向击穿电压大于 50V、50mA 下正向压降小于 1V——前者保证不被总线电压打穿后者保证不把宝贵的电压余量吃掉太多。手册特意注明 D1 不提供反接保护这句话要当真反接保护的职责在 R_DIS 和外部电路上D1 不承担。4.3 四种典型应用电路怎么选四张图放在一起实际是一张决策表。我的判断顺序是先算外部负载电流总和再看热预算最后看板面积和成本。典型电路降压转换器线性稳压器适用场景主要代价图 1启用启用需要 150mA 级大电流 20mA 干净电源外围元件最多占板面积最大图 2启用启用拓扑不同同上VOUT 需满足 VDD_REGIN 推荐条件需要核算 VOUT 与 VDD_REGIN 的关系图 3禁用启用负载只有十几毫安追求最小面积大电流负载必须外供图 4启用禁用主控已有干净 3.3VVCCCORE 由外部供给VCC_SEL 需按 VCCCORE 电平设置图 3 和图 4 里各有一条注释说的是同一件事禁用一个转换器之后剩下的那个必须自己去满足对方的输入条件。图 3 的注释是“VOUT 电平需要符合 VDD_REGIN 的推荐工作条件”图 4 的注释是“VCC_SEL 需要根据 VCCCORE 电平设置”。这两句是全篇最容易翻车的地方——禁用不是简单地不贴元件而是把供电责任转移出去转移得对不对取决于你有没有回去看那张推荐工作条件表。5. 调试避坑KNX 节点最容易翻车的五个位置5.1 数字接口与配置引脚的两个坑第一个坑是 VCC_SEL 悬空。现象是样机在实验室一切正常批量装机后有一小批 MCU 的 IO 出现异常通信时好时坏。原因是 VCC_SEL 内部只有 6µA 弱下拉悬空在理论上等于 3.3V但助焊剂残留、板面潮湿、走线靠近开关节点时这点漏电流足以把电平抬起来芯片就切到 5V 输出而 MCU 的 IO 耐压按 3.3V 设计。解决方式很朴素不要依赖悬空明确接地或明确绑到 VCCCORE走线远离 DCDC_LX。第二个坑是把 DCDC_FB 直接接地当成“禁用开关”。现象是上电后输出电压不受控芯片发热明显。原因在于 DCDC_FB 是反馈输入参考点是 1V接地等于告诉环路“输出远远不够”开关管会一路开到最大占空比。禁用开关转换器的正确做法是 DCDC_IN 接地或悬空手册在引脚说明里写得很清楚只是“接地”这两个字太容易被顺手用在别的引脚上。这里的血泪经验是凡是标注了“反馈”的引脚默认都当作不可乱接。5.2 总线侧与调制回路的三类异常第三个坑出在均衡电容的耐压上。现象是节点在实验室跑一周没问题装到现场几个月后通信距离明显变短偶发丢帧。原因是 CP_H/CP_L 上的 100nF 用了 25V 或 16V 的 MLCC长期工作在 24V 总线电压加浪涌的环境下容量因直流偏压和老化持续下降调制回路的交流通路变弱边沿开始振铃。解决方式是老老实实按手册选 ≥50V 的 MLCC并且优先选大封装降低直流偏压损失装之前用 LCR 表在 24V 偏置下量一遍实际容量。第四个坑是 VGAT 电容随意加大。现象是调制台阶建立缓慢低速通信还行多节点同时发送时明显丢包。原因前面说过VGAT 相对总线有最大 7.2V 的压差窗口容量超出表 7 的范围后充放电时间常数跑出窗口台阶建立不起来边沿被拉平。解决方式是回到表 7 的取值范围别用“电容大一点更稳”这种直觉做电源设计。这条和第一条一样都属于手册写了但你得真去查的类型。第五个坑是 R68 的功率余量。现象是样机在做总线短路测试时那颗 68Ω 电阻直接变色。原因很简单平时持续发送的占空比不高稳态功耗远小于 1W但短路工况下耗散功率会顶到额定值附近。手册标 Pdiss ≥ 1W 不是建议值是下限。解决方式是按 1W 以上选型并留出铜箔散热面积同时在任何情况下都不要用 0402、0603 这类小封装去凑。5.3 电源与热的坑第六类问题在热焊盘上而且特别隐蔽。现象是空载一切正常一旦降压转换器满载 150mA芯片表面温度飙升KNX_OK 开始抖动通信间歇中断。原因是手册给的 35°C/W 是有条件的2s2p 的 PCB、底部通过过孔阵列连到散热面。如果做成两层板、热焊盘下面只打了三四个过孔实际热阻可能是这个值的好几倍结温直接顶到 110°C 上限。手册在引脚说明里写得很明白——最大化外露焊盘的焊接面积并通过过孔与底层提供良好的热连接。解决方式是热焊盘下打九个以上过孔并铺铜热预算按实际热阻重算一遍。第七类问题是总线取电超预算。现象是单节点测试完全正常一条线挂到十几台设备后总线电压整体跌落部分节点反复复位。原因是 30mA 是手册给的上限不是常态值而每个节点的储能电容在上电瞬间的浪涌没有被算进预算。解决方式是把软启动用起来让各节点的上电电流错峰同时给总线上电留出足够的上升时间。这类问题不会在单板调试阶段暴露只能在系统联调时用示波器抓总线上电曲线。6. 设计取舍把物理层塞进 4×4 之后余量该留到哪里这颗芯片的设计取向非常鲜明用极高的集成度换取节点体积用可配置的电源拓扑换取适配性代价是把余量压力从器件转移到了外围和布板上。理解这一点比记住任何一条电气参数都重要。它没有做成“全集成、免外围”原因不难推KNX 的阻抗调制需要储能和补偿这些储能元件的容量与总线电容、节点数、线路长度直接相关必须由系统设计者按现场条件定降压转换器的输出电感和分压电阻同理1V 到 12V 的宽范围不可能靠片内固定。手册把这些选择权交出去同时用表 1 和表 7 把边界框死——这是“给你自由但不给你犯错的自由”的典型写法。验证方法上我一般按三步走每一步都有明确判据步骤测什么判据静态三路输出电压、VCC_SEL 电平、KNX_OK/VCC_OK 状态落在手册推荐范围内VCC_SEL 与设计值一致动态KNX_AC 上的边沿形状、VGAT 相对总线的压差、调制电流斜率边沿无明显振铃VGAT 不低于 KNX_A 减 7.2V热与系统满载时的壳温、总线上电曲线、多节点并发时的电压跌落结温留 20°C 以上余量上电曲线无二次塌陷三步里最容易被跳过的是第二步。静态测量只能告诉你“没烧”动态测量才能告诉你“还能跑多远”。真正的取舍点在余量分配上。封装热阻 35°C/W、结温上限 110°C、环境上限 85°C三个数字一夹总功耗预算只剩 0.71W在这个预算里同时塞进总线取电、线性稳压和 150mA 降压几乎不允许任何一处浪费。所以你会看到手册在两处反复强调一是禁用不需要的转换器二是外部元件按表取值不打折。前者省的是热后者省的是稳定性两者都省不得。从那以后我每次拿到这类“高度集成 少量外围”的收发器方案都会先做一件事把手册的绝对最大额定值表和外部组件表并排打印出来逐条对一遍自己的原理图确认每一个引脚的上限、每一颗元件的耐压和功率都有出处。这习惯救过我很多次尤其是在那种“实验室一切正常、现场跑三个月才出问题”的项目里。希望帮到你。本文还有配套的精品资源点击获取