You are on page 1of 328

visualATE

Applications Training Student Guide


PN: 071-0999-00

19972009 LTX-Credence Corporation, as an unpublished work. All rights reserved.


This document is protected by the U.S. copyright law, and may also be protected by the copyright and trade secret laws of non-U.S. countries. The information provided in this document, and the software described, are furnished under a license and may only be copied or used in accordance with the terms of such license. The information contained herein is subject to change without notice and should not be construed as a commitment by LTX-Credence Corporation.

Legal Notice
No part of this publication may be reproduced or transmitted in any form, or transcribed, stored in a retrieval system, or translated into any language or computer language, in any form or by any meanselectronic, mechanical, magnetic, optical, chemical, manual or otherwise, or distributed to third partieswithout the prior written permission of LTXCredence Corporation. LTX-Credence Corporation makes no representations or warranties with respect to the contents hereof and specifically disclaims any implied warranties of merchantability or fitness for any particular purpose. Furthermore, LTX-Credence reserves the right to revise this publication and to make changes from time to time in the content hereof without obligation of LTX-Credence to notify any person of such revision or changes.

U.S. Government End User Licensees


The Software is commercial computer software, and the associated documentation is commercial computer software documentation. Accordingly, the rights of the Government in such Software and documentation are as specified in this License Agreement, consistent with FAR 12.212 and DFARS 227.7202-3. Notices: LTX-Credence, Credence, LTX, Sapphire, Diamond, X-Series, HiPer, Fusion, ASL, EnVision, and other LTX-Credence products and services mentioned herein as well as their respective logos are trademarks of LTX-Credence Corporation in the United States and other countries. Gemini is a registered trademark of Micro-Probe, Inc. and is licensed for use to Credence Systems Corporation. The following are trademarks or registered trademarks of their respective companies or organizations: UNIX / X/Open Company Ltd. Sun Microsystems, Sun Workstation, OpenWindows, SunOS, NFS, Sun-4, SPARC, SPARCstation, Java, Solaris / Sun Microsystems Ethernet / Xerox Corporation Microsoft, Windows, Windows NT, Windows XP / Microsoft Corporation All other brand or product names are trademarks or registered trademarks of their respective companies.

Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Completion Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Related Courses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Course Schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Online Pre-Course . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Day 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Day 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Day 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Day 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Day 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Document Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Reader Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Safety Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Caution Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Warning Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Danger Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1 - Personnel Safety and Equipment Protection . . . . . . . . . . . . . . . . . . 17


Personnel Safety and Equipment Considerations . . . . . . . . . . . . . . . . . . . . . . . Operator Safety Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Service Safety Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Electromagnetic Compatibility Immunity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Static Electricity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Materials to Avoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Materials to Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Working With Static-Sensitive Devices . . . . . . . . . . . . . . . . . . . . . . . . . Fire Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 19 20 21 21 21 22 22 22

2 - MUX Instrument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
MUX Instrument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description and Key Highlights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . User Bus Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programming Delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . wait.delay_10_us . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 27 28 30 30 30 30

visualATE Applications Training Student Guide

Contents

3 - DVI Instrument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
DVI Instrument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description and Key Highlights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Theory of Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Current Direction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Paralleling (Ganging) Two DVIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DVI Guard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DVI-2000 Differences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DVI-2000 Current Sourcing Capability . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 35 35 36 39 41 43 46 46 49

4 - Test Hardware Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53


Test Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 System Interconnects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Analog Ground Sense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

5 - Test Solution Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65


Test Solution Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Simplified Start-to-Finish Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 visualATE How ToDetailed Start-to-Finish Steps . . . . . . . . . . . . . . . . . . . 69 Working in Create Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Working in Engineering Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

6 - MUX and DVI Labs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125


MUX and DVI Labs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Support Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lab Loadboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . r1_val Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . r1_val Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . r1_val Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . r2_val Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . r2_val Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . r2_val Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . measbusi Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . measbusi Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . measbusi Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dvi_DiffMeas Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dvi_DiffMeas Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dvi_DiffMeas Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LED_test Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LED_test Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 128 133 134 135 136 138 139 140 142 143 144 146 147 148 150 151

PN: 071-0999-00

Contents

LED_test Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

7 - Datalog Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157


Datalog Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Datalog Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . func.dlog->power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . func.dlog->set_test_no . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . func.dlog->test_val . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . func.dlog->tests[ ].passed_fail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . func.dlog->set_bin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . func.dlog->tests[ ].display_results . . . . . . . . . . . . . . . . . . . . . . . . . . . . func.dlog->display_results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Simple Datalog Function Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 159 159 160 160 161 161 162 162 163

8 - OVI Instrument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167


OVI Instrument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description and Key Highlights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Theory of Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 169 169 169

9 - TMU Instrument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173


TMU Instrument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description and Key Highlights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Theory of Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 175 175 175

10 - OVI and TMU Instrument Labs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179


OVI and TMU Labs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dut_Continuity Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dut_Continuity Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dut_Continuity Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dut_VolVoh Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dut_VolVoh Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dut_VolVoh Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dut_VilVih Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dut_VilVih Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dut_VilVih Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ovi_Rise Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ovi_Rise Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ovi_Rise Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ovi_Fall Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ovi_Fall Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 182 183 184 188 189 190 194 195 196 200 201 202 204 205

visualATE Applications Training Student Guide

Contents

ovi_Fall Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dvi_Time Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dvi_Time Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dvi_Time Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dut_PropDelay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dut_PropDelay Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dut_PropDelay Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dut_TrTf Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dut_TrTf Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dut_TrTf Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

206 208 209 210 212 213 214 218 219 220

11 - Code Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223


Visual Studio Code Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

12 - visualISE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
visualISE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229

13 - PV3 Instrument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231


PV3 Instrument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description and Key Highlights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Theory of Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Current Duration Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 233 234 235 235 236

14 - PV3 Instrument Labs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239


PV3 Labs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pv3_PulsedI Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pv3_PulsedI Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pv3_PulsedI Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pv3_PulsedInDiffMeas Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pv3_PulsedInDiffMeas Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . pv3_PulsedInDiffMeas Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 242 243 244 246 247 248

15 - ACS Instrument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251


ACS Instrument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description and Key Highlights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Theory of Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 253 253 254

16 - ACS Instrument Labs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257


ACS Labs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 acs_Amplitude Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260

PN: 071-0999-00

Contents

acs_Amplitude Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . acs_Amplitude Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . acs_Frequency Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . acs_Frequency Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . acs_Frequency Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . acs_TrnglWv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . acs_TrnglWv Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . acs_TrnglWv Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . acs_LoadFromFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . acs_LoadFromFile Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . acs_LoadFromFile Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

261 262 264 265 266 268 269 270 272 273 274

17 - Analog Versus Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277


Analog Versus Digital Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 Simplified Digital Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278

18 - DDD Instrument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281


DDD Instrument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description and Key Highlights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Theory of Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 283 283 285

19 - DDD Instrument Labs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289


DDD Labs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dut_Icc Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dut_Icc Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dut_Icc Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dut_Functional Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dut_Functional Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dut_Functional Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . acs_ExtClk Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . acs_ExtClk Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . acs_ExtClk Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 292 293 294 298 299 300 304 305 306

A - Hardware Foundations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309


Hardware Components Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ASL 1000 Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ASL 3000 Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ASL 1000/ASL 3000 Hardware Differences . . . . . . . . . . . . . . . . . . . . . . . Testhead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Power Supply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 310 312 314 314 314

visualATE Applications Training Student Guide

Contents

B - Software Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315


Software Components Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . visualATE Global View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Test Functions, Lists, and Test Programs . . . . . . . . . . . . . . . . . . . . . . . . . Test Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Test Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Purpose of Create and Engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Test Solution Contrasts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . visualATE Environment Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lab Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 316 317 317 317 317 318 318 318 319 321 321

C - Software Foundations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323


Software Foundations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 visualATE Directory Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 Programming Syntax and Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . 325

PN: 071-0999-00

Preface
This manual, along with the visualATE Programming Applications class, is designed to provide the student with the skills required to develop and debug various lab exercises and device tests using the MUX, OVI, DVI, ACS, DDD, PV3, and TMU instruments, along with the Microsoft Visual Studio code debugger and visualISE instrument hardware debugger. Upon completion of the course, students should be able to develop and debug a device test program based on the mentioned instruments. This course is intended for test engineers and product engineers that need to develop and maintain a device test program using the ASL test system.

Prerequisites
Before attending this course, students must have: General knowledge of automated test General knowledge of C, C++, or other high-level programming language Six months test experience

Completion Requirements
Certificates are awarded based upon: Completion of all laboratory assignments Class participation

Related Courses
Other related courses include: visualATE Multisite Programming Online Course ASL 3000 MDI Applications ASL 3000 AWG/AVD Mixed Signal Applications ASL 3000RF and Baseband Applications ASL 1000/3000 Maintenance

NOTE: This class is a prerequisite for all other ASL courses.

visualATE Applications Training Student Guide

Preface

Course Schedule
Online Pre-Course
Hardware and testhead overview visualATE software overview Operator environment Engineering environment

Day 1
AM visualATE directory structure Instrument programming syntax and conventions MUX instrument PM Lab preliminaries System interconnects Simplified start-to-finish steps visualATE How To r1_val r2_val measbusi dvi_DiffMeas LED_test Read the OVI - Octal Voltage/Current Source and TMU - Time Measurement Unit chapters in visualATE 6.1 Programming Guide Hardware overview Software overview Hardware overview Software overview

DVI instrument

Labs

Homework

10

PN: 071-0999-00

Course Schedule

Read the Create and Engineering chapters in visualATE 6.1 Users Guide Read "Datalog Functions" on page 159 Review "ovi_Fall Lab" on page 204

Day 2
AM Datalog statements Simple datalog function call Hardware overview Software overview Hardware overview Software overview OVI instrument

TMU instrument

Visual Studio code debugger PM Labs dut_Continuity dut_VolVoh dut_VilVih ovi_Rise ovi_Fall dvi_Time dut_PropDelay dut_TrTf Read the Create and Engineering chapters in visualATE 6.1 User Guide Read the visualISE chapter in the visualATE 6.1 User Guide Read the PV3 - Pulsed Voltage/Current chapter in the visualATE 6.1 Programming Guide Review "pv3_PulsedI Lab" on page 242

Homework

visualATE Applications Training Student Guide

11

Preface

Day 3
AM PV3 Hardware overview Software overview

visualISE hardware debugger PM Labs pv3_PulsedCurrent pv3_PulsedCurrent and DiffMeas Read the ACS - AC Source chapter in visualATE 6.1 Programming Guide Review "acs_Amplitude Lab" on page 260

Homework

Day 4
AM ACS instrument PM Labs acs_Amplitude acs_Frequency acs_TrnglWv acs_LoadFromFile Read the Create and Engineering chapters in visualATE 6.1 User Guide Read the DDD - Digital Driver and Detector chapter in visualATE 6.1 Programming Guide Review "dut_Icc Lab" on page 292 Hardware overview Software overview

Homework

12

PN: 071-0999-00

Course Schedule

Day 5
AM DDD instrument PM Labs dut_Icc dut_Functional acs_ExtClk Hardware overview Software overview

Export class labs Fill out online survey Distribute Certificates

visualATE Applications Training Student Guide

13

Preface

Document Conventions
Reader Notes
Notes to the reader are identified by the word Note in bold font. Reader notes either precede or follow the information to which they apply, depending on context. NOTE: The bolded Note draws attention to issues other than personnel safety or equipment protection.

Safety Statements
Safety statements in this manual are indicated by a Caution, Warning, or Danger note to alert users about specific types of hazards.

Caution Statement
Caution The caution statement provides information essential to avoiding loss of data, program failure, or equipment damage. This statement is not used for a personal injury hazard. The hazard can only result in property damage or loss. Hazard is not immediate. Safety is contingent upon following the message instructions.

Warning Statement
Warning The warning statement provides information essential to the safety of the operator. Hazard is not immediately accessible. One level of protection is present between a person and the hazard. Hazard can result in personal injury.

14

PN: 071-0999-00

Course Schedule

Danger Statement
Danger The danger statement indicates that an imminent hazard exists. Hazard is immediately accessible. Hazard will result in personal injury. Safety is dependent upon awareness and skill. No safeguards are provided.

visualATE Applications Training Student Guide

15

Preface

Notes

16

PN: 071-0999-00

Personnel Safety and Equipment Protection


Goal
Familiarity with general electrical and safety concepts.

Objectives
After completing this unit, students should be able to: Discuss the symbols and components used in maintaining safety Learn general electrostatic discharge guidelines

In This Module
______ ______ Instructor Presentation Knowledge Check 15 5 Minutes Minutes

Resources
ASL 1000 Documentation Set ASL 3000 Documentation Set visualATE 6.1 Programming Guide visualATE 6.1 Users Guide

visualATE Applications Training Student Guide

17

1 - Personnel Safety and Equipment Protection

Personnel Safety and Equipment Considerations


The safety considerations specified in this document meet the SEMI S2-93 safety standards as well as those of Underwriters Laboratories (UL), Factory Mutual, Canadian Standards Association (CSA), and VDE (Verband Deutscher Elektrotechniker (Association of German Electrical Engineers)). Product safety information is intended to: Help prevent damage or injury to data, equipment, and personnel Observe government-mandated requirements for safety issues Comply with safety requirements in countries where LTX-Credence products are sold

These requirements apply to instructions, operators, maintenance, and service for semiconductor test systems and associated apparatus manufactured by LTXCredence Corporation.

18

PN: 071-0999-00

Operator Safety Summary


The operator safety information shown in Table 1 is intended for operating and service personnel. Specific warnings and cautions throughout this manual may not appear in this summary. Table 1. Operator Safety Summary Terms and Symbols Terms in this manual Description Caution statements identify conditions or practices that could result in damage to the equipment or other property. Warning statements identify conditions or practices that could result in personal injury or loss of life. Caution indicates a personal injury hazard or a property hazard including the equipment itself not immediately accessible when reading the marking. Danger indicates a personal injury hazard immediately accessible when reading the marking. DangerHigh Voltage

Terms as marked on equipment

Symbols as marked on equipment

Attention Protective ground (earth) terminal

Power source and ground

This equipment operates from a power source that applies dangerous voltage between the supply conductors, and between any supply conductor and ground. If the ground connection is interrupted, all accessible conductive parts could render an electric shock. If a power cord is not provided with the product, refer to qualified service personnel. To avoid personal injury, do not remove product covers or panels. Do not operate the product without the covers and panels installed. Refer installation to qualified service personnel. To avoid explosion, do not operate this equipment in an explosive atmosphere unless it has been specifically certified for such operation.

Do not remove covers or panels Do not operate in explosive atmospheres

visualATE Applications Training Student Guide

19

1 - Personnel Safety and Equipment Protection

Service Safety Summary


The service safety summary in Table 2 is for qualified service personnel only (also see "Operator Safety Summary" on page 19). Table 2. Service Safety Summary Statement Do not service alone Use care when servicing with power on Description Do not service or adjust this product internally unless another person capable of rendering first aid and resuscitation is present. Dangerous voltages and currents may exist at several points in this product or in the equipment with which this product is used. To avoid personal injury, do not touch exposed connections and components while power is on. Disconnect power before removing protective covers and making internal changes. Remove jewelry prior to servicing. Rings, necklaces, watchbands, and other metallic objects could come into contact with dangerous voltages or currents. This product is intended to operate from a single-phase AC power source with 90-264 VAC, 50/60 Hz. The power source can be L1-L2Ground or L-N-Ground. Refer to the installation instructions before attempting to connect the product to a power source. The product is grounded through the protective grounding conductor of the power cord (or service wiring in lieu of a power cord). To avoid electrical shock, the grounding conductor must be connected to a properly wired receptacle or junction box. To avoid injury to other personnel, replace covers before leaving the equipment unattended. Two or more persons may be needed to lift and maneuver equipment such as a testhead and rack-mounted units because of their physical size, shape, weight, or location. To avoid injury, do not attempt to handle this type of equipment alone.

Do not wear jewelry

Power source

Grounding the product

Replace covers Lifting

20

PN: 071-0999-00

Service Safety Summary

Electromagnetic Compatibility Immunity


Do not use hand-held wireless communication devices within 10 meters (32.8 feet) of the test system to avoid the possibility of erroneous data or misclassification of devices under test. Accessibility of electro static discharge (ESD) sensitive devices and wiring in the vicinity of the testhead requires that users wear a grounded wrist strap at all times. A wrist strap ground points are located on the system. Other ESD abatement practices should also be implemented, such as the use of ESD abatement flooring, conductive shoe straps, ESD preventive coat, and ESD wrist strap connectivity monitors.

Static Electricity
Many electronic devices used in test-station circuitry can be damaged by static discharge. Test-station accessories include a static-discharge wrist strap, which the operator or service technician should always wear when working with static-sensitive devices such as circuit boards. Although the wrist strap discharges static buildup, it presents a high impedance to ground to limit the current should the wearer come in contact with a high voltage source. Therefore, despite wearing the strap, it is possible to generate a static charge through improper procedures and retain it long enough to damage the equipment or compromise a device test.

Materials to Avoid
The following materials can damage static-sensitive devices: Polystyrene foam items such as Styrofoam cups and packaging materials Clear plastic bags White or gray packaging foam Clear bubble pack Non-conductive plastic containers such as plastic trays and parts bins Plastic items such as vinyl combs, brushes, and notebooks Transparent tape Clear plastic sheets such as page covers Clear film products such as Kodagraphs Candy wrappers and peanut bags

visualATE Applications Training Student Guide

21

1 - Personnel Safety and Equipment Protection

Materials to Use
The following materials can be used with static-sensitive devices: Wood Cotton cloth Pink poly bags Metallized bags Conductive plastics Metal tools Silverstat solder suckers

Working With Static-Sensitive Devices


All circuit boards that contain semiconductors (such as transistors, FETs, ICs, and CMOS ASICs) should be moved between the test system and a shipping container or static free work area only in conductive containers (such as metallized bags). Place an unprotected circuit board on an antistatic mat or install it in the system. Do not handle it without wearing a wrist strap. To handle circuit boards with the least risk of damage to devices, take the following precautions: 1. Wear a wrist strap connected to a convenient ground. 2. Set a conductive container (metallized bag) on an antistatic mat. 3. Remove the circuit board and place it in the metallized bag. 4. Move the bagged circuit board to a shipping container or to the next static controlled work area. The user does not need to wear the wrist strap for this step.

Fire Protection
Locate fire extinguishers, approved for electrical equipment, within easy reach of the system. If overhead sprinklers are installed in the test area, direct sprinkler heads away from the testhead and power server to minimize water damage in case of fire. For added protection, provide a separate storage area for system documentation, software tapes and disks, and spare parts.

22

PN: 071-0999-00

Fire Protection

Knowledge Check
1. What is ESD?

2. What are some of the safeguards for ESD?

3. When is it necessary to observe ESD precautions?

4. When is a system most vulnerable to ESD hazard?

visualATE Applications Training Student Guide

23

1 - Personnel Safety and Equipment Protection

Check Your Work


Review the answers and have the instructor sign off this module.

24

PN: 071-0999-00

MUX Instrument
Goal
Understand the MUX instrument and be able to perform simple DC tests.

Objectives
After completing this unit, students should be able to: Describe the MUX instrument hardware Describe the software that supports the MUX instrument

In This Module
______ ______ Instructor Presentation Knowledge Check 1 10 Hour Minutes

Resources
visualATE 6.1 Programming Guide visualATE 6.1 User Guide

visualATE Applications Training Student Guide

25

26
MUX_BANK_8_1 MUX_1_BUS9 MUX_8_BUS8
BUS_9 BUS_8

2 - MUX Instrument

MUX_1_1

MUX_8_1 MUX_8_2 MUX_8_3

BANK 1
MUX_8_GND MUX_BANK_1_2 MUX_BANK_7_8 MUX_7_BUS7
BUS_2 BUS_7

MUX_1_2

MUX_1_3

BANK 8
MUX_8_4

Figure 1. MUX Diagram

MUX_1_4

MUX_2_1

MUX_2_BUS2

MUX_7_1 MUX_7_2 MUX_7_3

BANK 2
MUX_2_GND MUX_BANK_2_3 MUX_3_BUS3
BUS_3 BUS_6

MUX_2_2

MUX_2_3 MUX_7_GND MUX_BANK_6_7 MUX_6_BUS6

BANK 7
MUX_7_4

MUX_2_4

MUX_3_1

MUX_6_1 MUX_6_2 MUX_6_3 MUX_6_GND MUX_6_4 MUX_BANK_5_6 MUX_5_BUS5 MUX_5_1


BUS_5 BUS_10

BANK 3

MUX_3_2

MUX_3_3

BANK 6

MUX_3_4 MUX_BANK_3_4 MUX_4_BUS4


BUS4

MUX_4_1

BANK 4
MUX_4_GND

MUX_4_2

MUX_5_2 MUX_5_3 MUX_BANK_4_5 MUX_5_BUS10 MUX_5_4

MUX_4_3

BANK 5

MUX_4_4

PN: 071-0999-00

MUX Instrument

MUX Instrument
This section details the DVI instrument, including: Instrument description Key highlights User Bus Lines Programming Delay Software

Description and Key Highlights


The MUX (multiplexer) instrument is a general purpose relay card. Its intent is to relieve the need of having local disconnect relays on the DUT loadboard. The relays are organized as eight groups, or banks, of four relays. One side of the relay bank is common, the other side is routed to the user test interface. There are two types of MUX instrument, low and high voltage. The ASL system only recognizes a MUX, it does not differentiate between the low and high voltage versions as there is only one board ID for the two types. A low voltage and a high voltage MUX are visually different and easy to recognize. The low voltage MUX uses relays housed in 4-pin, rectangular packages. The high voltage MUX uses relays housed in 4-pin, tubular packages. The two types of MUX are functionally equivalent. However, there is a subtle difference in the settling times. The low voltage MUX relays typically settle in 350 s, whereas the high voltage MUX relays typically settle in 1 ms. This could potentially cause a test program to behave incorrectly if relay wait times have been optimized for a low voltage MUX and then the test program is run on a system with high voltage MUXs installed. As the ASL test system has no busy line to indicate instruments in motion, the user is responsible for defining any required delay times. See "Programming Delay" on page 30. Some of the MUX banks have access to system ground through the ground connect relays. MUX banks can be connected together via the intra-bank connect relays.

visualATE Applications Training Student Guide

27

2 - MUX Instrument

User Bus Lines


All of the MUX banks have access to at least one of the nine internal user bus lines. These are traces that run from slot 1 to slot 21, which can provide alternate paths for instrument or DUT signals. Remember that every slot in an ASL testhead connects directly out to the user test interface. These alternate paths are not intended for use with high currents or high-speed signals. Figure 2. User Bus Lines

User Bus Lines 2 - 10

The user accesses the user bus lines through the MUX card. The instruments access the user bus lines through a pre-wired jumper set called WL2 (wire link 2). Not all instruments utilize WL2 and so, not all instruments have access to the user bus lines. The ones that have access are: MUX can access all busses DVI-300 can access busses 2 and 3 DVI-2000 can access busses 2, 3, 4, and 7 DOAL can access busses 9 and 10 TMU has access to bus 8

28

PN: 071-0999-00

MUX Instrument

Figure 3 shows a diagram of the WL2. Figure 3. WL2 Diagram


ASL Instrument Card (Component Side ) Wire Link 1 Sets card's ID

WL1

P1

Wire Link 2 Sets card's User Bus access

P2
WL2

The MUX instrument has no WL2 jumper set, the user bus access is hardwired.

visualATE Applications Training Student Guide

29

2 - MUX Instrument

Programming Delay
Programming the required amount of settling time for the MUX (or any other instrument) can be done using the delay() or wait.delay_10_us() statements.

delay
delay determines the amount of wait time in 1 ms intervals. This statement is

interrupted by Windows background tasks, so the amount of delay is always slightly larger than the requested value. Format: void delay(unsigned short 1ms_intervals); Valid Arguments: 1ms_intervals is an unsigned short number in the range of 1 - 65535. Usage: delay(10); //10ms wait

wait.delay_10_us
wait.delay_10_us determines the amount of wait time in 10 s intervals. This

statement is not interrupted by Windows background tasks. Format: void wait.delay_10_us(unsigned short 10us_intervals); Valid Arguments: 10us_intervals is an unsigned short number in the range of 1 - 65535. Usage: wait.delay_10_us(10); //100us wait

Software Statements
For the software discussion, refer to the MUX - Resource Multiplexer chapter in the visualATE 6.1 Programming Guide.

30

PN: 071-0999-00

MUX Instrument

Knowledge Check
1. What is a MUX card?

2. In which slot should a MUX reside and why?

3. What is different between the two models of MUX?

4. What are the alternate paths accessed by the MUX?

visualATE Applications Training Student Guide

31

2 - MUX Instrument

Check Your Work


Review the work and have the instructor sign off this module.

32

PN: 071-0999-00

DVI Instrument
Goal
Understand the DVI instrument and be able to perform simple DC tests.

Objectives
After completing this unit, students should be able to: Describe the DVI instrument hardware Describe the software that supports the DVI instrument

In This Module
______ ______ Instructor Presentation Knowledge Check 1 10 Hour Minutes

Resources
visualATE 6.1 Programming Guide visualATE 6.1 User Guide

visualATE Applications Training Student Guide

33

34
CH0 Current DAC 12 BIT COMPARATOR TP INTEGRATOR Power Buffer Current Ranging CH0 Voltage DAC 12 BIT COMPARATOR INTEGRATOR COMPENSATION NETWORK

CHANNEL 0

DATA BUS

3 - DVI Instrument

*
FORCE CH0

Figure 4. DVI Diagram

DATA BUS

SLOW_MODE

TP DIFFERENTIAL AMPLIFIER Sense Buffer Voltage Range Switching IMEAS_CH0

SENSE CH0

VMEAS_CH0

TP DIFF_MEAS CHANNEL_SHORT VMEAS_CH1 DIFFERENTIAL AMPLIFIER 16 BIT ADC


GND REF

DATA BUS

AGS IMEAS_CH1

*
Sense Buffer Voltage Range Switching

SENSE CH1 TP
SLOW_MODE

DIFFERENTIAL AMPLIFIER

COMPARATOR CH1 Voltage DAC 12 BIT

INTEGRATOR

DATA BUS

COMPENSATION NETWORK Current Ranging Power Buffer

*
FORCE CH1 TP

COMPARATOR CH1 Current DAC 12 BIT

INTEGRATOR

DATA BUS

PN: 071-0999-00

CHANNEL 1

* NORMALLY CLO SED BY init();

DVI Instrument

DVI Instrument
This section details the DVI instrument, including: Instrument description Key highlights Theory of operation Software

Description and Key Highlights


The DVI (dual voltage/current source) instrument is a general purpose, programmable DC supply. Key features are: Two independent channels (CH0, CH1) 45 programmable voltage range 300 mA or 2000 mA available depending on model Force and Sense operation Four quadrant capable Differential voltage measure capable Relay connects on Force and Sense 12-bit voltage and current programming 16-bit ADC for measure Ground referenced

Theory of Operation
The DVI has two basic rules of operation: It wants to be a voltage source Programmed current value is never exceeded

Figure 5 shows these two rules.

visualATE Applications Training Student Guide

35

3 - DVI Instrument

Modes
Figure 5. Rules of OperationCurrent Mode

DVI V = 2.0 I = 0.001

Voltmeter
S F

1.0 +
1 mA

1K

The DVI attempts to reach the programmed voltage (Rule 1), but it stops increasing voltage when programmed current is achieved (Rule 2). DVI is in Current mode. Figure 6. Rules of OperationVoltage Mode

DVI V = 2.0 I = 0.001

Voltmeter
S F

2.0V +
200 A

10K

The DVI reaches programmed voltage (Rule 1), if programmed current is not achieved. DVI is in Voltage mode. NOTE: The DVI has no force or clamp commands, so the mode of operation is dependant upon the values programmed and load.

36

PN: 071-0999-00

DVI Instrument

Figure 7. DVI ModeExample 1

DVI V = 2.0 I = 0.001

S F

1K

+20 V
Voltmeter

??? + In Figure 7, the other side of the resistor has been connected to +20 V. What is the voltage at the point shown? Applying Rule 2 determines that a maximum of 1 mA can flow through the DVI channel. Ohms law calculates to a 1 V drop across the resistor. Kirchoff's voltage law says that the sum of the voltage drops around any closed loop in the network must equal 0. This means that with 20 V applied and 1 V dropped across the 1 K resistor, the DVI must be dropping the remaining 19 V. In order for the voltage at the shown point to reach 2 V, enough current to create an 18 V drop across the 1 K resistor must be allowed. The current value, in this case, would be 18 mA.

visualATE Applications Training Student Guide

37

3 - DVI Instrument

Figure 8. DVI ModeExample 2

DVI V = 2.0 I = 0.001

S F

1K

-5.0 V
Voltmeter

??? + In Figure 8, the other side of the resistor has been connected to -5 V. What is the voltage at the point shown? Rule 2 again determines that a maximum of 1 mA can flow through the DVI channel with the expected -1 V drop across the resistor. Kirchoff's voltage law says the DVI must be dropping the remaining -4 V. In order for the voltage at the shown point to reach 2 V, enough current to create a 7 V drop across the 1 K resistor must be allowed. Why 7 V? Because the difference between -5 and +2 is 7. The current value, in this case, would be 7 mA. Figure 9 shows a real world example on how to use the DVI to power a DUT. Figure 9. DVI ModeReal World Example
DUT Specifications: Vcc = 5.0 Icc = 13 mA Typical 23 mA Maximum Vcc DUT Gnd DVI S DVI F

What would be the DVI voltage and current values to satisfy the example in Figure 9? The first question to ask is, what is the required mode of operation voltage or current? The DUT specification states a fixed Vcc, which then requires the DVI to be in Voltage mode. The programmed voltage value would be 5.0.

38

PN: 071-0999-00

DVI Instrument

The next question is, what would be the programmed current value? The specification states that the DUT Icc can range from a typical value of 13 mA to a maximum value of 23 mA. In order for the DVI to provide this range of current, it must be programmed to some value greater than 23 mA. Setting the current value to 23 mA allows a defective DUT to pass an Icc measurement since a measurement of 23 mA is valid. Providing a larger amount of current than 23 mA allows the DUT to exceed the maximum current listed for Icc and thus fail the measurement. General rule for programming current in this case is DUT specification + %20. This means a value of 23 mA + %20 (4.6 mA) or 27.6 mA would be programmed. Rounding up to 30 mA is acceptable.

Current Direction
In the previous examples of DVI operation, there was no mention of current direction. The following examples illustrate the subject. Current direction in these examples is defined as: Sourcing current or positive current is current going out of the DVI Sinking current or negative current is current going into the DVI

What is the direction of current when? Figure 10. Current DirectionExample 1

DVI V = 2.0 I = 0.001

S F

1K

In Figure 10, the A-side of the resistor is at a more positive potential than the B-side. This causes current to flow in the positive direction, going out of the DVI through the resistor to ground.

visualATE Applications Training Student Guide

39

3 - DVI Instrument

Figure 11. Current DirectionExample 2

DVI V = 2.0 I = 0.001

S F

A 1K B

+20 V

?
In Figure 11, the B-side of the resistor is more positive than the A-side so current flows in the negative direction, into the DVI (and eventually to ground). All of the previous DVI examples have been using an unsigned or positive programmed current value. The example in Figure 12 shows the use and effects of a negative value. Figure 12. Current DirectionNegative Value Example

DVI V = 2.0 I = -0.001

S F

1K

The programmed current value is negative in the Figure 12 example. What is the direction of current? The answer is positive. Current direction is not based on the sign of the programmed current value, it is based on the difference in voltage potential between the A-side and B-side (or, the DVI-side and ground-side) of the load. The programmed value is the absolute amount of current that the DVI allows. Does the sign of the current value make a difference? Yes. It is used to select which current calibration factors are applied. The DVI is calibrated through all modes and quadrants of operation including positive and negative current. Ideally, the correction factors for both current directions would be equal. But differences exist due to inherit tolerances of components used in the DVI circuit. The sign used on the programmed current value determines which set of calibration factors (positive or negative) that are applied. Programming a negative current value, when it is known that the direction of current is negative, facilitates the best possible operation and accuracy of the DVI.

40

PN: 071-0999-00

DVI Instrument

Paralleling (Ganging) Two DVIs


Sometimes there may be a DUT current requirement that is outside the capability of one DVI channel. This situation is remedied by combining the current from two DVI channels through paralleling (or ganging) where the two channels are physically tied together at the DUT. This process requires that one DVI channel must be in Voltage mode, while the second channel must be in Current mode in order to maintain DVI operational stability. For example: The DUT requires a typical 3.5 A Icc at 5 V Vcc. To support this, the DVI channels would be programmed as follows:
set_current(DVI_CHANNEL_0, 1.9); //ch0 in voltage mode set_voltage(DVI_CHANNEL_0, 5.0); set_current(DVI_CHANNEL_1, 2.0); //ch1 in current mode set_voltage(DVI_CHANNEL_1, 4.9);

The combined current available to the DUT would be 3.9 A with the majority of current supplied by CH1.

visualATE Applications Training Student Guide

41

42
CH0 F CONN_FORCE0

DVI 300
*
1.1k CONN_SENSE0

CH0 FORCE

3 - DVI Instrument

CH0 S

* CH0 GUARD

CH0 SENSE

To/From DUT

10k

DO NOT GROUND THE GUARD ON A DVI 300 because it is always connected and driven.

- DVI 300, controlled by: dvi_x->close/open_relay(CONN_SENSE0/CONN_SENSE1) - DVI 2000, controlled by: dvi_x->close/open_relay(GUARD0/GUARD1)

Figure 13. DVI-300/DVI-2000 Guard Diagram

DVI 2000
CH0 F CONN_FORCE0

CH0 S

CH0 FORCE

1.1k

CH0 SENSE

To/From DUT

CONN_SENSE0

* * CH0 MEAS
CONN_MEAS0

PN: 071-0999-00
10k

CH0 GUARD
GUARD_0

DVI Instrument

DVI Guard
The Guard circuit allows the outside foil (or braid) of a multi-conductor cable to be driven with the same potential that exists on the Sense line, which can reduce the distributed capacitance between the outside foil (or braid) and interior wires. There is also some protection from outside interference. This is different than grounding the outside foil (or braid), which provides protection from outside interference only with no reduction in distributed capacitance. See Figure 13 on page 42.

visualATE Applications Training Student Guide

43

44
TP5 CH0 F CONN_FORCE0

CHANNEL 0
* CH0 FORCE
1.1k CONN_SENSE0

CH0 S

3 - DVI Instrument

CH0 MO D

* *

DVI_EXT_DRV1

TP14

* CH0 SENSE

DVI_EXT_DRV2

10k

CH0 GUARD

BUS_FORCE0

Figure 14. DVI-300 Relay Diagram

BUS_SENSE0

WL2 (Wire Link 2)

MO D_CHAN0

CHANNEL_SHO RT

MO D_CHAN1

BUS2 BUS3 BUS4 BUS5 BUS6 BUS7 BUS8 BUS9

BUS_SENSE1

*
TP15

BUS_FORCE1

VMEAS_BUS

*
CONN_BUS_MEAS

** ** CH1 GUARD
IMEAS_CH0 VMEAS_CH0

16 BIT ADC

10k

**
VMEAS_CH1

** CH1 SENSE
1.1k IMEAS_CH1 DIFF_MEAS

TP13 CH1 MOD CONN_FORCE1 CH1 F

CONN_SENSE1

** **

*
TP7

CH1 S

CH1 FORCE
* CONTROLLED BY open/close_relay(); ** CONTROLLED BY set_meas_mode();

PN: 071-0999-00

CHANNEL 1

CHANNEL 0
TP2 CH0 F CONN_FORCE0

CH0 S

* CH0 FORCE

CH0 MOD 1.1k

* *

DVI_EXT_DRV1

TP4 CONN_SENSE0

CH0 SENSE * *
CONN_MEAS0

DVI_EXT_DRV2

CH0 MEAS

(TO VMEAS_CH0) 10k GUARD_0

*
BUS_MEAS0

* CH0 GUARD * * * * * * *
GUARD_1

Figure 15. DVI-2000 Relay Diagram

visualATE Applications Training Student Guide


BUS_FORCE0

WL2 (Wire Link 2)

BUS_SENSE0

*
MOD_CHAN1

MOD_CHAN0

CHANNEL_SHORT

BUS_SENSE1

BUS2 BUS3 BUS4 BUS5 BUS6 BUS7 BUS8 BUS9

BUS_FORCE1 10k

CH1 GUARD
VMEAS_BUS

TP21

(TO VMEAS_CH1)

*
BUS_MEAS1

*
CONN_BUS_MEAS

** CH1 MEAS
IMEAS_CH0 VMEAS_CH0 VMEAS_CH1

*
CONN_SENSE1

16 BIT ADC ** ** ** CH1 SENSE


IMEAS_CH1 DIFF_MEAS

CONN_MEAS1

TP5 CH1 MOD 1.1k CONN_FORCE1 CH1 F TP3

** ** **

CH1 S

CH1 FORCE

TEMP

DVI Instrument

CHANNEL 1

* CONTROLLED BY open/close_relay(); ** CONTROLLED BY set_meas_mode();

45

3 - DVI Instrument

DVI-2000 Differences
The DVI-2000 force and sense lines are connected together by a 1.1 k resistor before CONN_FORCE, CONN_SENCE, and CONN_MEAS. The Sense and Measure paths have been separated with each path having its own connect relays. On a DVI-200 or DVI-300, the voltage measure ability was fed by the channel sense input where the channel sense connect relay was individually controlled. On the DVI2000, what was known as the sense connect relay is now controlled by the same bit as the related channel force connect relay. There are now two paths to the voltage measure function: 1. A path connected through a relay called CONN_SENSEx (where x is the channel number) 2. A path connected through a relay called CONN_MEASEx (where x is the channel number). Also, the DVI-2000 now has individual control over the guard connect relay. For more information, see Figure 15 on page 45.

DVI-2000 Current Sourcing Capability


The DVI-2000 instrument is a two channel V/I capable of delivering 2 A of instantaneous current per channel. This yields a maximum deliverable current of 4 A per instrument. The primary consideration for current source/sink capability of the DVI-2000 is the cooling capability for each DVI-2000 instrument. Each board is capable of dissipating 25 W of power. NOTE: This is the total board power, not the per-channel power dissipated on the board, nor the power delivered to the device under test (DUT). The majority of the thermal consideration is the output FET of the DVI-2000, which experiences a different amount of power depending on the output voltage to the device. The DVI-2000 generates voltage from the 50 V supply. Dissipated power is calculated as: Dissipated Power = V (across the output FET) * I (delivered to the DUT) As an example, if the user wants to deliver 0.5 A at 10 V to a device, the consumption of the DVI-2000 board would be: Dissipated Power = (50 V - 10 V) * (0.5 A)

46

PN: 071-0999-00

DVI Instrument

This calculates to 20 W, which does not exceed the 25 W cooling capability of the instrument. Figure 16 represents the maximum continuous current that the board is capable of driving while staying below the maximum power of 25 W. Figure 16. Continuous Current Capability
4.50 4.00 3.50 3.00

I (A)

2.50 2.00 1.50 1.00 0.50 0.00


7. 50 10 .0 0 12 .5 0 15 .0 0 17 .5 0 20 .0 0 22 .5 0 25 .0 0 27 .5 0 30 .0 0 32 .5 0 35 .0 0 37 .5 0 40 .0 0 42 .5 0 45 .0 0 2. 50 0. 00 5. 00

NOTE: For currents exceeding 2 A, the data represents the combined current for two channels. Using the previous example of 10 V at 0.5 A, the graph (Figure 16) shows that the DVI2000 is capable of delivering this amount of current continuously. Consider the example of driving the same 10 V at 1.25 A. The power consumption of the DVI-2000 would be: Power = (50 V - 10 V) * (1.25 A) This calculates to 50 W, which exceeds the 25 W thermal budget. The implication is that the DVI-2000 must be cycled in such a way that it has time to cool. Since the delivered power exceeds the thermal budge by a factor of 2x, the DVI-2000 must be operated with no more than a 50% duty cycle (25 W/50 W = 50%). For example, if the user wants to deliver 1.25 A at 10 V to the device for 100 ms, the DVI-2000 must then be turned off for 100 msa duty cycle of 50%. If the dissipated power of the DVI-2000 were 100 W, then the duty cycle would be 25% (25 W/100 W = 25%), and so on. Figure 17 takes the original power equation and plots the duty cycle versus board power dissipation.

visualATE Applications Training Student Guide

47

3 - DVI Instrument

Figure 17. DVI-2000 Duty Cycle Versus Dissipation Power


120.00

100.00

80.00

Duty Cycle (%)

60.00

40.00

20.00

0.00 0.00 25.00 50.00 75.00 100.00 125.00 150.00 175.00 200.00

DVI-2000 Power Dissipation (W)

A duty cycle of 100% represents continuous current. A power consumption greater than 100 W represents both channels of the DVI-2000 combined to deliver 4 A. The worst-case scenario for per-channel power is driving 2 A into a short circuit, or P = (50 V - 0 V) * 2 A = 100 W. Rearranging this data to represent a more device-centric model, Figure 18 shows the duty cycle in terms of current delivered over multiple voltages.

48

PN: 071-0999-00

DVI Instrument

Figure 18. DVI-2000 Duty Cycle Calculated from the Output Voltage and Current
120.00 100.00 Duty Cycle (%) 80.00 60.00 40.00 20.00 0.00
20 60 00 40 80 20 60 00 40 0. 0. 1. 1. 1. 2. 2. 3. 3. 3. 80

1.8 V 3.3 V 5V 10 V 15 V 24 V 36 V 45 V

I (A)

NOTE: Any current that exceeds 2 A represents both channels of the DVI-2000 combined in order to deliver up to 4 A to the device.

Software Statements
For the software discussion, refer to the DVI - Dual Voltage/Current Source chapter of the visualATE 6.1 Programming Guide.

visualATE Applications Training Student Guide

49

3 - DVI Instrument

Notes

50

PN: 071-0999-00

DVI Instrument

Knowledge Check
1. What are the two basic operating rules for the DVI instrument?

2. In what quadrants of the V/I graph can the DVI operate?

3. What are the two operational modes of the DVI?

4. Can a DVI be stacked with another DVI? Why?

5. What is the maximum calibrated voltage output of a DVI?

6. What does the minus sign do when used on the DVI programmed current value?

visualATE Applications Training Student Guide

51

3 - DVI Instrument

Check Your Work


Review the work and have the instructor sign off this module.

52

PN: 071-0999-00

Test Hardware Development


Goal
Initial understanding of the steps required for test hardware development.

Objectives
After completing this unit, students should be able to perform the initial steps required for test hardware development

In This Module
______ Instructor Presentation 1.5 Hours

Resources
visualATE 6.1 Programming Guide visualATE 6.1 User Guide

visualATE Applications Training Student Guide

53

4 - Test Hardware Development

Notes

54

PN: 071-0999-00

Test Development
Before beginning the "MUX and DVI Labs" on page 125, students need to: Understand the system interconnects document Understand the Analog Ground Sense concept

System Interconnects
After designing the loadboard circuit, the loadboard itself must be wired. Wiring the board requires the knowledge of where the instruments in the testhead are located at the user test interface (UTI). The ASL 1000 UTI is shown in Figure 19. Figure 19. ASL 1000 UTI

J2

J6

J4

J1

J5

J3

Figure 20. Loadboard Circuit


OVI 1 CH0 S OVI 1 CH0 F OVI 1 CH3 S OVI 1 CH3 F Vcc DVI 11 CH0 S DVI 11 CH0 F

DUT
Gnd

TMU 6 CHA 1

visualATE Applications Training Student Guide

55

4 - Test Hardware Development

The loadboard circuit shown in Figure 20 requires the use of an OVI in slot 1, a DVI in slot 11, and a TMU in slot 6. The document that explains where these instruments appear at the user test interface is called System Interconnects Document and can be found in the ASL 1000 Interconnects and ASL 3000 Interconnects appendixes in the visualATE 6.1 Programming Guide. The System Interconnects Document is organized by slot number. To determine where channel 0 of a DVI in slot 11 appears, read the page containing slot 11. All slots indicate all standard instruments whether or not full functionality can be accessed based upon the slot/path constraint (odd slots, 16 paths to the UTI; even slots, 32 paths). Looking to the left of the desired instrument and function shows the correct UTI connector and pin number (DIN connector for ASL 1000, spring pin block for ASL 3000). Figure 21 relates to an ASL 1000 and shows that DVI 11 CH0 can be found on connector J4, pins B21 and B23. Figure 21. System InterconnectsSlot 11, DVI
Slot 11 Connector -Pin J4-B21 J4-B22 J4-B23 J4-B24 J4-B25 J4-B26 J4-B27 DVI CH0 FORCE CH0 GUARD CH0 SENSE CH1 FORCE CH1 GUARD CH1 SENSE

J2

DVI 11 CH0S - J4.B23 DVI 11 CH0F - J4.B21

J6

J4

J1

J5

J3

56

PN: 071-0999-00

Looking on the slot 6 page shows that TMU CHA 1 is located on connector J5, pin C5 as shown in Figure 22. Figure 22. System InterconnectsSlot 6, TMU
Slot 6 Connector-Pin J5-C1 J5-C2 J5-C3 J5-C4 J5-C5 J5-C6 J5-C7 J5-C8 J5-C9 J5-C10
TMU 6 CHA1 - J5.C5

TMU EXT ARM IN TMU CHAN B DUT2 TMU CHAN B DUT1 TMU CHAN A DUT2 TMU CHAN A DUT1 TMU HIZ DUT1 TMU HIZ DUT2 TMU HIZ DUT3 TMU HIZ DUT4

J2

J6

J4

J1

J5

J3

visualATE Applications Training Student Guide

57

4 - Test Hardware Development

Looking on the Slot 1 page shows that OVI CH0 is located on connector J2, pins B23 and B24 and CH3 is located on connector J2, pins B17 and B18 as shown in Figure 23. Figure 23. System InterconnectsSlot 1, OVI
Slot 1 Connector-Pin J2-B17 J2-B19 J2-B21 J2-B23 J2-B18 J2-B20 J2-B22 J2-B24 OVI CH3 CH2 CH1 CH0 CH3 CH2 CH1 CH0 FORCE FORCE FORCE FORCE SENSE SENSE SENSE SENSE

J2

OVI 1 CH3F - J2.B17 OVI 1 CH3S - J2.B18 OVI 1 CH0F - J2.B23 OVI 1 CH0S - J2.B24

J6

J4

J1

J5

J3

58

PN: 071-0999-00

Attaching wires from the connector pins to the related points on the DUT and support components, connects the DUT to the test system instrumentation as shown in Figure 24. Figure 24. DUT Connectors

J2

Vcc

DUT
Gnd

J6

J4

J1

J5

J3

visualATE Applications Training Student Guide

59

4 - Test Hardware Development

Analog Ground Sense


Figure 25 shows using a meter ground reference many feet away from the DUT ground. In this case, the ground potential at the DUT and around the instrument may be vastly different even though they are technically ground. Figure 25. Meter Not Referenced to Voltage of Interest

DVI V set to 2.0 I set to 0.001

S F 1K

The two grounds are many feet apart . Voltmeter

??? + -

If either of the ground potentials shift, the meter reading is unstable and inaccurate.

60

PN: 071-0999-00

Figure 26 shows the correct connection of the meter ground to the DUT ground. Should the DUT ground potential shift, the meter will shift also resulting in a stable measurement. Figure 26. Meter Referenced to Voltage of Interest

DVI V set to 2.0 I set to 0.001

S F 1K

Voltmeter

??? + This concept of referencing the measurement to the DUT can and should be used when instruments are involved.

visualATE Applications Training Student Guide

61

4 - Test Hardware Development

Figure 27 is essentially the same scenario related in Figure 25. The measurement device is not referenced to the DUT. In this particular case, an A-to-D (A/D) converter is being used in place of a physical meter to perform the measurement. The instrument ground and the DUT ground can be different resulting in an unstable and inaccurate measurement. Figure 27. A/D Ground Not Referenced to DUT

DVI A/D
GND REF
S F

1K

+65V

-65V

The two grounds are many inches apart.

DUT on Loadboard

Instrument in the Testhead


The Analog Ground Sense (AGS) bus input at the UTI (either ASL 1000 or ASL 3000) feeds a bus in the testhead. Some instruments have the A/D converter used for measurement referenced to this bus. Attaching the AGS bus input to the DUT ground references an instruments A/D to that ground level allowing a stable measurement, (see Figure 28).

62

PN: 071-0999-00

Good engineering practice is to connect the AGS bus input as close as possible to the DUT ground, if not directly on the DUT ground pin. Figure 28. A/D Ground Referenced to DUT Via Analog Ground Sense Bus

DVI

A/D
GND REF S F 1K

+65V

-65V

DUT on Loadboard

Analog Ground Sense Bus 1.1k

AGS

Instrument in the Testhead


If the AGS input is not tied to DUT ground, the A/D converters are referenced to the internal testhead ground by a 1.1k ohm resistor. Multiple protection diodes on the AGS bus prohibit the bus potential from exceeding approximately 200 mV. Instruments that use the AGS bus: DCC DOAL DVIall models OVI

visualATE Applications Training Student Guide

63

4 - Test Hardware Development

Notes

64

PN: 071-0999-00

Test Solution Development


Goal
Initial understanding of the steps required for test solution development.

Objectives
After completing this unit, students should be able to perform the initial steps required for test solution development

In This Module
______ Instructor Presentation 1.5 Hours

Resources
visualATE 6.1 Programming Guide visualATE 6.1 User Guide

visualATE Applications Training Student Guide

65

5 - Test Solution Development

Notes

66

PN: 071-0999-00

Test Solution Development


Before beginning the "MUX and DVI Labs" on page 125, students need to: Understand the simplified start-to-finish steps Understand the detailed start-to-finish steps

Simplified Start-to-Finish Steps


At the Create menu: 1. Press New. 2. Name the List. In Create mode: 1. Allocate instruments. 2. Insert and modify test function description(s): Name Pass parameters Test details

3. Generate source code. 4. Launch Visual Studio: a. Edit the test function code. a. Build the test function(s) and correct any errors. a. Exit Visual Studio. 5. Exit Create mode. At the Engineering menu: 1. Press New. 2. Navigate to the working folder. 3. Select the .lst file. 4. Enter the test program name. In Engineering mode: 1. Insert and modify test function description(s): Enable/disable Pass Parameters Test limits

visualATE Applications Training Student Guide

67

5 - Test Solution Development

2. Save work into the test program file. 3. Run to verify action. 4. Exit Engineering mode.

68

PN: 071-0999-00

visualATE How ToDetailed Start-to-Finish Steps Working in Create Mode


To start visualATE: 1. Click on the visualATE icon located on the desktop. Figure 29. visualATE Icon

visualATE Icon

Launcher Icon

visualATE Applications Training Student Guide

69

5 - Test Solution Development

2. Enter the username and password in the Login screen. Use the Tab key to move between fields. Figure 30. visualATE Login Screen

70

PN: 071-0999-00

The opening screen (see Figure 31) controls the user access to various areas within visualATE. A brief description of each button is given in the visualATE Users Guide V6.1. Figure 31. visualATE Opening Screen

visualATE Applications Training Student Guide

71

5 - Test Solution Development

3. Click the Create button to display a menu of any available lists that already exist on the test system as shown in Figure 32. 4. Click the New button to initiate the List generation process. Figure 32. Available Lists

New Button

72

PN: 071-0999-00

5. Enter the desired name in the Enter a New List Name dialog box (Figure 33) and click the OK button. Figure 33. New List Dialog Box

Default List Name

New List Name

visualATE Applications Training Student Guide

73

5 - Test Solution Development

The directory path for user code is:


c:\visualATE<version>\users\lists

All user code is placed in a sub-directory of the above path, named by the list. For the previous example, the list directory is:
c:\visualATE61\users\lists\test_list

A dialog box (as shown in Figure 34) appears stating that Create automatically inserts the C++ code defining the instrument names and slot locations in the testhead. This code is placed in USER.cpp and USER.h files. 6. Click the OK button to continue. Figure 34. Message Dialog Box

74

PN: 071-0999-00

Figure 35 shows the matrix used to define the instruments (and their slots) referenced in the test function code. Create mode uses this information to generate the instrument names and slot locations. This information is also used to define the required configuration for the current List. Any instrument/slot defined on this matrix is mandatory in any system that this List is loaded. If the required configuration does not match the used systems configuration, error messages are reported and the List may not execute. It is important to select only the instruments that are to be used. Figure 35. List Properties Matrix

visualATE Applications Training Student Guide

75

5 - Test Solution Development

7. Click on a slots down arrow to display a pull-down menu of instruments. 8. Select the desired instrument from the pull-down menu. Figure 36. Instrument Pull-down Menu

76

PN: 071-0999-00

After completing the used instrument/slot matrix, the Create edit window is displayed. A default test function description is shown. The test function description consists of three areas: Function Name Pass Parameters (name and default values) Test Details (name and default limits)

Figure 37. Create Edit Window

Test function descriptions are used to: Name and generate the test function source code file Initialize the Pass Parameter data structure Define the test name and default limits

visualATE Applications Training Student Guide

77

5 - Test Solution Development

Figure 38 depicts how the test function description information is utilized. Figure 38. Test Function Description Information Utilized
Test Function Source Code File : func name.cpp Test Function Name

Pass Parameters and Default Values Pass Parameter Structure Allocation File : function.h Test Names and Default Limit Values

Another Test Function Description

Pass Parameter and Test Details Definition File: dllmain.cpp

List Definition File: list name.lst

78

PN: 071-0999-00

9. Change the test function name by clicking on the default name. Figure 39. Test Function Name

10. Enter the new name. Figure 40. Test Function NameNew

11. Click anywhere in the test function description to close the Edit box. One Pass Parameter is present by default. Figure 41. Pass Parameter

visualATE Applications Training Student Guide

79

5 - Test Solution Development

12. To add more Pass Parameters: a. Click the test function to make it active (highlighted). b. Click on the Insert menu and select New Parameter or click the New Parameter button on the toolbar. Figure 42. Insert Pass Parameter

Another default Pass Parameter is inserted. Figure 43. New Pass Parameter

80

PN: 071-0999-00

13. Change the Pass Parameter name by clicking on the default name. Figure 44. Pass Parameter Name

14. Enter the new name. Figure 45. Pass Parameter NameNew

15. Clicking anywhere in the test function description to close the edit box. Figure 46. Close Edit Box

visualATE Applications Training Student Guide

81

5 - Test Solution Development

16. Change the Pass Parameter default value by clicking on the default value. Figure 47. Pass Parameter Value

17. Change the Pass Parameter default data type by double-clicking on the data type box. Figure 48. Data Type Menu

82

PN: 071-0999-00

18. Select the new data type. Figure 49. Select Data Type

New data type set. Figure 50. Set Data Type

visualATE Applications Training Student Guide

83

5 - Test Solution Development

19. Change the Pass Parameter scale by clicking on the scale box, and selecting in the desired scale. Figure 51. Pass Parameter Scale

New scale selected. Figure 52. Selected Scale

84

PN: 071-0999-00

The new scale is now set. Figure 53. New Scale Set

20. Change the Pass Parameter units text by clicking on the UNIT and entering in the desired text. Figure 54. Pass Parameter Unit Text

visualATE Applications Training Student Guide

85

5 - Test Solution Development

New unit text is now set. Figure 55. New Unit Text

86

PN: 071-0999-00

21. To add more test details: a. Click on the left side of the default Test Details to place a cursor. a. Click on the Insert menu and select New Subtest. Figure 56. New Subtest Menu Item

visualATE Applications Training Student Guide

87

5 - Test Solution Development

New test details are now inserted. Figure 57. Inserted Test Details

22. Change the test details name by clicking on the default name and entering in the desired name. Figure 58. Test Details Name

88

PN: 071-0999-00

New name is now entered. Figure 59. New Test Details Name

visualATE Applications Training Student Guide

89

5 - Test Solution Development

23. Change the Bin1 low limit by clicking on the default value and entering in the desired value. Figure 60. Bin1 Low Limit

New value is now entered. Figure 61. New Bin1 Low Limit

90

PN: 071-0999-00

24. Change the Bin1 high limit value by clicking on the default value and entering in the desired value. Figure 62. Bin1 High Limit

New value is now entered.

visualATE Applications Training Student Guide

91

5 - Test Solution Development

Figure 63. New Bin1 High Limit

92

PN: 071-0999-00

Each test has four limits, arranged as bins 1 through 4. They permit the system to automatically grade the DUT:
1) test_1(bin1 min)(bin1 max) (bin2 min)(bin2 max) (bin3 min)(bin3 max) (bin4 min)(bin4 max)

Typically the limit values are assigned in an increasing range:


1) test_145 3 6 2 7 1 8

Figure 64. Limit Values

If the test value falls between the bin 1 limits, then the DUT is passed with a Bin1. Should the DUT fail the bin 1 limits then it is compared with the bin 2 limits (passing = Bin2). Failing bin 2 limits, it is compared to bin 3 limits (passing = Bin3). Failing bin 3 limits, it is compared to bin 4 limits (passing = Bin4). Failing bin 4 limits, the DUT is assigned to a programmed fail bin. If the user only wants one pass bin, then all bin limits are set to Bin1 values:
1) test_145 4 5 4 5 4 5

visualATE Applications Training Student Guide

93

5 - Test Solution Development

25. Change the test limits scale by clicking on the scale box, and selecting the desired scale. Figure 65. Test Limit Scale

94

PN: 071-0999-00

New scale is now selected. Figure 66. Scale Set

26. Change the test units text by clicking on the UNIT and entering the desired text. Figure 67. Test Unit Text

visualATE Applications Training Student Guide

95

5 - Test Solution Development

New unit text is now entered. Figure 68. New Unit Text

96

PN: 071-0999-00

27. To add more test function descriptions: Click on the Insert menu and select New Function Or click the New Function button on the toolbar

Figure 69. New Function Menu Item

visualATE Applications Training Student Guide

97

5 - Test Solution Development

New description is now entered. Figure 70. New Description

98

PN: 071-0999-00

28. After inserting all the required test function descriptions and modifying them as needed, instruct Create to generate the visualATE file set. Click on the Source Code menu and select Generate Source Code Or click on the Source Code button on the toolbar

Figure 71. Generate Source Code

29. An informational message appears reminding the user that all changes must be saved before proceeding. Select Yes to continue. Figure 72. Save and Continue Message

visualATE Applications Training Student Guide

99

5 - Test Solution Development

30. An informational message appears indicating that source code generation has been completed. Select OK to continue. Figure 73. Source Code Generated

100

PN: 071-0999-00

Figure 74 shows all the files and sub-folders created by the Generate Source Code action. Figure 74. Files and Sub-folder Created by Generate Source Code Action

visualATE Applications Training Student Guide

101

5 - Test Solution Development

31. Edit the test function source code files after they have been generated. To do so, launch Visual Studio (the editor, compiler and code debugger): a. Click on the Source Code menu and select Launch Visual C++. b. Or click the multi-colored infinity symbol (pretzel) in the Create Edit window shown in Figure 75. Figure 75. Visual Studio Button

Visual Studio Button

102

PN: 071-0999-00

Figure 76 shows a picture of the Visual Studio environment. Figure 76. Visual Studio Environment

Edit Window Project View

Output Window

visualATE Applications Training Student Guide

103

5 - Test Solution Development

32. Access the test function source codes files by expanding the project sub-folders. Figure 77. Expanded Sub-Folders

104

PN: 071-0999-00

33. Open a particular test function source code file by double-clicking on its reference in the Project directory. Figure 78. Open Source Code

visualATE Applications Training Student Guide

105

5 - Test Solution Development

Figure 79 shows the actual test function where the user would insert any and all related instrument statements. Figure 79. Test Function

These two lines of code automatically assign this functions particular set of Pass Parameters to the address pointer ours. This relieves the user from remembering the Pass Parameter structure name.

106

PN: 071-0999-00

34. Enter related instrument statements immediately above the last closing brace (}). Figure 80. Instrument Statements

Visual Studio auto-complete feature for Pass Parameters Select the desired one and press Return.

visualATE Applications Training Student Guide

107

5 - Test Solution Development

Pass Parameter entry is now complete. Figure 81. Pass Parameter Entry

35. After editing is completed, the List .dll file must be built. This is done by clicking the Build Solution button or pressing the F7 key. Figure 82. Build Icon Build button

Compilation/build information is displayed in the output window. Figure 83. Output Window

108

PN: 071-0999-00

A successful build results in no errors displayed in the output window (as shown in Figure 84). 36. Any errors encountered in the Build process must be corrected before the List .dll file is generated. Figure 84. Successful Build and Exiting Visual Studio

Click to Exit

37. Exit the Visual Studio environment by clicking the X button in the upper right corner of the Visual Studio window as shown in Figure 84.

visualATE Applications Training Student Guide

109

5 - Test Solution Development

Exiting Visual Studio returns the user to the Create Edit window. Figure 85. Exiting Create

Click to Exit

38. Click the X button in the upper right corner of the window to exit the Create Edit window.

110

PN: 071-0999-00

Figure 86 lists the files generated by the Build process and deposited into the Debug folder. Figure 86. Debug Folder

The .dll file contains the executables of all built test functions. This file, however, is not an executable test program. The main reason is that there is no execution order to the test functions. Some other mechanism must be completed to define which test functions are used and run. This missing piece is the test program and is generated in the Engineering environment of visualATE.

visualATE Applications Training Student Guide

111

5 - Test Solution Development

Working in Engineering Mode


At the Six Button window (see Figure 87), accessing Engineering mode is done by clicking the Engineering button. Figure 87. Six Button Window

Engineering Button

Clicking the Engineering button displays a menu of any available test programs that already exist on the test system.

112

PN: 071-0999-00

To initiate the test program generation process: 1. Click the New button on this menu. Figure 88. New Button

New Button

visualATE Applications Training Student Guide

113

5 - Test Solution Development

2. Navigate to the working folder. Figure 89. Lists Directory

3. Select and open the working folder (in this case, test_list). Figure 90. Select Working Folder

114

PN: 071-0999-00

Figure 91. Working FolderOpen

4. The Engineering environment must recognize the desired List. This is done by selecting the list name.lst file that contains relevant test function description information. Figure 92. List FileSelect and Open

visualATE Applications Training Student Guide

115

5 - Test Solution Development

5. After defining the List to be referenced, a test program file name must be entered. This file is initially empty. Figure 93. Program FolderOpen

6. Enter the desired test program name and click the Save button. The user is moved to the Engineering Program window. Figure 94. Program FolderNew Name

116

PN: 071-0999-00

Figure 95 is a picture of the Engineering Program window. It is empty as no test functions have been referenced yet. The test function execution order is defined in this window. Figure 95. Engineering Program Window

visualATE Applications Training Student Guide

117

5 - Test Solution Development

7. To insert test function descriptions into the Engineering Program window: a. Click on the Function List button. Figure 96. Function List Button

b. A window opens and displays all test functions in the referenced List. Figure 97. Available Test Functions

118

PN: 071-0999-00

c. Select a test function by clicking on the desired test function and clicking the OK button. Figure 98. Selecting a Test Function

OK Button

visualATE Applications Training Student Guide

119

5 - Test Solution Development

d. The selected test function appears with all sub-tests and parameters hidden. Figure 99. Selected Test Function

8. Expand the view of the test function description by clicking on the View menu and selecting Expand All Functions. The Show All Parameters, Show All Subtests, and Show All Limits can also be used. Figure 100. View Pull-Down Menu

120

PN: 071-0999-00

Individual test function descriptions may be expanded or collapsed by clicking on their respective banner. Entire test function appears in the Engineering Program window. All values displayed are the default values set in Create. Figure 101. Engineering Program Window

Function Enable Button

visualATE Applications Training Student Guide

121

5 - Test Solution Development

9. Click on The Function Enable button to toggle from red to green. This button must be set to green for the test function to execute. 10. Execute the test program by clicking the Run button, and evaluate the action by examining the results displayed in the Engineering Datalog View. The order of the test functions, from top to bottom, is the order in which they execute if enabled. 11. Save the test program by clicking on the File menu and selecting Save. Figure 102. File Pull-Down Menu

122

PN: 071-0999-00

Figure 103 shows the test program file in the Programs subfolder. Figure 103. Test Program File

visualATE Applications Training Student Guide

123

5 - Test Solution Development

Check Your Work


Review the work and have the instructor sign off this module.

124

PN: 071-0999-00

MUX and DVI Labs


Goal
Understanding of the MUX and DVI instruments to perform simple DC tests and initial understanding of the steps required for test solution development.

Objectives
After completing this unit, students should be able to perform the initial steps required for test solution development using the MUX and DVI instruments

In This Module
______ Lab Exercises 2 Hours

Resources
visualATE 6.1 Programming Guide visualATE 6.1 User Guide

visualATE Applications Training Student Guide

125

6 - MUX and DVI Labs

Notes

126

PN: 071-0999-00

MUX and DVI Labs

Lab Exercise

MUX and DVI Labs


The MUX and DVI labs include the following tests: Additional user code Lab loadboard diagram r1_val r2_val measbusi dvi_DiffMeas LED_test

visualATE Applications Training Student Guide

127

6 - MUX and DVI Labs

Support Code
The class lab support code for: user.cpp user.h

1. Add the code below to the user.cpp file:


// ************************************************************************** void user_F12(void) { // User hit F12. } // **************************************************************************

//....................User added code is below............................

ModalDialogDescription mdb;

//instanciate mdb for dialog box use

void sync_pulse(unsigned short delay_us) { /* This function uses the I/O port feature of the TMU instrument to generate a 0V->5V->0V signal. A practical use for this function would be to provide a scope trigger so that tester/DUT events could be monitored effectively. The FPGA on the TMU has two ports (IO1, IO2) that can be set as both output or both input. If set as output, they can be driven high/low (5V/0V). If set as input, they can be tested (5V=1 or TRUE, 0V=0 or FALSE). The action of this function is to receive a delay value and then divide it by 10. If the result is less than 1, then the delay variable is forced to 10. This guarantees a minimum delay time of 100us. The TMU I/O ports are then set to output. IO1 is set high, the programmed delay is executed, and then IO1 is set low.

128

PN: 071-0999-00

MUX and DVI Labs

The resulting signal can be observed on: ASL1000: ASL3000: */ J5.A4 (for slot 6) PB5.C13 (for slot 6) //calculate us

delay_us = delay_us / 10; if (delay_us < 1) delay_us = 10;

//check delay_us value and force //to 10 if less than 10. //set I/O for output //set IO1 high

tmu_6->set_control(TMU_OUT_IO); tmu_6->set_control(TMU_SET_IO1); wait.delay_10_us(delay_us); }

//wait the calculated value //set IO1 low

tmu_6->clear_control(TMU_SET_IO1);

void datalog(short scale, short test_num, float dlog_val, unsigned short fail_bin, char *notes, test_function& func) { /* This function eases the coding of the datalog statements by combining all aspects into a one-line call: datalog("datalog scaler","test number", "datalog value", "fail bin number", "notes", func); Where: "datalog scaler" is POWER_KILO, POWER_MILLI, etc. "test number" is the test (or "sub-test") number (1, 2, 3, etc.) "datalog value" is the return of a measurement statement or calculation "fail bin number" is the desired fail bin (5-32 for vATE rev 4.8 to 5.2) "notes" is a string of up to 12 characters "func" is to be entered exactly as shown */ func.dlog->power = scale; //set the scale func.dlog->set_test_no(test_num); //set the test number func.dlog->test_val(dlog_val); //pass the value to be checked if (notes) //if notes is true then set string func.dlog->datalog_notes(notes);

visualATE Applications Training Student Guide

129

6 - MUX and DVI Labs

if (func.dlog->tests[(test_num - 1)].passed_fail==FAILED_TEST)//if the passed func.dlog->set_bin(fail_bin); //value failed, set fail bin #. if (func.dlog->tests[(test_num - 1)].display_results)//see if datalogging is func.dlog->display_results(); //enabled for noted test; if so, output data. } void pulse_IO2(void) { /* This function uses the I/O port feature of the TMU instrument to generate a 0V->5V signal for use in the DUT Prop Delay test. The FPGA on the TMU has two ports (IO1, IO2) that can be set as both output or both input. If set as output, they can be driven high/low (5V/0V). If set as input, they can be tested (5V=1 or TRUE, 0V=0 or FALSE). The TMU I/O outputs have been buffered by two 74AS1004 inverters for drive capability and to maintain positive logic. */ tmu_6->set_control(TMU_OUT_IO); tmu_6->set_control(TMU_SET_IO2); wait.delay_10_us(1); } //wait 10us //set IO2 low //set I/O for output //set IO2 high, drive the DUT

tmu_6->clear_control(TMU_SET_IO2);

void up_IO2(void) { /* This function uses the I/O port feature of the TMU instrument to generate a 0V->5V signal for use in the DUT Tr test. */ tmu_6->set_control(TMU_SET_IO2); wait.delay_10_us(1); } void down_IO2(void) { /* This function uses the I/O port feature of the TMU instrument to generate a 5V->0V signal for use in the DUT Tf test. */ //wait 10us //set IO2 high, drive the DUT

130

PN: 071-0999-00

MUX and DVI Labs

tmu_6->clear_control(TMU_SET_IO2); wait.delay_10_us(1); } //wait 10us

//set IO2 low

void set_tmu_io_as_output(void) { /* Whenever the TMU instrument is reset by init(), the I/O pins are set to input. This causes the inputs on the AS1004 buffer to float high enough to register as a "1", which then sets the output active (in the wrong state). Initializing the TMU will require running this function afterwards to guarantee I/O pin status. */ tmu_6->set_control(TMU_OUT_IO); //set I/O for output //set IO1 low //set IO2 low

tmu_6->clear_control(TMU_SET_IO1); tmu_6->clear_control(TMU_SET_IO2); wait.delay_10_us(1); } //user.cpp //wait 10us

2. Add the code below to the user.h file:


// This file must be present even if no user code is placed below //---Modal Dialog includes #include "ModalDialogDescription.h" #include "ui.h" extern ModalDialogDescription mdb; //---user defined function calls extern void sync_pulse(unsigned short delay_us); void datalog(short scale, short test_num, float dlog_val,unsigned short fail_bin, char *notes, test_function& func); void pulse_IO2(void); void up_IO2(void);

visualATE Applications Training Student Guide

131

6 - MUX and DVI Labs

void down_IO2(void); void set_tmu_io_as_output(void); //user.h

132

PN: 071-0999-00

MUX and DVI Labs

Lab Loadboard
The loadboard used during labs has the layout shown in Figure 104. Figure 104. Lab Loadboard Layout

J2

C1 0.01uF

74AS1004

DUT

LE D

K1
R3 R2 R1

K2

R4

J6

J4

J1

J5

J3

X = Removed DC Pins

visualATE Applications Training Student Guide

133

134
ACS 5
S1
(6) (8) (5)

r1_val Lab

+5V
U1C
(9)

U1 Vcc
U1D CH4FH CH4SH

TP1 TP2 OVI 1 OVI 1


CH6F CH6S S0
(1) (4)
EXT _ARM

C1 0.1uF

PV3 4 PV3 4

6 - MUX and DVI Labs

GND
(12) (10)

U1 GND
S2 HiZ 4 OUT CH4

TMU 6
IO1
(13)

U1F

(11)

U1E

DVI 11 DVI 9
EXT _DRV2

K1

+12V
(K1 & K2 pin 3)

K1 & K2 pin 2
MUX_BANK_8_1

ACS 5 TMU 6 ACS 5


K2
(1) (4)

TMU 6 TP3 ACS 5

R4 0.1 Ohm 1%

DVI 11
S1 MUX_8_1 MUX_1_BUS9
B US_9 BUS _8

DVI 9
CH0F CH0S MUX_8_BUS8 MUX_8_2 MUX_8_GND MUX_8_3 MUX_8_4 MUX_BANK_1_2 MUX_7_1 MUX_2_BUS2
B US_2 B US_7

F0

MUX_1_1

OVI 1 OVI 1 PV3 4 PV3 4 OVI 1 OVI 1


CH7S CH7F CH5SL CH5FL

R1

1.2K 5%

MUX_1_2

Figure 105. r1_val Lab Schematic

R2

130K 5%

MUX_1_3

LED

MUX_1_4 MUX_BANK_7_8 CH1F CH1S

MUX_2_1 MUX_7_BUS7 MUX_7_2 MUX_7_GND MUX_7_3

OVI 1 OVI 1

ACS 5

EXT_ CLK

DVI 11 CH0 via MUX 18 74LS11


(1) (2) (13) (3) (4) (5) (9) (10) A1 B1 C1 A2 B2 C2 A3 B3 3 Y3 (8) 2 Y2 (6) 1 Y1 (12)

MUX_2_2 MUX_2_GND

V cc

(14)

C2 0. 1uF

MUX_2_3

CH7

DVI 9
MUX_7_4 MUX_BANK_6_7 MUX_6_1 MUX_3_BUS3
B US_3 B US_6

S0 MUX_BANK_2_3 CH2F CH2S

MUX_2_4

MUX 18

DDD 7
CH8

DVI 11
MUX_6_BUS6 MUX_6_2 MUX_6_GND MUX_6_3 MUX_6_4
(4)

F0

MUX_3_1

OVI 1 OVI 1

DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 DDD 7

CH1 CH2 CH3 CH4 CH5 CH6

DDD 7

R3

1.2K 5%

MUX_3_2

(11) (7)

C3 GND

DUT Vcc, pin 14

MUX_3_3

DUT
(3) (1)

MUX_3_4 MUX_BANK_3_4 MUX_BANK_5_6

U1B

U1A
(2)

IO2

TMU 6 AGS

MUX_4_1 MUX_4_BUS4
B US_4 B US_5

MUX_5_1 MUX_5_BUS5 MUX_5_2 MUX_5_3 MUX_5_4

CH3F CH3S

OVI 1 OVI 1

TMU 6

CHA 2

DUT Vcc, pin 14 MUX_4_GND


B US_10

MUX_4_2 MUX_5_BUS10

TMU 6

HiZ 3

MUX_4_3

DVI 11
MUX_BANK_4_5

S0

MUX_4_4

PN: 071-0999-00

MUX and DVI Labs

r1_val Worksheet
Test Function Name: ____________________

P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____

Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____

Concept:___________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

visualATE Applications Training Student Guide

135

6 - MUX and DVI Labs

r1_val Code
void r1_val(test_function& func) { // The two lines below must be the first two in the function. r1_val_params *ours; ours = (r1_val_params *)func.params; //---declare variables used float meas_v, r1_val; //---connect DVI9 F0 to R1 mux_18->close_relay(MUX_1_1); mux_18->close_relay(MUX_1_2); //---connect DVI9 S0 to R1 mux_18->close_relay(MUX_2_1); mux_18->close_relay(MUX_2_4); //---set DVI measure mode dvi_9->set_meas_mode(DVI_CHANNEL_0,DVI_MEASURE_VOLTAGE); //---set DVI values dvi_9->set_current(DVI_CHANNEL_0, ours->i_limit); dvi_9->set_voltage(DVI_CHANNEL_0, ours->v_limit); //---wait for the above to settle... delay(ours->meas_delay); //---perform the measurement meas_v = dvi_9->measure(); //---calculate R1's resistance with a safety net to avoid a divide-by-zero //---crash in case the i_limit Pass Parameter is inadvertently set to zero. if (ours->i_limit == 0) r1_val = 0; else r1_val = meas_v / ours->i_limit; //Ohms's Law...(R=V/I) //---datalog the result-------------------------------------func.dlog->power=POWER_KILO; //set the scale func.dlog->set_test_no(1); //set the test number func.dlog->test_val(r1_val); //pass the value if (func.dlog->tests[func.dlog->current_test].passed_fail == FAILED_TEST) func.dlog->set_bin(5); //check for fail, set fail bin if (func.dlog->tests[func.dlog->current_test].display_results)

136

PN: 071-0999-00

MUX and DVI Labs

func.dlog->display_results(); //check for datalog, output value //----------------------------------------------------------//---reset DVI9 & MUX18 to default states dvi_9->init(); mux_18->init(); }//r1_val

visualATE Applications Training Student Guide

137

138
ACS 5
S1
(6) (8) (5)

r2_val Lab

+5V
U1C
(9)

U1 Vcc
U1D CH4FH CH4SH

TP1 TP2 OVI 1 OVI 1


CH6F CH6S S0
(1) (4)
E XT _ARM

C1 0.1uF

PV3 4 PV3 4

6 - MUX and DVI Labs

GND
(12) (10)

U1 GND
S2 HiZ 4 OUT CH4

TMU 6
IO1
(13)

U1F

(11)

U1E

DVI 11 DVI 9
EXT _DRV2

K1

+12V
(K1 & K2 pin 3)

K1 & K2 pin 2
MUX_BANK_8_1

ACS 5 TMU 6 ACS 5


K2
(1) (4)

TMU 6 TP3 ACS 5

R4 0.1 Ohm 1%

DVI 11
S1 MUX_8_1 MUX_1_BUS9
B US_9 BUS _8

DVI 9
CH0F CH0S MUX_8_BUS8 MUX_8_2 MUX_8_GND MUX_8_3 MUX_8_4 MUX_BANK_1_2 MUX_7_1 MUX_2_BUS2
B US_2 B US_7

F0

MUX_1_1

OVI 1 OVI 1 PV3 4 PV3 4 OVI 1 OVI 1


CH7S CH7F CH5SL CH5FL

R1

1.2K 5%

MUX_1_2

Figure 106. r2_val Lab Schematic

R2

130K 5%

MUX_1_3

LED

MUX_1_4 MUX_BANK_7_8 CH1F CH1S

MUX_2_1 MUX_7_BUS7 MUX_7_2 MUX_7_GND MUX_7_3

OVI 1 OVI 1

ACS 5

EX T_ CLK

DVI 11 CH0 via MUX 18 74LS11


(1) (2) (13) (3) (4) (5) (9) (10) A1 B1 C1 A2 B2 C2 A3 B3 3 Y3 (8) 2 Y2 (6) 1 Y1 (12)

MUX_2_2 MUX_2_GND

V cc

(14)

C2 0.1uF

MUX_2_3

CH7

DDD 7
CH8

DVI 9 MUX 18
MUX_7_4 MUX_BANK_6_7 MUX_6_1 MUX_3_BUS3
B US_3 B US_6

S0 MUX_BANK_2_3 CH2F CH2S

MUX_2_4

DVI 11
MUX_6_BUS6 MUX_6_2 MUX_6_GND MUX_6_3 MUX_6_4
(4)

F0

MUX_3_1

OVI 1 OVI 1

DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 DDD 7

CH1 CH2 CH3 CH4 CH5 CH6

DDD 7

R3

1.2K 5%

MUX_3_2

(11) (7)

C3 GND

DUT Vcc, pin 14

MUX_3_3

DUT
(3) (1)

MUX_3_4 MUX_BANK_3_4 MUX_BANK_5_6 MUX_5_1 MUX_4_BUS4


B US_4 B US_5

U1B

U1A
(2)

IO2

TMU 6 AGS
CH3F

MUX_4_1 MUX_5_BUS5

OVI 1
MUX_5_2 MUX_5_3 MUX_5_4 CH3S

TMU 6 OVI 1

CHA 2

DUT Vcc, pin 14 MUX_4_GND


B US_10

MUX_4_2 MUX_5_BUS10

TMU 6

HiZ 3

MUX_4_3

DVI 11
MUX_BANK_4_5

S0

MUX_4_4

PN: 071-0999-00

MUX and DVI Labs

r2_val Worksheet
Test Function Name: ____________________

P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____

Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____

Concept:___________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

visualATE Applications Training Student Guide

139

6 - MUX and DVI Labs

r2_val Code
void r2_val(test_function& func) { // The two lines below must be the first two in the function. r2_val_params *ours; ours = (r2_val_params *)func.params;

Copy code from r1_val, place below and modify.

//---declare variables used //---connect DVI9 F0 to R2

//---connect DVI9 S0 to R2

//---set DVI measure mode //---set DVI values

//---wait for the above to settle... //---perform the measurement //---calculate R2's resistance with a safety net to avoid a divide-by-zero //---crash in case the i_limit Pass Parameter is inadvertantly set to zero.

//---datalog the result--------------------------------------

140

PN: 071-0999-00

MUX and DVI Labs

//----------------------------------------------------------//---reset DVI9 & MUX18 to default states }//r2_val

visualATE Applications Training Student Guide

141

142
ACS 5
S1
(6) (8) (5)

+5V
U1C
(9)

U1 Vcc
U1D CH4FH CH4SH

TP1 TP2 OVI 1 OVI 1


CH6F CH6S S0
(1) (4)
EXT _ARM

C1 0.1uF

PV3 4 PV3 4

measbusi Lab

6 - MUX and DVI Labs

GND
(12) (10)

U1 GND
S2 HiZ 4 OUT CH4

TMU 6
IO1
(13)

U1F

(11)

U1E

DVI 11 DVI 9
EXT _DRV2

K1

+12V
(K1 & K2 pin 3)

K1 & K2 pin 2
MUX_BANK_8_1

ACS 5 TMU 6 ACS 5


K2
(1) (4)

TMU 6 TP3 ACS 5

R4 0.1 Ohm 1%

DVI 11
S1 MUX_8_1 MUX_1_BUS9
B US_9 BUS _8

DVI 9
CH0F CH0S MUX_8_BUS8 MUX_8_2 MUX_8_GND MUX_8_3 MUX_8_4 MUX_BANK_1_2 MUX_7_1 MUX_2_BUS2
BUS_2 B US_7

F0

MUX_1_1

OVI 1 OVI 1 PV3 4 PV3 4 OVI 1 OVI 1


CH7S CH7F CH5SL CH5FL

R1

1.2K 5%

MUX_1_2

R2

130K 5%

MUX_1_3

LED

Figure 107. measbusi Lab Schematic

MUX_1_4 MUX_BANK_7_8 CH1F CH1S

MUX_2_1 MUX_7_BUS7 MUX_7_2 MUX_7_GND MUX_7_3

OVI 1 OVI 1

ACS 5

EXT_ CLK

DVI 11 CH0 via MUX 18 74LS11


(1) A1 (2) (13) (3) (4) B1 C1 A2 B2 2 Y2 (6) 1 Y1 (12)

MUX_2_2 MUX_2_GND

V cc

(14)

C2 0. 1uF CH1 CH2 CH3 CH4 CH5 CH6

MUX_2_3

CH7

DDD 7
CH8
(5) (9) (10) C2 A3 B3 3 Y3 (8)

DVI 9
MUX_7_4 MUX_BANK_6_7 MUX_6_1 MUX_3_BUS3
B US_3 B US_6

S0 MUX_BANK_2_3 CH2F CH2S

MUX_2_4

MUX 18

DVI 11
MUX_6_BUS6 MUX_6_2 MUX_6_GND MUX_6_3 MUX_6_4
(4)

F0

MUX_3_1

OVI 1 OVI 1

DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 DDD 7

DDD 7

R3

1.2K 5%

MUX_3_2

(11) (7)

C3 GND

DUT Vcc, pin 14

MUX_3_3

DUT
(3) (1)

MUX_3_4 MUX_BANK_3_4 MUX_BANK_5_6

U1B

U1A
(2)

IO2

TMU 6 AGS

MUX_4_1 MUX_4_BUS4
B US_4 B US_5

MUX_5_1 MUX_5_BUS5 MUX_5_2 MUX_5_3 MUX_5_4

CH3F CH3S

OVI 1 OVI 1

TMU 6

CHA 2

DUT Vcc, pin 14 MUX_4_GND


B US_10

MUX_4_2 MUX_5_BUS10

TMU 6

HiZ 3

MUX_4_3

DVI 11
MUX_BANK_4_5

PN: 071-0999-00

S0

MUX_4_4

MUX and DVI Labs

measbusi Worksheet
Test Function Name: ____________________

P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____

Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____

Concept:___________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

visualATE Applications Training Student Guide

143

6 - MUX and DVI Labs

measbusi Code
void measbusi(test_function& func) { // The two lines below must be the first two in the function. measbusi_params *ours; ours = (measbusi_params *)func.params; //---declare variables used float result; //---connect DVI11 CH0 to BUS2 dvi_11->close_relay(BUS_FORCE0); dvi_11->close_relay(BUS_SENSE0); //---connect MUX18 Bank2 to BUS2 mux_18->close_relay(MUX_2_BUS2); //---connect MUX18 Bank2 to GND mux_18->close_relay(MUX_2_GND); //---set DVI11 measurement mode dvi_11->set_meas_mode(DVI_CHANNEL_0, DVI_MEASURE_CURRENT); //---wait for above to settle... delay(ours->meas_delay); //---set DVI11 required levels dvi_11->set_current(DVI_CHANNEL_0, ours->i_limit); dvi_11->set_voltage(DVI_CHANNEL_0, ours->v_limit); //---wait for DVI11 to settle... delay(ours->meas_delay); //---perform measurement result = dvi_11->measure();

Copy code from r1_val, place below, and modify.

//---datalog the result--------------------------------------

144

PN: 071-0999-00

MUX and DVI Labs

//----------------------------------------------------------//---reset DVI11 & MUX18 to default states }//measbusi

visualATE Applications Training Student Guide

145

146
ACS 5
S1
(6) (8) (5)

+5V
U1C
(9)

U1 Vcc
U1D CH4FH CH4SH

TP1 TP2 OVI 1 OVI 1


CH6F CH6S S0
(1) (4)
EXT _ARM

C1 0.1uF

PV3 4 PV3 4

6 - MUX and DVI Labs

GND
(12) (10)

U1 GND
S2 HiZ 4 OUT CH4

TMU 6
IO1
(13)

U1F

(11)

U1E

dvi_DiffMeas Lab

DVI 11 DVI 9
EXT _DRV2

K1

+12V
(K1 & K2 pin 3)

K1 & K2 pin 2
MUX_BANK_8_1

ACS 5 TMU 6 ACS 5


K2
(1) (4)

TMU 6 TP3 ACS 5

R4 0. 1 Ohm 1%

DVI 11
S1 MUX_8_1 MUX_1_BUS9
B US_9 BUS _8

DVI 9
CH0F CH0S MUX_8_BUS8 MUX_8_2 MUX_8_GND MUX_8_3 MUX_8_4 MUX_BANK_1_2 MUX_7_1 MUX_2_BUS2
B US_2 B US_7

F0

MUX_1_1

OVI 1 OVI 1 PV3 4 PV3 4 OVI 1 OVI 1


CH7S CH7F CH5SL CH5FL

R1

1.2K 5%

MUX_1_2

R2

130K 5%

MUX_1_3

LED

MUX_1_4 MUX_BANK_7_8 CH1F CH1S

Figure 108. dvi_DiffMeas Lab Schematic

MUX_2_1 MUX_7_BUS7 MUX_7_2 MUX_7_GND MUX_7_3

OVI 1 OVI 1

ACS 5

EXT_ CLK

DVI 11 CH0 via MUX 18 74LS11


(1) (2) (13) (3) (4) (5) (9) (10) A1 B1 C1 A2 B2 C2 A3 B3 3 Y3 (8) 2 Y2 (6) 1 Y1 (12)

MUX_2_2 MUX_2_GND

V cc

(14)

C2 0. 1uF

MUX_2_3

CH7

DVI 9 MUX 18
MUX_7_4 MUX_BANK_6_7 MUX_6_1 MUX_3_BUS3
B US_3 B US_6

S0 MUX_BANK_2_3 CH2F CH2S

MUX_2_4

DDD 7
CH8

DVI 11
MUX_6_BUS6 MUX_6_2 MUX_6_GND MUX_6_3 MUX_6_4
(4)

F0

MUX_3_1

OVI 1 OVI 1

DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 DDD 7

CH1 CH2 CH3 CH4 CH5 CH6

DDD 7

R3

1.2K 5%

MUX_3_2

(11) (7)

C3 GND

DUT Vcc, pin 14

MUX_3_3

DUT
(3) (1)

MUX_3_4 MUX_BANK_3_4 MUX_BANK_5_6

U1B

U1A
(2)

IO2

TMU 6 AGS

MUX_4_1 MUX_4_BUS4
B US_4 B US_5

MUX_5_1 MUX_5_BUS5 MUX_5_2 MUX_5_3 MUX_5_4

CH3F CH3S

OVI 1 OVI 1

TMU 6

CHA 2

DUT Vcc, pin 14 MUX_4_GND


B US_10

MUX_4_2 MUX_5_BUS10

TMU 6

HiZ 3

MUX_4_3

DVI 11
MUX_BANK_4_5

S0

MUX_4_4

PN: 071-0999-00

MUX and DVI Labs

dvi_DiffMeas Worksheet
Test Function Name: ____________________

P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____

Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____

Concept:___________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

visualATE Applications Training Student Guide

147

6 - MUX and DVI Labs

dvi_DiffMeas Code
void dvi_DiffMeas(test_function& func) { // The two lines below must be the first two in the function. dvi_DiffMeas_params *ours; ours = (dvi_DiffMeas_params *)func.params; //---declare variables used float meas_null, meas_diff, diff_result; meas_null = 0; //initialize variables to zero meas_diff = 0; diff_result = 0; //---null DVI11 diff circuit------------------------------dvi_11->open_relay(CONN_SENSE0); //isolate the sense inputs dvi_11->open_relay(CONN_SENSE1); wait.delay_10_us(50); //wait for above relays to open //short the sense inputs together

dvi_11->close_relay(CHANNEL_SHORT);

dvi_11->set_meas_mode(DVI_CHANNEL_0, DVI_MEASURE_DIFF); dvi_11->set_diff_range(RANGE_10_MV); wait.delay_10_us(50); //to appropriate range

//wait for above to settle...

meas_null = dvi_11->measure_average(10); //measure the offset of the diff amp //--------------------------------------------------------//---reconnect DVI11 sense inputs-------------------------dvi_11->open_relay(CHANNEL_SHORT); wait.delay_10_us(50); //wait for above relay to open //connect the sense inputs //close K1 & K2

dvi_11->close_relay(CONN_SENSE0); dvi_11->close_relay(CONN_SENSE1); dvi_9->close_relay(DVI_EXT_DRV1);

wait.delay_10_us(50); //wait for above relays to close //--------------------------------------------------------dvi_11->set_diff_range(RANGE_100_MV); //to appropriate range

ovi_1->set_current(OVI_CHANNEL_6, 0.001f, RANGE_3_MA);

148

PN: 071-0999-00

MUX and DVI Labs

ovi_1->set_voltage(OVI_CHANNEL_6, ours->sense0_v, RANGE_1_V); ovi_1->set_current(OVI_CHANNEL_7, 0.001f, RANGE_3_MA); ovi_1->set_voltage(OVI_CHANNEL_7, ours->sense1_v, RANGE_1_V); delay(ours->delay_1ms); //wait for above to settle... //measure the difference

meas_diff = dvi_11->measure_average(10);

//---calculate diff reading-------------------------------diff_result = meas_diff - meas_null; //--------------------------------------------------------//---output measurement via the datalog function call described in User.cpp //datalog("datalog scaler", "test number", "datalog value", "fail bin number", "notes", func); datalog(POWER_MILLI, 1, diff_result, 8, "", func); //---reset OVI1, DVI9 & DVI11 to default states ovi_1->init(); dvi_9->init(); dvi_11->init(); }//dvi_DiffMeas

visualATE Applications Training Student Guide

149

150
ACS 5
S1
(6) (8) (5)

+5V
U1C
(9)

U1 Vcc
U1D CH4FH CH4SH

TP1 TP2 OVI 1 OVI 1


CH6F CH6S S0
(1) (4)
EXT _ARM

C1 0.1uF

PV3 4 PV3 4

GND
(12) (10)

U1 GND
S2 HiZ 4 OUT CH4

TMU 6
IO 1
(13)

U1F

(11)

U1E

LED_test Lab

6 - MUX and DVI Labs

DVI 11 DVI 9
EXT _DRV2

K1

+12V
(K1 & K2 pin 3)

K1 & K2 pin 2
MUX_BANK_8_1

ACS 5 TMU 6 ACS 5


R4 0.1 Ohm 1% K2
(1) (4)

TMU 6 TP3 ACS 5

DVI 11
S1 CH7S CH7F MUX_8_1 MUX_1_BUS9
B US_9 BUS _8

DVI 9
CH0F CH0S CH5SL CH5FL MUX_8_BUS8 MUX_8_2 MUX_8_GND MUX_8_3 MUX_8_4 MUX_BANK_1_2 MUX_7_1 MUX_2_BUS2
B US_2 B US_7

F0

MUX_1_1

OVI 1 OVI 1 PV3 4 PV3 4 OVI 1 OVI 1

R1

1.2K 5%

MUX_1_2

R2

130K 5%

MUX_1_3

LED

MUX_1_4 MUX_BANK_7_8 CH1F CH1S

Figure 109. LED_test Lab Schematic

MUX_2_1 MUX_7_BUS7 MUX_7_2 MUX_7_GND MUX_7_3

OVI 1 OVI 1

ACS 5

EXT_ CLK

DVI 11 CH0 via MUX 18 74LS11


(1) (2) (13) (3) (4) A1 B1 C1 A2 B2 2 Y2 (6) 1 Y1 (12)

MUX_2_2 MUX_2_GND

V cc

(14)

C2 0. 1uF

MUX_2_3

CH7

DVI 9
MUX_7_4 MUX_BANK_6_7 MUX_6_1 MUX_3_BUS3
B US_3 B US_6

S0 MUX_BANK_2_3 CH2F CH2S

MUX_2_4

MUX 18

CH1 CH2 CH3 CH4 CH5 CH6

DDD 7
CH8
(5) (9) (10) (11) (7) C2 A3 B3 C3 GND 3 Y3 (8)

DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 DDD 7

DDD 7

DVI 11
MUX_6_BUS6 MUX_6_2 MUX_6_GND MUX_6_3 MUX_6_4
(4)

F0

MUX_3_1

OVI 1 OVI 1

R3

1.2K 5%

MUX_3_2

DUT Vcc, pin 14

MUX_3_3

DUT
(3) (1)

MUX_3_4 MUX_BANK_3_4 MUX_BANK_5_6 MUX_5_1 MUX_4_BUS4


B US_4 B US_5

U1B

U1A
(2)

IO 2

TMU 6 AGS
CH3F

MUX_4_1 MUX_5_BUS5

OVI 1
MUX_5_2 MUX_5_3 MUX_5_4 CH3S

TMU 6 OVI 1

CHA 2

DUT Vcc, pin 14 MUX_4_GND


B US_10

MUX_4_2 MUX_5_BUS10

TMU 6

HiZ 3

MUX_4_3

DVI 11
MUX_BANK_4_5

S0

MUX_4_4

PN: 071-0999-00

MUX and DVI Labs

LED_test Worksheet
Test Function Name: ____________________

P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____

Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____

Concept:___________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

visualATE Applications Training Student Guide

151

6 - MUX and DVI Labs

LED_test Code
void LED_test(test_function& func) { // The two lines below must be the first two in the function. LED_test_params *ours; ours = (LED_test_params *)func.params; //---declare variables used short i; float float bool step, stepsize; meas_current[200], prgm_voltage[200]; ifFail=FALSE; //create file pointer //allocate arrays

FILE* fp1;

//---error checking---------------------------------------------if (ours->vstop > 5.0) //if stop voltage > 5V... {//---error box setup mdb.SetStatusDialogHasOKButton(1); mdb.SetDialogTopMessage("***Applied stop voltage > 5v***"); mdb.SetDialogBottomMessage("***vstop forced to 5V***"); RunModalDialog(&mdb); ours->vstop = 5.0; ifFail = TRUE; } if (ours->i_limit > 0.01f) //if current > 10mA... {//---error box setup mdb.SetStatusDialogHasOKButton(1); mdb.SetDialogTopMessage("***Applied Max current > 10mA***"); mdb.SetDialogBottomMessage("***Max current forced to 10mA***"); RunModalDialog(&mdb); ours->i_limit = 0.010f; ifFail = TRUE; } if (ours->samples > 199) //if samples > 199... {//---error box setup mdb.SetStatusDialogHasOKButton(1); //output error message //force max current to 10mA //output error message

//force vstop to 5V

152

PN: 071-0999-00

MUX and DVI Labs

mdb.SetDialogTopMessage("***Supplied samples number > 199***"); mdb.SetDialogBottomMessage("***samples forced to 199***"); RunModalDialog(&mdb); ours->samples = 199; //output error message //force samples to 199

ifFail = TRUE; } //---------------------------------------------------------//---flush the arrays after error check for(i=0; i < ours->samples; i++) { meas_current[i]=0; prgm_voltage[i]=0; } //---connect DVI9 CH0 to LED via MUX18 mux_18->close_relay(MUX_1_1); //connect DVI9 CH0F to LED mux_18->close_relay(MUX_1_4); mux_18->close_relay(MUX_2_4); //connect DVI9 CH0S to LED mux_18->close_relay(MUX_2_3); //---precondition dvi11 dvi_9->set_voltage(DVI_CHANNEL_0, 0.0f); dvi_9->set_current(DVI_CHANNEL_0, ours->i_limit); dvi_9->set_meas_mode(DVI_CHANNEL_0, DVI_MEASURE_CURRENT); delay(ours->delay_1ms); //wait for above to settle...

//---calculate step size stepsize = ((ours->vstop - ours->vstart) / ours->samples); step = ours->vstart;//assign initial start voltage //---do the dance-------------------------------------------for (i=0; i < ours->samples; i++) { dvi_9->set_voltage(DVI_CHANNEL_0, step, VOLT_5_RANGE); //apply new voltage wait.delay_10_us(ours->delay_10us) //wait a bit...

meas_current[i] = dvi_9->measure(); //measure LED current & save prgm_voltage[i] = step; //save programmed voltage. step += stepsize; } //increment voltage value

visualATE Applications Training Student Guide

153

6 - MUX and DVI Labs

//---------------------------------------------------------//---open the file, setup headers and save data------------fp1=fopen("c:\\asl_nt\\users\\lists\\Class_Project\\programs\\ledtest.txt","w"); fputs("LED Turn-On Current Data\n",fp1); fputs("Voltage \t Current \n",fp1); for (i=0; i < ours->samples; i++) //stuff v & i data into file... fprintf(fp1,"%f \t %f \n", prgm_voltage[i], meas_current[i]); fclose(fp1); //---done and close file----------------------------------//---datalog ifFail status--------------------------------func.dlog->power=POWER_UNIT; //set the scale func.dlog->set_test_no(1); //set the test number if (ifFail) //if TRUE output error, otherwise 0 func.dlog->test_val(999.0f); //pass error value else func.dlog->test_val(0.0f); //pass normal value if (func.dlog->tests[func.dlog->current_test].passed_fail == FAILED_TEST) func.dlog->set_bin(9); //check for fail, set fail bin if (func.dlog->tests[func.dlog->current_test].display_results) func.dlog->display_results(); //check for datalog, output value //----------------------------------------------------------//---set DVI9 & MUX18 to default states dvi_9->init(); mux_18->init(); }//LED_test

154

PN: 071-0999-00

MUX and DVI Labs

Check Your Work


Review the work and have the instructor sign off this module.

visualATE Applications Training Student Guide

155

6 - MUX and DVI Labs

Notes

156

PN: 071-0999-00

Datalog Functions
Goal
Familiarity with the visualATE datalog functions.

Objectives
After this unit, students should be able to: Describe the visualATE datalog functions Describe the visualATE datalog statements

In This Module
______ ______ Instructor Presentation Knowledge Check 1 10 Hour Minutes

Resources
visualATE 6.1 Programming Guide visualATE 6.1 User Guide

visualATE Applications Training Student Guide

157

7 - Datalog Functions

Notes

158

PN: 071-0999-00

Datalog Functions
This section details the Datalog Statements, including: Statements Simple datalog function call

Datalog Statements func.dlog->power


Sets the display scaling of the Value and Min/Max columns in the datalog output. Display over-range is indicated by an abbreviation of the words Display Error in the Value column. This function should be called before any results are displayed and is active for all subsequent tests until changed. The scale defaults to POWER_UNIT, if this command is not called. Format:
func.dlog->power=scale

Arguments: Scale:
POWER_TERA(e12) POWER_GIGA(e9) POWER_MEGA(e6) POWER_KILO(e3) POWER_UNIT(e0, no scaling) POWER_MILLI(e-3) POWER_MICRO(e-6) POWER_NANO(e-9) POWER_PICO(e-12) POWER_FEMTO(e-15) POWER_HEX(HEX)

Usage:
func.dlog->power = POWER_MILLI;

visualATE Applications Training Student Guide

159

7 - Datalog Functions

func.dlog->set_test_no
Selects which limits to use for verification. Figure 110. Verification Limits

Test #1

Test #2

Test #3
Format:
short set_test_no(test_number);

Arguments: test_number 1 to 999 Usage:


func.dlog->set_test_no(237);

func.dlog->test_val
Passes the test result for comparison against the limits defined by set_test_no(). The type should either be float or unsigned short. The compiler requires explicit casting of the value, if the type is not obvious from the variable. Format:
short test_val( float result );

Arguments: resultmeasured or calculated value (float/ushort) in numerical or variable form Usage:


func.dlog->test_val(measured_voltage);

160

PN: 071-0999-00

func.dlog->tests[ ].passed_fail
Determines if the submitted datalog value passed or failed the comparison against the selected limits. Returns True or False for the test number stated. This function is used in conjunction with func.dlog->set_bin(). Normal usage is to check for a failure, and if True, set the fail bin. The value placed between the brackets ([ ]) is (Test Number - 1) as the array tests begins with element number zero. Format:
func.dlog->tests[short(test_num - 1)].passed_fail;

Arguments: test_num
1 to 999

Usage:
if (func.dlog->tests[5].passed_fail == FAILED_TEST) //test number 6 func.dlog->set_bin(16); //if fail, then bin 16.

func.dlog->set_bin
Sets the fail bin. This function is used in conjunction with func.dlog->tests[ ].passed_fail, which determines if a part has failed. Range is from 5 to 32. Format:
void set_bin(short fail_bin);

Arguments: fail_bin
5 to 32

Usage: See "func.dlog->tests[ ].passed_fail" on page 161.

visualATE Applications Training Student Guide

161

7 - Datalog Functions

func.dlog->tests[ ].display_results
Determines if datalog is enabled for the stated test as represented by (test_num - 1). Returns True or False. This function is used in conjunction with func.dlog->display_results(). Normal usage is to check for enable, and if True, output the results. The value placed between the brackets ([ ]) is (Test Number - 1) as the array tests begins with element number zero. Format:
func.dlog->tests[short(test_num - 1)].display results;

Arguments: test_num
1 to 999

Usage:
if (func.dlog->tests[5].display_results) //test number 6 func.dlog->display_results(); //if datalog on, display results

func.dlog->display_results
Used for historical and compatibility purposes only. By default, data is always displayed. This function is used in conjunction with func.dlog->tests[ ].display_results, which determines if the data logger is enabled. Format:
void display_results(void);

Arguments: none Usage: See "func.dlog->tests[ ].display_results" on page 162.

162

PN: 071-0999-00

Simple Datalog Function Call


1. At the bottom of the user.cpp file, install:
void dlog(short scale, short test_num, float result, unsigned short fail_bin, test_function& func) { func.dlog->power = scale; func.dlog->set_test_no(test_num); func.dlog->test_val(result); if (func.dlog->tests[(test_num - 1)].passed_fail == FAILED_TEST) func.dlog->set_bin(fail_bin); if (func.dlog->tests[(test_num - 1)].display_results) func.dlog->display_results(); }

2. At the bottom of the user.h file, install:


void dlog(short scale, short test_num, float result, unsigned short fail_bin, test_function& func);

3. In the Test Function, install:


dlog("datalog scaler", "test number", "value", "fail bin number", func);

Where: "datalog scaler" is POWER_KILO, POWER_MILLI, and so on. "test number" is the sub-test number. "value" is the return of a measurement statement or calculation. "fail bin number" is the desired fail bin. func is entered exactly as shown. Example:
dlog(POWER_KILO, 9, result, 17, func);

visualATE Applications Training Student Guide

163

7 - Datalog Functions

Notes

164

PN: 071-0999-00

Knowledge Check
1. The datalog statements are used to do what?

visualATE Applications Training Student Guide

165

7 - Datalog Functions

Check Your Work


Review the work and have the instructor sign off this module.

166

PN: 071-0999-00

OVI Instrument
Goal
Familiarity with the OVI instrument to the level of performing DC tests.

Objectives
After this unit, students should be able to: Describe the OVI instrument hardware Describe the OVI instrument software

In This Module
______ ______ Instructor Presentation Knowledge Check 45 10 Minutes Minutes

Resources
visualATE 6.1 Programming Guide visualATE 6.1 User Guide

visualATE Applications Training Student Guide

167

168
CURRENT ** RANGING I CLAMP 10k ** Sense Buffer SUMMING & INT 10k

DATA BUS

CH0 Voltage DAC 13 BIT

8 - OVI Instrument

*** OVI-20, 100 Ohm OVI-30, 10 Ohm


TP1

***

FORCE 0

DATA BUS

CH0 Current DAC 13 BIT ** I SENSE 10k 10k **

SENSE 0

***

FORCE 1
TP2

Figure 111. OVI Diagram

CH1 V DAC

SENSE 1
**

CH1 C DAC (CH0 A) (CH0 V)

***
10k 10k **

FORCE 2
TP3

CH2 V DAC

SENSE 2
**

CH2 C DAC

***
10k 10k **

FORCE 3
TP4

CH3 V DAC

(CH1 A) (CH2 A) (CH1 V) (CH2 V)

SENSE 3
**

CH3 C DAC (CH6 A) (CH7 A) (CH6 V) (CH7 V)

(CH3 A) (CH4 A) (CH5 A) (CH3 V) (CH4 V) (CH5 V)

***
10k 10k **

FORCE 4
TP5

CH4 V DAC

CH4 C DAC

* CURRENT MUX * CONTROLLED BY set_meas_mode(); OPENED BY init();

* VOLTAGE MUX ***


10k 10k

SENSE 4
**

FORCE 5
TP6 **

CH5 V DAC

CH5 C DAC

SENSE 5
**

FORCE 6 ***
10k 10k TP7

CH6 V DAC

CH6 C DAC

16 BIT ADC
GND REF

DATA BUS

**

SENSE 6
** AGS

CH7 V DAC

***
10k 10k **

FORCE 7
TP8

CH7 C DAC

SENSE 7 ** CONTROLLED BY connect/disconnect(); CLOSED BY init();

PN: 071-0999-00

OVI Instrument

OVI Instrument
This section covers the OVI instrument, including: Instrument description Key highlights Theory of operation Software statements

Description and Key Highlights


The OVI (octal voltage/current source) instrument is a general purpose, programmable DC supply. Key highlights are: Eight independent channels (CH0 - CH7) 15 programmable voltage range 30 mA per channel Force and Sense operation Four-quadrant capable Relay connects on Force and Sense 12-bit voltage and current programming 16-bit ADC for measure Ground referenced

Theory of Operation
The OVI functionally operates in the same way as a DVI. Please refer to the "DVI Instrument" on page 35 for operational rules and examples. For the remainder of the OVI hardware discussion, refer to the OVI - Octal Voltage/ Current Source chapter of the visualATE 6.1 Programming Guide.

Software Statements
For the software discussion, refer to the OVI - Octal Voltage/Current Source chapter of the visualATE 6.1 Programming Guide.

visualATE Applications Training Student Guide

169

8 - OVI Instrument

Notes

170

PN: 071-0999-00

OVI Instrument

Knowledge Check
1. What is the maximum calibrated voltage range of the OVI?

2. In what quadrants of the V/I graph can the OVI operate?

3. What are the two operational rules for the OVI?

4. Can the OVI instruments be stacked and why?

visualATE Applications Training Student Guide

171

8 - OVI Instrument

Check Your Work


Review the work and have the instructor sign off this module.

172

PN: 071-0999-00

TMU Instrument
Goal
Familiarity with the TMU to the level of performing simple timing measurements.

Objectives
After this unit, students should be able to: Describe the TMU instrument hardware Describe the TMU instrument software

In This Module
______ ______ Instructor Presentation Knowledge Check 45 10 Minutes Minutes

Resources
visualATE 6.1 Programming Guide visualATE 6.1 User Guide

visualATE Applications Training Student Guide

173

* CONTROLLED BY open/ close_relay();

TMU_HIZ_DUT3 20K 200K

TMU_EXT_DRV3

PN: 071-0999-00

TMU_HIZ_DUT4

I/O REGISTER

174
TP5 ARM COMP START CPU_ARM

EXT_ARM

9 - TMU Instrument

START HOLDOFF & VALIDATION


ECL COUNTER
STOP

DATA BUS

ARM REF

STOP HOLDOFF &VALIDATION


TP6

DATA BUS

TMU_CHAN_A_DUT1
TP2

Figure 112. TMU Diagram

TTL COUNTER

SLOPE SELECT
RESET 1.5K START TRG REF POS/NEG SLOPE
TP9 TP11

TMU_CHAN_A_DUT2

TMU_CHAN_A_BUS 500
START COMP

STOP COMP

START & STOP INTERPOLATION

12 BIT A/D

DATA BUS

500 TMU_MEAS_BUS STOP TRG REF 1.5K


TP3

TMU_CHAN_B_DUT1

TMU_CHAN_B_DUT2

BUS2 BUS3 BUS4 BUS5 BUS6 BUS7 BUS8 BUS10


WL2 (wire link 2)

TMU_HIZ_DUT1 <= 10V RANGE: CLOSED > 10V RANGE: OPEN

* *

TMU_EXT_DRV1 TMU_OUT1 TMU_EXT_DRV2 TMU_OUT2

TMU_HIZ_DUT2 2Meg

TMU Instrument

TMU Instrument
This section covers the Time Measurement Unit (TMU) instrument, including: Instrument description Key highlights Theory of operation Software statements

Description and Key Highlights


The TMU instrument is a general purpose, voltage controlled counter. Key highlights are: Three input channels (CHA, CHB, HiZ) Relay connects on inputs (CHA - 3, CHB - 2, HiZ - 4) Programmable trigger thresholds Timing range of ~2 s to ~10 ns Base resolution of 10 ns Able to measure below 10 ns via interpolation

Theory of Operation
For the hardware discussion, refer to Figure 112 on page 174 and to the TMU - Time Measurement Unit chapter of the visualATE 6.1 Programming Guide.

Software Statements
For the software discussion, refer to the TMU - Time Measurement Unit chapter of the visualATE 6.1 Programming Guide.

visualATE Applications Training Student Guide

175

9 - TMU Instrument

Notes

176

PN: 071-0999-00

TMU Instrument

Knowledge Check
1. What is the base resolution of the TMU?

2. What is the range across which the TMU can measure?

3. Does the TMU have access to the User Testhead busses?

4. How many input channels does the TMU have?

5. What are the two settling times of the TMU input connect relays?

visualATE Applications Training Student Guide

177

9 - TMU Instrument

Check Your Work


Review the work and have the instructor sign off this module.

178

PN: 071-0999-00

10

OVI and TMU Instrument Labs


Goal
Familiarity with the OVI and TMU instrument to the level of performing simple timing measurements and more intricate DUT tests.

Objectives
After this unit, students should be able to: Program simple timing measurements using the TMU instrument Program DC tests using the OVI instrument

In This Module
______ Lab Exercise 3 Hours

Resources
visualATE 6.1 Programming Guide visualATE 6.1 User Guide

visualATE Applications Training Student Guide

179

10 - OVI and TMU Instrument Labs

Notes

180

PN: 071-0999-00

OVI and TMU Labs

Lab Exercise

OVI and TMU Labs


The OVI and TMU labs includes the following tests: dut_Continuity dut_VolVoh dut_VilVih ovi_Rise ovi_Fall dvi_Time dut_PropDelay dut_TrTf

visualATE Applications Training Student Guide

181

182
ACS 5
S1
(6) (8) (5)

+5V
U1C
(9)

U1 Vcc
U1D

TP1 TP2
CH6F CH6S S0
(1) (4)
EXT _ARM

C1 0.1uF

PV3 4 PV3 4
CH4FH CH4SH

GND
(12) (10)

U1 GND
S2

TMU 6
IO1
(13)

U1F

(11)

U1E

OVI 1 OVI 1 DVI 11 DVI 9


EXT _DRV2

K1

HiZ 4 OUT CH4


(K1 & K2 pin 3)

dut_Continuity Lab

+12V
MUX_BANK_8_1 K2
(1) (4)

K1 & K2 pin 2

ACS 5 TMU 6 ACS 5 DVI 11


S1 CH7S CH7F MUX_8_1 MUX_1_BUS9
B US_9 BUS _8

10 - OVI and TMU Instrument Labs

TMU 6 TP3 ACS 5

R4 0.1 Ohm 1%

DVI 9
CH0F CH0S MUX_8_BUS8 MUX_8_2 MUX_8_GND MUX_8_3 MUX_8_4 MUX_BANK_1_2 MUX_7_1 MUX_2_BUS2
B US_2 B US_7

F0

MUX_1_1

OVI 1 OVI 1 PV3 4 PV3 4

R1

1.2K 5%

MUX_1_2

OVI 1 OVI 1
CH5SL CH5FL

R2

130K 5%

MUX_1_3

LED

MUX_1_4 MUX_BANK_7_8 CH1F CH1S

Figure 113. dut_Continuity Lab Schematic

MUX_2_1 MUX_7_BUS7 MUX_7_2 MUX_7_GND MUX_7_3

OVI 1 OVI 1

ACS 5

EXT_ CLK

DVI 11 CH0 via MUX 18 74LS11


(1) (2) (13) (3) (4) (5) (9) (10) A1 B1 C1 A2 B2 C2 A3 B3 3 Y3 (8) 2 Y2 (6) 1 Y1 (12)

MUX_2_2 MUX_2_GND

V cc

(14)

C2 0.1uF

MUX_2_3

CH7

DVI 9
MUX_7_4 MUX_BANK_6_7 MUX_6_1 MUX_3_BUS3
B US_3 B US_6

S0 MUX_BANK_2_3 CH2F CH2S

MUX_2_4

MUX 18

CH1 CH2 CH3 CH4 CH5 CH6

DDD 7
CH8

DVI 11
MUX_6_BUS6 MUX_6_2 MUX_6_GND MUX_6_3 MUX_6_4
(4)

F0

MUX_3_1

OVI 1 OVI 1

DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 DDD 7

DDD 7

R3

1.2K 5%

MUX_3_2

(11) (7)

C3 GND

DUT Vcc, pin 14

MUX_3_3

DUT
(3) (1)

MUX_3_4 MUX_BANK_3_4 MUX_BANK_5_6

U1B

U1A
(2)

IO2

TMU 6 AGS

MUX_4_1 MUX_4_BUS4
B US_4 B US_5

MUX_5_1 MUX_5_BUS5 MUX_5_2 MUX_5_3 MUX_5_4

CH3F CH3S

OVI 1 OVI 1

TMU 6

CHA 2

DUT Vcc, pin 14 MUX_4_GND


B US_10

MUX_4_2 MUX_5_BUS10

TMU 6

HiZ 3

MUX_4_3

DVI 11
MUX_BANK_4_5

S0

MUX_4_4

PN: 071-0999-00

OVI and TMU Labs

dut_Continuity Worksheet
Test Function Name: ____________________

P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____

Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____ Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____ Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____ Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____ Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____ Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____

Concept:___________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

visualATE Applications Training Student Guide

183

10 - OVI and TMU Instrument Labs

dut_Continuity Code
void dut_Continuity(test_function& func) { // The two lines below must be the first two in the function. dut_Continuity_params *ours; ours = (dut_Continuity_params *)func.params; //---delcare variables used float pin_meas[8]; //holds the various pin measurements //---load array w/pin numbers unsigned short ovichnl[4] = {OVI_CHANNEL_0,OVI_CHANNEL_1, OVI_CHANNEL_2,OVI_CHANNEL_3}; short i, j; //loop counters //flush the whole array...

for (i = 0; i < 8; i++) pin_meas[i] = 0.0f;

Complete the missing lines of code.

//---connect OVI1 to DUT //connect OVI1 CH0 to DUT9 (A3)

//connect OVI1 CH1 to DUT10 (B3)

//connect OVI1 CH2 to DUT11 (C3)

//connect OVI1 CH3 to DUT8 (Y3)

//---disconnect OVI1 from DUT pins for (j = 0; j < 4; j++) ovi_1->disconnect(ovichnl[j]); //---pre-condition OVI channels for (j = 0; j < 4; j++) ovi_1->set_current(ovichnl[j], 200e-6f, RANGE_300_UA);

//200uA

184

PN: 071-0999-00

OVI and TMU Labs

//---wait for above to settle... delay(ours->delay_1ms); //---do the dance-------------------------------------------for (i = 0, j = 0; i < 6; i+=2, j++)//right now, use only 6 elements (inputs only) { ovi_1->connect(ovichnl[j]); ovi_1->set_meas_mode(ovichnl[j], OVI_MEASURE_CURRENT); //---bottom diode path + & ovi_1->set_voltage(ovichnl[j], 2.0f); wait.delay_10_us(ours->delay_10us); pin_meas[i] = ovi_1->measure(); //wait a bit...

//pin_v+

ovi_1->set_voltage(ovichnl[j], -2.0f); wait.delay_10_us(ours->delay_10us); pin_meas[i+1] = ovi_1->measure(); //wait a bit... //pin_v-

ovi_1->set_voltage(ovichnl[j], 0.0f); wait.delay_10_us(ours->delay_10us); //wait a bit...

ovi_1->disconnect(ovichnl[j]); }//---------------------------------------------------------//---loop method of dataloging the results------------------func.dlog->power=POWER_MICRO; //common scale for (i = 0; i < 8; i++) { func.dlog->set_test_no(i + 1); //adjust the value of i func.dlog->test_val(pin_meas[i]); //index into the results array if (func.dlog->tests[func.dlog->current_test].passed_fail == FAILED_TEST) func.dlog->set_bin(32); if (func.dlog->tests[func.dlog->current_test].display_results) func.dlog->display_results(); } //---------------------------------------------------------//---reset instruments ovi_1->init();

visualATE Applications Training Student Guide

185

10 - OVI and TMU Instrument Labs

mux_18->init(); }//dut_Continuity

186

PN: 071-0999-00

OVI and TMU Labs

Notes

visualATE Applications Training Student Guide

187

188
ACS 5
S1
(6) (8) (5)

+5V
U1C
(9)

U1 Vcc
U1D CH4FH CH4SH

TP1 TP2 OVI 1 OVI 1


CH6F CH6S S0
(1) (4)
EXT _ARM

C1 0.1uF

PV3 4 PV3 4

GND
(12) (10)

U1 GND
S2 HiZ 4 OUT CH4

TMU 6
IO 1
(13)

U1F

(11)

U1E

dut_VolVoh Lab

DVI 11 DVI 9
EXT _DRV2

K1

+12V
(K1 & K2 pin 3)

K1 & K2 pin 2
MUX_BANK_8_1

ACS 5 TMU 6 ACS 5


K2
(1) (4)

TMU 6 TP3 ACS 5

R4 0.1 Ohm 1%

10 - OVI and TMU Instrument Labs

DVI 11
S1 CH7S CH7F MUX_8_1 MUX_1_BUS9
B US_9 BUS _8

DVI 9
CH0F CH0S MUX_8_BUS8 MUX_8_2 MUX_8_GND MUX_8_3 MUX_8_4 MUX_BANK_1_2 MUX_7_1 MUX_2_BUS2
B US_2 B US_7

F0

MUX_1_1

OVI 1 OVI 1 PV3 4 PV3 4 OVI 1 OVI 1


CH5SL CH5FL

R1

1.2K 5%

MUX_1_2

R2

130K 5%

MUX_1_3

LED

MUX_1_4 MUX_BANK_7_8 CH1F CH1S

Figure 114. dut_VolVoh Lab Schematic

MUX_2_1 MUX_7_BUS7 MUX_7_2 MUX_7_GND MUX_7_3

OVI 1 OVI 1

ACS 5

EXT_ CLK

DVI 11 CH0 vi a MUX 18 74LS11


(1) (2) (13) (3) (4) A1 B1 C1 A2 B2 2 Y2 (6) 1 Y1 (12)

MUX_2_2 MUX_2_GND

V cc

(14)

C2 0.1uF

MUX_2_3

CH7

DVI 9 MUX 18
MUX_7_4 MUX_BANK_6_7 MUX_6_1 MUX_3_BUS3
B US_3 B US_6

S0 MUX_BANK_2_3 CH2F CH2S

MUX_2_4

CH1 CH2 CH3 CH4 CH5 CH6

DDD 7
CH8
(5) (9) (10) C2 A3 B3 3 Y3 (8)

DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 DDD 7

DDD 7

DVI 11
MUX_6_BUS6 MUX_6_2 MUX_6_GND MUX_6_3 MUX_6_4
(4)

F0

MUX_3_1

OVI 1 OVI 1

R3

1.2K 5%

MUX_3_2

(11) (7)

C3 GND

DUT Vcc, pin 14

MUX_3_3

DUT
(3) (1)

MUX_3_4 MUX_BANK_3_4 MUX_BANK_5_6

U1B

U1A
(2)

IO 2

TMU 6 AGS

MUX_4_1 MUX_4_BUS4
B US_4 B US_5

MUX_5_1 MUX_5_BUS5 MUX_5_2 MUX_5_3 MUX_5_4

CH3F CH3S

OVI 1 OVI 1

TMU 6

CHA 2

DUT Vcc, pin 14 MUX_4_GND


B US_10

MUX_4_2 MUX_5_BUS10

TMU 6

HiZ 3

MUX_4_3

DVI 11
MUX_BANK_4_5

S0

MUX_4_4

PN: 071-0999-00

OVI and TMU Labs

dut_VolVoh Worksheet
Test Function Name: ____________________

P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____

Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____ Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____

Concept:___________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

visualATE Applications Training Student Guide

189

10 - OVI and TMU Instrument Labs

dut_VolVoh Code
void dut_VolVoh(test_function& func) { // The two lines below must be the first two in the function. dut_VolVoh_params *ours; ours = (dut_VolVoh_params *)func.params; //---declare variables used float dut_vol, dut_voh;

Complete the missing lines of code.

//---connect OVI1 to DUT //connect OVI1 CH0 to DUT9 (A3)

//connect OVI1 CH1 to DUT10 (B3)

//connect OVI1 CH2 to DUT11 (C3)

//connect OVI1 CH3 to DUT8 (Y3)

//---connect DVI11 CH0 to DUT Vcc //connect DVI11 CH0F to DUT 16 //connect DVI11 CH0S to DUT 16

//---initial DVI11 & OVI1 current settings dvi_11->set_current(DVI_CHANNEL_0, ours->dut_Icc); ovi_1->set_current(OVI_CHANNEL_0, 1.0e-3f); ovi_1->set_current(OVI_CHANNEL_1, 1.0e-3f); ovi_1->set_current(OVI_CHANNEL_2, 1.0e-3f); delay(ours->delay_1ms); //wait for above to settle

190

PN: 071-0999-00

OVI and TMU Labs

//---apply Vcc to DUT dvi_11->set_voltage(DVI_CHANNEL_0, ours->dut_Vcc); wait.delay_10_us(ours->delay_10us); //wait a bit...

//---set up OVI1 ch3 for measure ovi_1->set_meas_mode(OVI_CHANNEL_3, OVI_MEASURE_VOLTAGE); //---apply low levels to DUT inputs ovi_1->set_voltage(OVI_CHANNEL_0, 0.8f); ovi_1->set_voltage(OVI_CHANNEL_1, 0.8f); ovi_1->set_voltage(OVI_CHANNEL_2, 0.8f); //DUT A3 low //DUT B3 low //DUT C3 low //sourcing, so positive number

//---set load conditions for Vol ovi_1->set_current(OVI_CHANNEL_3, 8.0e-3f); ovi_1->set_voltage(OVI_CHANNEL_3, 2.0f); wait.delay_10_us(ours->delay_10us); //---measure DUT Vol dut_vol = ovi_1->measure(RANGE_1_V); //---apply high levels to DUT inputs ovi_1->set_voltage(OVI_CHANNEL_0, 2.0f); ovi_1->set_voltage(OVI_CHANNEL_1, 2.0f); ovi_1->set_voltage(OVI_CHANNEL_2, 2.0f); wait.delay_10_us(ours->delay_10us);

//wait a bit...

//DUT A3 high //DUT B3 high //DUT C3 high

//wait a bit... //sinking, so engage negative //cal factors with minus sign.

//---set load conditions for Voh ovi_1->set_current(OVI_CHANNEL_3, -400.0e-6f); ovi_1->set_voltage(OVI_CHANNEL_3, 2.0f); wait.delay_10_us(ours->delay_10us); //---measure DUT Voh dut_voh = ovi_1->measure(RANGE_5_V);

//wait a bit...

//---datalog DUT Vol-------------------------------------func.dlog->power = POWER_UNIT; func.dlog->set_test_no(1); func.dlog->test_val(dut_vol); if (func.dlog->tests[func.dlog->current_test].passed_fail == FAILED_TEST) func.dlog->set_bin(5); if (func.dlog->tests[func.dlog->current_test].display_results) func.dlog->display_results();

visualATE Applications Training Student Guide

191

10 - OVI and TMU Instrument Labs

//---datalog DUT Voh-------------------------------------func.dlog->power = POWER_UNIT; func.dlog->set_test_no(2); func.dlog->test_val(dut_voh); if (func.dlog->tests[func.dlog->current_test].passed_fail == FAILED_TEST) func.dlog->set_bin(5); if (func.dlog->tests[func.dlog->current_test].display_results) func.dlog->display_results(); //----------------------------------------------------------//---power down DUT 'gently' dvi_11->set_voltage(DVI_CHANNEL_0, 0.0f); wait.delay_10_us(ours->delay_10us); //---reset instruments ovi_1->init(); dvi_11->init(); mux_18->init(); }//dut_VolVoh

192

PN: 071-0999-00

OVI and TMU Labs

Notes

visualATE Applications Training Student Guide

193

194
ACS 5
S1
(6) (8) (5)

+5V
U1C
(9)

U1 Vcc
U1D CH4FH CH4SH

TP1 TP2 OVI 1 OVI 1


CH6F CH6S S0
(1) (4)
EXT _ARM

C1 0.1uF

PV3 4 PV3 4

dut_VilVih Lab

GND
(12) (10)

U1 GND
S2 HiZ 4 OUT CH4

TMU 6
IO 1
(13)

U1F

(11)

U1E

DVI 11 DVI 9
EXT _DRV2

K1

+12V
(K1 & K2 pin 3)

K1 & K2 pin 2
MUX_BANK_8_1

ACS 5 TMU 6 ACS 5


K2
(1) (4)

TMU 6 TP3 ACS 5

R4 0.1 Ohm 1%

10 - OVI and TMU Instrument Labs

DVI 11
S1 CH7S CH7F MUX_8_1 MUX_1_BUS9
B US_9 BUS _8

DVI 9
CH0F CH0S MUX_8_BUS8 MUX_8_2 MUX_8_GND MUX_8_3 MUX_8_4 MUX_BANK_1_2 MUX_7_1 MUX_2_BUS2
B US_2 B US_7

F0

MUX_1_1

OVI 1 OVI 1 PV3 4 PV3 4 OVI 1 OVI 1


CH5SL CH5FL

R1

1.2K 5%

MUX_1_2

R2

130K 5%

MUX_1_3

LED

Figure 115. dut_VilVih Lab Schematic

MUX_1_4 MUX_BANK_7_8 CH1F CH1S

MUX_2_1 MUX_7_BUS7 MUX_7_2 MUX_7_GND MUX_7_3

OVI 1 OVI 1

ACS 5

EXT_ CLK

DVI 11 CH0 vi a MUX 18 74LS11


(1) (2) (13) (3) (4) A1 B1 C1 A2 B2 2 Y2 (6) 1 Y1 (12)

MUX_2_2 MUX_2_GND

V cc

(14)

C2 0.1uF

MUX_2_3

CH7

DVI 9 MUX 18
MUX_7_4 MUX_BANK_6_7 MUX_6_1 MUX_3_BUS3
B US_3 B US_6

S0 MUX_BANK_2_3 CH2F CH2S

MUX_2_4

CH1 CH2 CH3 CH4 CH5 CH6

DDD 7
CH8
(5) (9) (10) C2 A3 B3 3 Y3 (8)

DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 DDD 7

DDD 7

DVI 11
MUX_6_BUS6 MUX_6_2 MUX_6_GND MUX_6_3 MUX_6_4
(4)

F0

MUX_3_1

OVI 1 OVI 1

R3

1.2K 5%

MUX_3_2

(11) (7)

C3 GND

DUT Vcc, pin 14

MUX_3_3

DUT
(3) (1)

MUX_3_4 MUX_BANK_3_4 MUX_BANK_5_6

U1B

U1A
(2)

IO 2

TMU 6 AGS

MUX_4_1 MUX_4_BUS4
B US_4 B US_5

MUX_5_1 MUX_5_BUS5 MUX_5_2 MUX_5_3 MUX_5_4

CH3F CH3S

OVI 1 OVI 1

TMU 6

CHA 2

DUT Vcc, pin 14 MUX_4_GND


B US_10

MUX_4_2 MUX_5_BUS10

TMU 6

HiZ 3

MUX_4_3

DVI 11
MUX_BANK_4_5

S0

MUX_4_4

PN: 071-0999-00

OVI and TMU Labs

dut_VilVih Worksheet
Test Function Name: ____________________

P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____

Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____ Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____

Concept:___________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

visualATE Applications Training Student Guide

195

10 - OVI and TMU Instrument Labs

dut_VilVih Code
void dut_VilVih(test_function& func) { // The two lines below must be the first two in the function. dut_VilVih_params *ours; ours = (dut_VilVih_params *)func.params; //---declare variables used short i; float float dut_vil, dut_vih; step, stepsize, output_v;

1. Complete the missing lines of code.


//---connect OVI1 to DUT //connect OVI1 CH0 to DUT9 (A3)

//connect OVI1 CH1 to DUT10 (B3)

//connect OVI1 CH2 to DUT11 (C3)

//connect OVI1 CH3 to DUT8 (Y3)

//---connect DVI11 CH0 to DUT Vcc //connect DVI11 CH0F to DUT 16 //connect DVI11 CH0S to DUT 16

//---initial DVI11 & OVI1 current settings dvi_11->set_current(DVI_CHANNEL_0, ours->dut_Icc); ovi_1->set_current(OVI_CHANNEL_0, 1.0e-3f); ovi_1->set_current(OVI_CHANNEL_1, 1.0e-3f);

196

PN: 071-0999-00

OVI and TMU Labs

ovi_1->set_current(OVI_CHANNEL_2, 1.0e-3f); ovi_1->set_current(OVI_CHANNEL_3, 400.0e-6f); delay(ours->delay_1ms); //wait for above to settle

//---apply Vcc min (4.5) to DUT dvi_11->set_voltage(DVI_CHANNEL_0, ours->dut_Vcc); wait.delay_10_us(ours->delay_10us); //wait a bit...

//---set up OVI1 ch3 for measure ovi_1->set_meas_mode(OVI_CHANNEL_3, OVI_MEASURE_VOLTAGE, RANGE_5_V); //---apply initial levels to DUT inputs ovi_1->set_voltage(OVI_CHANNEL_0, 4.5f); ovi_1->set_voltage(OVI_CHANNEL_1, 4.5f); ovi_1->set_voltage(OVI_CHANNEL_2, 0.0f); //---wait a bit... wait.delay_10_us(ours->delay_10us); //---calculate step size stepsize = ((ours->vstop - ours->vstart) / ours->samples); step = ours->vstart;//assign initial start voltage for ramp-up //---ramp up------------------------------------------------for (i = 0; i < ours->samples; i++) { ovi_1->set_voltage(OVI_CHANNEL_2, step, VOLT_5_RANGE); //apply new voltage wait.delay_10_us(ours->delay_10us); output_v = ovi_1->measure(); //wait a bit... //DUT A3 high (Vcc min value) //DUT B3 high (Vcc min value) //DUT C3 low

//measure DUT ouput voltage and save

if (output_v > 2.5f) //if output is high...(Vcc-2V) { dut_vih = step; //save programmed voltage i = 999;//force loop to quit } step += stepsize; //increment voltage value } //---------------------------------------------------------//---apply Vcc max (5.5) to DUT dvi_11->set_voltage(DVI_CHANNEL_0, 5.5f);

visualATE Applications Training Student Guide

197

10 - OVI and TMU Instrument Labs

wait.delay_10_us(ours->delay_10us); step = ours->vstop;

//wait a bit...

//assign initial start voltage for ramp-down

//---ramp down---------------------------------------------for (i = 0; i < ours->samples; i++) { ovi_1->set_voltage(OVI_CHANNEL_2, step, VOLT_5_RANGE); //apply new voltage wait.delay_10_us(ours->delay_10us); output_v = ovi_1->measure(); //wait a bit...

//measure DUT ouput voltage and save

if (output_v < 0.5f) //if output is low...(500mV) { dut_vil = step; //save programmed voltage i = 999; } step -= stepsize; //decrement voltage value } //---------------------------------------------------------//force loop to quit

2. Complete the missing lines of code.


//---datalog DUT Vih--------------------------------------

//---datalog DUT Vil--------------------------------------

//---datalog Vil/Vih StepSize------------------------------

198

PN: 071-0999-00

OVI and TMU Labs

//----------------------------------------------------------//---power down DUT 'gently' dvi_11->set_voltage(DVI_CHANNEL_0, 0.0f); wait.delay_10_us(ours->delay_10us); //---reset instruments dvi_11->init(); mux_18->init(); ovi_1->init(); }//dut_VilVih

visualATE Applications Training Student Guide

199

200
ACS 5
S1
(6) (8) (5)

+5V
U1C
(9)

U1 Vcc
U1D CH4FH CH4SH

TP1 TP2 OVI 1 OVI 1


CH6F CH6S S0
(1) (4)
EXT _ARM

C1 0.1uF

PV3 4 PV3 4

ovi_Rise Lab

GND
(12) (10)

U1 GND
S2 HiZ 4 OUT CH4

TMU 6
IO 1
(13)

U1F

(11)

U1E

DVI 11 DVI 9
EXT _DRV2

K1

+12V
(K1 & K2 pin 3)

K1 & K2 pin 2
MUX_BANK_8_1

ACS 5 TMU 6 ACS 5


K2
(1) (4)

TMU 6 TP3 ACS 5

R4 0.1 Ohm 1%

10 - OVI and TMU Instrument Labs

DVI 11
S1 CH7S CH7F MUX_8_1 MUX_1_BUS9
B US_9 BUS _8

DVI 9
CH0F CH0S MUX_8_BUS8 MUX_8_2 MUX_8_GND MUX_8_3 MUX_8_4 MUX_BANK_1_2 MUX_7_1 MUX_2_BUS2
B US_2 B US_7

F0

MUX_1_1

OVI 1 OVI 1 PV3 4 PV3 4 OVI 1 OVI 1


CH5SL CH5FL

R1

1.2K 5%

MUX_1_2

R2

130K 5%

MUX_1_3

Figure 116. ovi_Rise Lab Schematic

LED

MUX_1_4 MUX_BANK_7_8 CH1F CH1S

MUX_2_1 MUX_7_BUS7 MUX_7_2 MUX_7_GND MUX_7_3

OVI 1 OVI 1

ACS 5

EXT_ CLK

DVI 11 CH0 via MUX 18 74LS11


(1) (2) (13) (3) (4) A1 B1 C1 A2 B2 2 Y2 (6) 1 Y1 (12)

MUX_2_2 MUX_2_GND

V cc

(14)

C2 0. 1uF

MUX_2_3

CH7

DVI 9 MUX 18
MUX_7_4 MUX_BANK_6_7 MUX_6_1 MUX_3_BUS3
B US_3 B US_6

S0 MUX_BANK_2_3 CH2F CH2S

MUX_2_4

CH1 CH2 CH3 CH4 CH5 CH6

DDD 7
CH8
(5) (9) (10) C2 A3 B3 3 Y3 (8)

DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 OVI 1 OVI 1

DDD 7

DVI 11
MUX_6_BUS6 MUX_6_2 MUX_6_GND MUX_6_3 MUX_6_4
(4)

F0

MUX_3_1

R3

1.2K 5%

MUX_3_2

(11) (7)

C3 GND

DUT Vcc, pin 14

MUX_3_3

DUT
(3) (1)

MUX_3_4 MUX_BANK_3_4 MUX_BANK_5_6

U1B

U1A
(2)

IO 2

TMU 6 AGS

MUX_4_1 MUX_4_BUS4
B US_4 B US_5

MUX_5_1 MUX_5_BUS5 MUX_5_2 MUX_5_3 MUX_5_4

CH3F CH3S

OVI 1 OVI 1

TMU 6

CHA 2

DUT Vcc, pin 14 MUX_4_GND


B US_10

MUX_4_2 MUX_5_BUS10

TMU 6

HiZ 3

MUX_4_3

DVI 11
MUX_BANK_4_5

S0

MUX_4_4

PN: 071-0999-00

OVI and TMU Labs

ovi_Rise Worksheet
Test Function Name: ____________________

P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____

Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____

Concept:___________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

visualATE Applications Training Student Guide

201

10 - OVI and TMU Instrument Labs

ovi_Rise Code
void ovi_rise(test_function& func) { // The two lines below must be the first two in the function. ovi_rise_params *ours; ours = (ovi_rise_params *)func.params; //---declare variables used float meas_rtime; //---complete the path between OVI1 CH0 & TMU6 HiZ4 mux_18->close_relay(MUX_8_1); mux_18->close_relay(MUX_8_2); mux_18->close_relay(MUX_8_3); tmu_6->close_relay(TMU_HIZ_DUT4); //---set up tmu_6 for rise time measurement tmu_6->start_trigger_setup(ours->start_trg,POS_SLOPE,TMU_HIZ,TMU_IN_10V); tmu_6->stop_trigger_setup(ours->stop_trg,POS_SLOPE,TMU_HIZ,TMU_IN_10V); //---precondition OVI1 ovi_1->set_current(OVI_CHANNEL_0, 10e-3f); ovi_1->set_voltage(OVI_CHANNEL_0, 0.0f); delay(ours->delay_1ms); tmu_6->arm(); wait.delay_10_us(4); //wait for above to settle...

//wait 40us

//---create rising edge by setting OVI1 CH0 to 10V ovi_1->set_voltage(OVI_CHANNEL_0, 10.0f); wait.delay_10_us(5); //let the OVI transition through the 1V start trigger //default 10ms timeout

//---get ovi_1 rise time meas_rtime=tmu_6->read();

//---set up and use datalogger----------------------------------func.dlog->power = POWER_MICRO; //set range to micro func.dlog->set_test_no(1); //set fall time test # to 1 func.dlog->test_val(meas_rtime); //pass test result for rtime if(func.dlog->tests[func.dlog->current_test].passed_fail==FAILED_TEST) func.dlog->set_bin(16); //if fail,bin16 if(func.dlog->tests[func.dlog->current_test].display_results)

202

PN: 071-0999-00

OVI and TMU Labs

func.dlog->display_results(); //if datalogger on display results //--------------------------------------------------------------//---reset instruments ovi_1->init(); tmu_6->init(); mux_18->init(); }//ovi_rise

visualATE Applications Training Student Guide

203

204
ACS 5
S1
(6) (8) (5)

+5V
U1C
(9)

U1 Vcc
U1D CH4FH CH4SH

TP1 TP2 OVI 1 OVI 1


CH6F CH6S S0
(1) (4)
EXT _ARM

C1 0.1uF

PV3 4 PV3 4

ovi_Fall Lab

GND
(12) (10)

U1 GND
S2 HiZ 4 OUT CH4

TMU 6
IO1
(13)

U1F

(11)

U1E

DVI 11 DVI 9
EXT _DRV2

K1

+12V
(K1 & K2 pin 3)

K1 & K2 pin 2
MUX_BANK_8_1

ACS 5 TMU 6 ACS 5


K2
(1) (4)

TMU 6 TP3 ACS 5

R4 0.1 Ohm 1%

10 - OVI and TMU Instrument Labs

DVI 11
S1 MUX_8_1 MUX_1_BUS9
B US_9 BUS _8

DVI 9
CH0F CH0S MUX_8_BUS8 MUX_8_2 MUX_8_GND MUX_8_3 MUX_8_4 MUX_BANK_1_2 MUX_7_1 MUX_2_BUS2
B US_2 B US_7

F0

MUX_1_1

OVI 1 OVI 1 PV3 4 PV3 4 OVI 1 OVI 1


CH7S CH7F CH5SL CH5FL

R1

1.2K 5%

MUX_1_2

R2

130K 5%

MUX_1_3

Figure 117. ovi_Fall Lab Schematic

LED

MUX_1_4 MUX_BANK_7_8 CH1F CH1S

MUX_2_1 MUX_7_BUS7 MUX_7_2 MUX_7_GND MUX_7_3

OVI 1 OVI 1

ACS 5

EXT_ CLK

DVI 11 CH0 via MUX 18 74LS11 CH1


(1) (2) (13) (3) (4) (5) (9) (10) A1 B1 C1 A2 B2 C2 A3 B3 3 Y3 (8) 2 Y2 (6) 1 Y1 (12)

MUX_2_2 MUX_2_GND

V cc

(14)

C2 0. 1uF

MUX_2_3

CH7

DDD 7
CH2 CH3 CH4 CH5 CH6 CH8

DVI 9
MUX_7_4 MUX_BANK_6_7 MUX_6_1 MUX_3_BUS3
B US_3 B US_6

S0 MUX_BANK_2_3 CH2F CH2S

MUX_2_4

MUX 18

DVI 11
MUX_6_BUS6 MUX_6_2 MUX_6_GND MUX_6_3 MUX_6_4
(4)

F0

MUX_3_1

OVI 1 OVI 1

DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 DDD 7

DDD 7

R3

1.2K 5%

MUX_3_2

(11) (7)

C3 GND

DUT Vcc, pin 14

MUX_3_3

DUT
(3) (1)

MUX_3_4 MUX_BANK_3_4 MUX_BANK_5_6 MUX_5_1 MUX_4_BUS4


B US_4 B US_5

U1B

U1A
(2)

IO2

TMU 6 AGS
CH3F

MUX_4_1 MUX_5_BUS5

OVI 1
MUX_5_2 MUX_5_3 MUX_5_4 CH3S

TMU 6 OVI 1

CHA 2

DUT Vcc, pin 14 MUX_4_GND


B US_10

MUX_4_2 MUX_5_BUS10

TMU 6

HiZ 3

MUX_4_3

DVI 11
MUX_BANK_4_5

S0

MUX_4_4

PN: 071-0999-00

OVI and TMU Labs

ovi_Fall Worksheet
Test Function Name: ____________________

P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____

Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____

Concept:___________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

visualATE Applications Training Student Guide

205

10 - OVI and TMU Instrument Labs

ovi_Fall Code
void ovi_fall(test_function& func) { // The two lines below must be the first two in the function. ovi_fall_params *ours; ours = (ovi_fall_params *)func.params; //---declare variables used float meas_ftime;

Complete the missing lines of code.

//---complete the path between OVI1 CH0 & TMU6 HiZ4

//---set up tmu_6 for fall time measurement

//---precondition OVI1

delay(ours->delay_1ms); tmu_6->arm(); wait.delay_10_us(4);

//wait for above to settle...

//wait 40us

//---create falling edge by settting OVI1 CH0 to 0V

//---get ovi_1 fall time meas_ftime=tmu_6->read();

//default 10ms timeout

//---set up and use datalogger----------------------------------func.dlog->power = POWER_MICRO; //set range to micro func.dlog->set_test_no(1); //set fall time test # to 2 func.dlog->test_val(meas_ftime); //pass test result for ftime if(func.dlog->tests[func.dlog->current_test].passed_fail==FAILED_TEST) func.dlog->set_bin(16);//if fail,bin16

206

PN: 071-0999-00

OVI and TMU Labs

if(func.dlog->tests[func.dlog->current_test].display_results) func.dlog->display_results(); //if datalogger on display results //--------------------------------------------------------------//---reset OVI1, MUX18 & TMU6 to default states ovi_1->init(); tmu_6->init(); mux_18->init(); }//ovi_fall

visualATE Applications Training Student Guide

207

208
ACS 5
S1
(6) (8) (5)

+5V
U1C
(9)

U1 Vcc
U1D CH4FH CH4SH

TP1 TP2 OVI 1 OVI 1


CH6F CH6S S0
(1) (4)
EXT _ARM

C1 0.1uF

PV3 4 PV3 4

dvi_Time Lab

GND
(12) (10)

U1 GND
S2 HiZ 4 OUT CH4

TMU 6
IO1
(13)

U1F

(11)

U1E

DVI 11 DVI 9
EXT _DRV2

K1

+12V
(K1 & K2 pin 3)

K1 & K2 pin 2
MUX_BANK_8_1

ACS 5 TMU 6 ACS 5


K2
(1) (4)

TMU 6 TP3 ACS 5

R4 0.1 Ohm 1%

10 - OVI and TMU Instrument Labs

DVI 11
S1 CH7S CH7F MUX_8_1 MUX_1_BUS9
B US_9 BUS _8

DVI 9
CH0F CH0S MUX_8_BUS8 MUX_8_2 MUX_8_GND MUX_8_3 MUX_8_4 MUX_BANK_1_2 MUX_7_1 MUX_2_BUS2
B US_2 B US_7

F0

MUX_1_1

OVI 1 OVI 1 PV3 4 PV3 4 OVI 1 OVI 1


CH5SL CH5FL

R1

1.2K 5%

MUX_1_2

R2

130K 5%

MUX_1_3

LED

Figure 118. dvi_Time Lab Schematic

MUX_1_4 MUX_BANK_7_8 CH1F CH1S

MUX_2_1 MUX_7_BUS7 MUX_7_2 MUX_7_GND MUX_7_3

OVI 1 OVI 1

ACS 5

EXT_ CLK

DVI 11 CH0 via MUX 18 74LS11


(1) (2) (13) (3) (4) A1 B1 C1 A2 B2 2 Y2 (6) 1 Y1 (12)

MUX_2_2 MUX_2_GND

V cc

(14)

C2 0. 1uF

MUX_2_3

CH7

DVI 9
MUX_7_4 MUX_BANK_6_7 MUX_6_1 MUX_3_BUS3
BUS_3 B US_6

S0 MUX_BANK_2_3 CH2F CH2S

MUX_2_4

MUX 18

CH1 CH2 CH3 CH4 CH5 CH6

DDD 7
CH8
(5) (9) (10) C2 A3 B3 3 Y3 (8)

DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 DDD 7

DDD 7

DVI 11
MUX_6_BUS6 MUX_6_2 MUX_6_GND MUX_6_3 MUX_6_4
(4)

F0

MUX_3_1

OVI 1 OVI 1

R3

1.2K 5%

MUX_3_2

(11) (7)

C3 GND

DUT Vcc, pin 14

MUX_3_3

DUT
(3) (1)

MUX_3_4 MUX_BANK_3_4 MUX_BANK_5_6

U1B

U1A
(2)

IO2

TMU 6 AGS

MUX_4_1 MUX_4_BUS4
B US_4 B US_5

MUX_5_1 MUX_5_BUS5 MUX_5_2 MUX_5_3 MUX_5_4

CH3F CH3S

OVI 1 OVI 1

TMU 6

CHA 2

DUT Vcc, pin 14 MUX_4_GND


B US_10

MUX_4_2 MUX_5_BUS10

TMU 6

HiZ 3

MUX_4_3

DVI 11
MUX_BANK_4_5

S0

MUX_4_4

PN: 071-0999-00

OVI and TMU Labs

dvi_Time Worksheet
Test Function Name: ____________________

P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____

Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____ Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____

Concept:___________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

visualATE Applications Training Student Guide

209

10 - OVI and TMU Instrument Labs

dvi_Time Code
void dvi_time(test_function& func) { // The two lines below must be the first two in the function. dvi_time_params *ours; ours = (dvi_time_params *)func.params; //---declare variables used float meas_rtime, meas_ftime;

Complete the missing lines of code.

//---complete the path between user busses 3 & 8, DVI11 CH1 and TMU6 CHA

//---set up dvi_11 for rising edge //---set up tmu_6 for rise time measurement

delay(ours->delay_1ms); tmu_6->arm(); wait.delay_10_us(4);

//wait for above to settle

//wait 40 us

//---create rising edge by settting DVI11 CH1 to 10V

//---get dvi_11 rise time meas_rtime=tmu_6->read();

//default 10ms timeout

//---set up tmu_6 for fall time measurement

210

PN: 071-0999-00

OVI and TMU Labs

tmu_6->arm(); wait.delay_10_us(4);

//wait 40 us

//---create falling edge by settting DVI11 CH1 to 0V

//---get dvi_11 fall time meas_ftime=tmu_6->read();

//default 10ms timeout

//---set up and use datalogger----------------------------------func.dlog->power = POWER_MICRO; //set common range to micro //---datalog rise time func.dlog->set_test_no(1); //set rise time test # to 1 func.dlog->test_val(meas_rtime); //pass test result for rtime if(func.dlog->tests[func.dlog->current_test].passed_fail==FAILED_TEST) func.dlog->set_bin(16); //if fail,bin16 if(func.dlog->tests[func.dlog->current_test].display_results) func.dlog->display_results(); //if datalogger on display results //---datalog fall time func.dlog->set_test_no(2); //set fall time test # to 2 func.dlog->test_val(meas_ftime); //pass test result for ftime if(func.dlog->tests[func.dlog->current_test].passed_fail==FAILED_TEST) func.dlog->set_bin(16); //if fail,bin16 if(func.dlog->tests[func.dlog->current_test].display_results) func.dlog->display_results(); //if datalogger on display results //--------------------------------------------------------------//---reset instruments tmu_6->init(); dvi_11->init(); mux_18->init(); }//dvi_time

visualATE Applications Training Student Guide

211

212
ACS 5
S1
(6) (8) (5)

+5V
U1C
(9)

U1 Vcc
U1D CH4FH CH4SH

TP1 TP2 OVI 1 OVI 1


CH6F CH6S S0
(1) (4)
EXT _ARM

C1 0.1uF

PV3 4 PV3 4

dut_PropDelay

GND
(12) (10)

U1 GND
S2 HiZ 4 OUT CH4

TMU 6
IO 1
(13)

U1F

(11)

U1E

DVI 11 DVI 9
EXT _DRV2

K1

+12V
(K1 & K2 pin 3)

K1 & K2 pin 2
MUX_BANK_8_1

ACS 5 TMU 6 ACS 5


K2
(1) (4)

TMU 6 TP3 ACS 5

R4 0.1 Ohm 1%

10 - OVI and TMU Instrument Labs

DVI 11
S1 CH7S CH7F MUX_8_1 MUX_1_BUS9
B US_9 BUS _8

DVI 9
CH0F CH0S MUX_8_BUS8 MUX_8_2 MUX_8_GND MUX_8_3 MUX_8_4 MUX_BANK_1_2 MUX_7_1 MUX_2_BUS2
B US_2 B US_7

F0

MUX_1_1

OVI 1 OVI 1 PV3 4 PV3 4 OVI 1 OVI 1


CH5SL CH5FL

R1

1.2K 5%

MUX_1_2

R2

130K 5%

MUX_1_3

LED

MUX_1_4 MUX_BANK_7_8 CH1F CH1S

Figure 119. dut_PropDelay Lab Schematic

MUX_2_1 MUX_7_BUS7 MUX_7_2 MUX_7_GND MUX_7_3

OVI 1 OVI 1

ACS 5

EXT_ CLK

DVI 11 CH0 vi a MUX 18 74LS11


(1) (2) (13) (3) (4) A1 B1 C1 A2 B2 2 Y2 (6) 1 Y1 (12)

MUX_2_2 MUX_2_GND

V cc

(14)

C2 0.1uF

MUX_2_3

CH7

DVI 9 MUX 18
MUX_7_4 MUX_BANK_6_7 MUX_6_1 MUX_3_BUS3
B US_3 B US_6

S0 MUX_BANK_2_3 CH2F CH2S

MUX_2_4

CH1 CH2 CH3 CH4 CH5 CH6

DDD 7
CH8
(5) (9) (10) C2 A3 B3 3 Y3 (8)

DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 DDD 7

DDD 7

DVI 11
MUX_6_BUS6 MUX_6_2 MUX_6_GND MUX_6_3 MUX_6_4
(4)

F0

MUX_3_1

OVI 1 OVI 1

R3

1.2K 5%

MUX_3_2

(11) (7)

C3 GND

DUT Vcc, pin 14

MUX_3_3

DUT
(3) (1)

MUX_3_4 MUX_BANK_3_4 MUX_BANK_5_6

U1B

U1A
(2)

IO 2

TMU 6 AGS

MUX_4_1 MUX_4_BUS4
B US_4 B US_5

MUX_5_1 MUX_5_BUS5 MUX_5_2 MUX_5_3 MUX_5_4

CH3F CH3S

OVI 1 OVI 1

TMU 6

CHA 2

DUT Vcc, pin 14 MUX_4_GND


B US_10

MUX_4_2 MUX_5_BUS10

TMU 6

HiZ 3

MUX_4_3

DVI 11
MUX_BANK_4_5

S0

MUX_4_4

PN: 071-0999-00

OVI and TMU Labs

dut_PropDelay Worksheet
Test Function Name: ____________________

P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____

Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____

Concept:___________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

visualATE Applications Training Student Guide

213

10 - OVI and TMU Instrument Labs

dut_PropDelay Code
void dut_propDelay(test_function& func) { // The two lines below must be the first two in the function. dut_propDelay_params *ours; ours = (dut_propDelay_params *)func.params; //---declare variables used float dut_pdly;

Complete the missing lines of code.

//---connect OVI1 to DUT //connect OVI1 CH0 to DUT9

//connect OVI1 CH1 to DUT10

//---connect TMU IO2 to DUT

set_tmu_io_as_output();

//described in User.cpp

//---connect DVI11 CH0 to DUT Vcc //connect DVI11 CH0F to DUT 16 //connect DVI11 CH0S to DUT 16

//---connect TMU to DUT tmu_6->close_relay(TMU_CHAN_A_DUT2); //DUT input tmu_6->close_relay(TMU_HIZ_DUT3); //DUT output //---set up tmu_6 for rise time measurement

214

PN: 071-0999-00

OVI and TMU Labs

//---initial DVI11 & OVI1 settings dvi_11->set_current(DVI_CHANNEL_0, ours->dut_Icc); ovi_1->set_current(OVI_CHANNEL_0, 1.0e-3f); ovi_1->set_current(OVI_CHANNEL_1, 1.0e-3f); delay(ours->delay_1ms); //wait for above to settle

//---apply Vcc to DUT dvi_11->set_voltage(DVI_CHANNEL_0, ours->dut_Vcc); //---wait a bit... wait.delay_10_us(15); //---apply initial levels to DUT inputs ovi_1->set_voltage(OVI_CHANNEL_0, 5.0f); ovi_1->set_voltage(OVI_CHANNEL_1, 5.0f); //DUT A3 high //DUT B3 high

delay(ours->delay_1ms); //---arm the TMU tmu_6->arm(); wait.delay_10_us(4);

//wait for above to settle

//wait recommended 40us

//---create DUT output edge up_IO2(); //drive TMU IO2 high, described in User.cpp wait.delay_10_us(1); //let the DUT respond //change timeout to 100us

//---get DUT prop delay dut_pdly = tmu_6->read(100e-6f);

//---set up and use datalogger----------------------------------func.dlog->power = POWER_NANO; //set range to nano func.dlog->set_test_no(1); //set test # to 1 func.dlog->test_val(dut_pdly); //pass test result for ftime if(func.dlog->tests[func.dlog->current_test].passed_fail==FAILED_TEST) func.dlog->set_bin(16); //if fail,bin16 if(func.dlog->tests[func.dlog->current_test].display_results) func.dlog->display_results(); //if datalogger on display results //---------------------------------------------------------------

visualATE Applications Training Student Guide

215

10 - OVI and TMU Instrument Labs

//---power down DUT 'gently' dvi_11->set_voltage(DVI_CHANNEL_0, 0.0f); wait.delay_10_us(15); //---reset instruments dvi_11->init(); ovi_1->init(); mux_18->init(); tmu_6->init(); }//dut_propDelay

216

PN: 071-0999-00

OVI and TMU Labs

Notes

visualATE Applications Training Student Guide

217

218
ACS 5
S1
(6) (8) (5)

+5V
U1C
(9)

U1 Vcc
U1D CH4FH CH4SH

TP1 TP2 OVI 1 OVI 1


CH6F CH6S S0
(1) (4)
EXT _ARM

C1 0.1uF

PV3 4 PV3 4

dut_TrTf Lab

GND
(12) (10)

U1 GND
S2 HiZ 4 OUT CH4

TMU 6
IO1
(13)

U1F

(11)

U1E

DVI 11 DVI 9
EXT _DRV2

K1

+12V
(K1 & K2 pin 3)

K1 & K2 pin 2
MUX_BANK_8_1

ACS 5 TMU 6 ACS 5


K2
(1) (4)

TMU 6 TP3 ACS 5

R4 0.1 Ohm 1%

10 - OVI and TMU Instrument Labs

DVI 11
S1 CH7S CH7F MUX_8_1 MUX_1_BUS9
B US_9 BUS _8

DVI 9
CH0F CH0S MUX_8_BUS8 MUX_8_2 MUX_8_GND MUX_8_3 MUX_8_4 MUX_BANK_1_2 MUX_7_1 MUX_2_BUS2
B US_2 B US_7

F0

MUX_1_1

OVI 1 OVI 1 PV3 4 PV3 4 OVI 1 OVI 1


CH5SL CH5FL

R1

1.2K 5%

MUX_1_2

R2

130K 5%

MUX_1_3

Figure 120. dut_TrTf lab Schematic

LED

MUX_1_4 MUX_BANK_7_8 CH1F CH1S

MUX_2_1 MUX_7_BUS7 MUX_7_2 MUX_7_GND MUX_7_3

OVI 1 OVI 1

ACS 5

EXT_ CLK

DVI 11 CH0 via MUX 18 74LS11


(1) (2) (13) (3) (4) A1 B1 C1 A2 B2 2 Y2 (6) 1 Y1 (12)

MUX_2_2 MUX_2_GND

V cc

(14)

C2 0.1uF

MUX_2_3

CH7

DVI 9
MUX_7_4 MUX_BANK_6_7 MUX_6_1 MUX_3_BUS3
B US_3 B US_6

S0 MUX_BANK_2_3 CH2F CH2S

MUX_2_4

MUX 18

CH1 CH2 CH3 CH4 CH5 CH6

DDD 7
CH8
(5) (9) (10) C2 A3 B3 3 Y3 (8)

DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 DDD 7

DDD 7

DVI 11
MUX_6_BUS6 MUX_6_2 MUX_6_GND MUX_6_3 MUX_6_4
(4)

F0

MUX_3_1

OVI 1 OVI 1

R3

1.2K 5%

MUX_3_2

(11) (7)

C3 GND

DUT Vcc, pin 14

MUX_3_3

DUT
(3) (1)

MUX_3_4 MUX_BANK_3_4 MUX_BANK_5_6

U1B

U1A
(2)

IO2

TMU 6 AGS

MUX_4_1 MUX_4_BUS4
B US_4 B US_5

MUX_5_1 MUX_5_BUS5 MUX_5_2 MUX_5_3 MUX_5_4

CH3F CH3S

OVI 1 OVI 1

TMU 6

CHA 2

DUT Vcc, pin 14 MUX_4_GND


B US_10

MUX_4_2 MUX_5_BUS10

TMU 6

HiZ 3

MUX_4_3

DVI 11
MUX_BANK_4_5

S0

MUX_4_4

PN: 071-0999-00

OVI and TMU Labs

dut_TrTf Worksheet
Test Function Name: ____________________

P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____

Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____ Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____

Concept:___________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

visualATE Applications Training Student Guide

219

10 - OVI and TMU Instrument Labs

dut_TrTf Code
void dut_TrTf(test_function& func) { // The two lines below must be the first two in the function. dut_TrTf_params *ours; ours = (dut_TrTf_params *)func.params; //---declare variables used float dut_Tr, dut_Tf;

Complete the missing lines of code.

//---connect OVI1 to DUT //connect OVI1 CH0 to DUT9

//connect OVI1 CH1 to DUT10

//---connect TMU IO2 to DUT

set_tmu_io_as_output();

//described in User.cpp

//---connect DVI11 CH0 to DUT Vcc //connect DVI11 CH0F to DUT 16 //connect DVI11 CH0S to DUT 16

//---connect TMU to DUT tmu_6->close_relay(TMU_HIZ_DUT3);

//DUT output

//---set up tmu_6 for rise time measurement

220

PN: 071-0999-00

OVI and TMU Labs

//---initial DVI11 & OVI1 settings dvi_11->set_current(DVI_CHANNEL_0, ours->dut_Icc); ovi_1->set_current(OVI_CHANNEL_0, 1.0e-3f); ovi_1->set_current(OVI_CHANNEL_1, 1.0e-3f); delay(ours->delay_1ms); //wait for above to settle

//---apply Vcc to DUT dvi_11->set_voltage(DVI_CHANNEL_0, ours->dut_Vcc); //---wait a bit for DUT to stabilize... wait.delay_10_us(20); //---apply initial levels to DUT inputs //DUT A3 high //DUT B3 high

delay(ours->delay_1ms); //---arm the TMU tmu_6->arm(); wait.delay_10_us(4);

//wait for above to settle

//wait recommended 40us

//---create DUT output edge up_IO2(); //drive TMU IO2 high; described in User.cpp wait.delay_10_us(1); //let the DUT respond //change timeout to 200us

//---get DUT Tr dut_Tr = tmu_6->read(200e-6f);

//---set up tmu_6 for fall time measurement

//---wait the required 100us... wait.delay_10_us(10); //---arm the TMU tmu_6->arm(); wait.delay_10_us(4);

//wait recommended 40us

visualATE Applications Training Student Guide

221

10 - OVI and TMU Instrument Labs

//---create DUT output edge down_IO2(); //drive TMU IO2 low; described in User.cpp wait.delay_10_us(1); //let the DUT respond //change timeout to 200us

//---get DUT Tf dut_Tf = tmu_6->read(200e-6f);

//---output Tr/Tf via the datalog function call described in User.cpp //datalog("datalog scaler", "test number", "datalog value", "fail bin number", "notes", func); datalog(POWER_NANO, 1, dut_Tr, 11, "", func); datalog(POWER_NANO, 2, dut_Tf, 11, "", func); //---power down DUT 'gently' dvi_11->set_voltage(DVI_CHANNEL_0, 0.0f); wait.delay_10_us(15); //---reset instruments dvi_11->init(); ovi_1->init(); mux_18->init(); tmu_6->init(); }//dut_TrTf

Check Your Work


Review the work and have the instructor sign off this module.

222

PN: 071-0999-00

11

Code Debugger
Goal
Familiarity with the Visual Studio code debugger.

Objectives
After this unit, students should be able to: Describe the Visual Studio code debugger Setup the the Visual Studio code debugger environment Work with the breakpoints Setup the project proprieties to use the Edit and Continue feature

In This Module
______ Instructor Presentation 1 Hour

Resources
visualATE 6.1 Programming Guide visualATE 6.1 User Guide

visualATE Applications Training Student Guide

223

11 - Code Debugger

Notes

224

PN: 071-0999-00

Visual Studio Code Debugger


The Visual Studio code debugger is a tool that facilitates an important aspect of programming: fixing code when it does not operate as expected. The code debugger is an extension of the Visual Studio code editor, which contains menu items, toolbar buttons, and windows that are only used when debugging. For the remainder of the debugger discussion, refer to the Debugging Test Programs chapter in the visualATE 6.1 User Guide.

visualATE Applications Training Student Guide

225

11 - Code Debugger

Check Your Work


Review the work and have the instructor sign off this module

226

PN: 071-0999-00

12

visualISE
Goal
Familiarity with the visualISE hardware debugger.

Objectives
After completing this unit, students should be able to: Describe the visualISE hardware debugger Initiate and use the Auto-Code feature Locate instruments in the UTI using the only system interconnects

In This Module
______ Instructor Presentation 1 Hour

Resources
visualATE 6.1 Programming Guide visualATE 6.1 User Guide

visualATE Applications Training Student Guide

227

12 - visualISE

Notes

228

PN: 071-0999-00

visualISE
visualISE is a tool that displays instrument hardware status in a graphical environment. ASL instruments can be directly controlled via this tool (voltages and current can be set, relays manipulated, measurements forced, and so on). visualISE can also capture the statements used to cause instrument changes, allowing the user to copy these statements into their test function source files. visualISE may be run in conjunction with the Visual Studio code debugger to effectively troubleshoot a test function. For the remainder of the visualISE discussion, refer to the visualATE 6.1 User Guide.

visualATE Applications Training Student Guide

229

12 - visualISE

Check Your Work


Review the work and have the instructor sign off this module.

230

PN: 071-0999-00

13

PV3 Instrument
Goal
Familiarity with the PV3 instrument to the level of generating and measuring pulsed currents.

Objectives
After this unit, students should be able to: Describe the PV3 instrument hardware Describe the PV3 instrument software

In This Module
______ ______ Instructor Presentation Knowledge Check 45 10 Minutes Minutes

Resources
visualATE 6.1 Programming Guide visualATE 6.1 User Guide

visualATE Applications Training Student Guide

231

10

0.1

TP4

100A RANGE 30A RANGE 10A RANGE 3A RANGE

CURRENT SENSE RESI STORS DIFF

DATA BUS

15 BIT ADC

GND REF

OUT I MEAS

IN

*
V MEAS RANGE OUT V MEAS IN V SENSE

** ** ** ** ** ** ** **
+
DIFF

DRIVER TEMP SENSOR

TEMP MEAS

! Closed during cap


bank charging

PN: 071-0999-00

*Closed on the 100mA, 300mA, and 1A ranges.

** = FLOATING RETURN

0.03

0.3

30

232
FORCE SWITCHES + + TP13 + + TP16 CONTROL AND DRIVE + TP15 + TP14 + + 7000uF CAPACITO R BANK + + IN OUT TP12 SENSE SWITCHES

13 - PV3 Instrument

DATA BUS

OPTICALLY COUPLED SWITCH RANGE, COMPENSATION, AND DRIVE CONTROLS

1F

1S

DATA BUS

CURRENT DAC 16-BIT

+ V DRIVE RANGE

2F

2S

Figure 121. PV3 Diagram

3F

3S

DATA BUS

VOLTAGE DAC 16-BIT

IN

OUT

+ 4F

4S

+65V

500mA CURRENT LIMITER

5F

5S

SYSTEM GROUND

**
OUT CHARGE MEAS I SENSE IN

**

PV3 Instrument

PV3 Instrument
This section covers the Pulsed Voltage/Current (PV3) instrument, including: Instrument description Key highlights Theory of operation Software statements

Description and Key Highlights


The PV3 instrument is a high current (up to 100 A), single quadrant, floating output supply. Key highlights are: Fully floating output 16 bit current and voltage forcing resolution Voltage Forcing accuracy 0.5% of range (1.0% on 1 volt range) Current Forcing accuracy 1.0% of range 15 bit (plus sign) current and voltage measurement resolution Voltage Measuring accuracy 0.5% of range Current Measuring accuracy 1.0% of range 1 V, 3 V, 10 V, 30 V, 100 V ranges 100 mA, 300 mA, 1 A, 3 A, 10 A, 30 A, 100 A ranges Settling time to 1% Voltage: <200 s typical, <300 s worst case Current: <200 s typical, <300 s worst case

visualATE Applications Training Student Guide

233

13 - PV3 Instrument

Theory of Operation
For the hardware discussion, refer to Figure 121 on page 232. The Pulsed Voltage/Current (PV3) instrument is a high current (up to 100 A), single quadrant, floating output supply. This means it can only output positive voltage and positive current (quadrant 1). In order to generate negative voltage and negative current (quadrant 3), the output connections of the PV3 must be swapped in relation to the DUT. The high current is provided by a 7000 F (nominal) capacitor bank that has been charged to a max of +63 V. The ability of the PV3 to deliver current to the DUT is therefore dependant on the amount of time the current is required. A well defined formula is used in determining the length of time an amount of current can be produced given a particular voltage. The floating output aspect is assured by the use of opto-isolators between the inputs to the control circuitries and the rest of the test system. Current flow out to and returning from the DUT, re-circulates within the PV3 output. Care should be taken in observing proper wire gauge, connection integrity, and personnel safety issues when using a high current supply. At the extremes, the PV3 is capable of generating 100 A, 20 V pulses and 50 V, 1 A pulses. Connections from the PV3 to the load are made with force and sense lines. Five sets of these lines are available; five force and 1 sense per set. Discrete power MOSFETs are used as switches in the force and return paths so there are no contacts to fuse during high currents. The voltage and current settings are controlled by 16-bit D to A converters whose outputs are routed through the opto-isolators to the floating control circuit. The voltage and current measurement returns are ranged and routed through the opto-isolators to a system ground referenced, 16-bit (15-bits plus sign) A to D converter. This converter is also used to monitor the voltage charge level on the capacitor bank and the output driver temperature sensor. Power for the floating side of the isolation amplifiers, control loop, and the measurement circuitry is supplied by isolated DC to DC converters. The capacitor bank charging current is fixed at a constant 500 mA and requires approximately 2 seconds (worst case) for full charge. During charging, the capacitor bank is connected to system ground. The PV3 acts much like the DVI and OVI in relation to providing voltage and current to the DUT. It wants to be a voltage source and the programmed current value is never exceeded. This forces consideration of the required DUT voltage for the desired DUT current.

234

PN: 071-0999-00

PV3 Instrument

Constraints
When programming a DUT current value greater than 30 A, the PV3 switches to the 100 A current range automatically and a 300 s max drive on time will be enforced. The PV3 has a maximum DUT voltage of +50. A run-time error message is displayed if the voltage value is programmed greater than 50. High current delivery may require the current_fast() function to maintain integrity of the rising edge of the current pulse.

Current Duration Examples


The following defines how to calculate the duration of a specified amount of current using the PV3. The calculation is based on the following formula:
I = C * (V / T)

where: I = DUT current C = PV3 capacitor bank charge value V = difference between the initial capacitor voltage and the DUT's voltage T = duration of the DUT's current pulse Transposing the I and T elements, the formula becomes:
T = C * (V / I)

Inserting the PV3 and DUT values, the formula becomes:


T = 7mF * ((Cap Initial V - (DUT V + 10V)) / DUT I)

NOTE: The extra 10 V is required for PV3 circuitry overhead. The following two examples illustrate the calculation. 1. 1.3 A is required at 30 V. To calculate the duration 1.3 A will be available at the required voltage, modify the formula as shown:
T T T T T = = = = = 7mF * ((50V - (30V + 10V)) / 1.3A) 7-3F * ((50 - 40) / 1.3) 7e-3F * (10 / 1.3) 7e-3 * (7.692) 53.84ms

The answer indicates that 1.3 A will be available for 53.84 ms at a voltage of 30V.

visualATE Applications Training Student Guide

235

13 - PV3 Instrument

2. 30 A is required at 20 V. To calculate the duration 30 A will be available at the required voltage, modify the formula as shown:
T T T T T = = = = = 7mF * ((60V - (20V + 10V)) / 30A) 7-3F * ((60 - 30) / 30) 7e-3F * (30 / 30) 7e-3 * (1.0) 7ms

The answer indicates that 30 A will be available for 7ms at a voltage of 20 V. NOTE: In these two examples, the initial capacitor bank voltage value is different. The bank does not require full charge for every situation. It is dependant on the required constant voltage. Typical usage has the capacitor bank fully charging to +63 V.

Software Statements
For the software discussion, refer to the PV3 - Pulsed Voltage/Current Source chapter of the visualATE 6.1 Programming Guide.

236

PN: 071-0999-00

PV3 Instrument

Knowledge Check
1. What are the two basic operating rules for the PV3 instrument?

2. In what quadrants of the V/I graph can the PV3 operate?

3. What happens if greater than 50 V is programmed?

4. Can a PV3 be stacked with another PV3? Why?

visualATE Applications Training Student Guide

237

13 - PV3 Instrument

Check Your Work


Review the work and have the instructor sign off this module.

238

PN: 071-0999-00

14

PV3 Instrument Labs


Goal
Familiarity with the PV3 instrument to the level of performing simple pulsed current and differential measurement tests.

Objectives
After this unit, students should be able to: Program simple pulsed current measurements using the PV3 instrument Program a differential voltage measurement

In This Module
______ Lab Exercise 3 Hours

Resources
visualATE 6.1 Programming Guide visualATE 6.1 User Guide

visualATE Applications Training Student Guide

239

14 - PV3 Instrument Labs

Notes

240

PN: 071-0999-00

PV3 Labs

Lab Exercise

PV3 Labs
The PV3 labs includes the following tests: pv3_PulsedI pv3_PulsedInDiffMeas

visualATE Applications Training Student Guide

241

242
ACS 5
S1
(6) (8) (5)

+5V
U1C
(9)

U1 Vcc
U1D CH4FH CH4SH

TP1 TP2 OVI 1 OVI 1


CH6F CH6S S0
(1) (4)
EXT _ARM

C1 0.1uF

PV3 4 PV3 4

GND
(12) (10)

U1 GND
S2 HiZ 4 OUT CH4

TMU 6
IO1
(13)

U1F

(11)

U1E

pv3_PulsedI Lab

14 - PV3 Instrument Labs

DVI 11 DVI 9
EXT _DRV2

K1

+12V
(K1 & K2 pin 3)

K1 & K2 pin 2
MUX_BANK_8_1

ACS 5 TMU 6 ACS 5


K2
(1) (4)

TMU 6 TP3 ACS 5

R4 0.1 Ohm 1%

DVI 11
S1 MUX_8_1 MUX_1_BUS9
B US_9 BUS _8

DVI 9
CH0F CH0S MUX_8_BUS8 MUX_8_2 MUX_8_GND MUX_8_3 MUX_8_4 MUX_BANK_1_2 MUX_7_1 MUX_2_BUS2
B US_2 B US_7

F0

MUX_1_1

OVI 1 OVI 1 PV3 4 PV3 4 OVI 1 OVI 1


CH7S CH7F CH5SL CH5FL

R1

1.2K 5%

MUX_1_2

R2

130K 5%

MUX_1_3

LED

MUX_1_4 MUX_BANK_7_8 CH1F CH1S

Figure 122. pv3_PulsedI Lab Schematic

MUX_2_1 MUX_7_BUS7 MUX_7_2 MUX_7_GND MUX_7_3

OVI 1 OVI 1

ACS 5

EXT_ CLK

DVI 11 CH0 via MUX 18 74LS11 CH1


(1) (2) (13) (3) (4) (5) (9) (10) A1 B1 C1 A2 B2 C2 A3 B3 3 Y3 (8) 2 Y2 (6) 1 Y1 (12)

MUX_2_2 MUX_2_GND

V cc

(14)

C2 0. 1uF

MUX_2_3

CH7

DDD 7
CH2 CH3 CH4 CH5 CH6 CH8

DVI 9
MUX_7_4 MUX_BANK_6_7 MUX_6_1 MUX_3_BUS3
B US_3 B US_6

S0 MUX_BANK_2_3 CH2F CH2S

MUX_2_4

MUX 18

DVI 11
MUX_6_BUS6 MUX_6_2 MUX_6_GND MUX_6_3 MUX_6_4
(4)

F0

MUX_3_1

OVI 1 OVI 1

DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 DDD 7

DDD 7

R3

1.2K 5%

MUX_3_2

(11) (7)

C3 GND

DUT Vcc, pin 14

MUX_3_3

DUT
(3) (1)

MUX_3_4 MUX_BANK_3_4 MUX_BANK_5_6

U1B

U1A
(2)

IO2

TMU 6 AGS

MUX_4_1 MUX_4_BUS4
B US_4 B US_5

MUX_5_1 MUX_5_BUS5 MUX_5_2 MUX_5_3 MUX_5_4

CH3F CH3S

OVI 1 OVI 1

TMU 6

CHA 2

DUT Vcc, pin 14 MUX_4_GND


B US_10

MUX_4_2 MUX_5_BUS10

TMU 6

HiZ 3

MUX_4_3

DVI 11
MUX_BANK_4_5

S0

MUX_4_4

PN: 071-0999-00

PV3 Labs

pv3_PulsedI Worksheet
Test Function Name: ____________________

P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____

Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____ Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____

Concept:___________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

visualATE Applications Training Student Guide

243

14 - PV3 Instrument Labs

pv3_PulsedI Code
void pv3_PulsedI(test_function& func) { // The two lines below must be the first two in the function. pv3_PulsedI_params *ours; ours = (pv3_PulsedI_params *)func.params; //---declare variables used float result_i, cap_charge_value, calc_time; int timeout = 0;

//***disconnect OVI from resistor**** ovi_1->disconnect(OVI_CHANNEL_6); ovi_1->disconnect(OVI_CHANNEL_7); //*********************************** //***calculate time************************************** if (ours->dut_i > 30.0f) //if on the 100A range, force 300us calc_time = 300e-6f; else calc_time = 7.0e-3 * ((63.0f - (ours->dut_v + 10.0f)) / ours->dut_i); //******************************************************* //---initiate cap bank charging pv3_4->charge_on(); //any previous init() will start cap charging //---close PV3 force and sense switches, connect to DUT pv3_4->close_switch(PV3_HIGH_FORCE_4); pv3_4->close_switch(PV3_HIGH_SENSE_4); pv3_4->close_switch(PV3_LOW_FORCE_5); pv3_4->close_switch(PV3_LOW_SENSE_5); //---set PV3 meas mode to measure cap charge value pv3_4->set_meas_mode(PV3_CHARGE_S); //---wait for above to settle... wait.delay_10_us(50); //500us //---wait for cap bank to charge to full 63 volts cap_charge_value = pv3_4->measure(); //initialize variable while (cap_charge_value < 63.0f && timeout < 2000) //2 seconds max { cap_charge_value = pv3_4->measure(); timeout++; delay(1);

244

PN: 071-0999-00

PV3 Labs

} //---cap bank charged, turn off charging pv3_4->charge_off(); //---set meas mode to measure DUT current pv3_4->set_meas_mode(PV3_MEASURE_CURRENT); //---set the current and voltage levels pv3_4->set_current(ours->dut_i); pv3_4->set_voltage(ours->dut_v); //---set PV3 to fast current to support the higher current values pv3_4->current_fast(); //---wait for above to settle... wait.delay_10_us(50); //500us //***turn PV3 on and measure******************************* pv3_4->drive_on(); wait.delay_10_us(ours->delay_10us); //position where to measure result_i = pv3_4->measure(); //***turn PV3 off****************************************** pv3_4->drive_off(); //---datalog the results datalog(POWER_MILLI, 1, calc_time, 18, "", func); datalog(POWER_MILLI, 2, result_i, 18, "", func); //---reset instruments pv3_4->init(); //opens connect switches, initiates charging ovi_1->init(); //reconnnect relays }//pv3_PulsedI

visualATE Applications Training Student Guide

245

246
ACS 5
S1
(6) (8) (5)

+5V
U1C
(9)

U1 Vcc
U1D CH4FH CH4SH

TP1 TP2 OVI 1 OVI 1


CH6F CH6S S0
(1) (4)
EXT _ARM

C1 0.1uF

PV3 4 PV3 4

GND
(12) (10)

U1 GND
S2 HiZ 4 OUT CH4

TMU 6
IO 1
(13)

U1F

(11)

U1E

14 - PV3 Instrument Labs

DVI 11 DVI 9
EXT _DRV2

K1

+12V
(K1 & K2 pin 3)

K1 & K2 pin 2
MUX_BANK_8_1

ACS 5 TMU 6 ACS 5


K2
(1) (4)

TMU 6 TP3 ACS 5

R4 0.1 Ohm 1%

DVI 11
S1 CH7S CH7F MUX_8_1 MUX_1_BUS9
B US_9 BUS _8

DVI 9
CH0F CH0S MUX_8_BUS8 MUX_8_2 MUX_8_GND MUX_8_3 MUX_8_4 MUX_BANK_1_2 MUX_7_1 MUX_2_BUS2
B US_2 B US_7

F0

MUX_1_1

OVI 1 OVI 1 PV3 4 PV3 4 OVI 1 OVI 1


CH5SL CH5FL

pv3_PulsedInDiffMeas Lab

R1

1.2K 5%

MUX_1_2

R2

130K 5%

MUX_1_3

LED

MUX_1_4 MUX_BANK_7_8 CH1F CH1S

MUX_2_1 MUX_7_BUS7 MUX_7_2 MUX_7_GND MUX_7_3

OVI 1 OVI 1

ACS 5

EXT_ CLK

DVI 11 CH0 via MUX 18 74LS11


(1) (2) (13) (3) (4) A1 B1 C1 A2 B2 2 Y2 (6) 1 Y1 (12)

MUX_2_2 MUX_2_GND

V cc

(14)

C2 0. 1uF

MUX_2_3

CH7

Figure 123. pv3_PulsedInDiffMeas Lab Schematic


DDD 7
CH8 CH6
(5) (9) (10) C2 A3 B3 3 Y3 (8)

DVI 9 MUX 18
MUX_7_4 MUX_BANK_6_7 MUX_6_1 MUX_3_BUS3
B US_3 B US_6

S0 MUX_BANK_2_3 CH2F CH2S

MUX_2_4

DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 DDD 7

CH1 CH2 CH3 CH4 CH5

DDD 7

DVI 11
MUX_6_BUS6 MUX_6_2 MUX_6_GND MUX_6_3 MUX_6_4
(4)

F0

MUX_3_1

OVI 1 OVI 1

R3

1.2K 5%

MUX_3_2

(11) (7)

C3 GND

DUT Vcc, pin 14

MUX_3_3

DUT
(3) (1)

MUX_3_4 MUX_BANK_3_4 MUX_BANK_5_6

U1B

U1A
(2)

IO 2

TMU 6 AGS

MUX_4_1 MUX_4_BUS4
B US_4 B US_5

MUX_5_1 MUX_5_BUS5 MUX_5_2 MUX_5_3 MUX_5_4

CH3F CH3S

OVI 1 OVI 1

TMU 6

CHA 2

DUT Vcc, pin 14 MUX_4_GND


B US_10

MUX_4_2 MUX_5_BUS10

TMU 6

HiZ 3

MUX_4_3

DVI 11
MUX_BANK_4_5

S0

MUX_4_4

PN: 071-0999-00

PV3 Labs

pv3_PulsedInDiffMeas Worksheet
Test Function Name: ____________________

P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____

Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____ Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____ Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____

Concept:___________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

visualATE Applications Training Student Guide

247

14 - PV3 Instrument Labs

pv3_PulsedInDiffMeas Code
void pv3_PulsedInDiffMeas(test_function& func) { // The two lines below must be the first two in the function. pv3_PulsedInDiffMeas_params *ours; ours = (pv3_PulsedInDiffMeas_params *)func.params; //---declare variables used float result_v, result_i, diff_null, cap_charge_value, calc_time; int timeout = 0;

//***disconnect OVI from resistor**** ovi_1->disconnect(OVI_CHANNEL_6); ovi_1->disconnect(OVI_CHANNEL_7); //*********************************** //***calculate time************************************** if (ours->dut_i > 30.0f) //if on the 100A range, force 300us calc_time = 300e-6f; else calc_time = 7.0e-3 * ((63.0f - (ours->dut_v + 10.0f)) / ours->dut_i); //******************************************************* //---initiate cap bank charging pv3_4->charge_on(); //any previous init() will start cap charging //---set up DVI for differential measurement dvi_11->open_relay(CONN_SENSE0); //isolate the sense inputs dvi_11->open_relay(CONN_SENSE1); wait.delay_10_us(50); //wait for relays to open dvi_11->close_relay(CHANNEL_SHORT); //short the sense inputs together dvi_11->set_meas_mode(DVI_CHANNEL_0, DVI_MEASURE_DIFF); dvi_11->set_diff_range(RANGE_10_MV); //select lowest range wait.delay_10_us(50); //wait for above to settle... diff_null = dvi_11->measure_average(10); //measure offset of the DVI diff amp //---reconnect DVI11 sense inputs dvi_11->open_relay(CHANNEL_SHORT); wait.delay_10_us(50); //wait for relay to open

248

PN: 071-0999-00

PV3 Labs

dvi_11->close_relay(CONN_SENSE0); //reconnect the sense inputs dvi_11->close_relay(CONN_SENSE1); //---select appropriate diff vrange if (ours->dut_i > 90.0f) dvi_11->set_diff_range(RANGE_30_V); else dvi_11->set_diff_range(RANGE_10_V); //---connect DVI11 S0 and S1 to DUT dvi_9->close_relay(DVI_EXT_DRV1); //close K1 & K2 wait.delay_10_us(50); //wait for above relays to close //---close PV3 force and sense switches, connect to DUT pv3_4->close_switch(PV3_HIGH_FORCE_4); pv3_4->close_switch(PV3_HIGH_SENSE_4); pv3_4->close_switch(PV3_LOW_FORCE_5); pv3_4->close_switch(PV3_LOW_SENSE_5); //---set PV3 meas mode to measure cap charge value pv3_4->set_meas_mode(PV3_CHARGE_S); //---wait for above to settle... wait.delay_10_us(50); //500us //---wait for cap bank to charge to full 63 volts cap_charge_value = pv3_4->measure(); //initialize variable while (cap_charge_value < 63.0f && timeout < 2000) //2 seconds max { cap_charge_value = pv3_4->measure(); timeout++; delay(1); } //---cap bank charged, turn off charging pv3_4->charge_off(); //---set meas mode to measure DUT current pv3_4->set_meas_mode(PV3_MEASURE_CURRENT); //---set the current and voltage levels pv3_4->set_current(ours->dut_i); pv3_4->set_voltage(ours->dut_v); //---set PV3 to fast current pv3_4->current_fast();

visualATE Applications Training Student Guide

249

14 - PV3 Instrument Labs

//---wait for above to settle... wait.delay_10_us(50); //500us //***turn PV3 on and measure******************************* pv3_4->drive_on(); wait.delay_10_us(ours->delay_10us); result_i = pv3_4->measure(); result_v = dvi_11->measure(); //***turn PV3 off****************************************** pv3_4->drive_off(); //---calculate measured voltage result -= diff_null; //---datalog the results datalog(POWER_MILLI, 1, calc_time, 19, "", func); datalog(POWER_UNIT, 2, result_i, 19, "", func); datalog(POWER_UNIT, 3, result_v, 19, "", func); //---clean up ovi_1->init(); //reconnects ovi relays pv3_4->init(); //opens connect switches, initiates charging dvi_9->init(); //resets relay drivers, opens K1 & K2 dvi_11->init(); //sets both channels back to normal operation }//pv3_PulseInDiffMeas

Check Your Work


Review the work and have the instructor sign off this module.

250

PN: 071-0999-00

15

ACS Instrument
Goal
Familiarity with the ACS instrument to the level of programming simple waveforms and performing RMS measurements.

Objectives
After completing this unit, students should be able to: Describe the ACS instrument software Describe the ACS instrument hardware

In This Module
______ ______ Instructor Presentation Knowledge Check 1.5 30 Hours Minutes

Resources
visualATE 6.1 Programming Guide visualATE 6.1 User Guide

visualATE Applications Training Student Guide

251

252
D_SIG_OUT

AMPLITUDE
closed by init();

ACS_OUT OUTPUT BUFFER

15 - ACS Instrument

DATA LOAD
TP2 TP3

32K X 16 WAVEFORM MEMORY


WAVEFORM DAC 196 kHz BPF

WAVEFORM DATA (12)

Figure 124. ACS Diagram

PRG CLK
TP4 (divided by 10)

ADDR CNTRL

LOOP BACK (1) OFFSET ATTEN 1:10 100 & 500 kHz LPF

10 - 200 kHz PLPF

D_R_BIT1 B_R_BIT1

SYNC_BIT1

WL2 (wire link 2)

EXT_CLK
D_R_BIT2 B_R_BIT2

SYNC BITS (3) SYNC_BIT2

D_CLK

D_R_BIT3 B_R_BIT3 B_RMS

SYNC_BIT3

BUS2 BUS3 BUS4 BUS5 BUS6 BUS7 BUS8 BUS10


TP1

RMS_CH1
D_RMS_CH1

ATTEN 1:10

AC/DC COUPLING

GAIN 1:2:5:10

AC TO RMS

SEL_ADC_IN0 closed by init();

RMS_CH2
D_RMS_CH2

ATTEN 1:10

AC/DC COUPLING

GAIN 1:2:5:10

AC TO RMS

SEL_ADC_IN1

RMS_CH3
D_RMS_CH3

ATTEN 1:10

AC/DC COUPLING

GAIN 1:2:5:10

AC TO RMS

SEL_ADC_IN2

12 BIT A/D

DATA BUS

RMS_CH4
D_RMS_CH4

PN: 071-0999-00
ATTEN 1:10 AC/DC COUPLING

GAIN 1:2:5:10

AC TO RMS

SEL_ADC_IN3

ACS Instrument

ACS Instrument
This section details the ACS instrument, including: Instrument description Key highlights Theory of operation Software discussion

Description and Key Highlights


The ACS (AC source and AC meter) instrument contains two functions: Simple waveform generator AC/RMS meter Four outputs (one main waveform, three sync bit) 9.8 Vp-p maximum output level 1 MHz maximum frequency Signal offset about ground available 12-bit waveform DAC 32K X 16-bit waveform memory Fifteen selectable clock frequencies External clock input (20 MHz maximum) Four filters: 196 KHz band pass with a 1 KHz band width 100 KHz low pass 500 KHz low pass 10 KHz - 200 KHz programmable low pass

Key highlights of the waveform generator are:

Relay connections on all four outputs Four channels of AC to true RMS conversion 12 bit A/D for measure Relay connections on all inputs

Key highlights of the AC meter are:

Theory of Operation
For the hardware discussion, refer to Figure 124 on page 252 and to the ACS - AC Source chapter of the visualATE 6.1 Programming Guide.

visualATE Applications Training Student Guide

253

15 - ACS Instrument

Software Statements
For the software discussion, refer to the ACS - AC Source chapter of the visualATE 6.1 Programming Guide.

254

PN: 071-0999-00

ACS Instrument

Knowledge Check
1. What two functions does the ACS support?

2. What is the maximum output voltage of the ACS?

3. What happens if the maximum output voltage is exceeded?

4. What is the default waveform type?

5. What is the maximum output frequency of the ACS?

6. What is the size of the ACS waveform memory?

7. What happens if the ACS output buffer is connected to +12 V?

8. How many measurement channels does the ACS have?

visualATE Applications Training Student Guide

255

15 - ACS Instrument

Check Your Work


Review the work and have the instructor sign off this module.

256

PN: 071-0999-00

16

ACS Instrument Labs


Goal
Familiarity with the ACS instrument to the level of programming simple waveforms.

Objectives
After completing this unit, students should be able to program simple waveforms using the ACS instrument

In This Module
______ Lab Exercise 4 Hours

Resources
visualATE 6.1 Programming Guide visualATE 6.1 User Guide

visualATE Applications Training Student Guide

257

16 - ACS Instrument Labs

Notes

258

PN: 071-0999-00

ACS Labs

Lab Exercise

ACS Labs
The ACS labs include the following tests: acs_Amplitude acs_Frequency acs_TrnglWv acs_LoadFromFile

visualATE Applications Training Student Guide

259

260
ACS 5
S1
(6) (8) (5)

+5V
U1C
(9)

U1 Vcc
U1D CH4FH CH4SH

TP1 TP2 OVI 1 OVI 1


CH6F CH6S S0
(1) (4)
EXT _ARM

C1 0.1uF

PV3 4 PV3 4

GND
(12) (10)

U1 GND
S2 HiZ 4 OUT CH4

TMU 6
IO 1
(13)

U1F

(11)

U1E

16 - ACS Instrument Labs

DVI 11 DVI 9
EXT _DRV2

K1

acs_Amplitude Lab

+12V
(K1 & K2 pin 3)

K1 & K2 pin 2
MUX_BANK_8_1

ACS 5 TMU 6 ACS 5


K2
(1) (4)

TMU 6 TP3 ACS 5

R4 0.1 Ohm 1%

DVI 11
S1 CH7S CH7F MUX_8_1 MUX_1_BUS9
B US_9 BUS _8

DVI 9
CH0F CH0S MUX_8_BUS8 MUX_8_2 MUX_8_GND MUX_8_3 MUX_8_4 MUX_BANK_1_2 MUX_7_1 MUX_2_BUS2
B US_2 B US_7

F0

MUX_1_1

OVI 1 OVI 1 PV3 4 PV3 4 OVI 1 OVI 1


CH5SL CH5FL

R1

1.2K 5%

MUX_1_2

R2

130K 5%

MUX_1_3

LED

MUX_1_4 MUX_BANK_7_8 CH1F CH1S

Figure 125. acs_Amplitude Lab Schematic

MUX_2_1 MUX_7_BUS7 MUX_7_2 MUX_7_GND MUX_7_3

OVI 1 OVI 1

ACS 5

EXT_ CLK

DVI 11 CH0 via MUX 18 74LS11


(1) (2) (13) (3) (4) A1 B1 C1 A2 B2 2 Y2 (6) 1 Y1 (12)

MUX_2_2 MUX_2_GND

V cc

(14)

C2 0. 1uF

MUX_2_3

CH7

DVI 9 MUX 18
MUX_7_4 MUX_BANK_6_7 MUX_6_1 MUX_3_BUS3
B US_3 B US_6

S0 MUX_BANK_2_3 CH2F CH2S

MUX_2_4

CH1 CH2 CH3 CH4 CH5 CH6

DDD 7
CH8
(5) (9) (10) C2 A3 B3 3 Y3 (8)

DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 OVI 1 OVI 1

DDD 7

DVI 11
MUX_6_BUS6 MUX_6_2 MUX_6_GND MUX_6_3 MUX_6_4
(4)

F0

MUX_3_1

R3

1.2K 5%

MUX_3_2

(11) (7)

C3 GND

DUT Vcc, pin 14

MUX_3_3

DUT
(3) (1)

MUX_3_4 MUX_BANK_3_4 MUX_BANK_5_6

U1B

U1A
(2)

IO 2

TMU 6 AGS

MUX_4_1 MUX_4_BUS4
B US_4 B US_5

MUX_5_1 MUX_5_BUS5 MUX_5_2 MUX_5_3 MUX_5_4

CH3F CH3S

OVI 1 OVI 1

TMU 6

CHA 2

DUT Vcc, pin 14 MUX_4_GND


B US_10

MUX_4_2 MUX_5_BUS10

TMU 6

HiZ 3

MUX_4_3

DVI 11
MUX_BANK_4_5

S0

MUX_4_4

PN: 071-0999-00

ACS Labs

acs_Amplitude Worksheet
Test Function Name: ____________________

P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____

Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____

Concept:___________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

visualATE Applications Training Student Guide

261

16 - ACS Instrument Labs

acs_Amplitude Code
void acs_Amplitude(test_function& func) { // The two lines below must be the first two in the function. acs_Amplitude_params *ours; ours = (acs_Amplitude_params *)func.params; //---declare variables used float meas_Vrms; acs_5->ldram(ours->frequency); //load frequency //insert 500KHz filter //first... //...0 amplitude next...

acs_5->set_path(ACS_BASE_FILTER, ACS_10_VOLT_RANGE); acs_5->set_level(0, 0, ACS_PEAK_LEVEL); acs_5->close_relay(D_SIG_OUT); acs_5->close_relay(D_RMS_CH4);

//...then connect output. //connect meter channel

acs_5->set_meas_mode(ACS_CHANNEL_4, ACS_5V_RMS_RANGE, ACS_AC_COUPLING); acs_5->start(); //start waveform generator //wait for above to settle...

wait.delay_10_us(ours->delay_10us);

acs_5->set_level(ours->amplitude, ours->offset, ACS_PEAK_LEVEL);//set amplitude delay(ours->delay_1ms); //wait for AWG to come up to full amplitude, //*and* for the RMS converter to settle. meas_Vrms = acs_5->measure(); //perform measurement with default 10 samples //---datalog the result-------------------------------------func.dlog->power = POWER_UNIT; func.dlog->set_test_no(1); func.dlog->test_val(meas_Vrms); if (func.dlog->tests[func.dlog->current_test].passed_fail == FAILED_TEST) func.dlog->set_bin(20); if (func.dlog->tests[func.dlog->current_test].display_results) func.dlog->display_results(); //----------------------------------------------------------//---reset ACS5 to default state acs_5->init();

262

PN: 071-0999-00

ACS Labs

}//acs_Amplitude

visualATE Applications Training Student Guide

263

264
ACS 5
S1
(6) (8) (5)

+5V
U1C
(9)

U1 Vcc
U1D CH4FH CH4SH

TP1 TP2 OVI 1 OVI 1


CH6F CH6S S0
(1) (4)
EXT _ARM

C1 0.1uF

PV3 4 PV3 4

GND
(12) (10)

U1 GND
S2 HiZ 4 OUT CH4

TMU 6
IO 1
(13)

U1F

(11)

U1E

16 - ACS Instrument Labs

DVI 11 DVI 9
EXT _DRV2

K1

+12V
(K1 & K2 pin 3)

acs_Frequency Lab

K1 & K2 pin 2
MUX_BANK_8_1

ACS 5 TMU 6 ACS 5


K2
(1) (4)

TMU 6 TP3 ACS 5

R4 0.1 Ohm 1%

DVI 11
S1 CH7S CH7F MUX_8_1 MUX_1_BUS9
B US_9 BUS _8

DVI 9
CH0F CH0S MUX_8_BUS8 MUX_8_2 MUX_8_GND MUX_8_3 MUX_8_4 MUX_BANK_1_2 MUX_7_1 MUX_2_BUS2
B US_2 B US_7

F0

MUX_1_1

OVI 1 OVI 1 PV3 4 PV3 4 OVI 1 OVI 1


CH5SL CH5FL

R1

1.2K 5%

MUX_1_2

R2

130K 5%

MUX_1_3

LED

MUX_1_4 MUX_BANK_7_8 CH1F CH1S

MUX_2_1 MUX_7_BUS7 MUX_7_2 MUX_7_GND MUX_7_3

Figure 126. acs_Frequency Lab Schematic

OVI 1 OVI 1

ACS 5

EXT_ CLK

DVI 11 CH0 via MUX 18 74LS11


(1) (2) (13) (3) (4) A1 B1 C1 A2 B2 2 Y2 (6) 1 Y1 (12)

MUX_2_2 MUX_2_GND

V cc

(14)

C2 0. 1uF

MUX_2_3

CH7

DVI 9 MUX 18
MUX_7_4 MUX_BANK_6_7 MUX_6_1 MUX_3_BUS3
B US_3 B US_6

S0 MUX_BANK_2_3 CH2F CH2S

MUX_2_4

CH1 CH2 CH3 CH4 CH5 CH6

DDD 7
CH8
(5) (9) (10) C2 A3 B3 3 Y3 (8)

DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 DDD 7

DDD 7

DVI 11
MUX_6_BUS6 MUX_6_2 MUX_6_GND MUX_6_3 MUX_6_4
(4)

F0

MUX_3_1

OVI 1 OVI 1

R3

1.2K 5%

MUX_3_2

(11) (7)

C3 GND

DUT Vcc, pin 14

MUX_3_3

DUT
(3) (1)

MUX_3_4 MUX_BANK_3_4 MUX_BANK_5_6

U1B

U1A
(2)

IO 2

TMU 6 AGS

MUX_4_1 MUX_4_BUS4
B US_4 B US_5

MUX_5_1 MUX_5_BUS5 MUX_5_2 MUX_5_3 MUX_5_4

CH3F CH3S

OVI 1 OVI 1

TMU 6

CHA 2

DUT Vcc, pin 14 MUX_4_GND


B US_10

MUX_4_2 MUX_5_BUS10

TMU 6

HiZ 3

MUX_4_3

DVI 11
MUX_BANK_4_5

S0

MUX_4_4

PN: 071-0999-00

ACS Labs

acs_Frequency Worksheet
Test Function Name: ____________________

P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____

Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____

Concept:___________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

visualATE Applications Training Student Guide

265

16 - ACS Instrument Labs

acs_Frequency Code
void acs_Frequency(test_function& func) { // The two lines below must be the first two in the function. acs_Frequency_params *ours; ours = (acs_Frequency_params *)func.params; //---declare variables used float meas_freq;

1. Copy the code from acs_Amplitude and place below.


//---set up ACS5

2. Complete the missing lines of code.


//---set up TMU6 //close input connect relay //set start & stop conditions

acs_5->start(); delay(1);

//start waveform generator

//wait for above to settle...

acs_5->set_level(ours->amplitude, ours->offset, ACS_PEAK_LEVEL);//set ampltd delay(ours->delay_1ms); tmu_6->arm(); wait.delay_10_us(4); //measure 1/2 cycle //wait for TMU to settle...

266

PN: 071-0999-00

ACS Labs

//convert the measured time to frequency

//---datalog the result-------------------------------------func.dlog->power = POWER_KILO; func.dlog->set_test_no(1); func.dlog->test_val(meas_freq); if (func.dlog->tests[func.dlog->current_test].passed_fail == FAILED_TEST) func.dlog->set_bin(21); if (func.dlog->tests[func.dlog->current_test].display_results) func.dlog->display_results(); //----------------------------------------------------------//---reset ACS5 & TMU6 to default state acs_5->init(); tmu_6->init(); }//acs_Frequency

visualATE Applications Training Student Guide

267

268
ACS 5
S1
(6) (8) (5)

+5V
U1C
(9)

U1 Vcc
U1D CH4FH CH4SH

TP1 TP2 OVI 1 OVI 1


CH6F CH6S S0
(1) (4)
EXT _ARM

C1 0.1uF

PV3 4 PV3 4

acs_TrnglWv

GND
(12) (10)

U1 GND
S2 HiZ 4 OUT CH4

TMU 6
IO1
(13)

U1F

(11)

U1E

16 - ACS Instrument Labs

DVI 11 DVI 9
EXT _DRV2

K1

+12V
(K1 & K2 pin 3)

K1 & K2 pin 2
MUX_BANK_8_1

ACS 5 TMU 6 ACS 5


K2
(1) (4)

TMU 6 TP3 ACS 5

R4 0.1 Ohm 1%

DVI 11
S1 CH7S CH7F MUX_8_1 MUX_1_BUS9
B US_9 BUS _8

DVI 9
CH0F CH0S MUX_8_BUS8 MUX_8_2 MUX_8_GND MUX_8_3 MUX_8_4 MUX_BANK_1_2 MUX_7_1 MUX_2_BUS2
B US_2 B US_7

F0

MUX_1_1

OVI 1 OVI 1 PV3 4 PV3 4 OVI 1 OVI 1


CH5SL CH5FL

R1

1.2K 5%

MUX_1_2

R2

130K 5%

MUX_1_3

LED

MUX_1_4 MUX_BANK_7_8 CH1F CH1S

Figure 127. acs_TrnglWv Lab Schematic

MUX_2_1 MUX_7_BUS7 MUX_7_2 MUX_7_GND MUX_7_3

OVI 1 OVI 1

ACS 5

EXT_ CLK

DVI 11 CH0 via MUX 18 74LS11


(1) (2) (13) (3) (4) A1 B1 C1 A2 B2 2 Y2 (6) 1 Y1 (12)

MUX_2_2 MUX_2_GND

V cc

(14)

C2 0. 1uF

MUX_2_3

CH7

DVI 9
MUX_7_4 MUX_BANK_6_7 MUX_6_1 MUX_3_BUS3
B US_3 B US_6

S0 MUX_BANK_2_3 CH2F CH2S

MUX_2_4

MUX 18

CH1 CH2 CH3 CH4 CH5 CH6

DDD 7
CH8
(5) (9) (10) C2 A3 B3 3 Y3 (8)

DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 DDD 7

DDD 7

DVI 11
MUX_6_BUS6 MUX_6_2 MUX_6_GND MUX_6_3 MUX_6_4
(4)

F0

MUX_3_1

OVI 1 OVI 1

R3

1.2K 5%

MUX_3_2

(11) (7)

C3 GND

DUT Vcc, pin 14

MUX_3_3

DUT
(3) (1)

MUX_3_4 MUX_BANK_3_4 MUX_BANK_5_6 MUX_5_1 MUX_4_BUS4


B US_4 B US_5

U1B

U1A
(2)

IO2

TMU 6 AGS
CH3F

MUX_4_1 MUX_5_BUS5

OVI 1
MUX_5_2 MUX_5_3 MUX_5_4 CH3S

TMU 6 OVI 1

CHA 2

DUT Vcc, pin 14 MUX_4_GND


B US_10

MUX_4_2 MUX_5_BUS10

TMU 6

HiZ 3

MUX_4_3

DVI 11
MUX_BANK_4_5

S0

MUX_4_4

PN: 071-0999-00

ACS Labs

acs_TrnglWv Worksheet
Test Function Name: ____________________

P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____

Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____

Concept:___________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

visualATE Applications Training Student Guide

269

16 - ACS Instrument Labs

acs_TrnglWv Code
void acs_TrnglWv(test_function& func) { // The two lines below must be the first two in the function. acs_TrnglWv_params *ours; ours = (acs_TrnglWv_params *)func.params; //---declare variables used unsigned short d,i; //d = DAC code, i = loop index d=0; i=0; //make sure the variables are initialized to 0

//---generate data and load ACS memory----------------------for (i = 0; i < 4096; i++) //ramp up { acs_5->load_data(i, (d * 16)); //upshift AWG data to upper 12-bits d++; } i=4095; d=4095; //make sure the variables are initiated to 4095 //increment data

for (i = 4095; i < 8191; i++) //ramp down { acs_5->load_data(i, (d * 16)); //upshift AWG data to upper 12-bits d--; } acs_5->load_data(8190, 2); //add SB1 acs_5->load_data(8191, 1); //add LB //----------------------------------------------------------acs_5->card.clock = CLK_BY_8; //set the Fs to 8MHz //insert 500KHz //filter first... //...0 amplitude next... //decrement data

acs_5->set_path(ACS_BASE_FILTER, ACS_10_VOLT_RANGE); acs_5->set_level(0, 0, ACS_PEAK_LEVEL); acs_5->close_relay(D_SIG_OUT); acs_5->close_relay(D_R_BIT1); delay(1);

//...then connect output. //connect SyncBit1 to the outside world

//wait for above to settle...

270

PN: 071-0999-00

ACS Labs

acs_5->start();

//start waveform generator //set output level

acs_5->set_level(ours->amplitude, 0.0f, ACS_PEAK_LEVEL); delay(1); //let output reach max amplitude

//---set a breakpoint and verify output signal with o'scope acs_5->stop(); //stop generating the waveform

//---output dummy info via the datalog function call described in User.cpp //datalog("datalog scaler", "test number", "datalog value", "fail bin number", "notes", func); datalog(POWER_UNIT, 1, 1, 22, "datalog n/a", func); //---reset ACS5 to default state acs_5->init(); }//acs_TrnglWv

visualATE Applications Training Student Guide

271

272
ACS 5
S1
(6) (8) (5)

+5V
U1C
(9)

U1 Vcc
U1D CH4FH CH4SH

TP1 TP2 OVI 1 OVI 1


CH6F CH6S S0
(1) (4)
EXT _ARM

C1 0.1uF

PV3 4 PV3 4

GND
(12) (10)

U1 GND
S2 HiZ 4 OUT CH4

TMU 6
IO 1
(13)

U1F

(11)

U1E

16 - ACS Instrument Labs

DVI 11 DVI 9
EXT _DRV2

K1

acs_LoadFromFile

+12V
(K1 & K2 pin 3)

K1 & K2 pin 2
MUX_BANK_8_1

ACS 5 TMU 6 ACS 5


K2
(1) (4)

TMU 6 TP3 ACS 5

R4 0.1 Ohm 1%

DVI 11
S1 CH7S CH7F MUX_8_1 MUX_1_BUS9
B US_9 BUS _8

DVI 9
CH0F CH0S MUX_8_BUS8 MUX_8_2 MUX_8_GND MUX_8_3 MUX_8_4 MUX_BANK_1_2 MUX_7_1 MUX_2_BUS2
B US_2 B US_7

F0

MUX_1_1

OVI 1 OVI 1 PV3 4 PV3 4 OVI 1 OVI 1


CH5SL CH5FL

R1

1.2K 5%

MUX_1_2

R2

130K 5%

MUX_1_3

LED

MUX_1_4 MUX_BANK_7_8 CH1F CH1S

MUX_2_1 MUX_7_BUS7 MUX_7_2 MUX_7_GND MUX_7_3

OVI 1 OVI 1

ACS 5

EXT_ CLK

DVI 11 CH0 via MUX 18 74LS11


(1) (2) (13) (3) (4) A1 B1 C1 A2 B2 2 Y2 (6) 1 Y1 (12)

MUX_2_2 MUX_2_GND

Figure 128. acs_LoadFromFile Lab Schematic


C2 0. 1uF
V cc (14)

MUX_2_3

CH7

DVI 9 MUX 18
MUX_7_4 MUX_BANK_6_7 MUX_6_1 MUX_3_BUS3
B US_3 B US_6

S0 MUX_BANK_2_3 CH2F CH2S

MUX_2_4

CH1 CH2 CH3 CH4 CH5 CH6

DDD 7
CH8
(5) (9) (10) C2 A3 B3 3 Y3 (8)

DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 OVI 1 OVI 1

DDD 7

DVI 11
MUX_6_BUS6 MUX_6_2 MUX_6_GND MUX_6_3 MUX_6_4
(4)

F0

MUX_3_1

R3

1.2K 5%

MUX_3_2

(11) (7)

C3 GND

DUT Vcc, pin 14

MUX_3_3

DUT
(3) (1)

MUX_3_4 MUX_BANK_3_4 MUX_BANK_5_6

U1B

U1A
(2)

IO 2

TMU 6 AGS

MUX_4_1 MUX_4_BUS4
B US_4 B US_5

MUX_5_1 MUX_5_BUS5 MUX_5_2 MUX_5_3 MUX_5_4

CH3F CH3S

OVI 1 OVI 1

TMU 6

CHA 2

DUT Vcc, pin 14 MUX_4_GND


B US_10

MUX_4_2 MUX_5_BUS10

TMU 6

HiZ 3

MUX_4_3

DVI 11
MUX_BANK_4_5

S0

MUX_4_4

PN: 071-0999-00

ACS Labs

acs_LoadFromFile Worksheet
Test Function Name: ____________________

P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____

Test Name: ____________________ Limits: min_____ max_____ Scale:_____ Unit: _____

Concept:___________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

visualATE Applications Training Student Guide

273

16 - ACS Instrument Labs

acs_LoadFromFile Code
void acs_LoadFromFile(test_function& func) { // The two lines below must be the first two in the function. acs_LoadFromFile_params *ours; ours = (acs_LoadFromFile_params *)func.params; FILE* fp1; //create file pointer a, d, i;

unsigned short d = 0; i = 0;

//make sure the variables are initialized to 0

/* //---generate address and data arrays---------------------unsigned shortwvfrm_addr[8195], wvfrm_data[8195]; for (i = 0; i < 4096; i++) //ramp up { wvfrm_addr[i] = i; wvfrm_data[i] = (d * 16); d++; } d=4095; i=4095; //make sure the variables are initialized to 4095 //ramp down //increment data

for (i = 4095; i < 8191; i++) { wvfrm_addr[i] = i; wvfrm_data[i] = (d * 16); d--; } //decrement data

wvfrm_addr[8190] = 8190; wvfrm_data[8190] = 2; //add SB1 wvfrm_addr[8191] = 8191; wvfrm_data[8191] = 1; //add LB //--------------------------------------------------------//---open the file and save data--------------------------fp1=fopen("c:\\asl_nt\\users\\lists\\vate_class_project\\programs \\ACS_TrnglWv_Data.txt","w"); for (i = 0; i < 8192; i++) //stuff address & data into file...

274

PN: 071-0999-00

ACS Labs

fprintf(fp1,"%d \t %d \n", wvfrm_addr[i], wvfrm_data[i]); //...from arrays. fclose(fp1); //---done and close file----------------------------------*/ //---open the file and read data--------------------------fp1=fopen("c:\\asl_nt\\users\\lists\\vate_class_project\\programs \\ACS_TrnglWv_Data.txt","r"); for (i = 0; i < 8192; i++) //read address & data from file... { fscanf(fp1, "%d \t %d \n", &a, &d); //...into 'a' & 'd'. acs_5->load_data(a, d); } fclose(fp1); //---done and close file----------------------------------//---setup ACS5-------------------------------------------acs_5->card.clock = CLK_BY_8; //set the Fs to 8MHz acs_5->set_path(ACS_BASE_FILTER, ACS_10_VOLT_RANGE); acs_5->set_level(0, 0, ACS_PEAK_LEVEL); acs_5->close_relay(D_SIG_OUT); acs_5->close_relay(D_R_BIT1); delay(1); //insert 500KHz //filter first... //...0 amplitude next... //load read address & data into ACS memory

//...then connect output. //connect SyncBit1 to the outside world

//wait for above to settle... //start waveform generator //set output level

acs_5->start();

acs_5->set_level(ours->amplitude, 0.0f, ACS_PEAK_LEVEL); delay(1); //let output reach max amplitude

//---set a breakpoint and verify output signal with o'scope acs_5->stop(); //stop generating the waveform

//---output dummy info via the datalog function call described in User.cpp //datalog("datalog scaler", "test number", "datalog value", "fail bin number", "notes", func); datalog(POWER_UNIT, 1, 1, 23, "datalog n/a", func);

visualATE Applications Training Student Guide

275

16 - ACS Instrument Labs

//---reset ACS5 to default state acs_5->init(); }//

Check Your Work


Review the work and have the instructor sign off this module.

276

PN: 071-0999-00

17

Analog Versus Digital


Goal
Familiarity with simple digital test methodologies.

Objectives
After completing this unit, students should be able to: Describe analog versus digital devices Describe the considerations for creating a simplified digital test

In This Module
______ Instructor Presentation 1 Hour

Resources
visualATE 6.1 Programming Guide visualATE 6.1 User Guide

visualATE Applications Training Student Guide

277

17 - Analog Versus Digital

Analog Versus Digital Devices


Analog devices generally operate under, and with, potentially varying voltages and currents. Digital devices generally operate under fixed voltages and with defined voltage level input states. Figure 129. Analog Versus Digital Devices

X2

AND

Simplified Digital Test


Testing digitally oriented devices entails a unique set of considerations. Some of those considerations are: Input voltage levels Input data rate Input timing Presentation of digital data Output voltage levels Output drive ability Examination of DUT output against expected data

278

PN: 071-0999-00

Simplified Digital Test

Figure 130. AND Gate and Truth Table

AND Gate Truth Table A 0 0 1 1 B 0 1 0 1 C 0 0 0 1


A C B

Figure 130 represents an AND gate and its truth table, which describes the gates operation. For this type of digital logic device, the output (C) is True only when both inputs (A and B) are True. Any other combination on the inputs results in the output being False. To functionally test this device, the four combinations of input data must be presented at the proper voltage levels and proper rate. The rate and voltage levels are defined by the DUT specification. The output response of the DUT must be compared with a known quantity to prove proper operation. Comparisons must be done at the voltage levels, defined in the DUT specification. When is the DUT output observed? To illustrate the answer, the truth table is rotated and redrawn as a timing diagram in Figure 131. Figure 131. Truth Table and Timing Diagram
AND Gate Truth Table State 1 State 2 State 3 State 4 State 5 A B C

State 1 State 2 State 3 State 4

A 0 0 1 1

B 0 1 0 1

C 0 0 0 1

Testing a digitally oriented device also requires the ability to observe the DUTs output at a precise point in time. If the output is observed before the specified output transition time, good parts may have failed. Consequently, if the output is observed much later than the specified time, bad parts may have passed. The amount of time the above states occupy is known as the period or cycle and defines the data rate.

visualATE Applications Training Student Guide

279

17 - Analog Versus Digital

Data is allowed to transition from a low-to-high or from a high-to-low on delayed edges (leading edge, trailing edge) and these time delays are referenced to the beginning of the cycle. Figure 132. Delayed Edges
Leading Edge Trailing Edge

A B C

Check Your Work


Review the work and have the instructor sign off this module.

280

PN: 071-0999-00

18

DDD Instrument
Goal
Familiarity with the DDD hardware and software.

Objectives
After completing this unit, students should be able to: Describe the DDD instrument hardware Describe the software that supports the DDD instrument

In This Module
______ ______ Instructor Presentation Knowledge Check 1 30 Hour Minutes

Resources
visualATE 6.1 Programming Guide visualATE 6.1 User Guide

visualATE Applications Training Student Guide

281

282
TRAIL DELAY (TG2) XMIT MEMORY (32K/128K)
CHANNELS 2 THROUGH 8 TRANSMIT

18 - DDD Instrument

DATA BUS LEAD DELAY (TG1)

Figure 133. DDD Diagram

REGISTER

PIN DRIVER

CHANNELS 2 THROUGH 8 SW CONTROL HI DRIVE (-5v to +15v) SWITCH CONTROL (8.33 MHz) LO DRIVE (-5v to +5v)

50

DATA & ADDRESS CONTROL

PRG CLK (320 kHz to 14 MHz)

CHANNEL 1 OF 8

COMP REF (-2v to +8v)

RECEIVE COMPARATOR

10K

REGISTER RECEIVE MEMORY (32K/128K)


CHANNELS 2 THROUGH 8 RECEIVE

10K

DATA BUS

COMMON TO ALL CHANNELS

INDIVIDUAL CHANNEL

PN: 071-0999-00

DDD Instrument

DDD Instrument
This section covers the digital driver/detector (DDD) instrument, including: Instrument description Key highlights Theory of operation Software discussion

Description and Key Highlights


The DDD instrument is a simple digital option for the ASL system. Key highlights of the DDD are: Eight channels of 320 KHz to 14 MHz digital Up to four instruments per system (master/slave configuration) Two drive levels per instrument One compare level per instrument Two timing edges per channel 128 K pattern memory 128 K receive memory

Theory of Operation
For the hardware discussion, refer to Figure 133 on page 282. There are two memories in the DDD: One to source data to the DUT (Xmit) One to receive data from the DUT (receive)

Both are clocked by the same source, which can be programmed from 320 kHz to 14 MHz. Data from the Xmit memory is routed to an individual channel where the data edges are delayed and then passed on to the pin driver. The edges are delayed by two timing generators, TG1 and TG2, which affect the leading edge and trailing edge respectively. Both edges must remain with cycle boundaries. The pin driver output levels (high and low) are controlled by two DACs. The High Drive DAC has a range of -5 V to +15 V. The Low Drive DAC has a range of -5 V to +5 V. There is no compile-time check for proper polarity. It is important to maintain proper polarity as intermittent data output result otherwise.

visualATE Applications Training Student Guide

283

18 - DDD Instrument

The pin driver output connects to the user test interface via an analog switch. Data coming from the DUT connects to the channel comparator via another, separate analog switch. The switches are exclusive in typical operation. One is open while the other is closed. The control of the switches is in direct relation to the type of data being sourced from Xmit memory. There are five data characters used to program Xmit memory: 1, 0 (zero), T, Z, and X All data characters are interpreted in real time while the clock is running and data is being output. The first four characters represent Drive data. The pin driver connect switch is closed while the comparator connect switch is opened. The X represents Receive data. With this character, the comparator connect switch is closed and the pin driver connect switch is opened. The ability to change direction of the DDD channel facilitates drive/receive on a cycle basis. The DDD cannot drive and receive within the same cycle. The interpretation of data characters also takes time along with the analog switch action. Therefore, if drive/receive operation is desired, the maximum clock frequency is 8 MHz. Data coming from the DUT is routed to one side of the channel input comparator. The other side of the comparator is connected to the Compare Reference DAC, which has a programmable voltage range of -2 V to +8 V. Should the level from the DUT exceed the compare reference voltage, the comparator output indicates a 1. If the level from the DUT is below the comparator reference, a 0 is indicated. The comparison result is routed to a register that is clocked TG1. The output of the register goes to Receive memory. There is no real-time Expect data comparison, only comparator output collection. A separate examination of Receive memory is required to determine if the DUT passed or failed any particular Test. There is an inherent round trip delay of two clocks: One clock is used to transmit data One clock is used to read data

This results in data being offset by two addresses in Receive memory due to the common clock that drives both Xmit and Receive memories. This effect is known as Pipeline.

284

PN: 071-0999-00

DDD Instrument

Interrogation of Receive memory may be done in two fashions: A direct, physical address memory read A logical vector based read

The vector based read accounts for the inherent pipeline and offsets the read by two addresses. It accepts expect data and returns a True/False based upon the comparison of the read data and expected data. The physical address read does not account for the Pipeline. The user must add at least two addresses to locate the desired data (not considering any delay caused by the DUT). The return of the physical address read is a binary weighted decimal number that represents the 8 digital channels as shown in Figure 134. Figure 134. Eight Digital Channels
DDD Channel Binary Weight 8 128 7 64 T A return of 67 indicates channels 1, 2, and 7 are True 67 = 64 + 2 + 1 6 32 5 16 4 8 3 4 2 2 T 1 1 T

Software Statements
For the software discussion, refer to the DDD - Digital Driver and Detector chapter of the visualATE 6.1 Programming Guide.

visualATE Applications Training Student Guide

285

18 - DDD Instrument

Notes

286

PN: 071-0999-00

DDD Instrument

Knowledge Check
1. How many DDD instruments can reside in an ASL 1000 and with what restrictions?

2. How many DDD instruments can reside in an ASL 3000 and with what restrictions?

3. Both Xmit and Receive memories on the DDD use the same clock. What does this cause?

4. What two methods are used to interrogate Receive memory?

5. What is the maximum internal clock rate of the DDD?

6. What is the minimum pulse width of the DDD?

7. What are the restrictions for setting delay on any one channel?

8. May the data edges be programmed outside of the programmed period?

visualATE Applications Training Student Guide

287

18 - DDD Instrument

Check Your Work


Review the work and have the instructor sign off this module.

288

PN: 071-0999-00

19

DDD Instrument Labs


Goal
Familiarity with simple digital tests using the DDD instrument.

Objectives
After completing this unit, students should be able to perform digital tests using the DDD instrument

In This Module
______ Lab Exercise 4.5 Hours

Resources
visualATE 6.1 Programming Guide visualATE 6.1 User Guide

visualATE Applications Training Student Guide

289

19 - DDD Instrument Labs

Notes

290

PN: 071-0999-00

DDD Labs

Lab Exercise

DDD Labs
The DDD lab includes the following tests: dut_Icc dut_Functional acs_ExtClk

visualATE Applications Training Student Guide

291

292
ACS 5
S1
(6) (8) (5)

+5V
U1C
(9)

U1 Vcc
U1D CH4FH CH4SH

TP1 TP2 OVI 1 OVI 1


CH6F CH6S S0
(1) (4)
EXT _ARM

C1 0.1uF

PV3 4 PV3 4

dut_Icc Lab

GND
(12) (10)

U1 GND
S2 HiZ 4 OUT CH4

TMU 6
IO 1
(13)

U1F

(11)

U1E

19 - DDD Instrument Labs

DVI 11 DVI 9
EXT _DRV2

K1

+12V
(K1 & K2 pin 3)

K1 & K2 pin 2
MUX_BANK_8_1

ACS 5 TMU 6 ACS 5


K2
(1) (4)

TMU 6 TP3 ACS 5

R4 0.1 Ohm 1%

DVI 11
S1 CH7S CH7F MUX_8_1 MUX_1_BUS9
B US_9 BUS _8

DVI 9
CH0F CH0S MUX_8_BUS8 MUX_8_2 MUX_8_GND MUX_8_3 MUX_8_4 MUX_BANK_1_2 MUX_7_1 MUX_2_BUS2
B US_2 B US_7

F0

MUX_1_1

OVI 1 OVI 1 PV3 4 PV3 4 OVI 1 OVI 1


CH5SL CH5FL

R1

1.2K 5%

MUX_1_2

R2

130K 5%

MUX_1_3

Figure 135. dut_Icc Lab Schematic

LED

MUX_1_4 MUX_BANK_7_8 CH1F CH1S

MUX_2_1 MUX_7_BUS7 MUX_7_2 MUX_7_GND MUX_7_3

OVI 1 OVI 1

ACS 5

EXT_ CLK

DVI 11 CH0 vi a MUX 18 74LS11


(1) (2) A1 B1 (13 ) C1 (3) A2 (4) B2 2 Y2 (6) 1 Y1 (12)

MUX_2_2 MUX_2_GND

V cc

(14)

C2 0.1uF

MUX_2_3

CH7

DVI 9 MUX 18
MUX_7_4 MUX_BANK_6_7 MUX_6_1 MUX_3_BUS3
B US_3 B US_6

S0 MUX_BANK_2_3 CH2F CH2S

MUX_2_4

CH1 CH2 CH3 CH4 CH5 CH6

DDD 7
CH8
(5) (9) (10) C2 A3 B3 3 Y3 (8)

DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 DDD 7

DDD 7

DVI 11
MUX_6_BUS6 MUX_6_2 MUX_6_GND MUX_6_3 MUX_6_4
(4)

F0

MUX_3_1

OVI 1 OVI 1

R3

1.2K 5%

MUX_3_2

(11) (7)

C3 GND

DUT Vcc, pin 14

MUX_3_3

DUT
(3) (1)

MUX_3_4 MUX_BANK_3_4 MUX_BANK_5_6 MUX_5_1 MUX_4_BUS4


B US_4 B US_5

U1B

U1A
(2)

IO 2

TMU 6 AGS
CH3F

MUX_4_1 MUX_5_BUS5

OVI 1
MUX_5_2 MUX_5_3 MUX_5_4 CH3S

TMU 6 OVI 1

CHA 2

DUT Vcc, pin 14 MUX_4_GND


B US_10

MUX_4_2 MUX_5_BUS10

TMU 6

HiZ 3

MUX_4_3

DVI 11
MUX_BANK_4_5

S0

MUX_4_4

PN: 071-0999-00

DDD Labs

dut_Icc Worksheet
Test Function Name: ____________________

P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____

Test Name: ____________________ Limits: min_____max_____Scale: _____ Unit: _____ Test Name: ____________________ Limits: min_____max_____Scale: _____ Unit: _____

Concept:___________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

visualATE Applications Training Student Guide

293

19 - DDD Instrument Labs

dut_Icc Code
void dut_Icc(test_function& func) { // The two lines below must be the first two in the function. dut_Icc_params *ours; ours = (dut_Icc_params *)func.params; //---declare variables used float icc_minV, icc_maxV; //---generic DDD setup ddd_7->ddd_set_clock_period(ours->period); //set clock period ddd_7->ddd_set_hi_level(ours->hidrv); //set drive high level for Icc maxV ddd_7->ddd_set_lo_level(ours->lodrv); //set drive low level for Icc minV ddd_7->ddd_set_voltage_ref(ours->cmplvl); //n/a in this test ddd_7->ddd_set_no_delay(); //basic cycle transition

Complete the missing lines of code.

//---connect OVI1 to DUT //connect OVI1 CH0 to DUT9

//connect OVI1 CH1 to DUT10

//connect OVI1 CH2 to DUT11

//---connect DVI11 CH0 to DUT Vcc //connect DVI11 CH0F to DUT 16 //connect DVI11 CH0S to DUT 16

delay(ours->delay_1ms);

//wait for above to settle...

//---set DVI11 CH0 to DUT Vcc level & measure mode to current

294

PN: 071-0999-00

DDD Labs

wait.delay_10_us(ours->delay_10us); //---load pattern data ddd_7->ddd_load_pattern(0, ddd_7->ddd_load_pattern(1, ddd_7->ddd_load_pattern(2, ddd_7->ddd_load_pattern(3, //---set DUT pins to 0v ddd_7->ddd_end_pattern(4); ddd_7->ddd_run_pattern(); wait.delay_10_us(2);

//wait for DVI11 to settle... //drive low for 4 cycles

"XX000000"); "XX000000"); "XX000000"); "XX000000");

//loop it...

//wait 20us //hold the channels low 1e-3f); ours->lodrv); 1e-3f); ours->lodrv); 1e-3f); ours->lodrv); //wait for above to settle...

ddd_7->ddd_stop_pattern();

ovi_1->set_current(OVI_CHANNEL_0, ovi_1->set_voltage(OVI_CHANNEL_0, ovi_1->set_current(OVI_CHANNEL_1, ovi_1->set_voltage(OVI_CHANNEL_1, ovi_1->set_current(OVI_CHANNEL_2, ovi_1->set_voltage(OVI_CHANNEL_2,

wait.delay_10_us(ours->delay_10us); //---make the Iccl measurement icc_minV = dvi_11->measure(); //---load pattern data ddd_7->ddd_load_pattern(0, ddd_7->ddd_load_pattern(1, ddd_7->ddd_load_pattern(2, ddd_7->ddd_load_pattern(3, //---set DUT pins to 4.5v ddd_7->ddd_end_pattern(4); ddd_7->ddd_run_pattern(); wait.delay_10_us(2);

"XX111111"); "XX111111"); "XX111111"); "XX111111");

//drive high for 4 cycles

//loop it...

//wait 20us //hold the channels high

ddd_7->ddd_stop_pattern();

ovi_1->set_voltage(OVI_CHANNEL_0, ours->hidrv); ovi_1->set_voltage(OVI_CHANNEL_1, ours->hidrv); ovi_1->set_voltage(OVI_CHANNEL_2, ours->hidrv);

visualATE Applications Training Student Guide

295

19 - DDD Instrument Labs

wait.delay_10_us(ours->delay_10us); //---make the Icch measurement icc_maxV = dvi_11->measure();

//wait for above to settle...

//---datalog the results-------------------------------------func.dlog->power = POWER_MILLI; //common range //---datalog icc_minv func.dlog->set_test_no(1); func.dlog->test_val(icc_minV); if (func.dlog->tests[func.dlog->current_test].passed_fail == FAILED_TEST) func.dlog->set_bin(24); if (func.dlog->tests[func.dlog->current_test].display_results) func.dlog->display_results(); //---datalog icc_maxv func.dlog->set_test_no(2); func.dlog->test_val(icc_maxV); if (func.dlog->tests[func.dlog->current_test].passed_fail == FAILED_TEST) func.dlog->set_bin(24); if (func.dlog->tests[func.dlog->current_test].display_results) func.dlog->display_results(); //----------------------------------------------------------//---power down DUT 'gently' dvi_11->set_voltage(DVI_CHANNEL_0, 0.0f); wait.delay_10_us(ours->delay_10us); //---set OVI1, DDD7, DVI11 & MUX18 to default states ovi_1->init(); ddd_7->init(); dvi_11->init(); mux_18->init(); }//dut_Icc

296

PN: 071-0999-00

DDD Labs

Notes

visualATE Applications Training Student Guide

297

298
ACS 5
S1
(6) (8) (5)

+5V
U1C
(9)

U1 Vcc
U1D CH4FH CH4SH

TP1 TP2 OVI 1 OVI 1


CH6F CH6S S0
(1) (4)
EXT _ARM

C1 0.1uF

PV3 4 PV3 4

GND
(12) (10)

U1 GND
S2 HiZ 4 OUT CH4

TMU 6
IO1
(13)

U1F

(11)

U1E

19 - DDD Instrument Labs

DVI 11 DVI 9
EXT _DRV2

K1

dut_Functional Lab

+12V
(K1 & K2 pin 3)

K1 & K2 pin 2
MUX_BANK_8_1

ACS 5 TMU 6 ACS 5


K2
(1) (4)

TMU 6 TP3 ACS 5

R4 0.1 Ohm 1%

DVI 11
S1 CH7S CH7F MUX_8_1 MUX_1_BUS9
B US_9 BUS _8

DVI 9
CH0F CH0S MUX_8_BUS8 MUX_8_2 MUX_8_GND MUX_8_3 MUX_8_4 MUX_BANK_1_2 MUX_7_1 MUX_2_BUS2
B US_2 B US_7

F0

MUX_1_1

OVI 1 OVI 1 PV3 4 PV3 4 OVI 1 OVI 1


CH5SL CH5FL

R1

1.2K 5%

MUX_1_2

R2

130K 5%

MUX_1_3

LED

MUX_1_4 MUX_BANK_7_8 CH1F CH1S

Figure 136. dut_Functional Lab Schematic

MUX_2_1 MUX_7_BUS7 MUX_7_2 MUX_7_GND MUX_7_3

OVI 1 OVI 1

ACS 5

EXT_ CLK

DVI 11 CH0 via MUX 18 74LS11


(1) (2) (13) (3) (4) A1 B1 C1 A2 B2 2 Y2 (6) 1 Y1 (12)

MUX_2_2 MUX_2_GND

V cc

(14)

C2 0.1uF

MUX_2_3

CH7

DVI 9
MUX_7_4 MUX_BANK_6_7 MUX_6_1 MUX_3_BUS3
B US_3 B US_6

S0 MUX_BANK_2_3 CH2F CH2S

MUX_2_4

MUX 18

CH1 CH2 CH3 CH4 CH5 CH6

DDD 7
CH8
(5) (9) (10) C2 A3 B3 3 Y3 (8)

DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 DDD 7

DDD 7

DVI 11
MUX_6_BUS6 MUX_6_2 MUX_6_GND MUX_6_3 MUX_6_4
(4)

F0

MUX_3_1

OVI 1 OVI 1

R3

1.2K 5%

MUX_3_2

(11) (7)

C3 GND

DUT Vcc, pin 14

MUX_3_3

DUT
(3) (1)

MUX_3_4 MUX_BANK_3_4 MUX_BANK_5_6

U1B

U1A
(2)

IO2

TMU 6 AGS

MUX_4_1 MUX_4_BUS4
B US_4 B US_5

MUX_5_1 MUX_5_BUS5 MUX_5_2 MUX_5_3 MUX_5_4

CH3F CH3S

OVI 1 OVI 1

TMU 6

CHA 2

DUT Vcc, pin 14 MUX_4_GND


B US_10

MUX_4_2 MUX_5_BUS10

TMU 6

HiZ 3

MUX_4_3

DVI 11
MUX_BANK_4_5

S0

MUX_4_4

PN: 071-0999-00

DDD Labs

dut_Functional Worksheet
Test Function Name: ____________________

P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____

Test Name: ____________________ Limits: min_____max_____Scale: _____ Unit: _____

Concept:___________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

visualATE Applications Training Student Guide

299

19 - DDD Instrument Labs

dut_Functional Code
void dut_Functional(test_function& func) { // The two lines below must be the first two in the function. dut_Functional_params *ours; ours = (dut_Functional_params *)func.params; //---declare variables used float lead_delay, trail_delay, strobe_delay; short short short i; compare_result[15]; read_result[15]; //flush the arrays...

for (i = 0; i < 14; i++) { compare_result[i]=7; read_result[i]=9999; }

//---calculate edge delays lead_delay = ours->period * 0.1f; //10% of period trail_delay = ours->period * 0.90f; //90% of period strobe_delay = ours->period * 0.50f; //50% of period //---generic setup ddd_7->ddd_set_clock_period(ours->period); ddd_7->ddd_set_hi_level(ours->hidrv); ddd_7->ddd_set_lo_level(ours->lodrv); //set clock period

//set drive high level //set drive low level //set compare level

ddd_7->ddd_set_voltage_ref(ours->cmplvl); ddd_7->ddd_set_delay(1, ddd_7->ddd_set_delay(2, ddd_7->ddd_set_delay(3, ddd_7->ddd_set_delay(4, ddd_7->ddd_set_delay(5, ddd_7->ddd_set_delay(6, ddd_7->ddd_set_delay(7, ddd_7->ddd_set_delay(8,

lead_delay, trail_delay); lead_delay, trail_delay); lead_delay, trail_delay); lead_delay, trail_delay); lead_delay, trail_delay); lead_delay, trail_delay); strobe_delay, strobe_delay + 5e-9); strobe_delay, strobe_delay + 5e-9);

//---load pattern data ddd_7->ddd_load_pattern(0, "XX000000"); ddd_7->ddd_load_pattern(1, "XX001001");

300

PN: 071-0999-00

DDD Labs

ddd_7->ddd_load_pattern(2, ddd_7->ddd_load_pattern(3, ddd_7->ddd_load_pattern(4, ddd_7->ddd_load_pattern(5, ddd_7->ddd_load_pattern(6, ddd_7->ddd_load_pattern(7, ddd_7->ddd_load_pattern(8, ddd_7->ddd_load_pattern(9,

"XX010010"); "XX011011"); "XX100100"); "XX101101"); "XX110110"); "XX111111"); "XX000000"); "XX000000");

//2 extra vectors to flush pipe

//---connect DVI11 CH0 to DUT Vcc mux_18->close_relay(MUX_3_1); mux_18->close_relay(MUX_3_3); mux_18->close_relay(MUX_4_4); mux_18->close_relay(MUX_4_2); //---wait for above to settle... delay(ours->delay_1ms); //---set DVI11 CH0 to DUT Vcc level dvi_11->set_current(DVI_CHANNEL_0, ours->dut_Icc); dvi_11->set_voltage(DVI_CHANNEL_0, ours->dut_Vcc); //---wait for DVI11 to settle... wait.delay_10_us(ours->delay_10us); //---set a breakpoint on the following 'run' command and observe the //---free running pattern with a scope. Trigger the scope on DDD CH1. ddd_7->ddd_end_pattern(ours->no_of_vectors); //number of vectors to run ddd_7->ddd_run_pattern(); //---stop the free running pattern ddd_7->ddd_stop_pattern(); //---perform a single run of the pattern from address 0 to 9 ddd_7->ddd_run_pattern(0, 9); //vectors 8 & 9 are run to flush the pipe wait.delay_10_us(ours->delay_10us); //wait for run to complete

//---use the code debugger to observe the 'compare_result' array for (i = 0; i < 9; i++) { compare_result[i] = ddd_7->ddd_compare_pattern("11XXXXXX", i); read_result[i] = ddd_7->ddd_read_pattern(i); } //---output read_result[] info via the datalog function call described in User.cpp

visualATE Applications Training Student Guide

301

19 - DDD Instrument Labs

//datalog("datalog scaler", "test number", "datalog value", "fail bin number", "notes", func); datalog(POWER_UNIT, 1, read_result[9], 25, "S/B 192", func); //---power down DUT 'gently' dvi_11->set_voltage(DVI_CHANNEL_0, 0.0f); wait.delay_10_us(ours->delay_10us); //---reset instruments ddd_7->init(); dvi_11->init(); mux_18->init(); }//dut_Functional

302

PN: 071-0999-00

DDD Labs

Notes

visualATE Applications Training Student Guide

303

304
ACS 5
S1
(6) (8) (5)

+5V
U1C
(9)

U1 Vcc
U1D CH4FH CH4SH

TP1 TP2 OVI 1 OVI 1


CH6F CH6S S0
(1) (4)
EXT _ARM

C1 0.1uF

PV3 4 PV3 4

GND
(12) (10)

U1 GND
S2 HiZ 4 OUT CH4

acs_ExtClk Lab

TMU 6
IO1
(13)

U1F

(11)

U1E

19 - DDD Instrument Labs

DVI 11 DVI 9
EXT _DRV2

K1

+12V
(K1 & K2 pin 3)

K1 & K2 pin 2
MUX_BANK_8_1

ACS 5 TMU 6 ACS 5


K2
(1) (4)

TMU 6 TP3 ACS 5

R4 0.1 Ohm 1%

DVI 11
S1 CH7S CH7F MUX_8_1 MUX_1_BUS9
B US_9 BUS _8

DVI 9
CH0F CH0S MUX_8_BUS8 MUX_8_2 MUX_8_GND MUX_8_3 MUX_8_4 MUX_BANK_1_2 MUX_7_1 MUX_2_BUS2
B US_2 B US_7

F0

MUX_1_1

OVI 1 OVI 1 PV3 4 PV3 4 OVI 1 OVI 1


CH5SL CH5FL

R1

1.2K 5%

MUX_1_2

R2

130K 5%

MUX_1_3

LED

Figure 137. acs_ExtClk Lab Schematic

MUX_1_4 MUX_BANK_7_8 CH1F CH1S

MUX_2_1 MUX_7_BUS7 MUX_7_2 MUX_7_GND MUX_7_3

OVI 1 OVI 1

ACS 5

EXT_CL K

DVI 11 CH0 via MUX 18 74LS11


(1) (2) (13) (3) (4) A1 B1 C1 A2 B2 2 Y2 (6) 1 Y1 (12)

MUX_2_2 MUX_2_GND

V cc

(14)

C2 0. 1uF

MUX_2_3

CH7

DVI 9
MUX_7_4 MUX_BANK_6_7 MUX_6_1 MUX_3_BUS3
B US_3 B US_6

S0 MUX_BANK_2_3 CH2F CH2S

MUX_2_4

MUX 18

CH1 CH2 CH3 CH4 CH5 CH6

DDD 7
CH8
(5) (9) (10) C2 A3 B3 3 Y3 (8)

DDD 7 DDD 7 DDD 7 DDD 7 DDD 7 DDD 7

DDD 7

DVI 11
MUX_6_BUS6 MUX_6_2 MUX_6_GND MUX_6_3 MUX_6_4
(4)

F0

MUX_3_1

OVI 1 OVI 1

R3

1.2K 5%

MUX_3_2

(11) (7)

C3 GND

DUT Vcc, pin 14

MUX_3_3

DUT
(3) (1)

MUX_3_4 MUX_BANK_3_4 MUX_BANK_5_6

U1B

U1A
(2)

IO2

TMU 6 AGS

MUX_4_1 MUX_4_BUS4
B US_4 B US_5

MUX_5_1 MUX_5_BUS5 MUX_5_2 MUX_5_3 MUX_5_4

CH3F CH3S

OVI 1 OVI 1

TMU 6

CHA 2

DUT Vcc, pin 14 MUX_4_GND


B US_10

MUX_4_2 MUX_5_BUS10

TMU 6

HiZ 3

MUX_4_3

DVI 11
MUX_BANK_4_5

S0

MUX_4_4

PN: 071-0999-00

DDD Labs

acs_ExtClk Worksheet
Test Function Name: ____________________

P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____ P/P: ________________ Type: ________ Value: ______ Scale: _____ Unit: _____

Test Name: ____________________ Limits: min_____max_____Scale: _____ Unit: _____

Concept:___________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

visualATE Applications Training Student Guide

305

19 - DDD Instrument Labs

acs_ExtClk Code
void acs_ExtClk(test_function& func) { // The two lines below must be the first two in the function. acs_ExtClk_params *ours; ours = (acs_ExtClk_params *)func.params; //---generic DDD setup------------------------------------ddd_7->ddd_set_clock_period(ours->period); //set clock period ddd_7->ddd_set_hi_level(ours->hidrv); ddd_7->ddd_set_lo_level(ours->lodrv); ddd_7->ddd_set_no_delay(); //set drive high level //set drive low level

//transition on cycle boundaries

//---load DDD pattern data ddd_7->ddd_load_pattern(0, 500, "XXXXXXX0", "XXXXXXX1"); //---generic ACS setup------------------------------------acs_5->ldram(ours->frequency); //load frequency acs_5->set_path(ACS_BASE_FILTER, ACS_10_VOLT_RANGE); acs_5->set_level(0, 0, ACS_PEAK_LEVEL); acs_5->close_relay(D_SIG_OUT); acs_5->close_relay(D_CLK); delay(1); //insert 500KHz //filter first... //...0 amplitude next...

//...then connect output.

//close ExtClk connect relay

//wait for above to settle...

//---start the ACS with ExtClk----------------------------acs_5->start(ACS_EXT_CLK); //start waveform generator acs_5->set_level(ours->amplitude, 0.0f, ACS_PEAK_LEVEL); delay(1); //let output reach max amplitude //set output level

//---set a breakpoint and verify output signal with o'scope ddd_7->ddd_end_pattern(ours->no_of_vectors); //run enough to output 1 cycle ddd_7->ddd_run_pattern(); //continually loop DDD, continually output sinewave //stop continuous loop

ddd_7->ddd_stop_pattern();

ddd_7->ddd_run_pattern(0, ours->no_of_vectors);//run DDD once, output //one ACS cycle. acs_5->stop(); //stop generating the waveform

306

PN: 071-0999-00

DDD Labs

//---output dummy info via the datalog function call described in User.cpp //datalog("datalog scaler", "test number", "datalog value", "fail bin number", "notes", func); datalog(POWER_UNIT, 1, 1, 26, "datalog n/a", func); //---reset ACS5 & DDD7 to default states acs_5->init(); ddd_7->init(); }//acs_ExtClk

visualATE Applications Training Student Guide

307

19 - DDD Instrument Labs

Check Your Work


Review the work and have the instructor sign off this module.

308

PN: 071-0999-00

Hardware Foundations
This section includes an overview of: ASL 1000 components ASL 3000 components ASL 1000 / ASL 3000 Differences

Hardware Components Overview

visualATE Applications Training Student Guide

309

310

A - Hardware Foundations

ASL 1000 Components

Testhead (Front View) Computer Standard off-the-shelf Windows-based PC

Cooling Fans

Figure 138. ASL 1000 Hardware Components

Testhead Interface Custom Card Slot 9 DVI MUX Slot 20 Slot 21

Slot 1

Mandatory Required by tester diagnostics: - Calibrate - Verify - Checker

Power Supply AC fused, Thermal Switch, Forced Air

65 V 50 V 24 V 15 V +12 V 5 V

Voltages are available for the user Voltages are not fused

PN: 071-0999-00

Figure 139. ASL 1000 Testhead

Testhead (Front View)

visualATE Applications Training Student Guide

Cooling Fans Slot 2 Slot 19

Slot/UTI Relationship - Odd numbered slots have 16 connections to the UTI - Even numbered slots have 32 connections to the UTI 32 Paths 16 Paths

User Test Interface (UTI)

Hardware Components Overview

Testhead (Rear View)

311

A - Hardware Foundations

ASL 3000 Components


Figure 140. ASL 3000 Hardware Components
(same as ASL1000)

DC Meter

RF Power Meter*

Computer
(same as ASL 1000)

RF Generator *

Data/Address Bus Cables

MVNA*

RF Generator *

RF Generator *

Testhead

(Expanded Slots ) Power Supply Cables

Power Supply

(Additional +3 V and Status LEDs) *(optional)

312

PN: 071-0999-00

Testhead (Door Side) Cooling Fans

Figure 141. ASL 3000 Testhead

visualATE Applications Training Student Guide

27

23 21

31

28

Area For RF Brick Assembly

Slot 9 - DVI Mandatory Required by tester diagnostics: - Calibrate - Verify - Checker

Slots 121: ASL 1000 identical Slots 2326 (no odd/even path constraint): MDI Slot 27: CLK4 Slots 28*31 (no odd/even path constraint): AVD/AWG

Hardware Components Overview

*IF ASL 3000RF with BB option: BTB

313

A - Hardware Foundations

ASL 1000/ASL 3000 Hardware Differences


This section details the differences between the ASL 1000 and ASL 3000 systems.

Testhead
Number of slots: 30 Slots 1-21 are identical. Slots 23-31 have improved bandwidth and are ASL 1000 compatible. Internal bus lines: Nine uncommitted, plus synchronization and trigger User test interface: 11 each, 108-pin spring pin blocks Fans: 4 x 6 inch fans with filter Switches: User test interface power on/off Base configuration: DVI 9 Load Board Relay control: 64 C-bits

Power Supply
Voltages: Additional +3.3 V Weight: ~150 lbs Adjustments: Individual supply external, adjustable to 5% Lights: LEDs indicating voltage is within 10% of stated value AC power: 208 VAC, 50 A, single phase, 3 wire, 50/60 Hz

314

PN: 071-0999-00

Software Components
This section contains an overview of the software components including: visualATE global view Lists, test functions, and test programs Test solution development contrasts Purpose of Create and Engineering modes visualATE Environment lab

Software Components Overview

visualATE Applications Training Student Guide

315

B - Software Components

visualATE Global View


Figure 142. visualATE Global View
User

visualATE

Windows NT 4.0: visualATE 5.2 Windows XP: visualATE 6.0

ASL.EXE --------------------------------User Interface (GUI)

TEST.EXE --------------------------------Executes Test Code

Instruments

DUT

316

PN: 071-0999-00

Software Components Overview

Test Functions, Lists, and Test Programs


This section contains simple descriptions of a test function, List, and test program.

Test Function
A test function is a C-code module containing instrument statements that command the instrumentation to stimulate and measure the response of the DUT.

Lists
A List is a collection of compiled test functions that resides in .dll file, which stands for Dynamic Linked Library. On its own, the List does nothingit is not a test program. There is nothing inside the List to control the execution sequence of the resident test functions.

Test Program
A test program is a file that defines the execution sequence of test functions that reside in a List .dll file and contains the following information: Test functions selection Test functions execution sequence Pass Parameter values Limit values

visualATE Applications Training Student Guide

317

B - Software Components

Purpose of Create and Engineering Create


Create is used to: Generate test function descriptions Generate test function source code files Launch Visual Studio

Visual Studio is used to edit and build the test function source code files into the List dll.

Engineering
Engineering is used to: Select and set the execution order of test functions (in the built List dll) Modify Pass Parameter values Modify Limit values Save this information into a test program .prg file

318

PN: 071-0999-00

Source Files
"Main()" { Continuity(); Icc(); Vol(); Voh(); } Continuity() { <source code> } Icc() { <source code> } Vol() { <source code> } Voh() { <source code> }
...compile...

Function execution sequence is fixed.

Test Solution Contrasts

THE Test Program


Changing anything requires an edit & re-compile.

visualATE Applications Training Student Guide

"set voltage ( 5.0 );"

Figure 143. Test Solution ContrastsTypical Test System

Vcc value is fixed

binary executable

Software Components Overview

(other code modules)

319

320

Source Files

B - Software Components

Function execution sequence is NOT fixed. ...no "main"...

List File (.dll)


Continuity() { <source code> } Icc() { <source code> } Vol() { <source code> } Voh() { <source code> } Continuity Vol
...build...

Voh

Test Program

"set voltage (ours->v_limit );" Icc

Essentially becomes "Main"

Figure 144. Test Solution ContrastvisualATE System

Vcc value is NOT fixed

Instead of "hard coding" the device specific value, the use of Pass Parameters is encouraged.

Determines which List is loaded and sets the execution order of Test Functions in the List.

Pass Parameters are elements of a Structure unique to a Test Function, meaning, every Test Function has its own Structure for storage. The Test Function name is used, in part, to name its Structure.

(other code modules)


The List is a library of Test Functions from which the Test Program can select and execute.

The address pointer "ours" is reassigned to reference the current Structure when a Test Function is active.

PN: 071-0999-00

(...done in Create)

(...done in Engineering)

visualATE Environment Lab

Lab Exercise

visualATE Environment Lab


During this lab students: Explore Operator mode Exercise Program properties Explore Engineering mode

Lab Procedure
During this portion of the class, the students explore Operator and Engineering modes of visualATE on the ASL test system. Items to be discussed are: Operator Loading and running a test program Examination of the Operator summary and datalog windows Discussion of button functionality Detailed examination of the datalog output Program properties Examination of the program window Discussion of button functionality Insertion and removal of test function descriptions Enabling/disabling test function execution Discussion of button functionality Usage of the single Test histogram Usage of the single test time domain Usage of the X/Y plot

Engineering

Examination of the datalog window

visualATE Applications Training Student Guide

321

B - Software Components

Notes

322

PN: 071-0999-00

Software Foundations
This section contains: visualATE directory structure Programming syntax and conventions Instrument pointer definition

Software Foundations

visualATE Applications Training Student Guide

323

C - Software Foundations

visualATE Directory Structure


Figure 145. visualATE Directory Structure

D: Contains Windows XP and Application system files

System Hard Disk Partitions

E: General storage C: Contains visualATE and ALL User Lists

visualATE Directories C:\ visualATE<version>

users lists
vate class demo

datalog 78xx debug NE57x programs Folder name and .lst name will be the same.

contains datalog files (.dl4) and lot summary files (.ls4) contains Test Function binary files (.obj) and built List file (.dll) contains test program files (.prg) Test Function List support files

"test function".cpp source files user.cpp user.h "List name".lst

List definition file

324

PN: 071-0999-00

Software Foundations

Programming Syntax and Conventions


Figure 146. Programming Syntax and Conventions

mux_18->close_relay(MUX_1_1)
Correct programming syntax statement for a MUX card residing in slot 18

mux_18->close_relay(MUX_1_1)
An address pointer described as: Instrument type and slot number

mux_18->close_relay(MUX_1_1)
Read as pointed to, described as: a hyphen and greater than

mux_18->close_relay(MUX_1_1)
Instrument command , typically in lower case

mux_18->close_relay(MUX_1_1)
Command argument, or input to the command

The address pointer shown is not part of visualATE core code. (It is not built into the visualATE system software.) Instrument address pointers are generated every time a List is developed. The address pointers are generated and inserted into code by Create based upon input from the user.

visualATE Applications Training Student Guide

325

C - Software Foundations

The second major step in List development is to define which instruments are used. This is done by filling in the slot selection in the List Properties > Boards matrix as shown in Figure 147. Figure 147. List PropertiesBoards Matrix

326

PN: 071-0999-00

Software Foundations

Filling in the used instruments is done by clicking on the down arrow and choosing a particular instrument as shown in Figure 148. Figure 148. List PropertiesInstrument Selection

Once the instruments have been selected and the OK button is clicked, two very important actions occur: Instrument address pointers are defined and inserted into User.cpp and User.h Required set of instruments is defined and recorded

This recorded instrument requirement is used during test program load to verify compatibility between the target test system and test program instrument usage. It is strongly suggested that only the instruments actually used in the test code be selected. This increases the portability of the final test solution. For example: if an OVI is selected for slot 1, then the target ASL system is required to have an OVI in slot 1 - even if the OVI is never referenced in the test code.

visualATE Applications Training Student Guide

327

C - Software Foundations

Notes

328

PN: 071-0999-00

You might also like