From: Dan White Date: Sun, 5 Feb 2012 00:05:29 +0000 (-0600) Subject: wip X-Git-Tag: calibrations~278 X-Git-Url: http://git.whiteaudio.com/gitweb/?a=commitdiff_plain;h=096efdeccfcb2678625844b2ffd6ea81a8c55b6e;p=430.git wip --- diff --git a/data/MCP654x.pdf b/data/MCP654x.pdf new file mode 100644 index 0000000..9bdba1a Binary files /dev/null and b/data/MCP654x.pdf differ diff --git a/sch-pcb/devboard/atoi-3.sch b/sch-pcb/devboard/atoi-3.sch index 62d794e..9eec38a 100644 --- a/sch-pcb/devboard/atoi-3.sch +++ b/sch-pcb/devboard/atoi-3.sch @@ -10,26 +10,26 @@ auth=DJW T 49900 40900 5 8 1 1 0 0 1 fname=$Id: $ T 49900 41300 5 14 1 1 0 0 1 -title=AtoI - Bare OTA +title=AtoI - Bare OTA, HFXT fixup T 50600 40300 5 10 1 1 0 6 1 pagenum=3 T 52100 40300 5 10 1 1 0 6 1 pageof=?? } C 40400 49700 1 0 0 flag.sym -N 43000 49800 40500 49800 4 +N 43000 49800 40300 49800 4 { -T 41100 49800 5 10 1 1 0 0 1 +T 40600 49800 5 10 1 1 0 0 1 netname=INA } -N 43000 49400 40500 49400 4 +N 43000 49400 40300 49400 4 { -T 41100 49400 5 10 1 1 0 0 1 +T 40600 49400 5 10 1 1 0 0 1 netname=INB } -N 43000 49000 40500 49000 4 +N 43000 49000 40300 49000 4 { -T 41100 49000 5 10 1 1 0 0 1 +T 40600 49000 5 10 1 1 0 0 1 netname=CMI } C 40400 49300 1 0 0 flag.sym @@ -228,3 +228,254 @@ value=NoConnection T 50200 52800 5 10 0 0 0 0 1 device=DRC_Directive } +C 52600 44100 1 0 0 74AHC1G125-1.sym +{ +T 53200 45000 5 10 0 0 0 0 1 +device=74125 +T 53200 44800 5 10 1 1 0 0 1 +refdes=U303 +T 53200 45600 5 10 0 0 0 0 1 +footprint=SC74 +T 53200 45200 5 10 0 0 0 0 1 +value=74AHC1G125GV +} +C 50400 42400 1 0 0 capacitor-3.sym +{ +T 50400 43400 5 10 0 0 0 0 1 +device=CAPACITOR +T 50700 43000 5 10 1 1 0 0 1 +refdes=C302 +T 50400 43600 5 10 0 0 0 0 1 +symversion=0.1 +T 50700 42600 5 10 1 1 0 0 1 +value=1n +} +C 43300 46100 1 0 0 resistor-1.sym +{ +T 43600 46500 5 10 0 0 0 0 1 +device=RESISTOR +T 43300 46400 5 10 1 1 0 0 1 +refdes=R301 +T 43900 46400 5 10 1 1 0 0 1 +value=100k +} +C 45400 44800 1 0 0 resistor-3.sym +{ +T 45500 45800 5 10 0 0 0 0 1 +device=RESISTOR +T 45700 45400 5 10 1 1 0 0 1 +refdes=R302 +T 45700 45100 5 10 1 1 0 0 1 +value=10.5k +} +C 51000 43600 1 180 1 resistor-1.sym +{ +T 51300 43200 5 10 0 0 0 2 1 +device=RESISTOR +T 51000 43400 5 10 1 1 0 2 1 +refdes=R304 +T 51600 43400 5 10 1 1 0 2 1 +value=1k +} +C 51100 45200 1 0 0 generic-power.sym +{ +T 51300 45450 5 10 1 1 0 3 1 +net=DVdd_ns430:1 +} +C 51200 43700 1 0 0 gnd-1.sym +{ +T 51500 43750 5 10 0 1 0 0 1 +net=GND:1 +} +C 52800 45100 1 0 0 generic-power.sym +{ +T 53000 45350 5 10 1 1 0 3 1 +net=DVdd_ns430:1 +} +C 52900 43800 1 0 0 gnd-1.sym +{ +T 53200 43850 5 10 0 1 0 0 1 +net=GND:1 +} +N 52000 44600 52600 44600 4 +N 52300 43500 52300 44600 4 +N 50700 44400 50600 44400 4 +N 50600 44400 50600 43300 4 +C 50500 42100 1 0 0 gnd-1.sym +{ +T 50800 42150 5 10 0 1 0 0 1 +net=GND:1 +} +C 45400 43500 1 0 0 resistor-3.sym +{ +T 45500 44500 5 10 0 0 0 0 1 +device=RESISTOR +T 45700 44100 5 10 1 1 0 0 1 +refdes=R303 +T 45700 43800 5 10 1 1 0 0 1 +value=82.0k +} +C 44200 45100 1 0 0 capacitor-3.sym +{ +T 44200 46100 5 10 0 0 0 0 1 +device=CAPACITOR +T 44900 45700 5 10 1 1 0 0 1 +refdes=C301 +T 44200 46300 5 10 0 0 0 0 1 +symversion=0.1 +T 44500 45300 5 10 1 1 0 0 1 +value=1n +} +N 53300 44200 53300 41900 4 +N 48500 41900 53300 41900 4 +N 48500 41900 48500 44800 4 +N 45500 44800 45500 44400 4 +N 45500 44600 46600 44600 4 +C 45400 43200 1 0 0 gnd-1.sym +{ +T 45700 43250 5 10 0 1 0 0 1 +net=GND:1 +} +C 44300 44800 1 0 0 gnd-1.sym +{ +T 44600 44850 5 10 0 1 0 0 1 +net=GND:1 +} +N 44400 46000 44400 46200 4 +N 43300 46200 40300 46200 4 +{ +T 40600 46200 5 10 1 1 0 0 1 +netname=HFXTO +} +C 40400 46100 1 0 0 flag.sym +N 52300 43500 51900 43500 4 +N 51000 43500 50600 43500 4 +C 49400 45400 1 0 0 generic-power.sym +{ +T 49600 45650 5 10 1 1 0 3 1 +net=DVdd_ns430:1 +} +C 49500 43900 1 0 0 gnd-1.sym +{ +T 49800 43950 5 10 0 1 0 0 1 +net=GND:1 +} +N 49000 45000 48800 45000 4 +N 48800 45000 48800 44600 4 +N 48800 44600 49000 44600 4 +N 47600 44800 48800 44800 4 +N 50300 44800 50700 44800 4 +N 53700 44600 56700 44600 4 +{ +T 55600 44600 5 10 1 1 0 0 1 +netname=HFXTI +} +C 55400 44500 1 0 0 flag.sym +C 49000 44200 1 0 0 74AUP2G132-1.sym +{ +T 49300 45400 5 10 0 0 0 0 1 +device=74132 +T 49300 46800 5 10 0 0 0 0 1 +footprint=DFN_HS +T 49300 46400 5 10 0 0 0 0 1 +value=74AUP2G132GD +T 49700 45300 5 10 1 1 0 0 1 +refdes=U302ab +T 49700 45100 5 10 1 0 0 0 1 +slot=1 +} +N 44200 46200 46400 46200 4 +C 46600 43500 1 0 0 resistor-1.sym +{ +T 46900 43900 5 10 0 0 0 0 1 +device=RESISTOR +T 46600 43800 5 10 1 1 0 0 1 +refdes=R305 +T 47200 43800 5 10 1 1 0 0 1 +value=82.0k +} +N 48200 44800 48200 43600 4 +N 48200 43600 47500 43600 4 +N 46600 43600 46400 43600 4 +N 46400 43600 46400 44600 4 +C 46900 45400 1 0 0 generic-power.sym +{ +T 47100 45750 5 10 1 1 0 3 1 +net=DVdd_ns430:1 +} +C 45300 45700 1 0 0 generic-power.sym +{ +T 45500 45950 5 10 1 1 0 3 1 +net=DVdd_ns430:1 +} +C 47000 44100 1 0 0 gnd-1.sym +{ +T 47300 44150 5 10 0 1 0 0 1 +net=GND:1 +} +N 47100 45400 47100 45200 4 +N 46400 46200 46400 45000 4 +N 46600 45000 46400 45000 4 +C 50700 44000 1 0 0 74AUP2G132-1.sym +{ +T 51000 45200 5 10 0 0 0 0 1 +device=74132 +T 51000 46600 5 10 0 0 0 0 1 +footprint=DFN_HS +T 51000 46200 5 10 0 0 0 0 1 +value=74AUP2G132GD +T 51400 45100 5 10 1 1 0 0 1 +refdes=U302ab +T 51400 44900 5 10 1 0 0 0 1 +slot=2 +} +C 46600 44400 1 0 0 opamp-dual-1.sym +{ +T 46800 46700 5 10 0 0 0 0 1 +device=DUAL_OPAMP +T 47300 45300 5 10 1 1 0 0 1 +refdes=U301ab +T 47300 45100 5 10 1 0 0 0 1 +slot=1 +T 47300 45300 5 10 0 1 0 0 1 +footprint=SO8 +T 46800 46900 5 10 0 0 0 0 1 +symversion=0.2 +T 47200 44300 5 10 1 1 0 0 1 +value=MCP6542 +T 47200 44100 5 10 0 0 0 0 1 +pn-digikey=MCP6542-E/SN-ND +} +C 46700 41400 1 0 0 opamp-dual-1.sym +{ +T 46900 43700 5 10 0 0 0 0 1 +device=DUAL_OPAMP +T 47400 42300 5 10 1 1 0 0 1 +refdes=U301ab +T 47400 42100 5 10 1 0 0 0 1 +slot=2 +T 47400 42300 5 10 0 1 0 0 1 +footprint=SO8 +T 46900 43900 5 10 0 0 0 0 1 +symversion=0.2 +T 47300 41300 5 10 1 1 0 0 1 +value=MCP6542 +T 47300 41100 5 10 0 0 0 0 1 +pn-digikey=MCP6542-E/SN-ND +} +C 47000 42400 1 0 0 generic-power.sym +{ +T 47200 42750 5 10 1 1 0 3 1 +net=DVdd_ns430:1 +} +N 47200 42400 47200 42200 4 +C 47100 40900 1 0 0 gnd-1.sym +{ +T 47400 40950 5 10 0 1 0 0 1 +net=GND:1 +} +N 47200 41200 47200 41400 4 +N 46700 42000 46700 42300 4 +N 46700 42300 47200 42300 4 +N 47200 41300 46700 41300 4 +N 46700 41300 46700 41600 4 diff --git a/sch-pcb/devboard/comparator.py b/sch-pcb/devboard/comparator.py new file mode 100644 index 0000000..7175471 --- /dev/null +++ b/sch-pcb/devboard/comparator.py @@ -0,0 +1,79 @@ +#!/usr/bin/env python + +from scipy.optimize import broyden2 + +from wag import engstr as es + +vdd = 2.5 +rtotal = 100e3 + +def calc_r23(vdd, v23): + n = v23/vdd + return rtotal * n*(1 - n) + +def calc_v(v23, rf): + r23 = calc_r23(vdd, v23) + vx = v23*rf/(r23+rf) + vih = vdd * r23/(r23+rf) + vx + vil = vx + return [vil, vih] + + +def mkoptfun(goal): + def f(x): + v23 = x[0] + rf = x[1] + + vil, vih = calc_v(v23, rf) + #print vil, vih + return [vil-goal[0], vih-goal[1]] + return f + + + +v23 = 2.0 +rf = 100e3 + +goal = [2.0, 2.25] + +xini = [v23, rf] +xopt = list(broyden2(mkoptfun(goal), xini)) + +v23opt = xopt[0] +rfopt = xopt[1] +r23opt = calc_r23(vdd, v23opt) +r3 = (v23opt/vdd) * rtotal +r2 = r23opt*rtotal/r3 +r2 = r23opt*rtotal/r3 + +print 'Optimized values:' +print 'v23:', es(v23opt) +print 'rf :', es(rfopt) +print 'r23:', es(r23opt) +print 'r2 :', es(r2) +print 'r3 :', es(r3) +vil, vih = calc_v(v23opt, rfopt) +print 'VIL: %5.3f' % vil +print 'VIH: %5.3f' % vih + + + +r2 = 10.5e3 +r3 = 82e3 +rfx = 82e3 + +v23x = vdd*(r3/(r2+r3)) +r23x = r2*r3/(r2+r3) +vx = v23x*rfx/(r23x+rfx) +vih = vdd * r23x/(r23x+rfx) + vx +vil = vx + +print +print 'Chosen values:' +print 'v23:', es(v23x) +print 'rf :', es(rfx) +print 'r23:', es(r23x) +print 'r2 :', es(r2) +print 'r3 :', es(r3) +print 'VIL: %5.3f' % vil +print 'VIH: %5.3f' % vih