Monday, September 30, 2013

choosing-components-for-the-power-control-conditioning-monitoring-module

Find the following types of components
  • Fixed Regulators
  • Adjustable Regulators
  • Low cost sensing for current/voltage
Recall the following design goals:
  • Swappable components with easy to solder packages.
  • Low cost.
  • Fixed regulators should have high PSRR
  • Adjustable regulators should be able to crank some current
  • Sensing should be low cost and we need two of them

Friday, September 27, 2013

revisiting-the-currentfan-module



  • Rework the circuit to allow for lower power output so we don’t need a heatsink

choosing-components-for-the-currentfan-driver-module

Find the following types of components
  • Digital to analog converter (DAC)
  • Power and Mode MOSFET
  • PWM MOSFET
  • Sense Resistor
  • PTC Thermistor
Recall the following design goals:
  • Swappable components with easy to solder packages.
  • Low cost.
  • SPI DAC part with 8- 10 bits.
  • MOSFET capable of carrying half an amp in a surface mount package.
  • Moderately accurate sense resistor.

Thursday, September 26, 2013

Approaching Thermocouples

I want to convert the electrical output of a thermocouple to a unitized digital temperature value stored in an Arduino's memory.

Thermocouples:

  1. Produce small signals (~41 microvolts per C  delta temperature)
  2. Do not produce an absolute temperature but instead a voltage (current?)  between junctions of dissimilar metals
  3. The produced voltage is not linearly related to the delta temperature.
  4. The currents produced are very small so the measurement system must have high impedance since  we  will be measuring voltage (not current) we don't want to load it down. We want to look a the potential developed across a break in the current loop, physically located at the cold junction.
Common approaches:

  1. Use an digital "all in one" single chip solution that deals with  all of the  physical characteristics of a thermocouple and produces a digital output signal.
  2. Use an analog "all in one" single chip solution that produces a high level low impedance analog output. 
  3. Use a precision instrumentation amplifier with high input impedance, and low offset voltage , An AtoD converter with an abundance of bits (so we don't need so much gain in the InAmp and handle cold junction compensation linearization and unit conversion with  semiconductor temperature sensor  and software running on a microcontroller. 
  4. Use the crappiest analog components possible, the least precise,cheapest AtoD converter possible, use the worst, cheapest cold junction sensor  possible. Layout the board for thermal stability and low noise and leakage, design in good thermal contact between the crappy temperature reference and the cold junction. Choose terminal blocks (metallic composition?), trace widths and thicknesses for thermocouple measurement. Add a terminal block "cozy" to enclose the cold junction terminal and temperature reference to get the cold junction terminal temperature closer to the cold junction sensor measurement.  And still produce  a temperature measurement with the  required accuracy and precision and low cost.
Approaches 1 and 2 are constrained to just a single type of thermocouple, since they are hardwired for a particular type.
Approaches 3 and 4 depend on software to convert raw digital measurements to temperature units for any type of thermocouple.

Any of the approaches can have an analog multiplexer added to measure more thermocouples (sequentially)  reducing  measurement rate and the cost per measurement.

We would like to be able to detect faults in the measurement, such as opens and shorts. (some of the all in one solutions have this feature built in)

Questions:
  1. Approaches 1 and 2 are uninteresting (except for the PCB thermal design aspects) so they have no questions
  2. How to get low offset voltage and high input impedance with approach 3
  3. How to get low offset voltage and high input impedance with approach 4
  4. How to model the system to determine how good each block must be in approach 3?
  5. How to model the system to determine how crappy each block can be in approach 4?
  6. How to test that the measurement system meets the design goal once it's built?







Structure of KiCad

I've been having trouble understanding the vocabulary and relationships between parts of KiCad. 
What are these and how do they interact resulting in design files ready for manufacturing?

Or, using KiCad to go from "screen to stuff"

Frequently used  KiCad words.
  • schematic
    • an diagram of an abstract circuit.
    • a circuit diagram
    • stored by eeschema in a .sch file
    • contains symbols?
    • contains or makes use of a net or netlist?
    • makes use of components? component libraries?
    • never makes use of a module or footprint?
  • module
    • possibly an alias for a footprint
    • I often see descriptions such as "add a module to KiCad"
    • Libraries of modules are stored in .mod files
  • component
    • possibly an alias for symbol
    • I often see descriptions such as "add a component to KiCad"
    • Components have pins which in turn have names
    • Libraries of components are stored in .lib files
  • net
  • net name
  • netlist
  • symbol
    • possibly an alias for component
  • library
    • I often see descriptions such as "add a library to KiCad"
    • A library that contains "components" is stored in a .lib file
    • A library that contains "modules" (aka footprints) is stored in a .mod file
  • footprint
    • possibly an alias for a module
    • a footprint has pads
    • pads have netnames
  • project
  • port, power port
  • pin
    • an attribute of a component
    • pins have  a name
  • pad
    • footprints have pads, pads have names
  • Legend
    • text block in the lower right of a "page" on a schematic (eeschema) or PCB (pcbnew)
  • Design Rule, Design Rule Check(ing)
  • Component Library Editor
    • does this edit libraries or components?
  • Module Editor
    • edit footprints?
    • libraries of footprints?


Files used or generated by KiCad.
  • .sch
    • possibly created with eeSchema
  • .pro
  • .svg
  • .pro
    • defines connections between a the various files that make up a  "project"
  • .kicad_pcb
  • .brd
  • .net 
    • contains,among other things, a "netlist" 
These must correspond to some of the common KiCad words and to each other.

Software Executables
Here's what I find under Linux and what I think their inputs and outputs are:

  • /usr/local/bin/pcbnew (10.6 MB)
  • /usr/local/bin/bitmap2component (1.6 MB)
  • /usr/local/bin/eeschema (4.8 MB)
    • .sch and .net files
  • /usr/local/bin/gerbview (2.0 MB)
  • /usr/local/bin/cvpcb (5.8 MB)
    • .cmp files
  • /usr/local/bin/pcb_calculator (1.6 MB)
    • A calculator, may not read or write files
  • /usr/local/bin/kicad (1.1 MB)
    •  Seems to be a "launcher for the others"

KiCad workflow.
  What to run, in sequence, creating which intermediate results to go from idea to PCB ?




component = a symbol of a part in the schematic viewer
footprint = Module = a physical part (eg. chip) in the PCB layout editor
netlist = basically a file (*.net) that lists all connections from each component's pin to another one. Used to connect schematic and board together plus a component/footprint association file (*.cmp)

Monday, September 23, 2013

understanding-the-arduino-module

  • Create a schematic symbol for the Arduino
  • Create a block diagram for the Arduino module.

understanding-the-led-driver-module

  • Find a component to use for the LED module (earlier than usual)
  • Utilize the block diagram on the component datasheet.