Uso de modelos Spice / PSpice (optoacoplador Vishay) en LTSpice

3

Estoy tratando de usar los modelos de especias provistos por Vishay del optoacoplador de alta velocidad 6N137 en LTSpice. (Fuente: enlace )

Sin embargo, tanto el modelo "PSpice" como el modelo "Spice" fallan.

Con el modelo "PSpice":

WARNING: Can't resolve .param dpwr=$g_dpwr
WARNING: Can't resolve .param dgnd=$g_dgnd
Fatal Error: Port(pin) count mismatch between the definition of subcircuit "and2" and instance: "xx1:u2"
The instance has more connection terminals than the definition.

Con el modelo "Spice":

Too few nodes: au1.a [1] [du1.a] adc_a

¿Qué debo hacer para que cualquiera de estos trabajos funcione en LTSpice?

    
pregunta ARF

3 respuestas

11

De hecho, el modelo no es apropiado para LTSpice (como es habitual ...).

Aquí está el modelo 6N137 ajustado. Lo que estaba mal era el uso de la compuerta AND interna que combina la habilitación y la entrada opto. Estaba usando la sintaxis de PSpice. Además, se especificó un Td (retraso) para el opto switch interno, y LTspice no lo admite en el modelo ISWITCH.

Básicamente, redefiní un nuevo subcircuito AND2 para reemplazar el existente (usando una función IF básica y el operador &), y agregué un subcircuito DELAY20n para simular la demora faltante del interruptor (usando un filtro RC pequeño ). Tuve que modificar ligeramente el subcircuito principal de acuerdo con esto, por supuesto.

Ahora, no puedo garantizar que el nuevo modelo se comporte exactamente como el original (en realidad, puedo garantizar que no se comporte no exactamente como el original), pero creo que las desviaciones son menores . Revisé los diversos retrasos con un circuito de prueba, y parecen estar dentro de las especificaciones.

Aquí tienes:

************************************************
**  enable- high, NMOS output
**  --  6N137,VO2601/2611, VO0600/0601/0611 --- 
************************************************
** test conditions:VCC=5V, RL=350, CL=15pF, IF=10mA
** characteristics: VF=1.4V, ITH=5mA, VEH=2V, VEL=0.8V
** VOL=0.6V, tpLH=TpHL=70nS, tr=22nS, tf=17nS
**
** Model Node - Symbol - Pin
** 1 (DA)       A         2
** 2 (DK)       K         3
** 3 (GND)    GND         5
** 4 (VO)      VO         6
** 5 (VE)      VE         7
** 6 (VCC)    VCC         8
**
*$
.SUBCKT 6N137  DA DK GND VO VE VCC
dD1  DA 6  DEMIT
vV1  6  DK  DC 0
wW1  VCC 7  vV1  I_SW1
rR3  GND 7  1K  
xU3  7 7delay GND DELAY20n
xU2  7delay VE 8 VCC GND AND2
rR4  8  9 5K
rR5  VCC VE 100K
MQ1 VO 9 GND GND MOST1 W=9.7M L=2U  ;NMOS OUTPUT
.MODEL    DEMIT   D 
+IS=1.69341E-12 RS=2.5 N=2.4  XTI=4
+EG=1.52436 CJO=1.80001E-11 VJ=0.75 M=0.5 FC=0.5
.MODEL MOST1 NMOS (LEVEL=3 KP=25U VTO=2 RD=45)
.MODEL I_SW1 ISWITCH (Roff=1e6 Ron=1 IT=4.9m IH=0.1m)
.ENDS
*$

***-------------------------------------------------------------------------
* 2 INPUT AND GATE
*
.SUBCKT AND2 A B Y VCC GND
ETHRS   THRS GND VALUE {1.5} ; Logic level threshold
EGATE   YINT GND VALUE {IF(V(A) > V(THRS) & V(B) > V(THRS), V(VCC), V(GND))}
RINT YINT Y 1
CINT Y 0 10p
.ENDS

***------------------------
* DELAY
*
.SUBCKT DELAY20n IN OUT GND
E IN2 GND VALUE {V(IN)}
Rdelay IN2 OUT 10k
Cdelay OUT GND 2p
.ENDS

Y como beneficio adicional, un simple archivo de símbolos asy que puede usarse con él:

Version 4
SymbolType BLOCK
RECTANGLE Normal 64 64 -64 -64
SYMATTR Prefix X
SYMATTR Value 6N137
PIN -64 -32 LEFT 8
PINATTR PinName A
PINATTR SpiceOrder 1
PIN -64 32 LEFT 8
PINATTR PinName K
PINATTR SpiceOrder 2
PIN 64 48 RIGHT 8
PINATTR PinName GND
PINATTR SpiceOrder 3
PIN 64 16 RIGHT 8
PINATTR PinName VO
PINATTR SpiceOrder 4
PIN 64 -16 RIGHT 8
PINATTR PinName VE
PINATTR SpiceOrder 5
PIN 64 -48 RIGHT 8
PINATTR PinName VCC
PINATTR SpiceOrder 6

Para los usuarios de LTSpice que no saben cómo usarlo todo (porque no es sencillo): copie / pegue el contenido del archivo de símbolos asy en un archivo llamado 6N137.ASY y copie / pegue todos los detalles del modelo de especia de arriba en un archivo llamado 6N137.LIB. Luego, desde su esquema, coloque el componente 6N137 (del archivo ASY). También agregue una directiva .include 6N137.lib en algún lugar de su esquema. Has terminado Solo tenga en cuenta que todos los archivos deben estar ubicados en la misma carpeta.

    
respondido por el dim
1

También intenté usar (y destapé) los mismos problemas con el modelo Vishay para el 6N137. Luego probé la solución provista por Dim, sin un buen éxito (lo siento, pero ahí está). Así que esto me dejó con el gasto de tiempo para corregir los errores (hay algunas áreas que llamaron mi atención y curiosidad, pero no lo hice). seguro acerca de) o de lo contrario consultar con el sitio de Grupos de Yahoo para LTspice. Decidí comenzar allí y pude encontrar un símbolo bonito y un modelo que funcionó para mí.

Luego hice algunos pequeños cambios relacionados con la forma en que el símbolo especifica la biblioteca. (El símbolo puede especificarlo para que no sea necesario usar un .include en el esquema para encontrarlo). También lo configuro para que sea posible colocar varios modelos (de todos modos similares) en el mismo archivo de modelo. y LTspice proporcionará automáticamente una lista de selección desplegable. (Esto utiliza una 'característica' no documentada de LTspice.)

Aquí está el símbolo, para empezar. Cópielo y péguelo en un archivo ubicado en la carpeta ../lib/sym (o en cualquier otro directorio que desee). Utilice el nombre de archivo 6N137.ASY cuando lo guarde.

Version 4
SymbolType CELL
LINE Normal -96 -48 -56 -48
LINE Normal -56 -16 -56 -48
LINE Normal -56 16 -56 48
LINE Normal -96 48 -56 48
LINE Normal -80 -16 -32 -16
LINE Normal -56 16 -32 -16
LINE Normal -56 16 -80 -16
LINE Normal -80 16 -32 16
LINE Normal 128 -32 112 -32
LINE Normal 24 0 12 -4
LINE Normal 24 0 20 -12
LINE Normal 20 -4 24 0
LINE Normal 112 49 128 49
LINE Normal 112 16 112 49
LINE Normal 96 16 112 16
LINE Normal 96 -23 96 25
LINE Normal 112 -16 96 -16
LINE Normal 112 -32 112 -16
LINE Normal 91 25 91 -23
LINE Normal 80 0 91 0
LINE Normal 55 25 55 -23
LINE Normal 44 1 55 1
LINE Normal 44 -64 44 1
LINE Normal 128 -64 44 -64
LINE Normal 64 -22 64 -96
LINE Normal 102 12 108 16
LINE Normal 102 20 108 16
RECTANGLE Normal -96 -96 128 64
ARC Normal -4 12 20 -12 16 -4 -4 0
ARC Normal -28 12 -4 -12 -28 4 -4 0
ARC Normal 34 -23 80 25 55 25 55 -23
TEXT 105 -77 Left 2 E
TEXT 28 -77 Left 2 V+
WINDOW 0 -32 -112 Left 2
WINDOW 38 -16 80 Left 2
SYMATTR SpiceModel 6N137
SYMATTR Description High Speed Photocoupler
SYMATTR Prefix X
SYMATTR ModelFile 6N137.SUB
PIN -96 -48 NONE 0
PINATTR PinName A
PINATTR SpiceOrder 1
PIN -96 48 NONE 0
PINATTR PinName K
PINATTR SpiceOrder 2
PIN 128 48 NONE 0
PINATTR PinName S
PINATTR SpiceOrder 3
PIN 128 -32 NONE 0
PINATTR PinName C
PINATTR SpiceOrder 4
PIN 64 -96 NONE 8
PINATTR PinName V
PINATTR SpiceOrder 5
PIN 128 -64 NONE 8
PINATTR PinName E
PINATTR SpiceOrder 6

También tenga en cuenta que he usado CELL y no BLOCK, arriba. Así es como se debe configurar un símbolo, nominalmente. (El tipo de BLOQUE es para cuando el símbolo representa otra página de un esquema jerárquico).

Ahora para el archivo modelo. Pero solo por un momento, primero, ve a buscar una línea que diga SYMATTR ModelFile 6N137.SUB y anota lo mismo allí. Ese es el nombre del archivo que necesita usar para el archivo modelo, al guardarlo. Si desea usar un nombre diferente, deberá modificar esa línea en el archivo de símbolos anterior para que coincida. Dicho esto, aquí está el archivo modelo:

.subckt 6N137 A K S C V E
D1 A N001 LED
C1 A K 1p
V1 N001 K 0
R2 ta S 100
C2 ta S 200p
B2 S ta I=TABLE(I(V1), 0,0,2.5m,50m,15m, 55m)
C10 A C 0.1p
C11 K S 0.1p
M1 C ga S S NMOS1
C5 C ga 10p
De1 E V Dd1
R6 V E 6k
R7 E S 100k
B4 0 en I=TABLE(V(E,S), 0,0,1.4,0,1.5, 1m)
R4 en 0 1k
R5 V S 1.5k
C6 C S 10p
C4 en 0 10p
B3 S ga I=V(ta,s)*V(en)*10m
R3 ga S 100
C3 ga S 20p
.model LED D(Is=1e-17 Rs=4 N=1.5 Eg=1.7 CJO=5p Tt=5n)
.model NMOS1 NMOS(Vt0=2 Kp=0.03 Rs=5 Rd=5 lambda=0.02)
.model Dd1 D(Is=1e-7 Rs=10 Cjo=5p Tt=5n)
.ends

Guarde ese archivo en la carpeta ... / lib / sub (o en cualquier otro directorio que desee, aunque es posible que necesite usar la especificación completa del archivo en el archivo de símbolos a menos que LTspice haya sido informado de la carpeta) .)

Lo anterior debería funcionar con LTspice.

Si desea tener varios modelos relacionados (los que usan el mismo símbolo sin confusión, pero quizás tengan enfoques diferentes o comportamientos algo diferentes), puede agregarlos al archivo del modelo anterior. Solo péguelos arriba o abajo (o entre) otros subcircuitos .SUBCKT / .ENDS. ¡Asegúrate de que tengan un nombre diferente, por supuesto! Si lo hace, LTspice proporcionará un menú desplegable en el símbolo que le permitirá al usuario seleccionar el dispositivo de una lista. Lo que es bueno.

Normalmente, esto significa que el nombre del símbolo debe colocarse en la línea SYMATTR SpiceModel en el símbolo y no en la línea SYMATTR Value . (Creo que la línea SYMATTR Value debe estar en blanco.) Y esto significa que el símbolo en sí probablemente deba editarse para que se muestre el SpiceModel y no el valor.

Solo unas pocas notas sobre la creación de símbolos con listas que LTspice puede manejar en un menú desplegable.

Desearía haber podido conseguir que las cosas de Dim funcionen rápidamente. Pero fue tan malo que solo una rápida mirada me convenció de comenzar con algo que había sido probado por los aficionados de LTspice. Y simplemente funcionó. Lo que es bueno.

    
respondido por el jonk
0

Como dice, su símbolo esquemático no coincide con el archivo del modelo. La forma más fácil y rápida de solucionar este problema es generar automáticamente el símbolo esquemático del archivo modelo.

Lea las preguntas frecuentes de ayuda de ltpsice para modelos de terceros, que enlazan con la creación esquemática de símbolos. Básicamente, abrirá el archivo de texto dentro de ltspice y hará clic derecho en el nombre del modelo. Luego encontrará el nuevo componente en la carpeta generada automáticamente al agregar partes nuevas.

Es posible reutilizar el símbolo opto para usar un modelo de terceros, pero es un proceso un poco más complicado. Debe tener un símbolo separado para cada modelo a menos que sea algo realmente básico como un transistor o un diodo.

    
respondido por el Barleyman

Lea otras preguntas en las etiquetas

Comentarios Recientes

integrado en SMDMS.UIS.Puede descargar el tarball aquí: Cree pequeños nodos desde una sola hoja> Tome la carpeta testnet de la versión TS de UIS (extraiga el texto en un archivo de texto, ejecute wumpus con el enlace a su rom TS LTS y voilà :)). Spice es un antiguo proyecto para Peter Swire en 1984, que se descargó 250K en SMDMS como uDraw02 (entérese por favor). En ese momento se incluyó el código fuente del código fuente Qt. <| endoftext |> Hay una variedad de formas de aprender Perl. Una de las más fáciles... Lees verder