简介《MAX13487EESA-datasheet.pdf》面向硬件工程师、嵌入式开发者和工业通信设计人员提供MAX13487E/MAX13488E半双工RS-485/RS-422兼容收发器的完整数据手册可服务于隔离RS-485接口、实用电表、工业控制、工业电机驱动及自动化暖通空调系统中的器件选型、总线收发与保护设计。压缩包为1个PDF文件约271KB单文件便于检索与随查随用。文档重点说明AutoDirection自动方向控制、热插拔防误跳变和±15kV人体模型ESD保护对比MAX13487E限摆率500kbps与MAX13488E高速16Mbps的传输差异并指出1/4单位负载接收器输入阻抗可使总线挂接最多128个收发器。读者还能查到5V供电、-40℃至85℃工作范围、8引脚SO封装、引脚配置、功能框图、绝对最大额定值及订货选型信息为原理图设计、节点规划和电磁干扰抑制提供直接依据。目前已有2682人学习下载适合需要快速核对参数与典型应用电路的工程师参考。1. 8 脚半双工的取舍MAX13487EESA 到底省掉了什么第一次翻到 MAX13487EESA 这颗料我盯着的不是它的电气特性表而是那个 8 脚 SO 封装——半双工 RS-485 收发器做成 8 脚意味着省掉的通常不只是两个引脚而是整套方向控制逻辑外加一颗隔离光耦。更反直觉的一点是RE 脚拉高之后接收器就不再听你使唤了而是被片内的 AutoDirection 状态机接管DI 一翻转驱动器自己就上了总线。所以这篇不打算按数据手册的顺序复述参数。我想把“什么时候用 MAX13487E、什么时候必须换 MAX13488E、什么时候两个都别用”拆成能直接落到原理图和 PCB 上的判断依据AutoDirection 的时序边界怎么算、1/4 单元负载的 128 节点账怎么核、以及我在现场真踩过的几个坑。手上正拿着这份 PDF、正在画隔离 RS-485 口的人从第 2 章顺着走就行。2. AutoDirection 的真实逻辑RE、DI、SHDN 三个脚怎么分工这三颗引脚的名字看着平平无奇但它们之间的耦合关系是整份数据手册里最容易读漏的部分。多数人画 RS-485 的肌肉记忆是“一个 DE 脚控制发送、一个 RE 脚控制接收”到了这颗料上这个模型直接失效它压根没有 DE 引脚方向是靠 DI 脚上有没有电平跳变推出来的。理解这一层后面所有时序账才有得算。2.1 RE 拉高不是“关接收”是把方向权交给片内状态机数据手册对 RE 的描述只有两句话但这两句话定义了两种完全不同的工作模式。RE 拉低时RO 被强制使能接收器永远开着这时它就是一颗普通的接收器总线上的差分信号会一路传到 MCU 的 UART 上RE 拉高时AutoDirection 电路开始控制接收器发送期间接收器会被关掉避免自己发的数据从 RO 回环到自己的 RX 脚。这个回环问题在半双工里是真会出事的。传统的做法是发送时把 RE 拉高、DE 拉高靠软件保证两个脚不同时误动作AutoDirection 把这件事交给硬件代价是你在 RE 高的状态下没法强制打开接收器。如果你的固件里有“发送中还想监听总线”这类需求——比如做冲突检测、做总线占用的载波侦听——那就得在发送时把 RE 拉低重新拿回控制权。我一般会这样判断标准主从问答协议RE 常高需要自己做冲突检测的多主结构RE 常低然后老老实实接受回环在软件里把回显数据丢掉。SHDN 脚的极性也是个容易翻车的地方。它和业界常见的低有效关断脚相反文档写得很清楚SHDN 拉高是正常工作拉低进入关断。关断状态下电源电流从最大 4.5mA 掉到 10µA 级别这对电池供电的表计类产品很有价值但前提是你没把这颗脚按习惯当低有效处理。2.2 驱动器让位阈值 VDT总线竞争时谁先闭嘴AutoDirection 内部还有一条规则藏在电气特性表的 Note 2 里当 A 相对 B 的差分电压达到 0.6V 到 1V 之间时正在驱动的器件会主动关掉自己的驱动器。这条规则的意义是总线竞争时的自我保护——两个节点同时开驱动谁的输出被对方压住谁就自动让位避免大电流对烧。但这里有个必须看清的边界文档只给出了 A 相对 B 为正这一个方向的阈值区间没有给出反方向的对称说明。也就是说当总线上另一个节点发送的是反相数据B 高于 A时这条让位机制并不保证生效。我在做多主备份通信的板子上就吃过这个亏——本以为是硬件自动仲裁结果两个主站极性相反时驱动器还是互相顶着靠的是短路折返限流驱动短路电流 ±50mA 到 ±250mA把电流压下去没烧掉但总线上的数据已经废了。所以结论很硬AutoDirection 解决的是单主多从场景下的方向控制不要指望它替你实现多主仲裁。2.3 从上电到首字节tSHDN、tDZH(SHDN) 的等待预算时序表里有几个数画图的时候不看调试的时候就要多花两天。MAX13487E 从关断恢复输出的使能时间是 5.5µs 最大MAX13488E 是 2.2µs 最大进入关断的时间 tSHDN 两者都是 503ns 典型、700ns 最大。这意味着如果固件用 SHDN 做省电唤醒之后至少要等 6µs 才能发第一个字节否则首字节会被吃掉。更关键的是驱动器禁用延迟 tDDDMAX13487E 最大 2500nsMAX13488E 最大 70ns。差了 35 倍。这个参数决定了“一帧发完之后多久才能真正松开总线”。487E 的 2.5µs 正好等于它 500kbps 下的一个位宽如果从站回复得早主站的驱动器还没完全让位两条驱动就在总线上撞了。/* 半双工发送RE 保持高方向由 DI 的跳变自动决定 */ #define RS485_RE_HIGH() (GPIOA-BSRR GPIO_BSRR_BS5) /* RE1交给 AutoDirection */ #define RS485_SHDN_HIGH() (GPIOA-BSRR GPIO_BSRR_BS6) /* SHDN1正常工作别写反 */ void rs485_init(void) { RS485_SHDN_HIGH(); /* 注意极性高电平才是工作态 */ RS485_RE_HIGH(); /* 接收器交给状态机发送时不回环到 RX */ uart_config(115200, 8, 1, 0); } void rs485_send(const uint8_t *buf, uint16_t len) { for (uint16_t i 0; i len; i) { while (!uart_tx_ready()) { } uart_write(buf[i]); /* 每一位经 DI 进入状态机驱动器自动使能 */ } uart_wait_tx_done(); /* 等最后一位移出移位寄存器 */ delay_us(3); /* 487E 的 tDDD 最大 2.5us留 3us 让它彻底让位 */ }这段代码的关键假设只有两条RE 恒高、SHDN 恒高。delay_us(3)这个数不是拍脑袋来的它对应 MAX13487E 的 tDDD 最大值 2.5µs 加一点余量如果换成 MAX13488E这个延时可以压到 1µs 以内因为它的 tDDD 最大只有 70ns。反过来说如果你的协议是“主站发完立刻切接收、从站 5µs 内必须应答”的高实时结构487E 的这个 2.5µs 会成为硬约束得先在协议层把应答窗口放宽。3. 500kbps 与 16Mbps 怎么选两组硬指标逐项对照这两颗料共用一份数据手册、共用一套引脚定义、共用同一个 8 脚 SO 封装唯一的区别就是驱动器压摆率有没有被限制但这个区别会把它们推到两个几乎不重叠的应用区间里。选错的后果不是“慢一点”或者“快一点”而是长线上误码率飙升或者短板上速率上不去。3.1 slew-rate 受限解决的是反射和 EMI不是速度MAX13487E 的驱动器上升下降时间是 200ns 到 900nsMAX13488E 是 15ns 典型值。慢边沿带来的直接好处有两个一是高频分量被压掉辐射骚扰低二是边沿慢到一定程度后电缆上因端接不当产生的反射在边沿期间就被吸收掉了不会在采样点形成振铃。文档里“error-free transmission up to 500kbps”这个措辞很讲究它没说 500kbps 是电气极限而是说在这个速率下即使线缆端接不理想也能保证无误码。这就是 487E 的真正定位现场布线不规范、终端电阻漏贴、支线乱拉的老旧改造项目用它容错。488E 的 16Mbps 是另一回事那是板内或者机箱内短距离、端接严格、走线受控的场景边沿快、速率高但对传输线质量没有任何宽容度。还有一个容易被忽略的数据点手册的典型特性曲线里给了驱动 16nF 大电容负载的波形488E 在 750kbps 下能驱动 16nF487E 在 19.2kbps 下驱动同样的负载。这条曲线告诉你的是节点多、线长、分布电容大的现场总线即便用高速版本实际可用速率也要往下降一个数量级。3.2 关键参数对照表从 VOD 到 tLH 的九个数字下面这张表是我画选型对比时实际会填的那几行数据全部来自手册的电气特性与时序表没有做任何外推。参数符号MAX13487EMAX13488E选型时的意义最大数据率—500kbps16Mbps硬性上限先卡这一条驱动器差分输出VOD1.5V54Ω 负载同左决定长线压降余量共模输出电压VOCVCC/2最大 3V同左共模范围要留够驱动上升/下降时间tLH/tHL200~900ns15ns典型反射与 EMI 的分水岭驱动传播延迟tDPLH/tDPHL200~1000ns50ns典型决定往返延迟预算驱动器禁用延迟tDDD最大 2500ns最大 70ns影响收发切换的空隙关断恢复使能tDZH(SHDN)最大 5.5µs最大 2.2µs低功耗唤醒的等待时间接收器传播延迟tRPLH/tRPHL80ns80ns两版相同不构成差异接收器输出偏斜tRSKEW13ns13ns高速时的采样窗口损耗表里最值得盯的是 tDDD 和 tDZH(SHDN) 这两个“非速率”参数它们不写在首页的特性列表里却直接决定固件的时序设计。我见过有人拿 488E 的固件直接烧到 487E 的板子上速率降到 115200 一切正常一上 500kbps 就间歇性丢帧最后查出来就是收发切换的空隙没按 2.5µs 留。3.3 16Mbps 的位宽账50ns 传播延迟吃掉多少裕量16Mbps 下一个位宽只有 62.5ns。驱动器的典型传播延迟 50ns接收器 80ns加上线缆上的传播时间双绞线里信号速度大约是 2×10⁸ m/s100 米线单程就是 500ns、往返 1µs——相当于 16 个位宽。这个账算下来结论很清楚488E 的 16Mbps 只能在很短的物理距离上兑现手册没有给出对应的线长曲线实际项目里我一般按“10 米以内、端接严格、单点接地”来用。反过来看 487E500kbps 下位宽是 2µs100 米往返 1µs 只占半个位宽驱动器 2500ns 的禁用延迟也刚好在一个位宽量级内整个时序预算是宽松的。这就是为什么长线现场总线基本都是低速版本的天下——不是速度上不去是时序余量不允许。选型上我给一条硬线线长超过 50 米、或者现场端接状况不可控、或者有支线选 487E板内或机箱内、节点间距离小于 10 米、有明确的高速数据需求选 488E。中间地带10 到 50 米看协议问答式低速协议选 487E 更省心需要连续大数据块传输的选 488E 并把端接做扎实。4. 128 个节点怎么来的1/4 单元负载的换算与端接“最多 128 个收发器”这个数字写在首页特性里很容易被当成营销话术一眼扫过但它背后是一条可以自己验算的链路而且验算过程会顺带告诉你端接电阻该怎么配、偏置要不要加。4.1 从 48kΩ 输入电阻推回单位负载RS-485 里的“单位负载”是一个约定1 UL 对应 12kΩ 的接收器输入阻抗一条标准总线按 32 UL 设计。手册给出的接收器输入电阻 RIN 是在 -7V 到 12V 共模范围内最小 48kΩ正好是 12kΩ 的 4 倍也就是 1/4 UL。32 除以 1/4 等于 128这个数字就是这么来的不是拍脑袋定的。但这里有个前提容易被忽略48kΩ 是在整个 -7V 到 12V 共模范围内保证的最小值节点接得越多、共模偏移越大实际的输入阻抗会往下掉。所以 128 是理论满配实际项目里我会留 20% 余量按 100 个节点以内规划。另外别忘了总线上的偏置电阻和终端电阻也在消耗驱动能力驱动器在 54Ω 负载下 VOD 最小 1.5V这个余量要一起算。4.2 失效保护偏置±200mV 门限内的灰色地带接收器的差分门限是 -200mV 到 200mV迟滞 25mV。这个区间意味着当总线上没有任何节点驱动、终端电阻又把 A/B 拉到同一个电位时A-B 落在 0V 附近正好在门限区间里接收器输出是不确定的。这就是所谓的失效保护问题。手册没有明说这颗料内置失效保护偏置所以外部偏置网络得自己加。做法是在 A 上拉一个电阻到 VCC、B 下拉一个电阻到 GND让空闲时 A-B 稳定大于 200mV。代价是偏置电阻会给总线加负载节点越多、终端电阻越小偏置电流越大。# 失效保护偏置的快速估算确认空闲差分电压高于接收器门限 200mV VCC 5.0 R_TERM 60.0 # 两端各 120 欧终端并联后的等效值 R_PULLUP 390.0 # A 上拉到 VCC R_PULLDOWN 390.0 # B 下拉到 GND # 空闲时电流路径VCC - 上拉 - 终端 - 下拉 - GND v_idle VCC * R_TERM / (R_PULLUP R_TERM R_PULLDOWN) i_bias VCC / (R_PULLUP R_TERM R_PULLDOWN) print(f空闲差分电压 {v_idle*1000:.0f} mV) # 约 357 mV高于 200 mV 门限 print(f偏置电流 {i_bias*1000:.1f} mA) # 约 6.0 mA注意别超驱动器能力这段估算的输入只有三个电阻值输出是两个判断依据空闲差分电压必须大于接收器门限上限 200mV留出迟滞和噪声余量后一般要求 300mV 以上偏置电流要和驱动器在 54Ω 负载下的输出能力对齐6mA 这个量级是安全的。实际布板时还要把每个节点的输入漏电流算进去——手册给的 A/B 输入电流在 VIN12V 时最大 250µA、在 -7V 时最大 -200µA128 个节点叠起来就是几十毫安级的偏差这时候偏置电阻要相应减小或者干脆把节点数降下来。4.3 终端电阻与节点数的联立终端电阻的标准做法是总线两端各 120Ω匹配双绞线的特性阻抗。但节点数多的时候接收器输入电阻48kΩ 最小并联进来会拉低等效负载虽然影响很小真正的问题在支线每个节点引出的支线如果超过一定长度就会形成阻抗不连续点产生反射。487E 的慢边沿能吸收掉一部分488E 不行。我一般按这条经验走节点数在 32 以内、支线长度小于 1 米两端各 120Ω 端接即可节点数上去之后把终端电阻的位置放在物理总线的两个最远端而不是放在主站板子上剩下的节点全部用短支线挂上去。这一条跟芯片无关但 1/4 单元负载给了你挂 128 个节点的理论许可实际能不能跑起来取决于你有没有把拓扑当传输线来对待。5. 打样前必须过的五道坎:常见问题与排查实录下面这五条都是我在板子上真实遇到过或者帮别人定位过的每一条都按现象、原因、解决三段写方便你对照自己的板子看。5.1 SHDN 极性反了板子上电就“睡死”现象板子焊好上电MCU 的 UART 收发都正常但总线上一点波形都没有示波器量 A/B 一直是静态电平测电源电流只有几微安。原因把 SHDN 按行业习惯当成了低有效关断脚硬件上直接下拉或者通过电阻接地结果器件一直处于关断态。手册写得很明确SHDN 拉高才是正常工作。解决查原理图确认 SHDN 的上拉。如果这颗脚接了 MCU 的 GPIO初始化时先把它拉高再配置 UART如果是不用的固定工作模式直接上拉到 VCC 并在固件里不要动它。这一条我建议在原理图评审时专门标一个红框因为它的错误表现是“完全没反应”排查方向很容易跑偏到电源或者晶振上。5.2 热插拔瞬间的假跳变被当成帧头现象设备支持带电插拔插上去的瞬间从站会收到一帧乱码长度不定之后通信一切正常。原因总线上电或者热插拔的瞬间A/B 上的电平会因为电源爬升和线缆电容充放电产生一次跳变如果接收器此时是使能的这个跳变会被当成起始位。手册里的热插拔能力就是针对这个场景的——DI 和 RE 都标注为热插拔输入内部逻辑会在上电过程中抑制假跳变。解决别在初始化里提前把 RE 拉低。RE 保持高、由 AutoDirection 接管热插拔抑制才会生效等通信正式建立之后再决定要不要切成常接收。另外从站固件里加一层帧校验长度和 CRC 双重过滤热插拔那一帧自然就被丢掉了。这一条的本质是硬件给了你抑制能力前提是你别绕开它。5.3 旁路电容省了高速版本误码率顶不住现象用 488E 跑 8Mbps短帧没问题连续大块数据传输时误码率明显上升示波器看 VCC 上有几百毫伏的毛刺。原因手册在 VCC 引脚说明里要求用 0.1µF 电容旁路到 GND高速开关时驱动器的瞬态电流靠这颗电容供给。省掉或者放得太远超过几毫米瞬态电流就要走长路径引入额外电感电源上出现毛刺边沿变形误码随之而来。解决0.1µF 紧贴 VCC 引脚放另一侧直接打过孔到地平面走线越短越好如果板子上有多颗收发器共用一路电源每颗都要有自己的一颗不要合并。低速版本对这颗电容的敏感度低一些但也别省成本几分钱的事。5.4 沿用 32 节点经验配端接现象一条总线上挂了 60 个节点两端各 120Ω 端接通信时好时坏挂的节点越多误码越频繁。原因把 32 节点的老经验直接搬过来了。这颗料的 1/4 单元负载允许 128 个节点但节点数上去之后每个节点的输入电容和支线电感都在累积等效负载已经偏离了端接电阻匹配的那个阻抗点反射变大。487E 的慢边沿能吸收一部分但吸收了不代表没有。解决先算节点数对应的等效负载节点超过 32 个时把终端电阻适当调整比如改成两端各 150Ω 到 220Ω或者在中间节点加 AC 端接同时把所有支线压到 1 米以内。更彻底的做法是把总线拆成两段中间加一个中继。排查的时候用示波器看最远端节点的波形振铃和台阶最明显的那一段就是问题所在。5.5 5V 器件的 RO 直接怼 3.3V MCU现象3.3V 的 MCU 读 RO 偶尔误判或者长期运行后 IO 口出现异常。原因这颗料是 5V 供电接收器输出高电平 VOH 最小是 VCC-1.5V也就是 3.5V某些条件下会更高。3.3V MCU 的 IO 是不是耐 5V取决于具体型号和引脚配置不能想当然。VIH 门槛这一侧倒是没问题最小 2.0V问题出在耐压上。解决先查 MCU 数据手册确认该引脚是否 5V 容忍不容忍就加分压或者电平转换如果只是单向 RO 到 MCU最简单的做法是串一个电阻再加钳位二极管。反方向 MCU 到 DI/RE/SHDN 是没问题的这三个脚的 VIH 最小 2.0V3.3V 输出足够驱动。整个链路里唯一需要小心的是 RO 这一根线。6. 落到板子上三步定型与一份上电检查顺序选型这件事说到底就是三步顺序不能乱。第一步定速率先看你的协议在最坏情况下需要多少带宽线长超过 50 米或者端接不可控直接锁 487E不要想着“先用高速版本试试”试出来的问题会藏在误码率里很难定位。第二步核节点把总线上所有收发器、偏置网络、终端电阻的负载加一遍超过 32 个节点就重新算端接超过 100 个节点就考虑分段。第三步核时序把 tDDD、tDZH(SHDN) 这两个数抄到固件的收发切换逻辑里487E 按 2.5µs 留、488E 按 70ns 留唤醒延时按 6µs 和 2.5µs 留。上电之后的检查顺序我固定走这四步每一步都有明确的观察点顺序检查项观察点异常时的方向1静态电流无负载时应远小于 4.5mA偏大查 RE/SHDN 电平接近零查是否被关断2空闲总线电平A-B 应大于 200mV不达标查偏置网络和端接3单帧波形A/B 差分波形无台阶、无长振铃有振铃查端接与支线边沿过慢查型号是否选错4满负载连续传输连续跑 1 小时统计误码短时正常长时出错多半是电源旁路或热问题有一年我在一个表计项目上栽过一次板子做回来通信时断时续换了三批芯片都没解决最后发现是 SHDN 脚通过一个 10k 电阻下拉到了地整颗芯片一直半死不活地在关断边缘。从那以后我每次评审 RS-485 部分都会强制把 SHDN、RE、DI 这三根线的默认电平在原理图上单独标出来并且要求固件初始化里的第一件事就是把它们设到确定状态——不是为了好看是因为这类问题在实验室里表现得太像“玄学”一旦漏过去现场返修的成本是画图时间的几百倍。这份数据手册本身信息密度不低尤其是时序表和典型特性曲线那几页值得打印出来放在工位上对着看。希望帮到你。本文还有配套的精品资源点击获取