Warning, /sdk/ktechlab/src/contexthelp/help-en_US is written in an unsupported language. File is not indexed.

0001 <!-- item: PIC_IC -->
0002 
0003 <!-- item: complex -->
0004 <html><head><meta name="qrichtext" content="1" /></head><body>
0005 <p>Complex gain is the effect that circuit has on the amplitude and phase of a sine wave signal. It is expressed by a complex number.</p>
0006 </body></html>
0007 <!-- item: datasheet -->
0008 <html><head><meta name="qrichtext" content="1" /></head><body>
0009 <p align="justify">Technical specifications of electric components are listed in so called <span style="font-weight:600">datasheets</span>. These are provided by the manufacturers and can normally be obtained from their homepages. A good search engine for common datasheets is:</p>
0010 <p align="justify"><a href="http://www.datasheetarchive.com">www.datasheetarchive.com</a></p>
0011 </body></html>
0012 <!-- item: dp/arrow -->
0013 Select the line to position the end points
0014 <!-- item: dp/ellipse -->
0015 Click and hold the left mouse button to indicate one corner of the ‘bounding rectangle’ of the ellipse, then move the mouse pointer to the opposite corner.
0016 <!-- item: dp/line -->
0017 Select the line to position the end points
0018 <!-- item: dp/rectangle -->
0019 Click and hold the left mouse button to indicate one corner of the rectangle, then move the mouse pointer to its opposite corner.
0020 <!-- item: dp/text -->
0021 Doubleclick the Text Item to set the text
0022 <!-- item: ec/555 -->
0023 Common timer IC
0024 <!-- item: ec/ac_current -->
0025 Provides a variety of current signals
0026 <!-- item: ec/adc -->
0027 Converts an analog signal into a digital output.
0028 <!-- item: ec/adder -->
0029 Adds tree one-bit binary numbers, A, B, and >; A and B are the operands, and > is a bit carried in from the previous less-significant stage. The circuit produces a two-bit output, output carry and sum represented by the signals C and S, where sum = 2C + S.
0030 <!-- item: ec/ammeter -->
0031 Place this in series in the circuit to measure the current flowing.
0032 <!-- item: ec/and -->
0033 The output is high if and only if all of the inputs are high.
0034 <!-- item: ec/battery -->
0035 Provides a potential-difference.
0036 <!-- item: ec/bcd_to_seven_segment -->
0037 Converts a binary-coded-input to a form displayable by a seven segment display.<br><br>Normal operation: <i>lt</i> (Lamp Test) and the <i>rb</i> (Ripple Blanking) are held high, <i>en</i> (Enable) is held low.
0038 <!-- item: ec/bidir_led -->
0039 Bidrectional Light Emitting Diode
0040 <!-- item: ec/binary_counter -->
0041 Holds an internal count, which changes when the clock input <i>&gt;</i> pin is pulsed.<br><br>Normal operation: <i>en</i> (Enable) and <i>u/d</i> (Up/Down) are held high, <i>r</i> (Reset) is low.
0042 <!-- item: ec/buffer -->
0043 Cleans the logic input, with the output high or low depending on input trigger levels.
0044 <!-- item: ec/bus -->
0045 Merges several connections into one.
0046 <!-- item: ec/capacitor -->
0047 Stores electrical charge.<br><br>The voltage across the capacitor and capacitance are related by <i>Charge = Capacitance x Voltage</i>.
0048 <!-- item: ec/cccs -->
0049 
0050 <!-- item: ec/ccvs -->
0051 
0052 <!-- item: ec/clock_input -->
0053 A square-wave generator, outputting logical high/low at repeating time intervals.
0054 <!-- item: ec/current_source -->
0055 Provides a fixed current source.
0056 <!-- item: ec/currentprobe -->
0057 Displays the current at the probe point on the oscilloscope.
0058 <!-- item: ec/d_flipflop -->
0059 The output state is set from the input state when the clock is pulsed.
0060 <!-- item: ec/dac -->
0061 Converts a digital input to an analog output signal.
0062 <!-- item: ec/demultiplexer -->
0063 Separates the input data stream into components. The value of the input is passed to the "X" output selected by the binary number given by the "A" inputs.
0064 <!-- item: ec/diode -->
0065 Allows current to flow in the direction indicated by the arrow when a certain voltage difference has been reached.
0066 <!-- item: ec/dpdt_toggle -->
0067 Double-Pole Double-Throw switch.
0068 <!-- item: ec/dpst_toggle -->
0069 Double-Pole Single-Throw switch.
0070 <!-- item: ec/external_connection -->
0071 Point to connect the circuit to an external entity - e.g. a mechanical component or as part of a subcircuit.
0072 <!-- item: ec/fixed_voltage -->
0073 Provides a fixed voltage point to connect components to.
0074 <!-- item: ec/ground -->
0075 Ground (0V) point
0076 <!-- item: ec/inductor -->
0077 
0078 <!-- item: ec/inverter -->
0079 The output is the logical inverse of the logic-input state.
0080 <!-- item: ec/jk_flipflop -->
0081 The output state is set according to J and K when the clock is pulsed.
0082 <!-- item: ec/keypad -->
0083 Provides a numeric array of Push-to-Make switches, with 4 rows and a configurable number of columns.
0084 <!-- item: ec/led -->
0085 Light Emitting Diode
0086 <!-- item: ec/logic_input -->
0087 Provides a user-adjustable logic state.<br><br>Click to pulse high, or drag the mouse off to keep the output high.
0088 <!-- item: ec/logic_output -->
0089 Shows the logic-state of the input.
0090 <!-- item: ec/magnitudecomparator -->
0091 Compares two binary numbers and generates output to indicate which binary number has the greater magnitude. It has 3 cascading inputs:<ul><li>I: A &gt; B</li><li>I: A &lt; B</li><li>I: A = B</li></ul>and 3 outputs:<ul><li>O: A &gt; B</li><li>O: A &lt; B</li><li>O: A = B</li></ul>
0092 <!-- item: ec/matrix_display -->
0093 A matrix display of LEDs with a configurable number of columns and rows.
0094 <!-- item: ec/matrix_display_driver -->
0095 
0096 <!-- item: ec/multiplexer -->
0097 Combines the input data stream into one single stream. The value of the input selected by the "A" inputs is passed to the output.
0098 <!-- item: ec/nand -->
0099 The output is low only when all of the inputs are high.
0100 <!-- item: ec/nemosfet -->
0101 
0102 <!-- item: ec/njfet -->
0103 
0104 <!-- item: ec/nor -->
0105 The output is high when all inputs are low.
0106 <!-- item: ec/npnbjt -->
0107 
0108 <!-- item: ec/opamp -->
0109 <html><head><meta name="qrichtext" content="1" /></head><body>
0110 <p align="justify">An <span style="font-weight:600">operational amplifier</span> (opamp) is an integrated universal amplifier which's behaviour can simply be configured by external components. Those high flexibility is achieved due to its high open loop gain <span style="font-style:italic">A</span><span style="vertical-align:sub">0</span> which amplifies the difference of the input potentials. The <a href="ktechlab-help:///transferfunction">transfer function</a> is:</p>
0111 <p align="center"><img src=opamp.png ></p>
0112 <p align="center"><img src=tf_op.png ></p>
0113 <p align="justify">The open loop gain <span style="font-style:italic">A</span><span style="vertical-align:sub">0</span> is the value of the <a href="ktechlab-help:///complex">complex</a> gain <span style="font-style:italic;text-decoration:underline">A</span> in case of f = 0Hz (d.c. voltage) and is ideally infinite, in praxis depending on type 10<span style="vertical-align:super">5</span> to 10<span style="vertical-align:super">7</span>.</p>
0114 <p align="justify">The required behavior is achieved by <a href="ktechlab-help:///feedback">feedback</a> of output to the input using discrete components. This way a <a href="ktechlab-help:///controlloop">control loop</a> is closed, which should eliminate control deviation, thus the input voltage U<span style="vertical-align:sub">E </span> here. From this it follows that, except for few exceptions, both inputs of a working opamp circuit must have equal <a href="ktechlab-help:///potential">potential</a>. This realization is very useful for calculation and error diagnostics!</p>
0115 <p align="justify">In most cases opamps can assumed to be ideal and <a href="ktechlab-help:///linear">linear</a> in operating range:</p>
0116 <ul type="disc"><li><span style="font-style:italic">A = A</span><span style="vertical-align:sub">0</span> = &#8734;</li>
0117 <li>R<span style="vertical-align:sub">E+ </span>= R<span style="vertical-align:sub">E- </span>= &#8734;&#937;</li>
0118 <li>R<span style="vertical-align:sub">A</span> = 0&#937;</li></ul>
0119 <p align="justify">Characteristics of real opamps are listened in its <a href="ktechlab-help:///datasheet">datasheet</a>.</p>
0120 <p><span style="font-weight:600">Applications:</span></p>
0121 <ul type="disc"><li><a href="ktechlab-example:///opamps/inverting-amplifier.circuit">Inverting amplifier</a>    </li>
0122 <li><a href="ktechlab-example:///opamps/noninverting-amplifier.circuit">Noninverting amplifier</a>    </li>
0123 <li><a href="ktechlab-example:///opamps/decoupler.circuit">Decoupler</a>    </li>
0124 <li><a href="ktechlab-example:///opamps/instrumentation-amplifier.circuit">Instrumentation amplifier</a>    </li>
0125 <li><a href="ktechlab-example:///opamps/pid_controller.circuit">PID controller</a>    </li>
0126 <li><a href="ktechlab-example:///opamps/analog-computer.circuit">Analog computer</a>    </li>
0127 <li><a href="ktechlab-example:///opamps/active-filter.circuit">Active filter</a>    </li>
0128 <li><a href="ktechlab-example:///opamps/comparator.circuit">Comparator</a>    </li>
0129 <li><a href="ktechlab-example:///opamps/schmitt-trigger">Schmitt-Trigger</a></li></ul>
0130 </body></html>
0131 <!-- item: ec/or -->
0132 The output is high when at least one of the inputs is high; or low when all of the inputs are off
0133 <!-- item: ec/parallel_port -->
0134 The pins are divided into 3 registers.<br><br><b>Data Pins</b><br><br>The data pins can be configured as either all input or all output. They are:<ul><li><b>D<i>[0..7]</i></b></li></ul><br><b>Status Pins</b><br><br>The status pins are read-only. They are:<ul><li><b>ERR</b> - Error</li><li><b>ON</b> - Online</li><li><b>PE</b> - Paper End</li><li><b>ACK</b> - Acknowledge</li><li><b>BUSY</b> - Busy</li></ul><br><b>Control Pins</b><ul><li><b>STR</b> - Strobe</li><li><b>AUT</b> - Auto Feed</li><li><b>INIT</b> - Init</li><li><b>SEL</b> - Select</li></ul><br>The remaining pins are all ground.
0135 <!-- item: ec/pemosfet -->
0136 
0137 <!-- item: ec/pic -->
0138 The PIC component allows the simulation of a PIC program.<br><br>The loadable PIC program must be one of the following formats:<ul><li>Assembly (.asm)</li><li>FlowCode (.flowcode)</li><li>Symbol file (.cod)</li><li>Microbe (.microbe, .basic)</li><li>C source (.c)</li></ul>Double-click on the PIC component to open up the program source file.<br><br>If the program source file is of type assembly, then the opened text file will automatically be linked to the simulation. You can control the program from the text document using the debug controls.<br><br>Explanation of buttons:<ul><li>Play - Run the PIC program from the point at which it was paused, or from the start otherwise.</li><li>Pause - Pause the simulation at the current execution point.</li><li>Stop - Reset all parts of the simulation.</li><li>Reload - Reread the PIC program from disk and restart gpsim.</li></ul>
0139 <!-- item: ec/pjfet -->
0140 
0141 <!-- item: ec/pnpbjt -->
0142 
0143 <!-- item: ec/potentiometer -->
0144 Consists of a resistor connected to the end pins, with a central pin connected at an adjustable point along the resistor
0145 <!-- item: ec/probe -->
0146 Connect this probe the point in the circuit to measure the logic value. The output will be displayed in the Oscilloscope view.
0147 <!-- item: ec/ptb_switch -->
0148 
0149 <!-- item: ec/ptm_switch -->
0150 
0151 <!-- item: ec/ram -->
0152 This RAM stores data as a collection of words; each of which contains <i>word size</i> bits of data.<br><br>To read data, set the CS (<i>chip select</i>) and the OE (<i>output enable</i>) pins high, and select the word using the address pins <i>A*</i>. The word is outputted on the data-out pins: <i>DO*</i>.<br><br>To write data, set the CS (<i>chip select</i>) and the WE (<i>write enable</i>) pins high, and select the address to write to with the <i>A*</i> pins. Write to the selected word using the data-in pins: <i>DI*</i>.<br><br>The <i>Address Size</i> is the number of bits that determine an address; so the total number of words stored will be 2^<sup><i>Address Size</i></sup>.
0153 <!-- item: ec/resistor -->
0154 <html><head><meta name="qrichtext" content="1" /></head><body>
0155 <p align="justify">A <span style="font-weight:600">resistor</span> limits flow of current, obeying Ohms Law which says, that current and voltage are proportional each other. By define proportional coefficient to 1 we get the unit:</p>
0156 <p align="center"><img src=ohm.png ></p>
0157 <p align="center"><img src=ohm_unit.png ></p>
0158 <p align="justify">Thus this value is a measure how worse a resistor conduct the current. In practice an other measure has established how good current is conducted. For this purpose the reciprocal is generated an a new dimension, the <span style="font-style:italic">susceptance</span> is introduced:</p>
0159 <p align="center"><img src=siemens.png ></p>
0160 <p align="center"><img src=siemens_unit.png ></p>
0161 <p align="justify">For better understanding it is always a good idea to illustrate the practical meaning of such formulas by explaining them in words. That is very easy here:</p>
0162 <p align="justify">&quot;A resistor then has a value of 1 Ohm, if an applied voltage of 1 Volt causes a current of 1 Ampere.&quot;</p>
0163 <p><span style="font-weight:600">Examples:</span></p>
0164 <ul type="disc"><li><a href="ktechlab-example:///basic/resistors-series.circuit">Series connection</a></li>
0165 <li><a href="ktechlab-example:///basic/resistors-parallel.circuit">Parallel connection</a></li></ul>
0166 </body></html>
0167 <!-- item: ec/resistordip -->
0168 Set of resistors with identical values in a Dual Inline Package.
0169 <!-- item: ec/roto_switch -->
0170 Rotary Switch
0171 <!-- item: ec/serial_port -->
0172 Interface to a serial port. The pins are:<br><ul><li><b>CD</b> - Carrier Detect (control; output)</li><li><b>RD</b> - Received Data (data; output)</li><li><b>TD</b> - Transmitted Data (data; input)</li><li><b>DTR</b> - Data Terminal Ready (control; input)</li><li><b>GND</b> - Signal Ground (ground)</li><li><b>DSR</b> - Data Set Ready (control; input)</li><li><b>RTS</b> - Request to Send (control; input)</li><li><b>CTS</b> - Clear to Send (control; output)</li><li><b>RI</b> - Ring Indicator (control; output)</li></ul>
0173 <!-- item: ec/seven_segment -->
0174 A seven segment display with a decimal point. This can be configured to either have a common cathode or a common anode.
0175 <!-- item: ec/signal_lamp -->
0176 A simple filament signal lamp, with a 100 ohms series resistance.
0177 <!-- item: ec/spdt_toggle -->
0178 Single-Pole Double-Throw switch.
0179 <!-- item: ec/spst_toggle -->
0180 Single-Pole Single-Throw switch.
0181 <!-- item: ec/sr_flipflop -->
0182 The output is made high by holding <i>set</i> high, and low by holding <i>reset</i> high.
0183 <!-- item: ec/subcircuit -->
0184 
0185 <!-- item: ec/variablecapacitor -->
0186 Stores electrical charge.<br><br>The voltage across the capacitor and capacitance are related by <i>Charge = Capacitance x Voltage</i>.
0187 <!-- item: ec/variableresistor -->
0188 Limits the flow of current, obeying Ohms Law
0189 <!-- item: ec/vccs -->
0190 
0191 <!-- item: ec/vcvs -->
0192 
0193 <!-- item: ec/voltage_signal -->
0194 Provides a variety of voltage signals.
0195 <!-- item: ec/voltageprobe -->
0196 Displays the voltage at the probe point on the oscilloscope.
0197 <!-- item: ec/voltmeter -->
0198 Place this in parallel in the circuit to measure the voltage between two points.
0199 <!-- item: ec/xnor -->
0200 Exclusive NOR gate. Output is low when exactly one input is high.
0201 <!-- item: ec/xor -->
0202 Exclusive OR gate. Output is high when exactly one input is high.
0203 <!-- item: feedback -->
0204 <html><head><meta name="qrichtext" content="1" /></head><body>
0205 <p>This help item does not yet exist for the American English language. Help out with KTechlab by creating one via the &quot;Edit&quot; button!</p>
0206 </body></html>
0207 <!-- item: flow/callsub -->
0208 Call a subroutine. When the subroutine returns, the code will continue execution from this point.
0209 <!-- item: flow/delay -->
0210 Delay the program execution for a fixed period of time.
0211 <!-- item: flow/embed -->
0212 Double-click on the item to edit the embedded code.
0213 <!-- item: flow/end -->
0214 End the program execution, putting the IC into sleep. Unlike Start, however, this FlowPart is not necessary for proper program execution
0215 <!-- item: flow/forloop -->
0216 The code contained in the for loop is repeatedly executed. By default, the variable used will be incremented every time. This can be changed by entering a value other than 1 into Step.<br><br>The for loop will exit when the value contained in the variable is equal to the end value.
0217 <!-- item: flow/keypad -->
0218 Gets a key from a keypad connected to the PIC.
0219 <!-- item: flow/readport -->
0220 Assign the value of a port to a variable.
0221 <!-- item: flow/repeat -->
0222 Repeatedly execute code, until the given condition is false. The condition is checked after the code has been executed.<br><br>This is different from "While", which checks for the condition to be true before the code is executed.
0223 <!-- item: flow/setpin -->
0224 Set a pin on a port high or low. The pin needs to be set as an output pin.
0225 <!-- item: flow/sevenseg -->
0226 Output to a Seven Segment display.
0227 <!-- item: flow/start -->
0228 Determines the initial program execution point.
0229 <!-- item: flow/sub -->
0230 Defines the starting point of a subroutine. Call this subroutine using "Call Sub"
0231 <!-- item: flow/testpin -->
0232 Conditional branch point, depending on the high/low state of a pin.
0233 <!-- item: flow/unary -->
0234 A unary operation involves only one variable. Supported operations are:<br><ul><li><b>Rotate Left</b> rotates the binary bits of the variable left (discarding the end bits).</li><li><b>Rotate Right</b> rotates the binary bits right (discarding the start bits).</li><li><b>Increment</b> increases the value of the variable by 1. A value of 255 wraps around to 0.</li><li><b>Decrement</b> decreases the value of a variable by 1. A value of 0 wraps around to 255.</li></ul>
0235 <!-- item: flow/varassignment -->
0236 Assigns the evaluation of an expression to a variable. The expression can take many forms. For example:<ul><li><b>x = 2</b></li><li><b>x = y + 3</b></li><li><b>x = y + z</b></li><li><b>x = 2 * y</b></ul>
0237 <!-- item: flow/varcomparison -->
0238 Conditional branch point, depending on the comparison of two values. The supported comparisons are:<ul><li><b>x == y</b> - Equality: true if x has the same value as y.</li><li><b>x &lt; y</b> - Less than: true if x is smaller than y.</li><li><b>x &gt; y</b> - Greater than: true if x is bigger than y.</li><li><b>x &lt;= y</b> - Less than or equal: true if x is less than or equal to y.</li><li><b>x &gt;= y</b> - Greater than or equal: true if x is greater than or equal to y.</li><li><b>x != y</b> - Does not equal: true if x does not have the same value as y.</li></ul>
0239 <!-- item: flow/while -->
0240 Repeatedly execute code, until the given condition is false. The condition is checked before the code has been executed.<br><br>This is different from "Repeat", which checks for the condition to be true after the code is executed.
0241 <!-- item: flow/writeport -->
0242 Sets the port's pins state to high/low from the given value. Only pins that have been configured as output pins will take on the value assigned to them.
0243 <!-- item: linear -->
0244 <html><head><meta name="qrichtext" content="1" /></head><body>
0245 <p>This help item does not yet exist for the American English language. Help out with KTechlab by creating one via the &quot;Edit&quot; button!</p>
0246 </body></html>
0247 <!-- item: storage -->
0248 <html><head><meta name="qrichtext" content="1" /></head><body>
0249 <p><span style="font-weight:600">Storage elements</span> here are elements with the possibility to store electric or mechanic energy and to give it back later.</p>
0250 <p>In electrotechnology this are:</p>
0251 <ul type="disc"><li>Capacitor</li>
0252 <li>Inductor</li></ul>
0253 <p>And in the mechanics:</p>
0254 <ul type="disc"><li>Mass</li>
0255 <li>Spring</li></ul>
0256 </body></html>
0257 <!-- item: transferfunction -->
0258 <html><head><meta name="qrichtext" content="1" /></head><body>
0259 <p align="justify">A <span style="font-weight:600">transfer-function</span> is a mathematical model of a system. Generally it is given by the division of the resulting output signal to an adequate input signal. By multiplicating this transfer function with any input signal, the input information disappears and we get the output signal.</p>
0260 <p align="justify">In the simplest case of a <a href="ktechlab-help:///linear">linear</a> <a href="ktechlab-help:///system">SISO system</a> without <a href="ktechlab-help:///storage">storage elements</a> the transfer function reduces to a scalar gain. Here any input signal is practical because system behavior is independent from it.</p>
0261 <p align="justify">By adding storage elements the scalar gain becomes a <a href="ktechlab-help:///complex">complex</a> gain in frequency domain. This includes information about frequency dependent gain and phase shift in static (i.e. steady state) case. In order to describe dynamic (i.e. transient) behavior as well we use the transfer function in complex variable domain which also contains information about damping procedure. The adequate input signal here is a dirac impulse which consist of superposition of <span style="font-style:italic">all</span> frequencies in equal amplitude and thus can worm all needed information out of the system.</p>
0262 <p align="justify">This realization also has very practical meaning, by the way. Given that in practice a shot looks like a dirac impulse in spectrum we can fire a gun in a cathedral for example and record the echo. Now we have the transfer function of the cathedral. When <a href="ktechlab-help:///convolution">convolve</a> this with any audio recording it will sound like played in the cathedral.</p>
0263 </body></html>