Giter Site home page Giter Site logo

el-load's Introduction

This is WORK IN PROGRESS.

The designs here are not finished or fully tested yet.

Overview

The DCL8010 electronic load module features a DC Electronic Load with several modes and protections. This project is the for the development boards for this project. There is a seperate git project for the firmware.

Specifications

  • Modes: Constant Current (CC), Constant Voltage (CV), Constant Power (CP) and Constand Resistance (CR). CC and CV are implemented in hardware, CP and CR are software controlled and have a slower dynamic response.

  • Limits:

    • Current: 1mA - 10A set and read
    • Voltage: 0.5V - 80V (set), 1mV-80V read
    • Power: 80W
  • Protections: In hardware:

    • User definable Over Voltage Protection (OVP), clamps load off within 1ms
    • User definable Over Current Protection (OCP), clamps load off within 1ms With software support:
    • User definable Over Power Protection for a specific time in seconds (1-99)
    • User definable Over Temperature Protection for a specific time in seconds (1-99)
  • Other hardware features:

    • Von: The minimum voltage needs to be present before the load is turned on. This can be set with or without latching. This is implemented in hardware and when on guarentees a gradual turn-on if a power source is 'hot plugged' or turned on.
    • Temperature based fan control
    • Fan RPM readout
    • Heatsink temperature readout

Design considerations

Sizing

The Electronic Load was designed to complement a pair of BB3 DCP405 modules. Such a pair can deliver up to 80V (series configuration) or 10A (parallel configuration). The power is just maximized what is achievable with the small form factor of a BB3 module.

Minimum set voltage (an von cutoff) aim is as low as possible but at least 0.5V. A low Von cutoff is important to discharge for example AA battries (around 0.8V).

Resolution and accurary

Aim is to have 0.1% full scale accurary after calibration. Calibration will be done in 100% in software.

This results in the follwing goals:

Input/output Range Accuracy Resolution Remarks
Current monitor 0-10A 10mA 1mA
Current monitor 0-1A 1mA 0.1mA not evaluted/tested yet
Voltage monitor 0-80V 80mV 1mV Accuracy probably: 10mV
Voltage monitor 0-10V 1mV 0.1mV
Power measurements 0-24h 1s & 0.2% FS 1s Perform accurate incremental calculations and timing
Current set 5mA-10A 10mA 1mA
Current set 5mA-1A 1mA 0.2mA
Voltage set 0.5-80V 80mV 1mV
Voltage set 0.5-9V 5mV 1mV
Resistance set ? ? ? 0.5% FS In software
Power set ? 0.25W ? 0.5% FS in software
Von set (80V range) 0.25-50V 0.2V 0.1V Difficult to calibrate
Von set (9V range) 0.25-6V 0.1V 0.1V Difficult to calibrate
OCP (10A range) 0.1-10A 100mA 10mA Difficult to calibrate
OCP set (1A range) 0.25-6V 10mA 1mA Difficult to calibrate, not implemnted yet
OVP (80V range) 1-80V 0.2V 0.1V Difficult to calibrate
OVP set (9V range) 0.25-9V 0.1V 0.1V Difficult to calibrate, not tested yet

Using 16bit ADC's and DAC's this should be achievable with calibration done in software.

Hardware / software partitioning

Everything requiring a response below 10ms is implemented directly in hardware. All other functionality is preferably done in software. This results in the following decisions:

  • Current and Voltage measurement and control loops are in analog circuitry
  • Over voltage and over current protection measurement and shutdown are in hardware with a seperate clamp on the power MOSFET gates to shutdown as fast as possible. It is up to software to toggle pins to release the hwardware protection
  • Von circuitry is implemented in hardware including the latch. The Von circuitry is important to avoid the MOSFET loops to go fully open (unregulated) when the supplied current and/or voltage is less then the set values. An unregulated situation would lead to large (= overshoot) spikes if the DUT suddenly starts providing more power (e.g. plug-in/turn on).
  • To combine current, voltage and Von control a cross-over circuit is used where the smallest set current will get priority.

Fail safely:

An electronic load is often used to discharge batteries and due to the time this takes it is not realistic to assume the discharge is always attended by a person. If a failing component in the electronic load fails it might cause a short. A battery (or other power source without proection) being shorted is a serious fire hazard. Therefore the Electronic Load has a physical fuse and all possbile components that might faile are behind this fuse. This includes the input snubber network, transient and revserse polarity diode and of course the main MOSFETS of the electronic load. This protection is not perfect: It requires a >10A peak surge, but greatly reduces the risk.

Limitations / Issues

Most limitations,TODO's and issues are now tracked on github issues

PCBs

EL-Load-Analog

Main PCB. Contains all the analog circuitry including MOSFETS. The DAC & ADC's are also on this board. Sizes of the PCB adhere to DIB standard (I hope).

EL-Load-Analog

EL-Load-Power-MCU

PCB for stand alone deployment outside of BB3. This board contains an isolated power supply (input 5V) with fan controllers, MCU, GPIO and a bunch of connectors. It directly fits to the Analog PCB with an addidional IDC cable. There is also an IDC connector to the Front panel PCB.

EL-Load-Power-MCU

EL-Load-Panel

Front panel PCB for standalone deployment. Connects to EL-Load-Power-MCU. Has a connector for common 2.4/2.8" TFT touchscreen PCBs, 1 encoder, 1 microswitch and one 1 LED.

EL-Load-Panel EL-Load-Panel backside

Obsolete PCB's

EL-Load-Simple-Power

Obsolete test board. Very simple 78*/79* based power supply to generate 2x+12V, 1x+5V, 1x-5V and optionally -12V. Was used for previous version of EL-Load-Analog.

EL-Load-Simple-Power

EL-Load-Fan-Controller

Obsolete test board for the fan controller. For testing MAX31760 with 12V LDO regulation. Not used anymore. MAX31760 is now on Power-MCU-board.

EL-Load-Fan-Controller

EL-Load-Digital

Obsolete test board for the MCU + ADC + DAC + GPIO + Touchscreen connection. DAC + ADC's are now on analog board. MCU and GPIO are now on new Power-MCU-board.

EL-Load-Digital

Ownership and License

This work is licensed under multiple licences:

  • All hardware designs are licensed under CERN-OHL-W-2.0
  • All original software source code is licensed under GPL-3.0-or-later.
  • All documentation is licensed under CC-BY-SA-4.0.
  • There are also parts imported from other sources. See the indivdual files for there specific licenses.

el-load's People

Contributors

fietser28 avatar

Stargazers

Li Wei avatar Andrew Young avatar  avatar prasimix avatar

Watchers

 avatar prasimix avatar

el-load's Issues

Von circuitry might oscillate with specific loads

Von circuitry causes some oscillation when the voltage slowly decreases to the set level. This is noticeable in a typical battery discharge test, but this scenario can be circumvented easily by the user with the current firmware.

As this ia a very valid and common scenario we should implement something for it in hardware or software to notify user or avoid it.

Make Power section dual voltage input

Change power section to have a 5V input for the isolated power rails and separate 12V input for the fan connections and the fan controller (non isolated).

For ease of testing also add an optional 12V to 5V buck converter to allow for a single 12V power supply for testing.

Standalone PCB with DIB connector.

Create a PCB with:

  • RP2040 CPU / use raspberry pi pico module
  • Connector to panel PCB with display, touch, and encoders. Using existing connector setup.
  • 12V -> 5V module to feed BB3 module with both 12V and 5V.
  • Case fan controller and drivers.

This PCB can be derived from the MCU-Power PCB.

Add ESD protection

  • Add ESD protection to Sense inputs
  • Add ESP protection to main power inputs. Is this necessary ?

12V to 5V convertor

Separated from #7:
For ease of testing also add an optional 12V to 5V buck converter to allow for a single 12V power supply for testing.

Add this to the isolated power section of the Power-MCU board. Should be optional using jumpers.

range switching doesn't always work

When a range switch happens this not always results in the right calibration values being used for displayed value.
Noticed on voltages.
This also happens when leaving calibration mode (during setDefaults).

going back and forth solves the problem.

Fix errors on EL-Load-Analog v3-C Schema & PCB

  • C401 = 1u (was 680n)
  • C52 10uF cap should have higher voltage rating (25/50V)
  • C316 = 1uF ipv 2.2uF. Change in design?
  • R330 label is at wrong/unclear place (to close to R322)
  • LT1964 PCB is correct for fixed 5V regulator. (adjustable requires additional 1200+390 ohm resistors)
  • Fix +12V regulator setup (values below result in 11,5 V which is fine):
  • remove R39
  • R40 = 200
  • R41 = 1k8
  • GCOM op differential amplifiers shunt resistors instead of GND: R213, R211, R233, R231: GND change to GCOM.
  • R6 should be connected to GCOM instead of GND. This relates to previous item.
  • R18 en R19 = 470 ohm instead of 100k.
  • U10B -1V reference circuit doesn't work. Fix.
  • Connect -5V to R320 (instead of -1V) and replace R320 with 47k. After this: tune the Von response time.
  • R201, R221, R202, R222 can be removed.
  • R203, R205, R223, R225 = 10k. This improves the set current stability when temperature rises.

Fix Errors on EL-Load-Panel PCB 1r1

Errors found on r1r1:

  • TFT Display connector is rotated 180 degrees.
  • TFT Display connector is about 1mm misaligned with TFT display connector.
  • Move MCP23008 up to keep it clear from MCU-Power PCB in case (or make cutout on MCU-Power PCB see #2 )
  • Correct encoder footprint

Add programmable slew rate circuitry

Long term which. Main problem is to find space for the additional hardware on the main PCB.

3 available DAC channels can be used to set the levels/slew rates

Implement watchdog

Implement watchdog in firmware to asses if all threads are functioning properly.

PCB changes for DIB/BB3 compatibility

  • This is a DIB module size
  • the main communication connector is in place
  • the EEPROM is placed on analog PCB
  • there is a connector routing the SPI and power connections to a (to be designed) piggy board
  • screw holes for panel are in place
  • the DIB power channel connector for parallel /serial operation is not implemented and wouldn't fit: one of the banana sockets is in the way and there is not much place left to shift everything over. It is also not clear if this would be useful to have.

Change clamping circuit

#8 will put to much stress on the mosfet driving opamps with the current clamp circuit.

Change the clamp method by clamping LoopIset to zero instead of the MOSFET gates.
Use a 2N7002 + resistor (1k?) + diode (1N4148) to clamp LoopIset to zero or slightly below zero.

Remove the lamp MOSFETS and the long lines to it.

Implement self test and *TST?

Implement self test function and add it to startup and *TST? command.

Due to hardware limitations a full functional test is not possible without additional circuitry but a few sanity check can be implemented:

  • ADC should trigger measure task (not really needed because watchdog might catch this?)
  • measure voltage, perform range switch. Voltage should be same within a certain spec.
  • same for current.
  • set OCP DAC to 0 and MAX and see if it triggers/clears
  • same for OVP DAC
  • Manual Fan test

Fix errors on EL-Load-Power-MCU 2r2

There are some mistakes on 2r2:

  • diodes on negative rails are reversed (D7 & D8)
  • Enable pin (pin 5) on sn6505 is low instead of high
  • remove C3 and D4. Short jumper JP1. Configuration with 2 diodes is enough.
  • remove zener D16 or change to higher value (18-20V)
  • Remove T1 or T2 footprint in final version depending on choice no in #24
  • Fix T1 component label (footprint is ok)
  • Add cutout for MCP23008 on panel PCB.
  • J7 pin 14 = GND, should be 3.3VD (power supply for ADC and DAC's on analog board)
  • Fix Q1 an Q2 footprints. SOT23-3 instead of SOT23?

Improvements:

  • in test PCBs: Add led to +15VU. This wil work as a small dummy load when analog board is not connected.

Evaluate low voltage range

Evaluate the v3 hardware implementation. Is it useful, e.g. does it give extra measurement accuracy or not.

Analog V4 testing

The Analog V4 schematic and PCB have some changes that need testing after fabrication:

  • Test reverse polarity protection circuit
  • Test reverse polarity with remote voltage sensing voltage enabled.
  • Test -1V reference
  • Test dynamic behaviour of Von

Von scaling

Von doesn't have to be possible for the full voltage ranges, 50% of the range is enough. This might increase the accuracy of Von.

This can be implemented using voltage dividers. This is already in place on v3 of PCB.

Evaluate low current range

Evaluate the v3 hardware implementation. Is it useful, e.g. does it give extra measurement accuracy or not.

Add LED mode

This is a variation of the CR mode: It has a voltage offset before it starts conducting.

This can be implemented in firmware only. No hardware changes required

CC loop tuning

During changes to reduce temperature dependencies some instability was introduced to the CC loop for low voltages (2-7V) and and multiple amps (2-4A). The measured oscillation is around 65kHz (using 10kohm feedback resistors for R225,R223, R205, R203)

Spice simulation agrees with this.

New values:

  • gate resistors R207, R208, R227, R228: 10ohm (was 100) did not help
  • feedback restores R203, R205, R223, R225: 22k (was 100k in V3C)
  • compensation caps C213, C214, C227, C228: 1n (was 470p)

Select isolation transformer T1/T2

Run test with both transformers and remove T1 or T2 footprint in final version depending on choice.

T2 is working but less power efficient and expensive.
T1 still needs to be tested.

Optimise MOSFET placement on heat sink and/or power distribution between MOSFETS.

We need to find a good placement of the 4 MOSFETS on the LAM 3 150 heat sink. The MOSFETs are fixed on the PCB and it would require a special setup to move them around or a lot of different PCB’s to test different configurations.

A form of thermal analysis simulation to find an optimal/good placement seems more feasible. The analysis is not very trivial because the fan cases a forced airflow thru the heatsink and the air will heat up while flowing thru the heatsink.

On my current test PCB the MOSFETS are evenly placed along the heatsink and all MOSFETS dissipate the same amount of power (this is forced by the circuit). This situation results in the MOSFETS further away from the fan being around 15-20 degrees Celsius higher. The maximum temperature of the individual MOSFETs places the limit on the maximum power rating of the device. In my test I can now dissipate 90W total in a 19 degrees room temperature. The heatsink close to the MOSFET with highest temperature is just below 90 degrees Celsius.

The MOSFETS are IRF250 in TO-247 package with thermal grease and a kapton foil isolation. They are pressed against the heatsink with DIY clamps at the place of the screw hole of the package. Because of the experimentation I don’t want to drill a lot of holes in the heatsink.

Thermal images show a gradual increase in heatsink temperature when moving away from the fan. The increase is comparable to the temperature difference between the MOSFETS. Therefore I think it is worth investigating if placing all the MOSFETS closer to the fan results in a possible lower maximum MOSFET temperature at the same overall power dissipation.

A good/optimal placement maximises the total power the mosfets can dissipate without individually overheating.
For this I think there are 2 degreees of freedom we should focus on:

  1. placement of the 2 MOSFETS with the greatest distance from the fan. The other mosfets should be placed close to the fan.
  2. Create a Fixed difference (in %) between currents (which is directly proportional to the power) of the MOSFETS close and far away of the fan. If simulation shows this is beneficial it is straight forward to create this fixed difference in the circuit.

I think we should first optimise on 1 and second on 2.

MCP23017 GPA7 is output only according to datasheet

The revision D (2022) of the MCP23017 states the GPA7 (and GPB7) pins are output only. Currently we use GPA7 for Von input and this is working fine but can’t be relied upon.

Solution: Change the hw pin for von to a different pin of bank A. Swap it with an output pin.

BB3 compatible MCU board

Rework the Power-MCU PCB to be a piggy board:

  • Flip the board to fit on top of the BB3 board and connectors.
  • Keep/Include Pico
  • Keep MCP23017 section with level shifting
  • Keep/include isolated power section (simplify?!)
  • Keep heatsink fan controller
  • Keep panel connector for display/touch/keys
  • Keep Debug interface SWD+UART
  • Add: DIB opto isolators
  • Add: allow to switch between panel and DIB isolators (jumpers?)
  • Remove case fan controller
  • Remove 12V - 5V module/section
  • Optionally/TBD: Add leds and extend piggy board to panel. Banana connectors and or sense relay might be in the way.

Add testpoints

Add testpoints to PCB for easier testing.

  • Several GND pins close to other testpins (to avoid loops)
  • +12V
  • +5V
  • -5V
  • V Ref
  • -2.5V
  • +3.0V
  • LoopISet
  • Imon
  • Umon
  • Imon for each loop

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.