I am working with two Keithley 2651a instruments in series to measure solar cells in a sweep. I followed the app note titled "Number 3115: Combining Keithley Model 2651A High Power SourceMeter® Instruments for 100A Operation". I've written a python wrapper to implement the parts of the control language that are needed for this, and it all seems to be working as I can get high quality data from a resistor very reliably.
However, I am having trouble keeping the Keithleys stable for a similar sweep on a solar cell or series of solar cells. My cells have a maximum voltage of 44 V, a maximum current of 3 A, and I want about 100 measurements. Pulse and sweep details:
- period: usually 30 ms; I've tried between 10 ms and 100 ms
- pulse width: 1 ms - maximum in manual is 1.6 ms
- NPLC; 0.005
- voltage start: -0.1 V
- voltage stop: 44 V
- voltage steps: 100
Qualitatively, I can see the lock up starting when the SMUs sweep slowing down and stop when it's not going to complete successfully. The two voltages often end up out of sync when the sweep stops, by as much as 10 V - I interpret this as one of the timers/trigger models missing a transition edge or other event. After waiting for the sweep to complete, I get a 5042 error when attempting to read the buffer - however, I don't think this error is related to the underlying problem, but related to the sweep lockup causing the nonoverlapping function to stop executing. I haven't successfully implemented the status registers, but I am waiting four times the sweep duration before attempting to read the buffer, along with a waitcomplete() command.
Here's what I've tried:
1. 1. Searching different configurations of voltage step number, pulse period, and voltage. Depending on the parameters used, the system is more or less stable, but I have not been able to get close to the target voltage range for a solar cell and complete a sweep
2. I looked quickly at High Capacitance mode but my string is under 1 nF, so this does not seem likely to be an issue
3. I've tried to look on the forums here, but I'm not seeing anything like this.
4. There's a comment on Page 2-54 of the manual indicating that there's a preferred polarity for the channel 1 SMU when hooked in series; I'v e tried that and the same behaviour occurs
5. I've tried breaking up the scan into shorter segments, but this has not changed the behaviour.
I've attached my node configuration code so you can see what I am attempting. While it's in python, I've taken care to mimic the structure of the control language, so it should be readable. Please let me know if additional information is required, or if you have any suggestions.
Thanks!