10-17-2012 11:04 AM
I am using a PXI 4130 SMU to test a 3V Battery powered RF Transmitter. The Unit goes thru a power on sequence which requires up to 20mA of current then goes into a sleep mode which should draw current in the low uA range. The problem I am having is downranging the 4130 to the lowest range available. The idea is to power up the unit with the SMU set to the 200mA range. After the unit goes thru its power on cycle I need to change the range down to the 200uA range and measure the off current. It appears the SMU is only changing the range on the initial setup. Attached is a snip of my code, any help is greatly appreciated.
Solved! Go to Solution.
10-18-2012 09:02 AM
There is a subtle difference between the niDCPower Configure Current Limit VI and the niDCPower Configure Current Limit Range VI. I've attached the help files for both of these VI's below for your reference:
niDCPower Configure Current Limit VI - NI DC Power Supplies and SMUs 1.4 Help
niDCPower Configure Current Limit Range VI - NI DC Power Supplies and SMUs 1.4 Help
In your code it looks like you are changing the setting for the current limit range, which really just chooses which current limits you can select but doesn't actually change the current limit. Try replacing the niDCPower Configure Current Limit Range VI's with niDCPower Configure Current Limit VI's and see if it fixes your issue.
Good luck with everything!
10-18-2012 10:37 AM
Thanks for the info, After reviewing the 2 links I did notice that I was using the I Level and I level Range located under the source/DC Current pallete. After swapping to the vi's under the source/DC Voltage pallete, I now get this error.
Error -1074118627 occurred at niDCPower Configure Current Limit Range.vi
The range you requested is incompatible with the selected level/limit. Change both the Range attribute/property and the corresponding level/limit attribute/property when the session is in the Uncommitted state. For more information, refer to the NI-DCPower documentation.
Conflicting Properties: Current Limit Range, Current Limit
Property: Current Limit Range
Requested Value: 200.0e-6
Supported Ranges: 200.0e-6, 2.0e-3, 20.0e-3, 200.0e-3, 2.000000
Property: Current Limit
Corresponding Value: 100.0e-3
Specified Range Minimum: 4.0e-6
Specified Range Maximum: 200.0e-6
Channel Name: 1
Status Code: -225151
I find it odd that my Requested Value of 200.0e-6 should be a supported range however the error is telling me otherwise. I also noticed the error code states I input 100.0e-3 as my current limit however that is not the case as I put 100.0e-6 as my current limit. I then went and changed my Current Limit range value to 100e-6 and the error still states my requested value is 200e-6. It seems to me there is an error with the DLL converting the numbers. I am attaching my condensed code with the updates made according to the previous post.
10-18-2012 04:17 PM
I rebuilt your code and was able to recreate the error you were experiencing. I believe I have an answer for you.
You will need to replace the niDCPower Initialize VI with the niDCPower Initialize With Channels VI. The difference is that the Initialize VI places the session with the SMU in the committed state, while the Initialize With Options VI does not. Because of this you will also need to place an niDCPower Initiate VI before your niDCPower Configure Output Enabled VI. The programming states of an NI-DCPower session are described in the link below:
Programming States - NI DC Power Supplies and SMUs 1.4 Help
I have also attached links going over the details of various functions involved in the code:
niDCPower Initialize With Channels VI - NI DC Power Supplies and SMUs 1.4 Help
niDCPower Initialize VI - NI DC Power Supplies and SMUs 1.4 Help
niDCPower Initiate VI - NI DC Power Supplies and SMUs 1.4 Help
After making the changes I described above, I was able to run the code without generating any errors.
10-19-2012 09:13 AM
You are running into that error because the session is in the Running state. When in the running state, configuration changes are applied immediately, and you are changing the Current Limit Range to be 200 uA, but the Current Limit is set to 100 mA. You need to either change the Current Limit first to a value that is valid for both the 200 uA range and the 100 mA range, or you can first Abort, then reconfigure both Current Limit Range and Current Limit, then Initialize again.
Additionally, keep in mind that you should be changing the Current Limit Range, not the Current Level Range, because you are in DC Voltage Output Function. Changing the Current Level/Current Level Range only take effect when you are in DC Current Output Function.
Jared's suggestion of using Initialize with Channels is a good one, as the Initialize method you are using works, but is deprecated.
Please let us know if you have any further questions.
Staff Software Engineer
Precision DC / Modular Instruments
10-22-2012 07:58 AM
Thanks Jared and Tobias for your feedback. I was able to fix my problem by using the initialize with options and using the abort and initiate to change ranges.