Giter Club home page Giter Club logo

usmu's Introduction

μSMU

μSMU is a small source-measure unit designed for the very low-cost electrical characterisation of photovoltaic cells.

Background

SMUs are "4-quadrant" devices, meaning they can both source and sink current at both positive and negative voltages. This makes them very useful for semiconductor device characterisation - including LEDs, transistors and solar cells.

In photovoltaic research laboratories, a SMU is typically used to vary the voltage applied to an illuminated solar cell, whilst simultaneously measuring the current. This voltage sweep allows us to plot the solar cell's I-V characteristics, and calculate its light-to-power conversion efficiency.

SMUs are generalised pieces of test equipment, designed to be highly sensitive over vast current & voltage ranges. For example, the workhorse Keithley 2400 has a voltage range between 100 nV and 200 V, and a current range between 1 pA to 10 A. This is likely overkill for most research and education applications concerning solar cells, which tend to operate between 0-5 V and μA to mA. The μSMU doesn't intend to replace precision SMUs, rather to supplement them in cost-sensitive areas where such precision is not required.

The μSMU is a USB-powered SMU with a +/- 5 V voltage range and +/- 50 mA source/sink capability. The PCB is only 70mm x 43mm

Function

The μSMU was originally inspired by Linear Technology's DC2591A evaluation board, which demonstrates an I2C address translator IC to interface up to 8 modules containing several I2C devices with an Arduino-style board. Somewhat consequentially, these boards also contain fantastic SMU circuits!

The voltage applied to the device-under-test (DUT) is supplied by a LT1970 opamp driven by a 16-bit DAC on the non-inverting input and a 2.048V reference on the inverting input. The current flowing through the DUT is measured by amplifying the voltage drop through a high-side 50 Ohm shunt resistor using a precision programmable gain amplifier. Both the DUT voltage and shunt resistor voltage drop are measured using a 16-bit ADC. The whole system is controlled using a STM32F072 microcontroller, which presents a USB virtual communications port for interfacing.

Capabilities

Parameter
Voltage range -5 to +5 V
Voltage measure resolution ~0.6 mV
Minimum voltage step size <1 mV
Current limit -50 to +50 mA
Current resolution ~10 nA

Errata

Version 10 (release 1.0)

  • The board layout is missing grounding on the MCU for some reason. Make sure to place a couple of vias in the MCU's exposed pad to ensure proper grounding. Sorry!

Changelog

Version 10 (release 1.0)

  • Voltage DAC changed from a 12-bit Microchip MCP4725 to a 16-bit TI DAC8571
    • Can now achieve sub-mV voltage steps
  • Current sense amplifier changed from an Analog LT1991 to a TI PGA281
    • PGA281's gain can be programmed using 5 GPIOs ranging from 0.125 to 176. This allows low currents to be gained more than high currents, improving current resolution.
  • Current shunt resistor increased from 10 to 50 Ohms.
    • The programmable current sense amplifier (PGA) means we can use a high value shunt resistor and decrease the gain when measuring high currents.
    • Voltage drop across a 10 Ohm shunt is sensed by the power amp (U10) to impart programmable current limiting. Measuring this across the main 50 Ohm shunt would limit the current output to ~10 mA due to limitations in the LT1970
    • The increase in current shunt value along with the new PGA means we can now sense currents on the order of ~10 nA
  • Buffer amplifier changed from a quad Maxim MAX44252 to 4x Gainsill GS8331
    • Less expensive and lower VOS
  • Electrostatic discharge protection added to USB port (U5)
  • Isolated DC-DC converter replaced with bipolar switching regulator TI TPS65131 supplying ±9.7V
    • Extra headroom for power amplifier to push higher currents through 50 Ohm current shunt
  • 4.5V LDO added for DAC and ADC
  • USB-C port replaced with lower cost 2.0-pinned version

License

Hardware

CERN Open Hardware License Version 2 - Permissive (CERN-OHL-P-2.0).

Software

GNU General Public Licence v3.0.

Documentation:

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

usmu's People

Contributors

joeltroughton avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

usmu's Issues

quick turn recommendation

Not an issue but a question: do you use a quick turn service that will make the board and assemble these? thanks for sharing such a clean design.

Programmer Used?

Hi, we're trying to program one of your boards but have been running into trouble with the programmer and subsequently can't upload the software. Can you describe which programmer you use and the layout of the 10 pins on the board?

TI Parts out of stock for ~1 year

Didn't really know if this should be an "issue" since it's out of your control but I thought I would bring it to your attention. We got a few of the boards made but haven't completed them since most TI parts, specifically the ones below, are out of stock and have lead times of about 1 year.

Out of stock parts with long lead times:

  • PGA281AIPWR
  • TPS65131RGET
  • ADS1115IDGSR

Output stuck at 8.2V

I flashed the boards and was able to communicate with them through serial at a baudrate of 115200. I've been trying to calibrate them, but I keep running into the same issue that all the boards will constantly output 8.2V regardless of what the DAC is set to. Other commands I've tested like ILIM do seem to work. The only voltage source in the circuit that I know could output something that high is the regulator itself.

Just wondering if you had run into this problem before. I still need to debug the circuit some more and test the outputs from the DAC chip and see if anything is shorting out somehow.

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.