Electrical Engineering Crossword (Issue 314)

314 crosswordAcross

  1. CBAR—0.01 bar
  2. ATTO—0.000000000000000001
  3. KRYPTON—Atomic number 36; Kr
  4. ZENER—Solid-state diode for regulating power supply voltage
  5. TRIANGLE—Area = (b × h)/2
  6. DIRECT—Direct Unidirectional current
  7. TRAPEZOID—Area = (b1 + b2) × h/2
  8. COLUMN—Vertical array
  9. TERA—10 to the 12th
  10. KALMANFILTERING—Linear quadratic estimation [2 words]


  1. GAUSSIAN—Normal distribution
  2. POWER—A type of transformer that feeds a power supply by drawing energy from an AC line
  3. NIBBLE—4 bits
  4. TELECINE—Converts film images into video signals
  5. HERTZ—Current name for cycles per second (cps)
  6. PASCAL—What did Niklaus Wirth design?
  8. COULOMB—F = k[(q1 × q2)/r2]
  9. CANDELA—Luminous intensity
  10. RAIL—Portion of a power supply that has the highest voltage and/or current delivery capability.

Electrical Engineering Crossword (Issue 313)

313 crosswordAcross

  1. POPULATE—Install, place, solder
  2. WORM—Write once, read many
  3. NIBBLE—4 bits
  4. NORDSIECK—Differential analyzer, 1950
  5. POSITIVE—P-type
  6. SUBBASS—Below 60 Hz
  7. COSMICCUBE—Famous parallel computer developed at Caltech in 1981
  8. TRANSIENT—Brief current or voltage variation


  1. CHOKE—An inductor that bocks AC and passes DC
  2. ALNICO—Aluminum-nickel-cobalt compound
  3. FORCE—M × A
  4. BITERROR—Loss of a single bit [two words]
  5. SIEMENS—German inventor (1816-1892); telgraphy; conductance
  6. ADMITTANCE—The inverse of impedance; Y
  7. SHANNON—Information theory; “A Mathematical Theory of Communication”
  8. DIPOLE—Transmitting or receiving device with a bidriectional polar pattern
  9. YAGI—Directional antenna invented in 1926
  10. STABLE—Free from fluctuation or rapid change
  11. UNITY—Gain of 1
  12. PENN—ENIAC 1946

Electrical Engineering Crossword (Issue 312)

312 crosswordAcross

  1. RECTIFIER—Diode that converts AC to DC
  2. EXA—1000sup6
  3. BD—Baud
  4. PORT—Plug, socket
  5. EULER—Wrote Institutionum calculi integralis (circa 1770)
  6. PLESIOCHRONOUS—Close but not completely in sync
  7. PASCAL—Pa
  8. DIN—German Industrial Standards
  9. PHOTOEMISSION—The generation of electrons when lights hits a material


  1. VAPORWARE—Products advertised but unavailable
  2. CYLINDER—Its volume is pi × rsuper2 × h
  3. TRINOMIAL—A three-term polynomial
  4. TRANSISTOR—Shockley, Brattain, and Bardeen
  5. SCHEMATIC—Electronic wiring diagram, complete with component symbols and units
  6. ATTO—1000sup–6
  7. SILICON—Used in solid-state devices
  8. LADDER—Type of passive filter
  9. SINE—Trig function describing phases of rotation
  10. DRIVE—Linkage between a motor and its load
  11. ROM—Nonvolatile data that you can access but not erase

Issue 314: EQ Answers

Answer 1—Intersymbol interference is created by nonlinearities in the phase/frequency response of the RF channel. These irregularities are generally proportional to the carrier frequency — for example, if a channel centered at 1 MHz has a quality factor (Q) of 50, it will have a 3-dB bandwidth of 20 kHz. But a similar channel centered at 100 MHz will have a bandwidth of 2 MHz.

If you need a bandwidth of 20 kHz for your signal, the 100-MHz channel will have a flatter response over any 20 kHz segment than the 1-MHz channel, reducing the phase distortion.

This is just one way of thinking about it. In reality, there are many factors that affect the flatness of any given communication channel — and the analog circuitry used to interface to it. It’s just that in general, it’s easier to keep distortions of this type low if the bandwidth is a smaller fraction of the carrier frequency.

Answer 2—14.31818 MHz is exactly 4× the NTSC color-burst frequency. The value for the latter is 30 × 525 × 455 / 2 / 1.001 = 3.5795454… MHz. This crystal was used in computer display adapters that were used to produce signals that could be displayed on a standard NTSC color TV set.

11.0592 MHz is exactly 96× (i.e., 6 × 16) the standard UART baud rate of 115.2 kbps. It is also conveniently close to the maximum clock rate of many early Intel single-chip microcontrollers (12 MHz). This allowed systems based on them to communicate at standard baud rates without requiring a separate crystal.

6.176 MHz is exactly 4× the data rate of a digital telephony T1 subscriber line, which is 8000 × 193 = 1.544 MHz. This crystal frequency is often used in a VCXO (voltage-controlled crystal oscillator) within a PLL. This allows the terminal equipment to establish a local timebase that is synchronized to the network.

Answer 3—A solar panel has a characteristic curve that resembles that of a diode, except that in the presence of sunlight, the curve is shifted so that the panel can deliver energy to an external load.

Both of the proposed batteries will cause the panel to operate close to its maximum current, with the 1.5-V battery receiving slightly more current than the 9-V battery, and therefore greater charge (current × time).

However, the 9-V battery is getting 6× the voltage at a current that is much greater than 1/6 that of the 1.5-V battery, therefore it is receiving more power (current × voltage) and more energy (power × time).

Answer 4—An MPPT (maximum power point tracking) controller would deliver the full power of the solar panel to either battery, giving each one the same total energy. However, the 1.5-V battery would receive 6× the current and 6× the charge in the process.














Issue 312: EQ Answers

Question 1: What is the probably of a flip-flop with a uniformly-distributed asynchronous input going metastable?

Answer 1: The probably that a flip-flop with a uniformly-distributed asynchronous input will go metastable is a function of how wide its “window of opportunity” (the sum of the setup and hold times) is and the clock period. It is proportional to (and less than, because of manufacturer’s testing margins) the ratio of these two times.

Question 2: How long does it take for a flip-flop in a metastable state to resolve itself?

Answer 2: There is no definite time for a flip-flop to resolve a metastable state. All we can say is that there is some probability that it will remain metastable after a given amount of time has passed. This is usually a rapidly-decaying exponential funciton. The scale factor, or time constant associated with this function is determined by factors such as the internal gain of the flip-flop and the speed of the active devices used in its implementation.

Question 3: Why does putting multiple flip-flops in series reduce the probability of having a metastable output at the output?

Answer 3: When two flip-flops are placed in series, the probability of the second one going metastable is the product of two factors: the probabiliy of the first one going metastable in the first place, and the probability of that metastable state lasting exactly as long as the clock period. Both of these factors are much less than unity, so their product is even lower still.

A third flip-flop is sometimes used, which reduces the chances of metastability to infinitesimal levels.

Question 4: Under what conditions will a metastable condition propagate from one flip-flop to the next?

Answer 4: In order for the second flip-flop in a chain to go metastable, it’s input must be changing in the “window of opportunity” defined by its setup and hold times.

Note that if the first flip-flop has not yet resolved itself by the time the next clock edge comes along, the second one will not generally go metastable. This is because the circuitry of the flip-flop is always designed so that the input threshold voltage differs enough from the metastable output voltage by enough of a margin to guarantee that the second flip-flop will interpret it as a definite high or definite low.

Therefore, the only way that the second flip-flop can go metastable is if the first one’s metastable state had just started to resolve itself at the next clock edge, such that its output was passing through the second one’s input threshold at that moment.

Contributor: David Tweed

Issue 310: EQ Answers

Answer 1: UDP packets are subject to the following problems. Packets may be lost. Packets may experience variable delays. Packets may arrive in a different order from the order they were transmitted.

UDP gives the application the ability to detect and deal with these issues without experiencing the overhead and arbitrarily large delays associated with TCP.

Since UDP packets can get lost or arrive out of order, you include a sequence number in the packet so that the receiving side can detect either of these occurrances.

The packets also experience random delays over some range that is generally bounded. Therefore, you use a FIFO buffer (or “elastic store”) on the receive side to hide the packet arrival “jitter”. You try to keep the amount data in this buffer that corresponds to the average packet delay, plus a safety margin. If this FIFO ever “runs dry”, you might need to set the (re-)starting threshold to a higher value. Packets that arrive extremely late are treated the same as lost packets.

Answer 2: Any difference between the transmit and receive sample clocks means that the average amount of data in the receive-side FIFO will start to trend upward or downward over time. If the FIFO depth is increasing, it is necessary to increase the output audio sample rate slightly to match. Similarly, if it is decreasing, it is necessary to decrease the sample rate. These adjustments will cause the long-term average sample rate of the receiver to match that of the transmitter exactly.

Answer 3: You can effectively do both the multiplication and the division one addition and one subtraction at a time, by keeping track of the milliseconds right inside the ISR, rather than (or in addition to) simply counting the raw ticks:

/* microseconds can be a 16-bit integer */

microseconds += microsecondsPerTick;

while (microseconds >= 1000) {

microseconds -= 1000;


Answer 4: I2C clock “stretching” refers to the mechanism by which a slave device holds SCL low *after* the master has driven it low, in order to prevent it from going high again before the slave is ready to process the next data bit.

If the master is waiting for more data from, say, a host CPU, it simply won’t drive SCL low in the first place — it’ll simply leave SCL high until the next data transfer can start. There’s no reason for the master to hold SCL low for an extended period of time.

The one exception would be during the arbitration phase of a multi-master setup. In that case, some clock stretching will occur as a result of the various masters not being strictly in-phase as they start their transfers.


Build an Accurate Milliohm Meter

A milliohm meter is a handy benchtop tool for measuring small electrical resistance values. In this article, Mark Driedger details how to build a microcontroller-based milliohm meter that accurately measures DC resistance from 10 mΩ to 10 kΩ.

I built an Arduino-based milliohm meter that accurately measures DC resistance from 10 mΩ to 10 kΩ. I used careful design techniques to cancel many error sources rather than resort to costly components. The milliohm meter is useful for tasks such as measuring transformer and inductor winding resistance, ammeter current shunts, and resistance of PCB tracks.

The finished milliohm meter

The finished milliohm meter

Measurement Method

The milliohm meter calculates the value of the resistor under test (Rx) by measuring the voltage across it and the voltage across a series-connected, known reference resistor (Rr) when driven by a test current. The measured resistance is simply: Rx = Vx/Vr × Rr.

A technique called synchronous rectification (also known as a lock-in amplifier) is used to enhance accuracy. The direction of the test current is alternated and measurements of Vx and Vr are made synchronously with the change in direction of the test current. As we will see, this cancels a number of error sources and is easy to implement on the Arduino.

Synchronous rectification can be thought of as narrowband filter at the switching frequency, implemented using a mixer (multiplier) at the switching frequency followed by a low-pass filter at DC (averaging). Normally, the switching frequency would be high enough (say, 1 kHz) to allow AC-coupled, high-gain amplifiers to be used and to move the filter passband well away from induced 60-Hz AC line voltages. In this implementation, the relatively slow ADC conversion speed prevents us from using a high switching frequency. However, we retain many other benefits of synchronous rectification with regard to reducing measurement error and we gain accuracy improvement in other ways.


An Arduino is used to control the synchronous rectification, read voltages Vx and Vr, and then compute and display the test resistor value. The test current is derived by paralleling four I/O pins through current-limiting resistors for each of the source and sink legs.

sad dsg

The circuitry

This increases the test current to roughly 100 mA, which is still well within the 40 mA/pin and 200 mA/chip limits of the Arduino processor, and the 150 mA limit of the Pro Mini’s onboard voltage regulator. The source and sink legs are alternately driven high and low to produce the test current.

sdfg sdgf

A look inside the meter

Measurement of Vx and Vr is made with an Analog Devices ADS1115 ADC, which has two differential inputs, a programmable gain amplifier (PGA) with 16× maximum gain, and 16-bit accuracy in a very small 10 MSOP package. The device costs between $10 and $15 on a small PCB module. Series resistors and film capacitors on the analog inputs provide some overload protection and noise filtering. At the highest gain, the meter resolution is approximately 75 µΩ/bit. Each measurement consists of two cycles of synchronous rectification, with 100 samples per cycle for a total of 200 samples.

An OLED module with an I2C interface is used for the display, although other options can be substituted with corresponding code changes. The meter is powered by a 9-V battery. Battery voltage is read through one of the analog input ports. Measurements are initiated with the push of the test switch to maximize battery life and minimize self-heating errors in the reference resistor. Each measurement takes roughly 2 s. Purchased modules are used for the Arduino, ADS1115 ADC, and the 64 × 128 OLED display, making it very easy to build.


OLED for displaying data


The meter is built using purchased modules and a small piece of protoboard for the shield. The ADC and display modules are available from multiple sources, and you can use any Arduino module of your choosing. (The photos and layout are for the Pro Mini.) Keep the ADC analog input wiring short and away from the processor. Use a four-wire connection to the reference resistor. Solder the drive leads farthest from the body, and the sense leads closer. The display module is mounted on the reverse side of the protoboard. The SDA/SCL I2C connections are brought from the Arduino module to the protoboard with a short cable and connector since they are not on the regular 0.1” grid.

dsf dsf

Protoboard layout

The ADS1115 module includes the pull-ups that are needed on the I2C interface lines (SDA, SCL).  I used a six-pin GX-16-6 connector for the probes. The additional two pins were used to close the battery circuit on the ground side, turning the meter on and off when the probes are connected.

The complete article appears in Circuit Cellar 314 (September 2016).

Mark Driedger has been experimenting with tube audio and electronics for over 35 years. His earned a BSc and MSc in Electrical Engineering in his native Canada. Mark has worked in the telecom industry for the past 28 years in various technical, business, and executive roles. He is currently COO for Procera Networks and lives in Dallas, TX.

ZULU2 Radio Module

RF Solutions recently released its ZULU2 radio module range. Featuring a telemetry module, modem module, and a firmware-free module, the new range’s functionality is on par with its predecessor, with the advantage that no external components are required to provide a complete RF solution. RF Solutions ZULU2The new range includes:

  • ZULU2-M: A highly integrated RF modem and intelligent controller with a simple interface to the host controller. It handles all RF data communications automatically and without any requirement from the user.
  • ZULU2-T: Telemetry module providing a reliable transceiver based remote switch with up to 2km range. Each unit is supplied ready to operate, once paired with another, a remote control system is created.
  • ZULU2: A hardware platform module containing a SiLabs RF Transceiver and Processor allowing the user to programme the device to suit their own requirements. With no firmware supplied by RF Solutions, this would appeal to somebody with a confident programming ability.

The 25 mm × 11 mm smart modules can achieve a range of 2 km. License-free and operating on the 868- or 915-MHz frequency bands, the ZULU-2 range is available in surface-mount and dual-inline options, making it a good option for applications such as remote control, security, and data logging.

Source: RF Solutions

CMX7241/CMX7341 PMR Common Platform Processor Expands Support

CML Microcircuits recently expanded the Function Image suite of its CMX7241/CMX7341 PMR Common Platform Processors. Today, all major PMR systems are supported: DMR, dPMR, NXDN, ARIB STD-T102, ARIB STD-T98, and legacy analog PMR—all with automatic digital/analog detection. The CMX7241/CMX7341 PMR Common Platform Processors now enable engineers to build a single platform radio that supports a vairety of different PMR standards.CML CMX7241

With an embedded audio codec (ADC/DAC), the devices provide a complete baseband solution with a flexible interface to support both software and hardware implementations of the AMBE+2 Vocoder. The processors can deliver FDMA digital PMR/LMR, two-slot TDMA digital PMR/LMR, and legacy analog PMR/LMR. Based on CML Microcircuits’s FirmASIC technology, a Function Image is uploaded into the device to determine the overall functions and operating characteristics.

The PMR chipset comprises a low-power RF Direct Conversion Receiver (DCRx) IC (CMX994A/E) and a PMR Common Platform Processor (CMX7341) with DMR/dPMR/NXDN/ARIB STD-T102/ARIB STD-T98 Air Interface coding and analog PMR embedded within Function Images. The CMX994A/E and CMX7341 chipset enables engineers to quickly develop a highly integrated, cost-effective radio with a low-risk development route.

Source: CML Microcircuits

New Radar Demonstration Kits

Pasternack recently introduced the its new PEM11000-KIT and PEM11002-KIT radar demonstration kits. Covering the 2.4-GHz industrial, scientific, and medical (ISM) band, the demo kits are excellent resources for studying radar fundamentals (e.g., object detection, motion detection, and object range) and R&D projects. Pasternack-Radar-Demo-Kit-SQYou can select experimental radar operating modes for CW, FMSW, or Doppler, and you can set output waveforms for single tone, frequency ramp, or sawtooth. The kit—for which no special licensing is required—features a radar board with an integrated speaker and a signal indicator to support A/V feedback of the received signal strength. A tunable signal filter enables you to design and implement customized passive or active filtering.

The PEM11002-KIT model features a radar board, antennas, cables, and accessories that include a mounting plate, tripod, and USB battery pack. It comes with a user guide, programming manual, and lesson guide.

The new PEM11000-KIT and PEM11002-KIT radar demonstration kits are in stock.  The PEM11000-KIT starts at $2,399. The PEM11002-KIT starts at $2,613.

Source: Pasternack Enterprises

September Schematic Challenge (Sponsor: Technologic Sysetms)

Can you spot the error in this month’s schematic challenge (sponsored by Technologic Systems)? This your chance to put your technical skills to test. Find the error in the schematic for a shot to win prizes, such as a TS-7250-V2 High-Performance Embedded Computer or a Circuit Cellar Digital Subscription.

Click to enlarge. Find the error and submit your answer via the online submission form.

Click to enlarge. Find the error and submit your answer via the online submission form.

Take the challenge now!

September Code Challenge (Sponsor: Programming Research)

Ready to put your programming skills to the test? Take the new Electrical Engineering Challenge (sponsored by Programming Research). Find the error in the code for a shot to win prizes, such as an Amazon Gift Card, a Circuit Cellar magazine digital subscription, or a discount to the Circuit Cellar webshop.

The following program will compile with no errors. It will crash when run. This is an example of working with link lists. The output should be:

LinkedList : 4321

LinkedList in reverse order : 1234

Click to enlarge. Find the error and submit your answer via the online submission form below. Submission deadline: 2 PM EST, September 20.

Click to enlarge. Find the error and submit your answer via the online submission form below. Submission deadline: 2 PM EST, September 20.

Take the challenge now!