【Multisim】关于导入TI的SPICE模型发生的报错

本文详细介绍了如何在Multisim13或14版本中导入TexasInstruments(TI)提供的SPICE模型,特别是针对含有多个顶层.subckt语句的情况,通过调整代码结构来避免导入错误。操作步骤包括注释和移动部分代码,确保所有模型定义在顶层.subckt内。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        关于如何在Multisim导入TI提供的SPICE模型,以下博客描述的很清楚:

        但是使用13或14版本的Multisim在操作过程中可能会遇到如下问题:

The model contains multiple top-level . subckt statements. 
Place any dependent . subckt or .model definitions within the main (top-level) . subckt.

翻译:模型包含多个顶层 .subckt 语句。将任何从属 .subckt 或 .model 定义放在主(顶层).subckt 中。

        关于这个问题,跟着视频multisim自定义元件_哔哩哔哩_bilibili的06:10开始操作可解决。具体操作如下:

        找到第一个“.ENDS”,而后将其前面加上“*”,以下面INA240A1代码为例:

* INA240A1
*****************************************************************************
* (C) Copyright 2012 Texas Instruments Incorporated. All rights reserved.                                            
*****************************************************************************
** This model is designed as an aid for customers of Texas Instruments.
** TI and its licensors and suppliers make no warranties, either expressed
** or implied, with respect to this model, including the warranties of 
** merchantability or fitness for a particular purpose.  The model is
** provided solely on an "as is" basis.  The entire risk as to its quality
** and performance is with the customer.
*****************************************************************************
*
** Released by: WEBENCH(R) Design Center, Texas Instruments Inc.
* Part: INA240A1
* Date: 03/09/17
* Model Type: All In One
* Simulator: Pspice
* Simulator Version: Pspice 16.2
* EVM Order Number: N/A 
* EVM Users Guide: N/A
* Datasheet: SBOS662A - July 2016 - Revised October 2016
*
* Model Version: 2.0
*
*****************************************************************************
*
* Updates:
*
* Version 1.0 : Release to Web
* Version 2.0 : Update Vout swing to lower rail
*               Add overdrive recovery circuit
*
*****************************************************************************
* Notes: 
* The model reflects the following parameters:
* Common-mode input range, CMRR, VOS, IIB, Gain, BW, Vout versus Iout, 
* slew rate, noise, power supply range, IQ.
* The model does not track device behavior over temperature
*  
*****************************************************************************
*$
.SUBCKT INA240A1 OUT INP INN REF1 REF2 VCC GND
E_E2         N61051 0 GND 0 -1
E_E11         INP_BUF_OUT GND INP GND 1
X_U12         INPUT_TF INPUT_VCLAMP VCC GND EN GNDF TF_INA240A1
E_E12         INN_BUF_OUT GND N409527 GND 1
X_U31         INPUT_VIMON OUT VIMON GNDF AMETER_INA240A1 
R_R19         INPUT_OUTP N348841  475k TC=0,0 
X_U35         EN VICM VCC GND GNDF CONTROL_INA240A1 
X_U18         INP GNDF VCC GND VICM GNDF IIBP_INA240A1
R_R11         INPUT_ZOUT INPUT_VIMON  10 TC=0,0 
X_U5         VICM INP INN GNDF VICM_INA240A1
E_E13         INP_BUF_OUT INP_CMRR VICM GNDF 1
R_R16         GND INP  500k TC=0,0 
X_U13         INPUTP_GBW INPUTN_GBW INPUT_TF EN VCC GND GNDF GBW_SLEW_INA240A1
E_E14         INN_BUF_OUT INN_CMRR VICM GNDF 1
V_V8         INN N409527 -7.625uVdc
X_U20         VCC GND EN VIMON GNDF IQ_INA240A1
X_U33         VCC GND INP_PSRR_IN INP_PSRR_OUT GNDF PSRR_INA240A1 
X_U17         INN GNDF VCC GND VICM GNDF IIBN_INA240A1
R_R4         INN_CMRR INPUTN_GBW  25k TC=0,0 
G_G1         GNDF N504417 VICM GNDF 0.25u
X_U34         VCC GND INPUT_VCLAMP INPUT_ZOUT VIMON NDUMMY GNDF VOUTvsIOUT_NROS_SHDN_INA240A1 
VDUMMY        NDUMMY GNDF 1V
E_E16         INP_CMRR INP_PSRR_IN N504417 GNDF 1
R_R18         OUT INPUTN_GBW  500k TC=0,0 
R_R12         REF2 N348841  50k TC=0,0 
R_R8         REF1 N348841  50k TC=0,0 
R_R3         INP_PSRR_OUT INPUT_OUTP  25k TC=0,0 
R_R20         N506257 GNDF  1 TC=0,0 
X_U32         INPUT_OUTP INPUTP_GBW vnse_INA240A1
E_E3         GNDF 0 N61045 N61051 0.5
L_L1         N504417 N506257  400uH  
R_R17         INN GND  500k TC=0,0 
E_E1         N61045 0 VCC 0 1
.ENDS

        将最后一行的“.ENDS”改为“*.ENDS”:

* INA240A1
*****************************************************************************
* (C) Copyright 2012 Texas Instruments Incorporated. All rights reserved.                                            
*****************************************************************************
** This model is designed as an aid for customers of Texas Instruments.
** TI and its licensors and suppliers make no warranties, either expressed
** or implied, with respect to this model, including the warranties of 
** merchantability or fitness for a particular purpose.  The model is
** provided solely on an "as is" basis.  The entire risk as to its quality
** and performance is with the customer.
*****************************************************************************
*
** Released by: WEBENCH(R) Design Center, Texas Instruments Inc.
* Part: INA240A1
* Date: 03/09/17
* Model Type: All In One
* Simulator: Pspice
* Simulator Version: Pspice 16.2
* EVM Order Number: N/A 
* EVM Users Guide: N/A
* Datasheet: SBOS662A - July 2016 - Revised October 2016
*
* Model Version: 2.0
*
*****************************************************************************
*
* Updates:
*
* Version 1.0 : Release to Web
* Version 2.0 : Update Vout swing to lower rail
*               Add overdrive recovery circuit
*
*****************************************************************************
* Notes: 
* The model reflects the following parameters:
* Common-mode input range, CMRR, VOS, IIB, Gain, BW, Vout versus Iout, 
* slew rate, noise, power supply range, IQ.
* The model does not track device behavior over temperature
*  
*****************************************************************************
*$
.SUBCKT INA240A1 OUT INP INN REF1 REF2 VCC GND
E_E2         N61051 0 GND 0 -1
E_E11         INP_BUF_OUT GND INP GND 1
X_U12         INPUT_TF INPUT_VCLAMP VCC GND EN GNDF TF_INA240A1
E_E12         INN_BUF_OUT GND N409527 GND 1
X_U31         INPUT_VIMON OUT VIMON GNDF AMETER_INA240A1 
R_R19         INPUT_OUTP N348841  475k TC=0,0 
X_U35         EN VICM VCC GND GNDF CONTROL_INA240A1 
X_U18         INP GNDF VCC GND VICM GNDF IIBP_INA240A1
R_R11         INPUT_ZOUT INPUT_VIMON  10 TC=0,0 
X_U5         VICM INP INN GNDF VICM_INA240A1
E_E13         INP_BUF_OUT INP_CMRR VICM GNDF 1
R_R16         GND INP  500k TC=0,0 
X_U13         INPUTP_GBW INPUTN_GBW INPUT_TF EN VCC GND GNDF GBW_SLEW_INA240A1
E_E14         INN_BUF_OUT INN_CMRR VICM GNDF 1
V_V8         INN N409527 -7.625uVdc
X_U20         VCC GND EN VIMON GNDF IQ_INA240A1
X_U33         VCC GND INP_PSRR_IN INP_PSRR_OUT GNDF PSRR_INA240A1 
X_U17         INN GNDF VCC GND VICM GNDF IIBN_INA240A1
R_R4         INN_CMRR INPUTN_GBW  25k TC=0,0 
G_G1         GNDF N504417 VICM GNDF 0.25u
X_U34         VCC GND INPUT_VCLAMP INPUT_ZOUT VIMON NDUMMY GNDF VOUTvsIOUT_NROS_SHDN_INA240A1 
VDUMMY        NDUMMY GNDF 1V
E_E16         INP_CMRR INP_PSRR_IN N504417 GNDF 1
R_R18         OUT INPUTN_GBW  500k TC=0,0 
R_R12         REF2 N348841  50k TC=0,0 
R_R8         REF1 N348841  50k TC=0,0 
R_R3         INP_PSRR_OUT INPUT_OUTP  25k TC=0,0 
R_R20         N506257 GNDF  1 TC=0,0 
X_U32         INPUT_OUTP INPUTP_GBW vnse_INA240A1
E_E3         GNDF 0 N61045 N61051 0.5
L_L1         N504417 N506257  400uH  
R_R17         INN GND  500k TC=0,0 
E_E1         N61045 0 VCC 0 1
*.ENDS

        而后找到文件代码最后一个“.ENDS”和“*$”:

*$
*
.SUBCKT VOUTvsIOUT_NROS_SHDN_INA240A1  VCC  VEE  VI  VO VIMON SHDN GNDF
.PARAM ISC_POS = 0.003
.PARAM ISC_NEG = -0.0055
.PARAM IMAXLIN_POS = 0.0024
.PARAM IMAXLIN_NEG = -0.0045
.PARAM VOUTMAXLIN = 4.8
.PARAM VOUTMINLIN = 0.4
.PARAM VHR_VCC = -0.05
.PARAM VHR_VEE = 0.001
.PARAM VCC_DATASHEET = 5
.PARAM VEE_DATASHEET = 0
.PARAM VMID_DATASHEET = {(VCC_DATASHEET + VEE_DATASHEET)/2}
.PARAM VHR_MAX_LINEAR = {VOUTMAXLIN - VCC_DATASHEET}
.PARAM VHR_MIN_LINEAR = {VOUTMINLIN  - VEE_DATASHEET}
ER1 NR1 GNDF VALUE = {(VOUTMAXLIN - (VCC_DATASHEET + VHR_VCC))/IMAXLIN_POS}
ER2 NR2 GNDF VALUE = {(VOUTMINLIN - (VEE_DATASHEET + VHR_VEE))/IMAXLIN_NEG}
EVOUT1pos NVOUT1_MAX GNDF VALUE = {(V(VCC,GNDF) + VHR_VCC) + V(NR1,GNDF)*V(VIMON,GNDF)}
EVOUT1neg NVOUT1_MIN GNDF VALUE = {(V(VEE,GNDF) + VHR_VEE) + V(NR2,GNDF)*V(VIMON,GNDF)}
EM1 NM1 GNDF VALUE = {(VOUTMAXLIN - VMID_DATASHEET)/(IMAXLIN_POS - ISC_POS)}
EM2 NM2 GNDF VALUE = {(VOUTMINLIN - VMID_DATASHEET)/(IMAXLIN_NEG - ISC_NEG)}
EVMID NVMID GNDF VALUE = {(V(VCC,GNDF) + V(VEE,GNDF))/2}
E1 N1 GNDF VALUE = {V(VCC,GNDF) + VHR_MAX_LINEAR}
E2 N2 GNDF VALUE = {V(VEE,GNDF) + VHR_MIN_LINEAR} 
EV1 NV1 GNDF VALUE = {V(NVMID,GNDF) + (V(N1,GNDF) - V(NVMID,GNDF))/(1 - IMAXLIN_POS/ISC_POS)}
EV2 NV2 GNDF VALUE = {V(NVMID,GNDF) + (V(N2,GNDF) - V(NVMID,GNDF))/(1 - IMAXLIN_NEG/ISC_NEG)}
EVOUT2pos NVOUT2_MAX GNDF VALUE = {V(NV1,GNDF) + V(VIMON,GNDF)*V(NM1,GNDF)}
EVOUT2neg NVOUT2_MIN GNDF VALUE = {V(NV2,GNDF) + V(VIMON,GNDF)*V(NM2,GNDF)}
EHRPOS HRPOS GNDF VALUE = {MIN(V(NVOUT1_MAX,GNDF),V(NVOUT2_MAX,GNDF))}
EHRNEG HRNEG GNDF VALUE = {MAX(V(NVOUT1_MIN,GNDF),V(NVOUT2_MIN,GNDF))}
ECLAMP  VO GNDF VALUE = {V(SHDN,GNDF)*MAX(MIN(V(VI,GNDF), V(HRPOS,GNDF)), V(HRNEG,GNDF))}
.ENDS
*$
*

        在.ENDS”和“*$之间再加上一个“.ENDS”:

*$
*
.SUBCKT VOUTvsIOUT_NROS_SHDN_INA240A1  VCC  VEE  VI  VO VIMON SHDN GNDF
.PARAM ISC_POS = 0.003
.PARAM ISC_NEG = -0.0055
.PARAM IMAXLIN_POS = 0.0024
.PARAM IMAXLIN_NEG = -0.0045
.PARAM VOUTMAXLIN = 4.8
.PARAM VOUTMINLIN = 0.4
.PARAM VHR_VCC = -0.05
.PARAM VHR_VEE = 0.001
.PARAM VCC_DATASHEET = 5
.PARAM VEE_DATASHEET = 0
.PARAM VMID_DATASHEET = {(VCC_DATASHEET + VEE_DATASHEET)/2}
.PARAM VHR_MAX_LINEAR = {VOUTMAXLIN - VCC_DATASHEET}
.PARAM VHR_MIN_LINEAR = {VOUTMINLIN  - VEE_DATASHEET}
ER1 NR1 GNDF VALUE = {(VOUTMAXLIN - (VCC_DATASHEET + VHR_VCC))/IMAXLIN_POS}
ER2 NR2 GNDF VALUE = {(VOUTMINLIN - (VEE_DATASHEET + VHR_VEE))/IMAXLIN_NEG}
EVOUT1pos NVOUT1_MAX GNDF VALUE = {(V(VCC,GNDF) + VHR_VCC) + V(NR1,GNDF)*V(VIMON,GNDF)}
EVOUT1neg NVOUT1_MIN GNDF VALUE = {(V(VEE,GNDF) + VHR_VEE) + V(NR2,GNDF)*V(VIMON,GNDF)}
EM1 NM1 GNDF VALUE = {(VOUTMAXLIN - VMID_DATASHEET)/(IMAXLIN_POS - ISC_POS)}
EM2 NM2 GNDF VALUE = {(VOUTMINLIN - VMID_DATASHEET)/(IMAXLIN_NEG - ISC_NEG)}
EVMID NVMID GNDF VALUE = {(V(VCC,GNDF) + V(VEE,GNDF))/2}
E1 N1 GNDF VALUE = {V(VCC,GNDF) + VHR_MAX_LINEAR}
E2 N2 GNDF VALUE = {V(VEE,GNDF) + VHR_MIN_LINEAR} 
EV1 NV1 GNDF VALUE = {V(NVMID,GNDF) + (V(N1,GNDF) - V(NVMID,GNDF))/(1 - IMAXLIN_POS/ISC_POS)}
EV2 NV2 GNDF VALUE = {V(NVMID,GNDF) + (V(N2,GNDF) - V(NVMID,GNDF))/(1 - IMAXLIN_NEG/ISC_NEG)}
EVOUT2pos NVOUT2_MAX GNDF VALUE = {V(NV1,GNDF) + V(VIMON,GNDF)*V(NM1,GNDF)}
EVOUT2neg NVOUT2_MIN GNDF VALUE = {V(NV2,GNDF) + V(VIMON,GNDF)*V(NM2,GNDF)}
EHRPOS HRPOS GNDF VALUE = {MIN(V(NVOUT1_MAX,GNDF),V(NVOUT2_MAX,GNDF))}
EHRNEG HRNEG GNDF VALUE = {MAX(V(NVOUT1_MIN,GNDF),V(NVOUT2_MIN,GNDF))}
ECLAMP  VO GNDF VALUE = {V(SHDN,GNDF)*MAX(MIN(V(VI,GNDF), V(HRPOS,GNDF)), V(HRNEG,GNDF))}
.ENDS
.ENDS
*$
*

        而后保存即可。导入.cir文件时不会再报错。

        以上操作通俗地来说就是:注释掉第一个“括号”后,把“括号”后移至全文末端,让全文都能包含在顶层 .subckt 语句中,从而避免多个.subckt 语句并行而导致读取出错。

<think>好的,我需要帮助用户在Multisim中添加或配置Arduino芯片。首先,我需要回忆一下Multisim的基本操作和元件库管理。根据用户提供的引用内容,引用[2]提到了Multisim元件库应用,包括元件搜索和自定义元件创建,这可能相关。 首先,Multisim默认的元件库可能没有Arduino芯片,所以用户可能需要手动添加。通常,添加自定义元件的方法包括下载元件模型(如SPICE模型)并导入Multisim中。引用[2]中的3.2部分提到自定义元件创建,这可能涉及导入第三方模型。 接下来,我需要考虑Arduino的具体情况。Arduino通常使用微控制器如ATmega328P,所以在Multisim中可能需要添加对应的MCU模型。用户可能需要从官方网站或第三方资源获取Arduino的SPICEMultisim兼容模型,然后通过Multisim元件导入功能添加。引用[2]中的5.1部分提到SPICE模型导入报错,这说明导入过程可能会有问题,需要指导用户正确导入。 另外,引用[1]提到使用Arduino IDE进行编程和上传,但用户的问题是关于Multisim的仿真,所以可能需要配置Arduino的仿真模型与实际代码的交互。不过Multisim主要处理电路仿真,程序部分可能需要结合其他工具。 可能的步骤包括:1. 查找并下载Arduino的Multisim模型;2. 在Multisim导入模型;3. 配置元件参数;4. 连接电路并进行仿真。如果官方没有提供模型,可能需要使用替代元件(如ATmega328P)或创建自定义元件,这涉及到引用[2]中的自定义元件创建步骤。 还需要注意版本兼容性,如Multisim的版本是否支持所需的模型格式,以及操作系统的兼容性问题(引用[2]中的1.1系统兼容性)。如果用户遇到导入问题,可能需要检查模型文件是否正确,或者寻求厂商支持。 总结来说,回答应指导用户下载Arduino的SPICE模型,通过Multisim元件导入工具添加,并配置参数。如果无法找到现成模型,可能需要手动创建或使用类似元件替代,并提示可能的资源和步骤,同时引用相关的帮助部分。</think>在Multisim中添加Arduino芯片需要结合元件库管理与模型导入功能,具体操作步骤如下: ### 一、准备阶段 1. **确认兼容性**:检查当前使用的Multisim版本是否支持微控制器模型导入(建议使用14.0及以上版本)[^2] 2. **获取元件模型**: - 通过**NI官方资源库**搜索"Arduino SPICE Model" - 或访问第三方仿真模型平台(如**ComponentSupplier**或**UltraLibrarian**)下载`.lib`或`.intlib`格式文件 ### 二、模型导入步骤 1. 打开Multisim菜单栏选择 **工具 > 数据库 > 元件导入向导** 2. 在**Select Source**界面选择下载的模型文件 ```plaintext 典型路径示例:C:\User\Downloads\Arduino_Uno.olb ``` 3. 在**Destination Database**中选择**User**分类(确保拥有写入权限) 4. 完成参数映射后点击**Import**,注意核对引脚定义与物理芯片的一致性 ### 三、电路配置要点 1. **电源匹配**:需手动添加`+5V`电源和`GND`网络标签 2. **编程接口仿真**:使用**虚拟仪器 > 总线分析仪**连接`TX/RX`引脚 3. **外设扩展**:通过**MCU向导**配置ADC、PWM等模块参数,如图1所示 $$f_{PWM} = \frac{CLK}{Prescaler \times TOP}$$ 其中$CLK=16MHz$为Arduino主频,需与仿真时钟同步 ### 四、联合调试技巧 1. 使用**协同仿真模式**:将Multisim电路与Arduino IDE生成的`.hex`文件关联 ```plaintext 操作路径:MCU右键属性 > Program File > 加载编译后的HEX文件 ``` 2. 通过**虚拟终端**观察串口输出(波特率需设置为`9600`或`115200`)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值