Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SMU v3.1 #397

Draft
wants to merge 75 commits into
base: master
Choose a base branch
from
Draft

SMU v3.1 #397

wants to merge 75 commits into from

Conversation

ducky64
Copy link
Collaborator

@ducky64 ducky64 commented Mar 22, 2025

WORK IN PROGRESS. LAYOUT TO BE DONE. SOME PROTECTION CIRCUITS TO BE ADDED.

SMUv3.1 and associated infrastructural changes. Major improvements to reliability, stability, and (hopefully) resolution (noise floor). Resolves #351

Changes:

  • Change emitter follower to be able to independently control gate on status on high and low sides
    • Refactor to use positive gate voltage instead of power
  • Rename ErrorAmplifier -> GatedSummingAmplifier to better reflect the standard topology
    • Improved docs
    • Add optional fine target input
    • Add optional sense output, upstream of the gating / resistive output element (to detect current limiting mode)
      rails, for headroom on analog switches
    • Make gate clamping voltage (zener) a parameter
  • Add JFET current clamp and simulation
  • Refactor SMU control schematic:
    • for readability
    • to be self-contained
    • change current sense amplifier to use inamps
    • better output protection with a R-C snubber and low-leakage TVS diodes
  • Add S-R inverted latch as SMU only block
  • SMU top changes
    • Add 7-8A blowy fuse to the USB input
    • Use buck converter for direct Vbus -> 3.3v digital
    • Add INA219 power sense on Vbus input and Vconv in
    • Run Vcontrol- off analog rail, with ferrite filter
    • Add precharge
    • Add current limit trip sense direct to MCU
    • Use RC for OLED reset, because we're out of MCU pins
    • Add another IO expander for low-speed controls, because we're really out of MCU pins
    • Use SR with priority for converter OVP - should be more robust
    • Add I2S speaker
    • Simplify HDL using some new libraries
    • Add experimental block diagram grouping directive
  • Rebaseline netlists

Libraries added:

  • Add AnalogCapacitor as a cap to be sprinkled on analog lines. Apparently this is a thing in analog design.
  • Add VoltageComparator, a comparator against a set (absolute) voltage.
  • Add base SeriesPowerFuse, for blowy fuses
  • Add SeriesResistor generator, that breaks a resistor into a series combination, to increase power and voltage ratings. Applies derating for worst-case tolerance stackup for individual voltage and power ratings.
  • Add summing amplifier ratio calculator for n-ported noninverting summing amplifier, with unit test. No block yet.
  • Add differential-RC filter
  • Add FetPrecharge
  • Add more KiCad symbols to analog signal chain parts: voltage dividers
  • Add Nano2 / 154 series fuseholder, with no modeling.
  • Add INA826 in-amp
  • Add SN74LVC2G02 dual NOR gate
  • Add TLP170AM low(er)-cost SSR

Libraries modified:

  • Add mclkin for MCP3561, so we can overclock those ADCs
  • Add addr lsb selection on INA219

Core changes:

  • Add range-float subtraction (in addition to existing float-range subtraction).
  • Add Ratio (like kOhm, and nFarad, but for unitless), which cleans up a lot of cases, resolves Ratio unit type #391
  • Add as_voltage_source adapter for AnalogSource
  • Add KiCad instantiation to SeriesPowerResistor

TODO:

  • VoltageComparator : change to take in an analog signal, and do something with the voltage divider (perhaps a local analog -> voltage source block)
  • SN74LVC2G02: change connectivity requirement to equals not implies
  • Re-pinning
  • Layout 🤪

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Ratio unit type SMUv3.1 changes
1 participant