Cape v2.2 - Performance

Hardware

  • 8 Capes without Recorder, produced by Egas

  • Serialnumbers

    • unknown num ⇾ kai

    • 1191022, -23, -25, -27 ⇾ kai

    • 1191029 ⇾ debug-setup

  • lend out to kai

    • 1 Cape with pinheader (unknown number)

    • 4 Capes with Long PinSocket (1022, 1023, 1025, 1027)

    • 2 + 1 + 3 Targets

Initial Test for Functionality

  • visual inspection OK

  • External powered single cape (current limited)

    • disabled cape ⇾ draws 0 mA @ 5 V

    • 35 mA @ 5 V when EN-Pin is Pulled Up with 3 V

    • ⇾ no unusual behavior

  • BB powered by bench-supply 5.1 V, ~ 350 - 400 mA

  • Shepherd powered by BB, VIn 5.08V

  • Main Voltages on enabled Cape

Name

expected V

Comment

A5V/L5V

5.000 V

Should be Spot On

A3V/L3V3

3.300 V

Should be Spot On

6V

5.38 V

[5.29; 5.47] V with 1% Res

10V

9.73 V

[9.56; 9.90] V with 1% Res

-6V

-6 V

[5.94; 6.06] V with 1% Res

  • calibration with 10 uF (1206, 25 VMax, 16 nA Leak) on both Ports

  • Generated Voltages on Target Ports ⇾ deviation is ~ 0.1 mV

  • ADC Current-Readout is noisy, despite 10 uF Buffer

  • GPIO pass-through:

    • gpio 0-8 and BATOK to TA & TB

    • unconnected pru-pins (p8-41to44) are not reporting activity ⇾ fixed

  • GPIO-Speed-Test by programming a target

Capes - fixed and tested

  • 1191022: with boot-fix, faster essential gpio, stabile current-meas, stabile V_IO, gpio0 has also speed-fix

    • was used for debugging, some resistors are replaced instead of stacked during modding

  • 1191023: with boot-fix, faster essential gpio, stabile current-meas, stabile V_IO

    • 3v3 is a bit off with 3.275 V

  • 1191025: with boot-fix, faster essential gpio, stabile current-meas, stabile V_IO

  • 1191027: with boot-fix, faster essential gpio, stabile current-meas, stabile V_IO

    • 3v3 is a bit off with 3.286 V

  • 1191029: boot-fix, stabile V_IO

Debug-Investigation on 1191022

  • BB still fails to boot when P8-41to44 are connected to cape ⇾ lines are separated by a analog switch?!?

    • switch is powered by L3V3 ?!?

    • drilling out the via above the switch and routing enamel-wire from capacitor of switch to 3V3-Source

    • BB is booting!

  • current-readout is very noisy

    • add 470 nF over shunt, to get 570 nF ⇾ much better, Lowpass changes from 796 kHz to 140 kHz

      • this cap is bad idea!

    • 2 V rising stable in 6 us, falling in 10 - 16 us

    • add 1 nF over feedback-cap, to get 2 nF ⇾ no Large Effect

    • TODO: switch back to small feedback loop without switch?

  • GPIO-Edges ⇾ BB - 1 k - 10 k PU, [33 R PRU] - LSF - 1 k - 10 k PU, Switch - TA

    • baseline test

      • BB-Source Low takes 50 ns from 3.3 to 0 V

      • TB-Receiv Low takes 2-3 us from 2 to 0.8 V

      • PRU-Recv Low take 300 ns from 3.3 to 0 V

      • BB-Source Hi takes 100 ns to 3.3 V (100%)

      • TB-Receiv Hi takes 20 us from 0.8 to 2 V

      • PRU-Recv Hi takes 800 ns from 0 to 3.3 V

    • ⇾ try 2x 300 R Series Resistance, @5V only slightly above (8.3mA) current-limit of BB-Pins

      • 330 R || 1k = 248 R, 430 || 1k = 301 R

      • BB-Source Low 60 ns, High 80 ns

      • TB-Recv low 1 us, Hi ~ 20 us

      • PRU_Rec low 100 ns + 700 ns, Hi 400 ns

      • signal on target side between seriesRes and Switch is similar to target-output

      • signal on sys side between seriesRes and LSF is slower (400 ns rise instead of 50)

      • RefA = 0.961 V, RefB = 1.526 V ⇾ fet-diode = 565 mV

    • lower RefB Resistor from 240k to 200k

      • TB-Recv low 1-1.5 us, high 15-20 us

      • RefA = 1.053 V, RefB = 1.611 V ⇾ fet-diode 558 mV

    • PU on both sides lowered from 10k to 2.1k, (= 2.7k || 10k)

      • TB-Recv low ~< 1 us, Hi 3-5 us

    • other ideas?

      • lower PU on both sides at least for uart & programming ⇾ 2.1 k seem to do the trick

      • capacity of line?

      • remove sys-series-resistor

      • disconnect pru-side

  • WD is not starting the BB ⇾ Pulse too short

TODO: look for voltage-spikes on coils when turning off power

Fixes for v2.2

  • analog switch to pru

    • drill out via with <1mm drill, first layer is enough, trace from IC to Cap should stay intact

    • route wire from cap, through mounting hole to P9-2/3 (3V3 of BB)

  • fast gpio-lines for swd and uart with stronger PUs, and lower series resistance

    • target side: on lower LSF (U12),

      • 10 k PU-Array, add 2.7k in parallel to lower 4 resistors, results in ~2.1 k

      • 1 k SeriesResistor-Array, add 100 R in parallel to lower 4 resistors, results in 91 Ohm

    • sys side:

      • same treatment for PUs, above P9-16, above / between P9-18/20, above left side P9-24, above right side P9-26

      • 1 k Series-Array, add 430 R in parallel

    • LSF - 1M parallel to existing 240 k on RefB ⇾ resulting 200 k

  • stabilize current measurement

    • 22 pF to GND on amplified path, right before ADC ⇾ 22+5 pF + 100 k ⇾ 60 kHz

    • additional 1 nF Cap on Feedback LP, both paths

    • Terminate unused Ports with 1 uF

    • remove 100 nF parallel to shunt

  • stabilize IO-Buf-Voltage

    • cut left trace between 10 R and 1 nF, add 1k

  • summary: 22 additional 0402-parts, 1 removed 0402, 2 cuts, 1 enamel trace ⇾ ~ 1 h manual work

Mods to close the gap to v2.4

  • mostly emulator related, due to 10 already produced PCBs

  • boost converter - raise voltage to >6V - R104 from 576k to 680k

  • Emu

    • DAC-lowpass 1nF on TP3, after R5, same on TP2

    • ADC-Lowpass R10 100k to 33R, add 10 nF after that (on TP4)

    • Shunt-smoothing, C6 100nF to 10nF

  • general improvement

    • switch enamel wire from 3v3 to 5vIn for analog switch that guards the boot-pins

    • extra kapton tape for enamel wire around mounting hole (possible easy short)

  • EMU: try removing C3 1nF for more stable OpAmp-FB ⇾ bad idea

    • C3 200 pF

    • C3 1 nF ⇾ OK

    • R8 5k1 ⇾ OK, but should be lower

    • R8 10k

    • R1 5k1 ⇾ fine ⇾ final change: C3 stays 1nF, R8 & R1 now 5k1

  • remove most of the coils

    • 10V ⇾ L13

    • -6V ⇾ L11

    • A5V ⇾ L7

  • EMU increase shunt from 2R to 10 R (R9) and RGain R12 from 210R to 1.1k

    • lower noise, specially for low currents

  • profiling shows:

    • 10k Feedback:

      • 0 mA load, 30 mVpp oscillation with 400 kHz

      • 40 mA load, 12 mVpp, no oscillation

      • 40 mA loadswitch, 320 mVpp drop for 40 us

    • 5k1 Feedback:

      • 0 mA load, 26 mVpp oscillation with 400 kHz

      • 40 mA load, 12 mVpp, no oscillation

      • 40 mA loadswitch < 200 mVpp drop for 25 us

    • 5V out @ 50 mA reduces Voltage to 4.27 V

      • 100 mV comes from 2 R Shunt

      • 20 mV come from trace after feedback-loop

      • remaining drop is due to 5V supply

Profiling Emulator

2R Shunt

SMU-reference: 1.000 mA @ 3.1999 V;   emu-c-raw: mean=5000.10, stddev=3.30 @ 3.200 V
SMU-reference: 5.000 mA @ 3.1998 V;   emu-c-raw: mean=24741.11, stddev=19.33 @ 3.200 V
SMU-reference: 10.000 mA @ 3.1997 V;   emu-c-raw: mean=49409.33, stddev=19.37 @ 3.200 V
SMU-reference: 15.000 mA @ 3.1996 V;   emu-c-raw: mean=74101.05, stddev=37.38 @ 3.200 V
SMU-reference: 20.000 mA @ 3.1995 V;   emu-c-raw: mean=98767.96, stddev=37.42 @ 3.200 V
SMU-reference: 25.000 mA @ 3.1994 V;   emu-c-raw: mean=123441.02, stddev=36.68 @ 3.200 V
SMU-reference: 30.000 mA @ 3.1993 V;   emu-c-raw: mean=148106.87, stddev=37.72 @ 3.200 V
SMU-reference: 35.000 mA @ 3.1991 V;   emu-c-raw: mean=172779.27, stddev=42.50 @ 3.200 V
SMU-reference: 40.000 mA @ 3.1990 V;   emu-c-raw: mean=197441.15, stddev=42.80 @ 3.200 V
SMU-reference: 45.000 mA @ 3.1953 V;   emu-c-raw: mean=222110.22, stddev=41.39 @ 3.200 V
SMU-reference: 50.000 mA @ 3.1811 V;   emu-c-raw: mean=246769.44, stddev=40.81 @ 3.200 V

SMU-reference: 1.000 mA @ 4.3999 V;   emu-c-raw: mean=4999.34, stddev=3.33 @ 4.400 V
SMU-reference: 5.000 mA @ 4.3998 V;   emu-c-raw: mean=24741.03, stddev=19.48 @ 4.400 V
SMU-reference: 10.000 mA @ 4.3997 V;   emu-c-raw: mean=49407.86, stddev=19.54 @ 4.400 V
SMU-reference: 15.000 mA @ 4.3995 V;   emu-c-raw: mean=74099.36, stddev=37.22 @ 4.400 V
SMU-reference: 20.000 mA @ 4.3994 V;   emu-c-raw: mean=98767.49, stddev=37.35 @ 4.400 V
SMU-reference: 25.000 mA @ 4.3993 V;   emu-c-raw: mean=123442.35, stddev=36.73 @ 4.400 V
SMU-reference: 30.000 mA @ 4.3992 V;   emu-c-raw: mean=148108.01, stddev=37.72 @ 4.400 V
SMU-reference: 35.000 mA @ 4.3863 V;   emu-c-raw: mean=172779.94, stddev=39.42 @ 4.400 V
SMU-reference: 40.000 mA @ 4.3481 V;   emu-c-raw: mean=197442.74, stddev=38.15 @ 4.400 V
SMU-reference: 45.000 mA @ 4.2972 V;   emu-c-raw: mean=222114.24, stddev=36.88 @ 4.400 V
SMU-reference: 50.000 mA @ 4.2273 V;   emu-c-raw: mean=246772.54, stddev=34.40 @ 4.400 V

SMU-reference: 1.000 mA @ 4.9694 V;   emu-c-raw: mean=4998.55, stddev=3.10 @ 5.000 V
SMU-reference: 5.000 mA @ 4.9209 V;   emu-c-raw: mean=24741.21, stddev=17.52 @ 5.000 V
SMU-reference: 10.000 mA @ 4.8602 V;   emu-c-raw: mean=49408.38, stddev=17.40 @ 5.000 V
SMU-reference: 15.000 mA @ 4.7982 V;   emu-c-raw: mean=74101.53, stddev=32.35 @ 5.000 V
SMU-reference: 20.000 mA @ 4.7337 V;   emu-c-raw: mean=98768.89, stddev=32.09 @ 5.000 V
SMU-reference: 25.000 mA @ 4.6663 V;   emu-c-raw: mean=123444.18, stddev=31.66 @ 5.000 V
SMU-reference: 30.000 mA @ 4.5959 V;   emu-c-raw: mean=148110.96, stddev=32.14 @ 5.000 V
SMU-reference: 35.000 mA @ 4.5221 V;   emu-c-raw: mean=172783.01, stddev=34.65 @ 5.000 V
SMU-reference: 40.000 mA @ 4.4440 V;   emu-c-raw: mean=197444.95, stddev=34.46 @ 5.000 V
SMU-reference: 45.000 mA @ 4.3607 V;   emu-c-raw: mean=222116.58, stddev=34.18 @ 5.000 V
SMU-reference: 50.000 mA @ 4.2701 V;   emu-c-raw: mean=246776.35, stddev=33.46 @ 5.000 V

10R Shunt

SMU-reference: 1.000 mA @ 3.2001 V;   emu-c-raw: mean=5130.99, stddev=3.16 @ 3.200 V
SMU-reference: 5.000 mA @ 3.2001 V;   emu-c-raw: mean=25605.70, stddev=21.25 @ 3.200 V
SMU-reference: 10.000 mA @ 3.1999 V;   emu-c-raw: mean=51186.94, stddev=21.20 @ 3.200 V
SMU-reference: 15.000 mA @ 3.1998 V;   emu-c-raw: mean=76793.88, stddev=40.36 @ 3.200 V
SMU-reference: 20.000 mA @ 3.1996 V;   emu-c-raw: mean=102374.39, stddev=40.14 @ 3.200 V
SMU-reference: 25.000 mA @ 3.1995 V;   emu-c-raw: mean=127962.74, stddev=39.88 @ 3.200 V
SMU-reference: 30.000 mA @ 3.1993 V;   emu-c-raw: mean=153542.74, stddev=40.43 @ 3.200 V
SMU-reference: 35.000 mA @ 3.1992 V;   emu-c-raw: mean=179127.57, stddev=46.09 @ 3.200 V
SMU-reference: 40.000 mA @ 3.1991 V;   emu-c-raw: mean=204702.33, stddev=45.85 @ 3.200 V
SMU-reference: 45.000 mA @ 3.1938 V;   emu-c-raw: mean=230285.98, stddev=44.23 @ 3.200 V
SMU-reference: 50.000 mA @ 3.1780 V;   emu-c-raw: mean=255859.07, stddev=43.50 @ 3.200 V

SMU-reference: 1.000 mA @ 4.4002 V;   emu-c-raw: mean=5130.41, stddev=3.24 @ 4.400 V
SMU-reference: 5.000 mA @ 4.4001 V;   emu-c-raw: mean=25605.84, stddev=21.32 @ 4.400 V
SMU-reference: 10.000 mA @ 4.3999 V;   emu-c-raw: mean=51186.59, stddev=21.36 @ 4.400 V
SMU-reference: 15.000 mA @ 4.3998 V;   emu-c-raw: mean=76798.10, stddev=40.39 @ 4.400 V
SMU-reference: 20.000 mA @ 4.3996 V;   emu-c-raw: mean=102378.49, stddev=39.93 @ 4.400 V
SMU-reference: 25.000 mA @ 4.3898 V;   emu-c-raw: mean=127967.95, stddev=34.89 @ 4.400 V
SMU-reference: 30.000 mA @ 4.3194 V;   emu-c-raw: mean=153545.53, stddev=32.60 @ 4.400 V
SMU-reference: 35.000 mA @ 4.2228 V;   emu-c-raw: mean=179133.17, stddev=33.42 @ 4.400 V
SMU-reference: 40.000 mA @ 4.1050 V;   emu-c-raw: mean=204707.56, stddev=32.38 @ 4.400 V
SMU-reference: 45.000 mA @ 3.9764 V;   emu-c-raw: mean=230292.51, stddev=31.78 @ 4.400 V
SMU-reference: 50.000 mA @ 3.8379 V;   emu-c-raw: mean=255862.87, stddev=31.12 @ 4.400 V

SMU-reference: 1.000 mA @ 4.9618 V;   emu-c-raw: mean=5129.80, stddev=2.93 @ 5.000 V
SMU-reference: 5.000 mA @ 4.8830 V;   emu-c-raw: mean=25603.63, stddev=16.67 @ 5.000 V
SMU-reference: 10.000 mA @ 4.7831 V;   emu-c-raw: mean=51188.07, stddev=16.38 @ 5.000 V
SMU-reference: 15.000 mA @ 4.6804 V;   emu-c-raw: mean=76788.55, stddev=30.26 @ 5.000 V
SMU-reference: 20.000 mA @ 4.5753 V;   emu-c-raw: mean=102370.88, stddev=30.14 @ 5.000 V
SMU-reference: 25.000 mA @ 4.4677 V;   emu-c-raw: mean=127964.19, stddev=29.70 @ 5.000 V
SMU-reference: 30.000 mA @ 4.3576 V;   emu-c-raw: mean=153546.69, stddev=29.32 @ 5.000 V
SMU-reference: 35.000 mA @ 4.2441 V;   emu-c-raw: mean=179136.95, stddev=31.96 @ 5.000 V
SMU-reference: 40.000 mA @ 4.1266 V;   emu-c-raw: mean=204716.23, stddev=31.68 @ 5.000 V
SMU-reference: 45.000 mA @ 4.0034 V;   emu-c-raw: mean=230304.75, stddev=31.84 @ 5.000 V
SMU-reference: 50.000 mA @ 3.8733 V;   emu-c-raw: mean=255879.39, stddev=31.02 @ 5.000 V