Showing posts with label N6700. Show all posts
Showing posts with label N6700. Show all posts

Wednesday, July 15, 2015

Optimizing the performance of the zero-burden battery run-down test setup

Two years ago I added a post here to “Watt’s Up?” titled:  “Zero-burden ammeter improves battery run-down and charge management testing of battery-powered devices” (click here to review). In this post I talk about how our N6781A 20V, 3A 20W SMU (and now our N6785A 20V, 8A, 80W as well) can be used in a zero-burden ammeter mode to provide accurate current measurement without introducing any voltage drop. Together with the independent DVM voltage measurement input they can be used to simultaneously log the voltage and current when performing a battery run-down test on a battery powered device. This is a very useful test to perform for gaining valuable insights on evaluating and optimizing battery life. This can also be used to evaluate the charging process as well, when using rechargeable batteries. The key thing is zero-burden current measurement is critical for obtaining accurate results as impedance and corresponding voltage drop when using a current shunt influences test results. For reference the N678xA SMUs are used in either the N6705B DC Power Analyzer mainframe or N6700 series Modular Power System mainframe.
There are a few considerations for getting optimum performance when using the N678xA SMU’s in zero-burden current measurement mode. The primary one is the way the wiring is set up between the DUT, its battery, and the N678xA SMU. In Figure 1 below I rearranged the diagram depicting the setup in my original blog posting to better illustrate the actual physical setup for optimum performance.

Figure 1: Battery run-down setup for optimum performance
Note that this makes things practical from the perspective that the DUT and its battery do not have to be located right at the N678xA SMU.  However it is important that the DUT and battery need to be kept close together in order to minimize wiring length and associated impedance between them. Not only does the wiring contribute resistance, but its inductance can prevent operating the N678xA at a higher bandwidth setting for improved transient voltage response. The reason for this is illustrated in Figure 2.


Figure 2: Load impedance seen across N678xA SMU output for battery run-down setup
The load impedance the N678xA SMU sees across its output is the summation of the series connection of the DUT’s battery input port (primarily capacitive), the battery (series resistance and capacitance), and the jumper wire between the DUT and battery (inductive). The N678xA SMUs have multiple bandwidth compensation modes. They can be operated in their default low bandwidth mode, which provides stable operation for most any load impedance condition. However to get the most optimum voltage transient response it is better to operate N678xA SMUs in one of its higher bandwidth settings. In order to operate in one of the higher bandwidth settings, the N678xA SMUs need to see primarily capacitive loading across its remote sense point for fast and stable operation. This means the jumper wire between the DUT and battery must be kept short to minimize its inductance. Often this is all that is needed. If this is not enough then adding a small capacitor of around 10 microfarads, across the remote sense point, will provide sufficient capacitive loading for fast and stable operation. Additional things that should be done include:
  • Place remote sense connections as close to the DUT and battery as practical
  • Use twisted pair wiring; one pair for the force leads and a second pair for the remote sense leads, for the connections from the N678xA SMU to the DUT and its battery


By following these best practices you will get the optimum performance from your battery run-down test setup!

Thursday, April 30, 2015

Let's See the Watchdog TImer in Action

Hi everybody!

It is the end of the month and time for my monthly blog post.

Quite some time ago, my buddy Gary mentioned our watchdog timer protection in a post.  Here is what he had to say:

The watchdog timer is a unique feature on some Agilent power supplies, such as the N6700 series. This feature looks for any interface bus activity (LAN, GPIB, or USB) and if no bus activity is detected by the power supply for a time that you set, the power supply output shuts down. This feature was inspired by one of our customers testing new chip designs. The engineer was running long-term reliability testing including heating and cooling of the chips. These tests would run for weeks or even months. A computer program was used to control the N6700 power supplies that were responsible for heating and cooling the chips. If the program hung up, it was possible to burn up the chips. So the engineer expressed an interest in having the power supply shut down its own outputs if no commands were received by the power supply for a length of time indicating that the program has stopped working properly. The watchdog timer allows you to set delay times from 1 to 3600 seconds. 

(For the whole post click here)

Since Gary wrote that post, we have released the N6900 and N7900 APS units that also include this useful feature.  What I wanted to do was show how to set it up, how to use it,and how to clear it so that everything is a bit more clear.   All of my programming examples in this post will be done using my APS with the VISA-COM IO Library in Visual Basic.

The setup is pretty easy:

        APS.WriteString("OUTP:PROT:WDOG:DEL 5")
        APS.WriteString("OUTP:PROT:WDOG ON")

This sets the watchdog delay to 5 seconds and enables it.  This means that if there is no IO activity (ie your computer hangs up) for 5 seconds, then the unit will go into protect and shut the output down.

Lets say that I have a program that performs a measurement around every second for a minute.  Here is the program:


        APS.WriteString("OUTP:PROT:WDOG:DEL 2")
        APS.WriteString("OUTP:PROT:WDOG ON")

        For i = 0 To 59
            APS.WriteString("MEAS:VOLT?")
            strResponse = APS.ReadString
            Threading.Thread.Sleep(1000)
        Next

        Threading.Thread.Sleep(3000)

        APS.WriteString("STAT:QUES:COND?")
        strResponse = APS.ReadString

 The watchdog delay is set for 2 second so while I run in the loop taking my measurements everything is working great.  After the 3 second wait at the end though, the 2 second watchdog timer comes into effect and the unit goes into the protect state and disables the output.  The response to the questionsable status query is 2048 which corresponds to bit 11 of the register which is defined as "Output is disabled by a watchdog timer protection".  This is the expected result.

My reccomendation to clear the watchdog timer would be to first disable the watchdog timer and then clear the protect.  You can then re-start the watchdog timer when you are ready.

        APS.WriteString("OUTP:PROT:WDOG OFF")
        APS.WriteString("OUTP:PROT:CLE")

The watchdog timer is a pretty cool feature that can perform a pretty useful task.  I hope that this blog post explains what it is and how to use it a bit more.

Saturday, February 28, 2015

Synchronize Your Measurements with Your List Transients

Hi everybody!

My blog post this month is the result of a recent customer question.  The question was: how do you synchronize measurements with list transients?  The short answer is that you use the built in digitizer to generate enough points to sample the measurements over the entire transient.  The rest of this blog will provide the long answer.  The program that I am using here was written for a N6762A DC Power Module but the technique will work with any power supply that has a built in digitizer such as the Advanced Power System or any N6700 module with option 054.

For simplicity’s sake, we are going to use a 5 point list.  The voltage steps are 1 V, 2 V, 3 V, 4 V, and 5 V and the dwell times are 0.1 s, 0.2 s, 0.3 s, 0.4 s, and 0.5 s.  Let’s first set the list up (please note that all programming is done in VB.net with VISA-COM):


The next thing to do is to set up the measurement system.  We need to figure out the total number of points that we need measure so that we can cover the entire transient.  The first thing that we need to do is to calculate the total time of the list transient (you can even do this in your program):


The total time of our transient is 1.5 s.  Now we need to use this to figure out the number of points. I am going to choose a measurement interval of 40.96 us.  This means that we want to take a measurement every 40.96 us for 15 s.  To get the total number of points, you need to divide the total transient time by the measurement time interval:

I’m going to round down and use 36,621 points.  I’m also going to tell the power supply to use the binary data format because as we know from my previous blog posts, this is the fastest way to read back data.   Here is the code to set up the digitizer:


We will set our trigger source to bus for both the transient system and the acquire system:


Next we initiate both systems:


Once the initiate is complete, we send a trigger:

This will start both the list transient and the digitizer.  After everything is completed, we can fetch our measured voltage array:


This array will have all of our measurements.

I hope that this has been useful, have a good month everyone.