I can give you an example of a battery test library: Sometimes you can use this test for very large value capacitors, too.
Note: set voltages are sample values only. --------------------------------- test powered analog test "output" end test
subtest "output" connect i to pins 1 ! high voltage pin connect l to pins 2 ! low voltage pin
detector dcv, expect 10 ! sample max voltage = 10 measure 6, 4 ! high limit set to 6, low limit set to 5v end subtest -----------------------------------
*** For boards with removable batteries, it's better to remove them from board before test. *** For very large capacitors, separate external discharge ckt are connected.
hi edoga, thanks for your fast reply, the powered test isn't my problem. when i starting the test i get the following failure message:
Discharge scan failure on node(s) Voltage measured cannot be discharged safely to prevent damage to tester relays. Update the discharge test or remove the connection to this node. BRC Node 222112 VBAT_RTC ---------------------------------------- R451 Unexpected voltage failed to safely discharge at line 146. Discharge scan failure on node(s) Voltage measured cannot be discharged safely to prevent damage to tester relays. Update the discharge test or remove the connection to this node. BRC Node 222112 VBAT_RTC ---------------------------------------- R451 Unexpected voltage failed to safely discharge at line 255. Discharge scan failure on node(s) Voltage measured cannot be discharged safely to prevent damage to tester relays. Update the discharge test or remove the connection to this node. BRC Node 222112 VBAT_RTC ---------------------------------------- R451 Unexpected voltage failed to safely discharge at line 284.
I thing that I've a problem with discharging. Thanks for your help.
By the way, I always use 2 types of tests for a battery:
1. zero voltage check (0v check) - powered, test to measure 0 v. I do this before any test , to ensure that there is 0 v between batt nodes. if v > o, I fail the device. This way tester and board are safe.
Do u have a switch connected directly to the battery?
If yes, you must test the board with its battery switch OFF (mostly they have jumper switch) and switch it ON only during your true battery voltage test.
a. batt (+_pin) <---> b. jumper / switch pin 1 <-----> c. jumper/ switch pin 2
if you have probes on a, b, and c access points, be sure to REMOVE PROBES on (a) and (b).
Test your battery between battery low (-) pin and c. jumper/ switch pin 2.
then to measure true voltage, put manually the jumper switch to short it.
hi edoga, the battery is directly fixed on the board between node VBAT_RTC and GND its contact to a real-time-clock IC. the part number is Li-Batterie BR2330A 3V 255mAh.
Testing boards with batteries on requires a good deal of ingenuity if it is to be done safely. However it is quite possible to do so, as many of our boards have batteries fitted, and it is also often possible (again with care), to test the components directly connected to the battery. The R451 error sounds like it is failing to discharge a capacitor (presumably because the battery is keeping it charged) - is there a large capacitor across the battery? You will probably need to do two things: 1) if you have a spare gp relay, run the battery node VBAT-RTC through the relay, so that you can connect the battery only when you need to; and 2) remove the attempt to discharge the cap from the .discharge test. You may also need to remove the node from the 'pins' and shorts' files too - if you leave the battery node in these files, and also permanently connected to the BRC, you are very likely, with repeated testing of the board, to weld a relay shut in the testhead!
Hi Tim, you've right, it's possible to remove the node from pins and short test and make a test with gp-relay. First i remove all contacts to the battery but the failure message to discharge VBAT always comes again. The question is how can I elude this discharge test that must automatic be done. It seems that I couldn't isolate only this voltage measure test without discharging any BRC which contact to this node.
" First i remove all contacts to the battery but the failure message to discharge VBAT always comes again.
"
This troubles me a little! When I have had a 'failure to discharge' message, it was:
'.discharge has failed subtest: cd7 no change seen when discharging'
rather than an Rxxx-type failure message you report - are you running Unix or Windows controllers (we are still Unix here, so are possibly a little behind with any new features added into the Windows version...)?
I think before proceeding you need to be doubly-sure that it is the battery causing that error message: when I had the similar problem the discharge test didn't have access to the capacitor on the battery rail (the probe had been removed!), so the node must have been 'floating', and changing the wiring (to route through a gp relay and re-inserting the probe) meant the test started failing (presumably as the floating voltage had changed). The discharge test will only run if the voltage at the node is greater than the 'danger voltage' (the 'entry voltage' in the .discharge test file) - if this is less than the 3V battery voltage, then it will definitely try and discharge that node if it has access, so can you tell from the discharge file that thisis the case?
" The question is how can I elude this discharge test that must automatic be done. "
You will have to find the appropriate 'discharge' test in the .discharge file, and then comment it out and recompile. There are several dangers in doing so: making sure you get the right one (though when you look in the .discharge file, it is fairly clear what is what); and the .discharge file is generallynever marked 'permanent' in the testorder, so unless you do mark it permanent, you run the risk of IPG overwriting your changes at future IPG runs; if you do mark it permanent, and IPG wants to insert a new discharge test it can't, thus exposing the testhead to new dangers...
There is no substitute for being sure you know what you are doing - if in doubt, don't! If you tell me what the maximum capacitance on the battery rail is, and also give the details of the appropriate discharge test, I can certainly double-check the calculations (for the danger voltage etc.) and give an opinion as to whether everything 'makes sense' or not!
We have a series of boards with super caps directly wired to the boards without a jumper that are an issue. The caps can arrive from the manufacturer with up to a five volt charge, typically it is below 2 volts. Fortunately there is a connector available to apply a discharge shunt as boards arrive at ICT. The ICT operators remove the shunts before testing. However, the caps get charged up during powered testing and take quite some time to discharge.
A gp relay discharging the cap whenever that circuit is not part of any test helps, but a 2.25 second wait state added to the .discharge routine required after powered testing bogs down the discharge routine whenever it is invoked.
Does anyone have any experience with discharging super caps?
There is an article on the agilent web about super caps and also about the workings of discharge test - if you have concerns about dischagre caps correctly - in general the discharge test will dicharge every net if you lower the entry voltage to minimal , something like 500mV - that way you can be sure that every net has been discharged every time.
This should take minimal additonal time, however, for large caps you might want to approach differently. In the case of a large and 'super cap' i would employ a conditional looped 'measure and discharge routine' specifically for those large caps - this is what we have done in the past and it works well. You also have to take care about capacitor 'bounce back' - where large caps recharge themselves after discharge.
Each board design is different, but only one common rule to take care of - to make sure there could be no 'damaging' current flow to the ASRU via pin cards from these large caps or batteries during unpowered testing, otherwise you will get bogus measurements, discharge timeouts and potentially damage the tester.
For cap bounce back recovery I add 22 ohm resistors and on some assemblies have a gp relay shorting the caps whenever those nodes are not crucial for other tests during unpowered testing. The internal impedance of these super caps is high enough for the 'bounce back' to be quick and forceful. Lowering the exit voltage helps, but that also increases the time required to adequately discharge these caps.
BTW: During powered testing, the discharge resistors stay in place, but the discharge gp relays are opened.
Can you provide sample code of a conditional measure/discharge?
Here is the testplan and analog test example we used for a particular app; - we took the 'BIG CAP' out of the discharge file and made a seperate discharge entry , the return value of 1 from a discharge call means it was successful - check with the agilent manuals for the value of return variables for discharge test.
I would use this in conjunction with your standard discharge test (i.e. where unpowered statement is in the testplan) - plus it might be worth to review the different times during a test when a discharge actually takes place and how many times it is run during a failure, you will probably be surprised.
We also put a high wattage resistor across the cap nodes in side the fixture, I think it was around 100 ohms , doesn't affect the test
Count = 1
loop
test "analog/2%discharge_BC";Return exit if Return <=1 print Return ;"Return value" exit if Count >10 Count = Count + 1 end loop
!!!! 2 0 1 1183480610 V82b1 ! Maximum capacitance = 1.01; damage voltage = 100.0mv test analog; Return clear connect s to "#%0V" connect g to "#%+5V" discharge "C1", entry 100m, exit 0.05 ,Return end test
" in general the discharge test will dicharge every net if you lower the entry voltage to minimal , something like 500mV - that way you can be sure that every net has been discharged every time. "
This raises a pertinent point: because the discharge routine is only entered if the voltage across the capacitor is above that which may cause damage to the testhead, it is quite possible that the discharge routine will never actually run under normal circumstances - on many of our boards with moderate-sized caps (tens to hundreds of uF), the damage voltage is often higher than the voltages applied to the caps even after the board has been powered up, and therefore it is unnecessary to execute the discharge test (from the point of view of preventing damage to the testhead).
It is my experience that by far the most effective means of removing any stray charge in the caps around a board is the 'close all relays' action, which I assume literally shorts every net to every other net - I believe this command action is embedded within at least both 'unpowered' and 'faoff'. Hence repeated 'unpo's are sometimes a useful tool to remove any stray charge that might be impacting on tests of nearby components.
" ! Maximum capacitance = 1.01; damage voltage = 100.0mv "
I find the two numbers here interesting too: if the system this is running on can be damaged by 200uJ of energy stored in a cap (the quoted figure I believe for the 3070), then if the cap really is 1.01 farads, the damage voltage calculates as 20mV, and so exitting the routine at 50mV still leaves a dangerous amount of energy in the cap; conversely if the damage voltage is 100mV, then this equates to a safe capacitance of 40mF or less! (So I suspect something is amiss/I've missed a point somewhere...!?).
just FYI - Here is the official take on capacitor discharge, how its calculated and also what takes place during the unpowered routine - in general for mux systems, only large Caps will cause relay damage - the discharge test is executed during every unpowered statement
The Vmax (maximum "known" voltage available on the DUT) value is not part of the calculation for the entry voltage. It is however part of the calculation for determining if a node should be considered to be discharged.
For a node to be identified as needing to be discharged, the possible energy for the node is calculated using
Energy = .5 * C * (Vmax*Vmax) [one half C Vsquared] or Energy = ((Vmax*Vmax)*C)/2
where Vmax is the maximum "known" voltage available on the DUT and C is the value of the "known" capacitance for the node. If the calculated Energy for the node exceeds a predefined value, Energy_max, e.g. 200uj, then the node is identified as needing to be discharged. As Vmax increases, more nodes will be identified as possibly needing to be discharged.
If a node is identified as possibly needing to be discharged, then the entry voltage (also identified as the "damage voltage") for the node is calculated. The entry voltage is calculated using
Ventry = SQR(2*Energy_max)/C [square root of (2 times Energy_max) divided by capacitance]
where Energy_max is 200uj and C is the value of the "known" capacitance for the node. The "known" capacitance for the node is the variable part of this equation.
A node will not actually be discharged unless the measured voltage on the node is greater than the defined entry voltage.
Lowering the entry voltage for a "discharge" test will result in nodes with lower Energy potentials being discharged.
Lowering the Energy_max value will result in lower entry voltages being calculated for "discharge" tests.
Executing the unpowered command does the following - in the order defined Turns off and disconnects any power supplies that were set up. Initializes the ASRU Card for unpowered testing. Executes the generated discharge block (.discharge). Sets the autoadjust to be executed on the next fxoff function if there has been more than 1000 hours of CPU time, or a temperature change of + or - five degrees centigrade. Notifies the user if autoadjust is needed but has been turned off. Closes all relays (except those connected to ground and GP relays) and checks for a short from the board under test to system ground. Such a short might be a test lead which was placed on the board under test and not removed. The relays remain closed until the first test function is executed for each module used. If you include an error variable with the unpowered function, the results of this check will be placed in the error variable.
The solution for check voltage in discharge test is passed voltage measured for discharge test into a global variable, for each subtest, and compare in testplan, changing error flag and indicate the possible node or capacitor with problem.
This is very usual for test with capacitor for too much capacitance. In other hands I use this way to test batery: First I disconnect all connection for probe to BRC in board batery nodes, after that I connect this signal, beetwen probe and BRC, through gp relay. When I was test unpowered devices or discharge board the batery was disconnect "from" circuit fixture. In powered mode I connect this relay and measure the voltage, the test working well, of course, depends on topology of circuit. Ok?
Sometimes you can use this test for very large value capacitors, too.
Note: set voltages are sample values only.
---------------------------------
test powered analog
test "output"
end test
subtest "output"
connect i to pins 1 ! high voltage pin
connect l to pins 2 ! low voltage pin
detector dcv, expect 10 ! sample max voltage = 10
measure 6, 4 ! high limit set to 6, low limit set to 5v
end subtest
-----------------------------------
*** For boards with removable batteries, it's better to remove them from board before test.
*** For very large capacitors, separate external discharge ckt are connected.