Coolquest, Inc. | Home | Products | Support | About | Contact | |||
|
Design Home | << File View >> | Class View | Output (partial) | Parts Library | Examples Home |
// THIS FILE IS IN THE PUBLIC DOMAIN. // IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT // NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #ifndef _ShuntOVPH_ #define _ShuntOVPH_ #include "ad1580.h" #include "diodes.h" // Overvoltage Protection Circuits // Voltage reference + op-amp turn on Darlington power transistor to shunt current to ground. // Low-threshold Schottky diode shunts negative voltages to ground. // The user sets the overvoltage threshold by changing the value of Radjust via a call to SetTypeName(). // Radjust's value is Radjust = Rh/( Vthresh/Vref - 1 ) where: // Rh = 10.2 kohm // Vref = 1.225 V // Vthresh = user's desired threshold voltage--must be between 1.9V and 5.9V // See ShuntOVPResistorValues.xls for a table of Rl values. class CM_OVP_Base : public TModule { // Helper module--not intended for general use protected: CM_OVP_Base(){}; // only descendants of this class can be instantiated by user public: port Vp; // voltage to be protected port GND; CP_AD1580 Reference; // 1.225V voltage reference CP_R4_7K Rb; // bias resistor for reference CP_R10_2KP1 Rh; // half of resistor divider, tied to Vp CP_RCHIP805 Radjust; // other half of resistor divider (also known as Rl) -- user must specify actual value using SetTypeName() CP_R1K Ro; // resistor from output to ground, keeps SCR off until Vp is at least 1.8V CP_C2_2NF Co; // capacitor from output to ground, in case of turn-on transient on amplifier output CP_AD8517ART Amp; // low-voltage rail-to-rail op-amp CP_MBRS130LT3 Dprotect; // low-threshold Schottky diode to clamp negative voltages on Vp public: virtual void Register() { reg( Vp ); reg( GND ); reg( Reference ); reg( Rb ); reg( Rh ); reg( Radjust ); reg( Ro ); reg( Co ); reg( Amp ); reg( Dprotect ); } virtual void Connect() { Vp << Amp.VPP; // power GND << Reference.VNN << Amp.VNN; "/NC" << Reference.NC; Vp << Dprotect.CATHODE; // negative voltage protection GND << Dprotect.ANODE; Vp ^ Rh ^ "IN_P" << Amp.IN_P ^ Radjust ^ GND; // divided Vp to Amp + input "V_REF" << Amp.IN_N << Reference.VPP ^ Rb ^ Vp; // Amp - input Amp.OUT ^ Ro ^ GND; // try to avoid false triggers of SCR, e.g., during a valid turn-on ramp Amp.OUT ^ Co ^ GND; } }; class CM_ShuntOVP_8A : public CM_OVP_Base { public: // ***** member ports ***** // // ***** member modules and parts ***** // CP_MCR12DSNT4 SCR; virtual void Register() { CM_OVP_Base::Register(); reg( SCR ); } virtual void Connect() { CM_OVP_Base::Connect(); // current flows from anode to cathode after trigger current is applied to gate "GATE" << SCR.GATE << Amp.OUT; Vp << SCR.ANODE; GND << SCR.CATHODE; } }; class CM_ShuntOVP_16A : public CM_OVP_Base { public: // ***** member ports ***** // // ***** member modules and parts ***** // CP_MCR12DSNT4 SCR0; CP_MCR12DSNT4 SCR1; virtual void Register() { CM_OVP_Base::Register(); reg( SCR0 ); reg( SCR1 ); } virtual void Connect() { CM_OVP_Base::Connect(); // current flows from anode to cathode after trigger current is applied to gate "GATE" << SCR0.GATE << SCR1.GATE << Amp.OUT; Vp << SCR0.ANODE << SCR1.ANODE; GND << SCR0.CATHODE << SCR1.CATHODE; } }; class CM_ShuntOVP_24A : public CM_OVP_Base { public: // ***** member ports ***** // // ***** member modules and parts ***** // CP_MCR12DSNT4 SCR0; CP_MCR12DSNT4 SCR1; CP_MCR12DSNT4 SCR2; virtual void Register() { CM_OVP_Base::Register(); reg( SCR0 ); reg( SCR1 ); reg( SCR2 ); } virtual void Connect() { CM_OVP_Base::Connect(); // current flows from anode to cathode after trigger current is applied to gate "GATE" << SCR0.GATE << SCR1.GATE << SCR2.GATE << Amp.OUT; Vp << SCR0.ANODE << SCR1.ANODE << SCR2.ANODE; GND << SCR0.CATHODE << SCR1.CATHODE << SCR2.CATHODE; } }; #endif
Design Home | << File View >> | Class View | Output (partial) | Parts Library | Examples Home |
Legal | Copyright © 2007 by Coolquest, Inc. | Contact |