Cape v2.4b - Performance

Hardware

  • 15 Capes with Emu & Hrv, produced by Egas

  • Serialnumbers

    • 1270053 →initial test subject, Update: defect VConverter

    • 1270057 → kai

    • 1270060 → new LabTester

Remaining PCBs became the first testbed-instance at TUD. See Doc Testbed

Manual Soldering

  • 2x 2x46 Pinheader ⇾ BBone Port

  • 2x 2x9 Pinheader ⇾ Target Ports

  • 2Pin Screw-Header ⇾ VoltageInput

  • 4Pin Connector on Bottom ⇾ External LED-PushButton

  • 2x2 PinHeader ⇾ HrvPort

  • Caps on Bottom

    • 6V Rail ⇾ ~~10V 680 uF, DNP

    • L5V Rail ⇾ ~~6V3 1 mF~~, 2x 220 uF 6V3 MLCC

    • 5V Rail ⇾ ~~6V3 1mF~~, DNP, 2x 220 uF 6V3 MLCC

    • 16V Rail ⇾ ~~25V 470 uF~~, 2x 100 uF 16V MLCC

Manual Fixes

  • U32 (SOT23-5) Opa189 ⇾ replace with Opa388

  • U3 (Emu-mid-right) ⇾ add >= 100 nF from Pin6 to -6V (Pin5) or left side of cap (in front)

  • R-Serial: 14x 470 R to 240 R (put second 470R on-top)

  • switch Hrv-Ref to 0R-to-GND (R132) - left bottom outside hrv-cage + add 100nF to GND there for 10mV (now free Pad)

  • stabilize 10 mV ⇾ 1uF increase to 2x 10uF, 2R increase to 10R (PIC

Initial Test for Functionality

PCB Nr. 1270053

  • visual: OK

    • all ICs and diodes correct orientation

    • no visible shorts or other defects

  • 5V In: 0mA, OK

  • EN-Pin: 105 mA, OK, but 3x higher than before, but with hrv (was 71 mA on hw-v2.1)

  • voltages:

    • L5V ⇾ 5.000 V, R_Open (VCC to GND)

    • L3V3 ⇾ 3.295 V, R_open

    • 6V ⇾ 6.19 V, R_Open

    • 10V ⇾ 9.71 V, R_Open

    • -6V ⇾ -5.99 V, R_Open

    • 10mV, R_Open

    • 5V, R ~ 220 Ohm

  • for reference: 1270057 behaves the same

  • booting with cape: all OK

    • 340 - 400 mA during boot

    • ~ 330 mA after boot

  • devicetest-tool - OK

    • ADCs & DACs work

    • GPIO out is working

    • Changing Power & GPIO routing works

  • GPIO Sweep ⇾ safe Bandwidth ~ 3 MHz, 10 MHz might also work

  • GPIO Toggling:

    • Port A: works on all Pins

    • Port B: open

  • Watchdog: OK

  • Cal OK

  • Profiling OK

    • but pretty high stddev on ADC-Current for hrv & emu (~80)

Defect - VReg → TLDR: U20/6VReg

  • One Short on Voltage Rails

    • 5V ⇾ 10 R to GND on input, 5.5R after L

    • -6V, 10mV, 3V3, L5V, 10V OK

    • Powering Board is OK, BUT EN draws max C at 20mV (short)

  • L5 gets warm (32C) ⇾ 10 R

    • D11 (to 6V) also shows 10R / 1k (both dir), and 136 mV V_fw

    • U20 (6VReg) Sw (p1) to GND (Pin2) is <3R but should be >1k (FIRST Defect!!!!)

  • Powering individual Rails

    • 6V ⇾ 40mA OK (with EN)

    • L5V ⇾ 28mA ok

    • 10v 28mA

    • FAIL: provided 5V to 3V3 rail

    • 3V ⇾ max C (300mA) down to 2V ⇾ U21 gets really hot > 60C

PCB Nr. 1270057

  • Visual OK

  • GPIO Toggling Port A & B all Pins OK

  • Emu as expected

  • TODO: Cal with & without additional Caps, GPIO-Direction-Change,

PCB Nr. 1270060

  • Initial Tests OK

  • High C after Mods (EN)

  • No Shorts on voltage Rails

    • 6V direct ⇾ 44mA OK ?

    • 3V3 direct ⇾ 7mA OK

    • 10V with +6 ⇾ 30mA OK

    • -6V

  • ⇾ Fixed (with cleaning?)

PCBs for TB

  • 1270051: 92mA On

  • 1270052: 94mA On

  • 1270053: [105mA], 1st LabPrototype ⇾ burned VReg

  • 1270054: 93mA On

  • 1270055: 91mA On

  • 1270056: 90mA On

  • 1270057: 2nd LabPrototype ⇾ Kai

  • 1270058: 90mA On

  • 1270059: 96mA On

  • 1270060: 92mA On, 3rd LabPrototype ⇾ Short?

  • 1270061: 96mA On

  • 1270062: 96mA On

  • 1270063: 99mA On

  • 1270064: 92mA On

  • 1270065: 90mA On

Calibrate…

shepherd-cal calibration measure -v --cape-serial 1270060 --write --smu-ip 10.0.0.24 sheep0
shepherd-cal calibration write -v --cal-file ./2023-08-27_12-39-20_shepherd_cape.cal_data.yaml sheep0

profile..

shepherd-cal profile measure -v --short --cape-serial 1270060 --smu-ip 10.0.0.24 sheep0
shepherd-cal profile analyze -v --plot ./

Errors & Improvements (for 2.4c)

BB does not survive turning on the cape

  • Reason: Voltage drop due to increased Caps on Rails

  • FIX: Order for 5V-Input:

  • 3.3 mF Cap: https://www.mouser.de/ProductDetail/Rubycon/6.3ZLJ3300M10X25?qs=T3oQrply3y/OcsI9e27BJQ%3D%3D

  • 6.8 mF Cap: https://www.mouser.de/ProductDetail/Panasonic/ECA-0JHG682?qs=R8vM2Es5yU5OqYwkFTor4Q%3D%3D

Solution: reduce size of both 5V Caps on Backside

Emu

  • U32 (SOT23-5) Opa189 does not work for emulator for full range ⇾ replace with Opa388

  • ref-voltage can use more buffering ⇾ add >= 100 nF from U3-Pin6 to -6V (Pin5) or left side of cap (in front)

    • ~same for U7~ ⇾ but that Ref-Pin5 changed to GND, so nvm

  • EMU: Voltage-dependency for Current Measurement after switching to Opa388

    • 0V: ~ 550 n, 5V: ~ 980 n

    • ⇾ +430 increments for + 5 V change (= +80 uA error, or +8.39 mV @ ADC-Input)

    • there is no current flow! Trace cut after Shunt

    • AD8429 - Ref to Output has only 50 kOhm (older PCB show the same)

    • tldr: ref-pin does not work as expected when != GND and shared

      • 2R of Reference (can cause 500 uV offset) ⇾ causes 20 - 50 of the 400+ n offset

      • only 1 InAmp for the Reference ⇾ fixes the problem

      • switch Hrv-Ref to 0R-to-GND (R132) - left bottom outside hrv-cage + add 100nF to GND there for 10mV

    • TODO:

      • hrv looked fine, why?

      • try load-R + Cap between Ref & Output of InAmp

  • stabilize Emu, Current measurement

  • hardwire 10mV only to Emu

Mod1 - Reroute 10mV away from Hrv

mod1

Mod2 - Stabilize 10mV

mod2

Mod3 - Improve voltage Buffering for EMU

mod3

Gpio

Change resistor-values to match new target-design for allowing improved current limiting

mod4

Profiling

Ref = GND

  DAC @ 0.400 V;        SMU: 0.100 mA @ 0.3998 V;       I_raw: mean=466.85, stddev=99.89
  DAC @ 0.400 V;        SMU: 1.000 mA @ 0.3998 V;       I_raw: mean=4903.37, stddev=85.11
  DAC @ 0.400 V;        SMU: 10.000 mA @ 0.3995 V;      I_raw: mean=49276.55, stddev=88.43
  DAC @ 0.400 V;        SMU: 20.000 mA @ 0.3993 V;      I_raw: mean=98601.06, stddev=101.11

  DAC @ 2.000 V;        SMU: 0.100 mA @ 1.9999 V;       I_raw: mean=465.69, stddev=82.45
  DAC @ 2.000 V;        SMU: 1.000 mA @ 1.9999 V;       I_raw: mean=4902.77, stddev=70.92
  DAC @ 2.000 V;        SMU: 10.000 mA @ 1.9996 V;      I_raw: mean=49274.69, stddev=75.39
  DAC @ 2.000 V;        SMU: 20.000 mA @ 1.9993 V;      I_raw: mean=98596.15, stddev=86.44

  DAC @ 5.000 V;        SMU: 0.100 mA @ 4.9828 V;       I_raw: mean=463.06, stddev=5.78
  DAC @ 5.000 V;        SMU: 1.000 mA @ 4.9732 V;       I_raw: mean=4900.14, stddev=5.81
  DAC @ 5.000 V;        SMU: 10.000 mA @ 4.8746 V;      I_raw: mean=49275.76, stddev=7.61
  DAC @ 5.000 V;        SMU: 20.000 mA @ 4.7552 V;      I_raw: mean=98601.86, stddev=12.64

Ref = 10 mV

  DAC @ 0.400 V;        SMU: 0.100 mA @ 0.3998 V;       I_raw: mean=1023.15, stddev=99.29
  DAC @ 0.400 V;        SMU: 1.000 mA @ 0.3998 V;       I_raw: mean=5464.52, stddev=85.00
  DAC @ 0.400 V;        SMU: 10.000 mA @ 0.3996 V;      I_raw: mean=49884.01, stddev=88.74
  DAC @ 0.400 V;        SMU: 20.000 mA @ 0.3993 V;      I_raw: mean=99258.19, stddev=101.85

  DAC @ 2.000 V;        SMU: 0.100 mA @ 1.9999 V;       I_raw: mean=1182.66, stddev=83.35
  DAC @ 2.000 V;        SMU: 1.000 mA @ 1.9999 V;       I_raw: mean=5623.73, stddev=73.04
  DAC @ 2.000 V;        SMU: 10.000 mA @ 1.9997 V;      I_raw: mean=50041.69, stddev=76.88
  DAC @ 2.000 V;        SMU: 20.000 mA @ 1.9995 V;      I_raw: mean=99412.23, stddev=87.57

  DAC @ 5.000 V;        SMU: 0.100 mA @ 4.9827 V;       I_raw: mean=1458.09, stddev=6.08
  DAC @ 5.000 V;        SMU: 1.000 mA @ 4.9732 V;       I_raw: mean=5899.41, stddev=6.18
  DAC @ 5.000 V;        SMU: 10.000 mA @ 4.8756 V;      I_raw: mean=50311.76, stddev=7.57
  DAC @ 5.000 V;        SMU: 20.000 mA @ 4.7576 V;      I_raw: mean=99679.24, stddev=12.69

Ref = 10 mV, double 0R

  DAC @ 0.400 V;        SMU: 0.100 mA @ 0.3998 V;       I_raw: mean=1335.36, stddev=99.78
  DAC @ 0.400 V;        SMU: 1.000 mA @ 0.3998 V;       I_raw: mean=5776.61, stddev=85.28
  DAC @ 0.400 V;        SMU: 10.000 mA @ 0.3996 V;      I_raw: mean=50194.40, stddev=88.54
  DAC @ 0.400 V;        SMU: 20.000 mA @ 0.3993 V;      I_raw: mean=99565.63, stddev=101.33

  DAC @ 2.000 V;        SMU: 0.100 mA @ 1.9999 V;       I_raw: mean=1494.28, stddev=82.19
  DAC @ 2.000 V;        SMU: 1.000 mA @ 1.9999 V;       I_raw: mean=5935.56, stddev=71.70
  DAC @ 2.000 V;        SMU: 10.000 mA @ 1.9997 V;      I_raw: mean=50351.44, stddev=75.40
  DAC @ 2.000 V;        SMU: 20.000 mA @ 1.9994 V;      I_raw: mean=99723.23, stddev=86.35

  DAC @ 5.000 V;        SMU: 0.100 mA @ 4.9827 V;       I_raw: mean=1771.01, stddev=6.09
  DAC @ 5.000 V;        SMU: 1.000 mA @ 4.9732 V;       I_raw: mean=6212.20, stddev=6.03
  DAC @ 5.000 V;        SMU: 10.000 mA @ 4.8753 V;      I_raw: mean=50624.02, stddev=7.78
  DAC @ 5.000 V;        SMU: 20.000 mA @ 4.7568 V;      I_raw: mean=99989.86, stddev=12.78
adc_voltage = value_raw * 1.25 * 4.096 / (2**18)
            = 8.39 mV observed offset-error

Bughunt with AD8421 Datasheet

RREF: 2; GAIN: 2 * (10e3 + RREF) / (20e3 + RREF); Error: 5*GAIN - 5; ⇾ ~ 500 uV