大家好、
我们将 SN65HVD72DRBT 用于我们的产品、40mA PPTC 用于差分线路。
我们需要使用和不使用端接电阻器和失效防护电阻器来分析差分总线的短路行为。
正如我从支持人员那里了解到的、IC 的 SPICE 模型不可用、而使用 IBIS 模型时、我无法使用 Altium 设计工具仿真短路行为。
请按照相同说明进行指导、以分析相同的短路行为建模。
谢谢。
Rishav
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好、
我们将 SN65HVD72DRBT 用于我们的产品、40mA PPTC 用于差分线路。
我们需要使用和不使用端接电阻器和失效防护电阻器来分析差分总线的短路行为。
正如我从支持人员那里了解到的、IC 的 SPICE 模型不可用、而使用 IBIS 模型时、我无法使用 Altium 设计工具仿真短路行为。
请按照相同说明进行指导、以分析相同的短路行为建模。
谢谢。
Rishav
尊敬的 Rishav:
是否可以分享差分总线的外观?因为保险丝上的位置会影响分析、我不想假设差分总线的放置位置有误。
话虽如此、本质上电流限制只是、它将该器件灌电流/拉电流限制为不超过160mA。 如果我们忽略了总线的布线、而只关注收发器+终端+失效防护电阻器、总线就会变成一个简单的电阻器网络。 在很大程度上、这就是我们构建较新 SPICE 模型的方法-我们在收发器引脚的输出/输入上放置一个电流限制器、当它们达到数据表值时、它们会将电流限制在该值-而对于模型来说、这是一种硬停止。 但直至它们达到该点、这是一个简单的线性电阻网络、从驱动器汲取的电流与负载成正比。
您是否尝试为应用确定合适的保险丝尺寸? 如果是-您能否回答以下问题:
1.最大 总线长度是多少。
2.总线上有多少通信节点(最多)
3.系统运行的数据速率是多少? (数据速率的增加会增加电流输出)
请告诉我!
此致!
帕克·道德森
您好、Parker、
请找到保险丝位置的示意图
进一步,
1.最大总线长度是多少。
标准 RS485长度~1000米
2.总线上有多少通信节点(最多)
32.
3.系统运行的数据速率是多少? (数据速率的增加会增加电流输出)
115200
分析的议程有两个方面、第一是使保险丝额定值合理化、第二是计算总线在短路情况下的总能量、以用于认证目的。
我正在考虑在电压源和电阻器方面对电路进行建模、请建议下一步。
谢谢。
Rishav
尊敬的 Rishav:
好吧-这是有道理的。
那么、我将分享如何以非常简单的方式对输出驱动器进行建模-由于驱动器的性质、我要说的是严格的电压源和电阻器将不起作用-因为它不会对非线性限流器进行建模-所以通常您会这样做 具有 SPICE 文件-但驱动程序本身并不那么复杂、我可以向您展示 SPICE 文件的外观
这显示了使用从属源、电阻器和开关以简单方式建模电流限制的驱动器。
本质上、RX 和 RY 值可用于设置 VOD 和 VOC 规格(输出差分和输出共模电压)。
PACAP 和 PBCAP 充当源-它们的最大值是驱动器的近似开路电压(作为 RS-485驱动器、空载时将输出~VCC - 2个二极管压降) -但他们有一个内置的 RC 上升/下降延迟来模拟驱动器的转换时间-这在模型图像中解释-但如果你不关心的时间,你只需用等于 VCC - 2的电压源替换 PBCAP 和 PACAP 二极管压降-由于此器件没有开路 VOD 规格、因此我将使用0.3V 作为二极管压降值、并且电压源可以设置为 VCC - 0.6V。
当达到数据表中的 IOS 值时、从属电流源基本上只会限制电流(发生在短路或阻抗非常低时)。 它们周围有很多文本、但实质上-它们测量 RX 或 RY 两端的电压、并将其转换为电流-如果电流介于0A 和 IOS 限制之间、则电流正好符合线性系统的预期-二者相加 二极管的功能是不允许电流回流-例如、如果电流将低于0A、则不会传导电流、如果电流消耗大于 IO、则输出的输出不会超过 IO。
Rx 和 Ry 的方程 如下: Vs = VCC - 2*VD ; Rt(SPEC )= 54 ; Rcm(SPEC )= 375.
此过程会确定 RX 和 RY 的大小-需要注意的一点是、VOD 和 VOC 的数据表都会出现误差、因为该模型通常与实际器件不是完全一致的。 通常、误差很小(<5%)、但在较高的负载和共模输入下、您可以看到高达~+/-7%的误差-然而、对于短路测试、这应该不是大问题。
对于此器件、您通常期望 VOD 为2V、VOC (ss)为1.65V (假设电源为3.3V)-因此、这将产生大小为以下的电阻器:
RX = 0.856欧姆
Ry = 16.774欧姆
为确保设置适当的 IO 限制、当 IO 运行时、我们还应计算 RX 和 RY 两端的电压(此器件为160mA)
因此 V_RX_IOS = 136.96mV
并且 V_RY_IOS = 2.68384V
如果要在仿真中包含转换时间 、则需要添加以下其他电路:
RVB 和 RVA 是一个近似值-如果你只是在寻找一个简单的模型,我会放弃这个部分,因为它的奇巧,通常需要多次迭代才能正常计时-但这是可以建模转换时间的方法。 如果我们要为此器件进行建模、则第一次使用 CVA、CVB = 10nF、RVB = RVA = 35欧姆-不过、可能需要更改此值才能获得正确的结果-因此、如果您无法在模型中使用它 很可能是有益的。
它的 SPICE 模型采用如下所示的一般形式(我已使用我们在上述示例中计算的数字)
""
*带电流限制的驱动器输出-包括转换时间
.subckt DiffDriverWilim VCC EN 数据 A B GND
xDrive VCC GND AOUT BIN 数据扩散器
XDECIDE EN 数据 AOUT BOUT AIN BIN B GND DRIVEMATRIX
结束
.subckt DiffDriver VCC GND AOUT BIN Ain 数据
VDUBDIODE VDI GND 0.6
EVABASE ABASE GND 值={IF (V (DATA、GND)> 0.37、V (VCC、VDI)、0)}
EVBBASE PBBASE GND 值={IF (V (DATA、GND)< 0.63、V (VCC、VDI)、0)}
中国农业机械协会35.
RVB PBASE PBCAP 35.
CVA PACAP GND 10E-9
CVB PBCAP GND 10E-9
EVAOUT PAOUT GND 值={V (PACAP、GND)}
EVBOUT PBOUT GND 值={V (PBCAP、GND)}
GAOUT RAOUT AOUT 值={IF ((V (PAOUT、RAOUT))> 0.13696、0.16、IF (V (PAOUT、RAOUT)< 0、0、V (PAOUT、RAOUT)/ 0.856)}
GBOUT RBOUT BOUT 值={IF ((V (PBOUT、RBOUT))> 0.13696、0.16、IF (V (PBOUT、RBOUT)< 0、0、V (PBOUT、RBOUT)/ 0.856)}
GAI ARIN GND 值={IF ((V (AIN、ARIN))> 2.68384、0.16、IF (V (AIN、ARIN)< 0、0、V (AIN、ARIN)/ 16.774)}
GBI Brin GND 值={if ((V (bin、Brin))> 2.68384、0.16、if (V (bin、Brin)< 0、0、V (bin、Brin)/ 16.774)}
RxA PAOUT RAOUT 0.856
RYA AIN ARIN 16.774.
RxB PBOUT RBOUT 0.856
第16.774章我是谁
结束
.subckt DRIVEMATRIX EN 数据 INA INB OUTB COMA COMA GND
EVNDATA nData GND 值={if (V (data、GND)> 0.63、0、1)}
S1 INA COMAA 数据 GND SWON
S2 OUTA COMAA 数据 GND SWOFF
S3 INB COMBB DATA GND SWOFF
S4 OUTB COMBB DATA GND SWON
S5 COMBB 梳状 EN GND SWON
S6 COMAA COMA EN GND SWON
.MODEL SWON vSwitch ROFF=1e9 ron=0.001、voff=0.37V、Von=0.63V
.model SWOFF vSwitch ROFF=1e9 ron=0.001 voff=0.63V Von=0.37V
结束
""
如果您想消除转换时间方面、以防止模型上的迭代设计、它只需:
""
*带电流限制的驱动器,无转换时间
.subckt DiffDriverWilim VCC EN 数据 A B GND
xDrive VCC GND AOUT BIN 数据扩散器
XDECIDE EN 数据 AOUT BOUT AIN BIN B GND DRIVEMATRIX
结束
.subckt DiffDriver VCC GND AOUT BIN Ain 数据
VDUBDIODE VDI GND 0.6
EVABASE ABASE GND 值={IF (V (DATA、GND)> 0.37、V (VCC、VDI)、0)}
EVBBASE PBBASE GND 值={IF (V (DATA、GND)< 0.63、V (VCC、VDI)、0)}
EVAOUT PAOUT GND 值={V (PABASE、GND)}
EVBOUT PBOOUT GND 值={V (PBBASE、GND)}
GAOUT RAOUT AOUT 值={IF ((V (PAOUT、RAOUT))> 0.13696、0.16、IF (V (PAOUT、RAOUT)< 0、0、V (PAOUT、RAOUT)/ 0.856)}
GBOUT RBOUT BOUT 值={IF ((V (PBOUT、RBOUT))> 0.13696、0.16、IF (V (PBOUT、RBOUT)< 0、0、V (PBOUT、RBOUT)/ 0.856)}
GAI ARIN GND 值={IF ((V (AIN、ARIN))> 2.68384、0.16、IF (V (AIN、ARIN)< 0、0、V (AIN、ARIN)/ 16.774)}
GBI Brin GND 值={if ((V (bin、Brin))> 2.68384、0.16、if (V (bin、Brin)< 0、0、V (bin、Brin )/ 16.774)}
RxA PAOUT RAOUT 0.856
RYA AIN ARIN 16.774.
RxB PBOUT RBOUT 0.856
第16.774章我是谁
结束
.subckt DRIVEMATRIX EN 数据 INA INB OUTB COMA COMA GND
EVNDATA nData GND 值={if (V (data、GND)> 0.63、0、1)}
S1 INA COMAA 数据 GND SWON
S2 OUTA COMAA 数据 GND SWOFF
S3 INB COMBB DATA GND SWOFF
S4 OUTB COMBB DATA GND SWON
S5 COMBB 梳状 EN GND SWON
S6 COMAA COMA EN GND SWON
.MODEL SWON vSwitch ROFF=1e9 ron=0.001、voff=0.37V、Von=0.63V
.model SWOFF vSwitch ROFF=1e9 ron=0.001 voff=0.63V Von=0.37V
结束
""
您只需复制这篇文本并将其另存为.lib 文件、然后导入到您首选的 SPICE 仿真器中(HSpice 除外-这可能无法正常工作)
注意事项-此模型不捕获传播延迟和接收器负载、因此它远远不是一个完整的模型、但它确实对电流限制和输出电压(以及差分信号的转换时间)进行建模、应该对您的仿真需求有所帮助。
一个主要用途注意事项是数据(在大多数 RS-485上也称为 D 引脚)和 EN (大多数 RS-485上用于 DE 引脚的待机模式)需要的值介于0V 和1V 之间、如果您使用更高的电压、则会得到怪异的结果 (这是因为为了简单起见、部分模型我们缺少将逻辑信号转换为高电压或低电压的逻辑到总线接口电路-因此该模型假设数据和 EN 输入端的输入为0V 至1V。
如果您有任何其他问题、请告诉我、我将看看我可以做些什么-这个模型没有经过很明显的审查、因为它是一个非常简化的版本-但根据测试设置-这个模型对于实际电压来说会相当准确、应该也是 帮助您更好地了解没有任何模型的电路中的能源消耗。
此致!
帕克·道德森