Preliminary Data Sheet ® ® INNOVATION and EXCELLENCE 11/19/03 DTL-IFB-485 Interface Board for Serial-Input Electronic Loads Features General Description • Simplifies interfacing to DATEL's DTL2A, DTL2A-LC, The DTL-IFB-485 uses a microcontroller with a 4-wire RS-485 interface to facilitate programming the DTL2A/2A-LC/3A/4A serial-input (isolated) loads using simple ASCII command strings through the serial port of a PC. THE DTL-IFB-485 plugs in to a DTL2/3/4 load and provides an address for the load (range 0 to 255) set by two rotary hexadecimal switches on the DTL-IFB-485. The standard RS-485 specification provides for up to 32 devices connected up to 4,000 feet of cable length. The DTL-IFB-485 operates at either 9600 or 1200 baud. The DTL-IFB-485 uses special high-input impedance receivers, allowing 256 devices to be driven by a single RS-485 port. A driver card can be installed in a PC, just as a COM port (RS-232) would be and is programmed identically to a normal RS-232 port. RS-232/RS485 interface adapters can also be used. The DTL-IFB-485 provides a convenient way to manage up to 256 electronic loads dispersed over a large area, such as might be typically encountered in a burn-in system or battery load/life test system. The DTL-IFB-485 provides a 12-bit A/D option that can read back the load voltage. • • • Ordering Information MODEL DESCRIPTION DTL-IFB-485 RS-485 serial Interface Board with A/D for serial-input electronic loads. WinBurn™ Active X Control available upon request (DTLx485) DTL-DB10-6 6' Cable from RS-485 port to DTL-IFB-485 +Vcc P3 Set Range 12-Bit A/D + Load - Load DTLXA Series Electronic Load O p t o I s o l a t o r s +Vcc Four Digital I/O lines RS-485 Receive Micro-controller Array/EEPROM RS-485 Transmit Fault A1/B1A P1 A2/B2 Green LED Board OK 12345 6789A Board in Fault BCD BCD 6789A 12345 • 0 EF • DTL3A & DTL4A, 100W serial-input electronic loads Connects to PC's serial port using RS485 adapter card Simplifies burn-in rack and load bank connections• Microcontroller with a four-wire RS-485 interface Update loads individually or simultaneously Red/Green LEDs for fault/unit enabled WinBurn™ ActiveX Controls Red LED 0 EF Figure 1. Simplified Schematic DATEL, Inc. Mansfield, MA 02048 (USA) * Tel: (508)339-3000, (800)233-2765 Fax: (508)339-6356 * Email: [email protected] * Internet: www.datel.com DTL-IFB-485 Interface Board for Serial-Input Electronic Loads Mechanical Specifications Note: (1) dimensions in inches (mm) (2) Mounting Holes 0.125 (3.16) diameter are on 1.640 (41.48) centers I/O Connections: P3 I/O Connections: P1 Pin Function 1 +5 Volts Supply 2 +5 Volts Supply 3 +5 Volts Supply 4 RS485 Receive "A1" 5 RS485 Receive "B1" 6 Digital Ground 7 RS485 Transmit "B2" 8 RS485 Transmit "A2" 9 Digital Ground 10 Digital Ground 2 Pin Function 1 +5 Volts Supply 2 Digital Ground 3 A/D Hi Input 4 A/D Lo Input 5 Load - 6 Load - 7 Load + 8 Load + InterfaceBoard Digital Input for Min. Serial-Input Electronic Typ. Max. Units 0.8 -0.8 Volts Volts mA 1 mA Max. Units Digital Inputs (pins 4 and 5 of Connector P1): VIL VIH 2.0 IIL IIH Digital Outputs Min. Typ. Digital Inputs (pins 4 and 5 of Connector P1): VIL VIH 2.4 IIL IIH Physical Dimensions 0.4 -4 4 DTL-IFB-485 Loads 2" x 3" x 0.675" (50.8 x 76.2 x 17.2mm) Socket extension below board 0.120 Pin Material Volts Volts mA mA Brass, solder coated Isolation, ± Load to IGround 500 Volts Isolation, any pin to either grnd 500 Volts Isolation, resistance 100 4.096, 8.192, 40.96 Volts Mohm Mounting Four PCB-through-holes #4-40 clearance Weight _ _ _ ounces (_ _ grams) Analog Input Input Voltage Range inches (See A/D Setup Section) Resolution 4.096V 12 bits 1 mV Timing Min. Issue command/recieve response: Typ. Max. 30 Units msec 8.192V 2 mV 40.96V 10 mV Differential Linearity Error ±3/4 LSB Absolute Maximum Ratings Integral Linearity Error ±2 LSB Accuracy (not calibrated) ±1 % FSR Accuracy (calibrated) ±0.1 % FSR These are stress ratings. Exposure of devices to any of these conditions may adversely affect long-term reliability. Proper operation under conditions other than those listed in the Performance/Functional Specifications Table is not implied. Offset Error (not calibrated,) ±3/4 ±3 Offset Error (calibrated) % FSR % FSR Gain Error (not calibrated) ±2 ±8 LSB Gain Error (calibrated) % FSR Power +5 Volts Supply (pin 1, 2, 3 of P1) +4.75 +5.0 +5.25 +100 mA Environmental Operating Ambient Temperature Ta, where no derating required. Natural Convection, vertical mount Storage Temperature –40 Humidity (Non-condensing) Altitude Above Sea Level 10,000 5.5 Volts Digital Input Voltage (pins 4,5,6,7): 5.5 Volts Output Reverse-Polarity Protection: No protection Output Overvoltage Protection: No protection Storage Temperature –40 to +105°C Lead Temperature (soldering, 10 sec.) +300°C Volts Current (pin1,2, 3 without DTLXA Load Power Supply Voltage (pin3): +105 °C 95 % feet 3 DTL-IFB-485 Interface Board for Serial-Input Electronic Loads USING THE DTL-IFB-485 SERIAL ADAPTER WITH DTL2A FAMILY T 100W SERIAL ELECTRONIC LOADS Overview The DTL-IFB-RS485 allows up to 256 DTL2A series of serial 100W loads to be operated on a single RS-485 half duplex cable at distances up to 5,000 feet from the controlling computer. The DTL-IFB-485 uses serial communication and can be connected to a standard PC RS232 COM port with an appropriate RS232/RS485 adapter. Alternatively a plug-in RS485 board (PCI/ISA) can be inserted in the control computer. Control of the DTL2A Series load is via ASCII string commands with ASCII responses. The DTL-IFB-485 includes a small microcontroller that makes the protocol conversions between the ASCII commands and the DTL2A2 Series load. Commands and responses are detailed in Command Syntax section herein. The DTL-IFB-485 also includes an uncommitted and optically isolated 12 bit analog input channel. Dip-switches on the board allow selection of unipolar ranges of 4.096V (resolution 1mV), 8.192V (resolution 2mV) and 40.96V (resolution 10mV). The analog input channel might typically be used for measuring the voltage across the DTL2A load from the U.U.T. or the current drawn using a shunt, but since it is a free isolated 2 terminal input, it can also be used for any other purpose. Six of the 10 lines are used for power distribution, and the remaining 4 are used as two pairs for the transmit and receive RS-485 differential signals. The use of standard flat 10 way I.D.C. cable allows socket connectors to be easily pressed on the cable at appropriate positions for the loads. Although 6 conductors are dedicated for power distribution, standard 28AWG cable has a resistance of 55 ohms/1,000 feet so the voltage drops incurred sending 5V power over a few tens of feet will be prohibitive. For longer distances, 5V power should be provided locally at each DTL-IFB-485 and connected via the screw connector. Standard RS-485 provides for a fan out of 32 units on a bus. The DTL-IFB-485 uses special low power driver/ receivers which only present a 1/8 unit load. Consequently up to 255 devices can be connected to a bus. The data transmission rate is set on the DTL-IFB485 using a 2 position dip switch. Baud rates of 9,600, 2,400, 1,200 and 300 can be selected as shown: 1 2 The DTL-IFB-485 requires +5V power at 100mA. Each interface board includes screw connections for the 5V power and the common signal cable can also distribute power to multiple units. RS-485 Communication RS-485 is a similar serial communication standard to the more common RS-232 found on all personal computers (COM1 & COM2 ports). The primary difference is that RS-232 uses single ended transmit and receive data lines with a ±5V to ±15V signal level and as a result, is limited to about 25 feet transmission distance, whereas RS-485 uses balanced differential transmit and receive lines with differential thresholds of +/-200mV and up to +12V and -7V of common mode voltage. Because of the differential configuration, RS485 is much less susceptible to noise than RS-232 and is specified to operate up to 5,000 feet away from the controller. True RS-485 is a full duplex system that transmits and receives on a common 2 wire pair with a ground wire (3 lines). The DTL-IFB-485 uses a variant of this that has separate transmit and receive pairs (often referred to as RS-422) plus ground and power distribution wires. To facilitate connecting multiple DTL-IFB-485 units and loads to one controller, a 10 way, 0.050" flat cable, is used to interconnect units and the controller: Figure 2. Data Transmission Speed Set by Dip-Switches Generally using 9,600 baud will give the fastest response and will be the best choice. The data format should be 8 data bits, 1 stop bit and no parity. For long distance transmission, over 100 feet, terminator resistors will improve the performance of the RS485 bus. There are several ways of providing termination matching, but a common method is to place a 120 ohm resistor across the differential transmit and receive lines at the far end of the bus. The same configuration can be added to the transmitting end, but no more than 2 sets of 120 ohm resistors should be added to a single line. The schematic of a simple RS-232 to RS-485 converter is shown in Figure 5, commercial equivalents can be purchased from many sources. Figure 1. RS-485 Signal Lines 4 InterfaceBoard for Serial-Input Electronic RS485 Communication (Cont'd) Initial Set Up If you are using a RS232 - RS485 adapter on a standard COM port, connect the transmit A (or -) terminal to line 4 of the flat cable, transmit B (or +) to line 5, receive A (or -) to line 8, receive B (or +) to line 7 and ground to line 6, 9 or 10. If you wish to connect the 5v power through the cable, connect the +5V to lines 1,2 & 3 and the common to lines 6, 9 & 10. Each DTL-IFB-485 has two hexadecimal rotary dip switches that set the unit address. Each interface board must be set to a unique address, no two or more units on the same cable can have the same address otherwise data collisions will occur on the RS-485 receive bus. This will not cause any physical damage but will result in garbled data. Select any address(es) that is (are) convenient. Example: A123 is equal to 7B in Hex so rotary switch SW2 is set to "7" and SW3 is set to "B". Set the baud rate dipswitches to 9,600 baud (as described in the previous section). If you wish to use a lower baud rate, then make changes in the terminal software settings (below) to match your selected speed. Turn on the 5V power to the DTL-IFB-485’s and interface adapter if used. To test things out, a standard dumb terminal program such as Windows Hyperterminal (stepthrough example starts on page 8 herein) can conveniently be used. Command Syntax The command syntac of the DLT-IFB-485 is very specific and must be adhered to for satisfactory operation. The microcontroller on board the DTL-IFB-485 has limited resources available for "command parsing", so its up to the user to provide properly structured command strings. All commands are case insensitive (i.e. A000_?R is the same as a000_?r). All commands must be followed by a carriage return (ASCII code 13) to execute. Loads DTL-IFB-485 1. A123_3456 Writes decimal data 3456 to load with address 123. Stores data, but does not load the output register. Unit responds with OK, FAULT or ERROR. OK if operation is successful, FAULT if load is out of compliance (e.g. zero voltage applied) or ERROR if error in data (non-numeric or > 4095). No response if address is invalid (no module) or out of range >255. If address only is sent i.e. Axxx, a unit with the selected address will respond with OK (this is a way to find if units are correctly connected to system and responding). 2. A123_3456L Writes decimal data 3456 to load with address 123 and loads DTL2A Series output register updating output current. Error response as in #1. 3. A234_?S Returns fault status from #234. Responds OK or FAULT. FAULT condition corresponds to out of compliance or no voltage at output terminals of the load. 4. A006_?V Returns A/D input channel voltage in 5 digit decimal string, range from 0.000 to 4.095/8.190/40.95V (depending on selected range). 5. A017_?R Returns range selected on A/D in single digit string. For example, responds 4.095 CAL if range calibrated or 4.095 UNC if range is uncalibrated (may be +/-3% error). Range is selected by dip switches on DTL-IFB-485 board (4.095V or 8.190V or 40.95V) 6. A123_?D Returns the value of the last data sent to the DTL2A Series load (e.g. 2037). Note that if you send A123_1234 without an L at the end to load the data, the ?D command will return the last data actually transferred to the load, not 1234. The delimiter character (underscore character_) is critical between address and data or command. A1232345L (with no delimiter) will not execute and will produce an Error response because the data is in the wrong position in the string (it looks like 345L), whereas A123--2345L (with 2 delimiters) will produce an Error response as the parser is expecting a number in the 6th character position. The delimiter character can be any with the exception of carriage return (ASCII13) or backspace (ASCII 11?). Convenient delimiter characters that the parser ignores are typically underscore_, #, x (any letter, number or symbol on the keyboard) or Space. The parser has no capability of throwing away leading spaces, zeros, etc. 7. L Simultaneously loads all modules with previously stored data. There is no return response to this global command. 8. C Simultaneously zeroes output of all modules. There is no return response to this global command. 9. G_0000 Loads all units with same data, regardless of address. There is no response to this command. Command will not execute if data > 4095. 10. A123_CAL Performs calibration (Test/setup purposes only). Select desired range on dipswitches on DTL-IFB-485 board. Connect a voltage calibrator to load outputs and using a dumb terminal or terminal emulation program enter the command and follow prompts. On completion, the range will be calibrated and the calibration constants (zero & gain) will be permanently stored in internal EEPROM. This command must be performed for each range separately to calibrate all ranges. All command strings must end with a Carriage Return (CR = 13 decimal) to activate the command. Any command that includes an address i.e. is unit specific, will generate a response, typically OK, FAULT or ERROR but certain global commands such as C (clear), L (load) or G_1234 (global data load) that affect all DTL-IFB-485’s on the cable will not generate any response although they will light the activity LED’s of all units. The family of commands and responses is as follows: 5 DTL-IFB-485 Interface Board for Serial-Input Electronic Loads Command Syntax (Con'td) First select the desired range on the A/D channel dipswitch as shown below: When operating from terminal emulation software, you can type in BACKSPACE to edit out any unwanted or erroneous characters before pressing ENTER. There is a typically a delay of a few tens of milliseconds after issuing a command and receiving the response. When operating from a program, allowance should be made for the fact that responses are not instantaneous. Typical Program Sequences In typical burn in or test set up configurations, there will be multiple loads and units under test connected to the RS-485 cable. The C (clear) command provides a way of setting every load to zero either initially or for shutdown or an emergency. In some systems, it will be desirable to set all the loads to the same value. The G_xxxx command is the easiest way to do this. If different load settings are required for each U.U.T. then either the Axxx_yyyyL or Axxx_yyyy commands will do the job. Sending an Axxx_yyyyL command will immediately set the addressed load to the data value yyyy on execution of the command. Omitting the L (load) character at the end of the command and just sending Axxx_yyyy has the effect of preloading the data yyyy in the addressed load but not changing the output current value from its existing state. Sending the L (load) command will then subsequently update the load. Typically you can pre-load all the loads with desired data and with a single L command update all the units together. The Axxx_?S command will return the status of a load. If it is operating normally, it will return OK but if the voltage applied to the load is below its compliance limit (typically 0.6V - 2.5V depending on DTLXA Series load type) then FAULT will be returned. This is a simple way to determine if the U.U.T. has failed. Connecting the A/D channel up to the load output allows direct reading of the voltage to better than 0.1% precision using the Axxx_?V command. This way the Unit Under Test (U.U.T.) output voltages can be monitored precisely and if desired, controlling software can be configured to perform data acquisition functions. Simply sending an address e.g. Axxx followed by a carriage return will return an OK response from a unit set to that address. If the address is not present on the system, no response will be received. This provides a way of initially checking the system by polling for active units. Similarly the Axxx_?R (range) command returns data on the range setting of the A/D channel and its calibration status. Setting and calibrating the A/D Channel As supplied, the DTL-IFB-485 will have been calibrated and will not normally require recalibration for 3 months - 1 year. The DTL-IFB-485 board does not include any adjustment potentiometers, instead calibration constants for each range are stored in non-volatile EEPROM in the microcontroller. Updating these constants can be performed using the Axxx_CAL command which is most easily performed using a PC with terminal emulation software or a dumb terminal. 6 Note that if any any other combination of switch settings is selected, you will receive a BAD RANGE response after the Axxx_CAL or Axxx_?R commands. Connect a voltage calibrator to the A/D channel inputs (note if these happen to be connected to the load output, the load is automatically set to zero during this procedure and will not load the calibrator). The calibrator should be capable of 0 - 20v output in millivolt steps. Type in the Axxx_CAL command. You should receive a response: Input +0.010V and press ENTER or ESC to exit The input voltage requested will vary with the range (4.096V range shown). Pressing ESC will abandon calibration and you will receive an ERROR response. Also when you run the Axxx_?R command afterwards, you will receive a response 4.096 UNC - the UNC denoting that this range is no longer calibrated. If the range is uncalibrated, the raw A/D data is returned and because of zero offset and gain errors, is likely to be only 1% accurate. Pressing the ENTER key will load the zero offset constant into EEPROM and proceed to the next step unless you have applied the wrong voltage. A check is made that the input voltage is within ±100% of the requested value, if not a BAD INPUT response is returned and calibration is abandoned. Assuming all is correct you will receive the next response: Input +4.000V and press ENTER or ESC to exit If the calibrator input is more than ±2.5% away from the requested value, you will receive the BAD INPUT message and calibration will be abandoned. Otherwise, you should receive the OK response and this range will then be calibrated. This can be checked with the Axxx_?R command which should respond 4.096 CAL (in this case). Using the Axxx_?V command and different calibrator settings, you can check other input voltages to your satisfaction. Note that calibration must be repeated on each range to calibrate all ranges, although this is unnecessary if you operate the DTLIFB-485 on one fixed range. InterfaceBoard for Serial-Input Electronic Programmed Operation Although most of this note describes operation with a dumb terminal, you can obviously issue commands from a program written in any language of your choice. All that is important to observe is that the command strings are correct in syntax and of the right length. For instance in BASIC: OPEN “COM1:9600” AS #1: A$ = “A012_?V”: PRINT #1, A$: PAUSE 20: INPUT #1, X$: DTL-IFB-485 Loads After sending only a carriage return with line feed, the next command will be skipped and may need to be resent. Remember that any addressed (unit specific) command will produce a response. opens COM1 port for I/O setup command string to read A/D send command (note PRINT adds a CR) wait 20 milliseconds read result into X$ After the command has been sent, it takes a few tens of milliseconds for the DTL-IFB-485 to process it and respond. Don’t try and read back data immediately. Also in the event that there is no response, you need some form of timeout so that your program does not hang waiting for input. Key points to note are that you must send an ASCII carriage return after the command string (character 13). The DTL-IFB-485 will not start parsing the command until it receives a carriage return or the command string is greater than 10 characters long (which should not happen in normal operation). The input buffer length of is limited to 10 characters. Commands longer than this may be executed or ignored (e.g. A123_1234LXXXXXXX will be treated as A123_1234L, but some of the additional characters may end up in the leading positions of the input buffer and mess up the next command, requiring resending of the command. Coding Table Unipolar Input Ranges ASCII Code Binary Equivalent Scale 0 to +4.096V 0 to +8.192V Co 0 to 40.96V +FS - 1 LSB +4.095V +8.190V +40.86V FFF 1111 1111 1111 7/8 FS +3.584V +7.168 +35.84V E00 1110 0000 3/4 FS +3.072V +6.144V +30.72V C00 1100 0000 0000 1/2 FS +2.048V +4.096V +20.48V 800 1000 0000 0000 1/4 FS +1.024V +2.048V +10.24V 400 0100 0000 0000 1/8 FS +0.512V +1.024V +5.12V 200 0010 0000 0000 1 LSB +0.001V +0.002V +10.00V 001 0000 0000 0001 0 +0.000V +0.000V +0.000V 000 0100 0000 0000 7 0000 DTL-IFB-485 Interface Board for Serial-Input Electronic Loads Utilizing Windows™ “HyperTerminal” to Control the DTL-IFB-485 (RS-485 Interface Board for 100 Watt Serial Input Loads) Many users will take the WinBurn-485X, Active X software component, and design their own installable software program to use in controlling the DTL-IFB-485 and DTLXA Series of Electronic Loads. An alternative approach outlined herein, is to use a "dumb terminal" or a "terminal emulation program" to send and receive commands to and from the DTL-IFB-485. Figure 4. DTL-RS232-485 Adapter Card If you don’t have a dumb RS232 terminal handy (who does these days) a terminal emulation program running on a PC, will do the same job just as well. Windows 95/ 98 provide a standard terminal emulation program called HyperTerminal (see Figure 3), which is usually located in the Accessories folder after Windows installation. This technical description explains how to configure HyperTerminal to operate with the DTL-IFB-485. An RS232 to 485 adapter (See Figure 4, DTL-RS232-485 product, or Figure 6, for schematic) can make it easy to connect to an RS-232-standard serial communication port (see Figure 5) of a personal computer (PC). COM Port >>>>>> Figure 3. Windows 95/98 HyperTerminal In the days of DOS, there were many terminal emulation programs available (example: Bitcom). If you want to operate under DOS, these will work just fine. Figure 5. Typical PC "Com" Port Figure 5. DTL-RS232-485 Adapter Card Schematic 8 InterfaceBoard for Serial-Input Electronic Loads DTL-IFB-485 If you are using a RS232-485 converter on one of the computer internal COM ports then enter the appropriate COM port. Most desktop computers provide 2 internal COM ports, COM1 & COM2 (laptops may have only one) that are brought out on the rear as 25 or 9-pin connectors . If you are using a plug-in RS-485 card or an RS-232 serial port expansion card, these ports will probably end up being set to COM3 and/or COM4, whatever Window’s device manager has permitted as satisfactory for installation without resource conflict. Enter the appropriate COM port and click the O.K. tab. 1. From the Windows START button select PROGRAMS, then ACCESSORIES, then HYPERTERMINAL. A window called HyperTerminal will open up. Look for the ICON with Hypertrm.exe beneath. Double click on it to start HyperTerminal. 2. HyperTerminal will first open up a window called Connection Description (see Figure 7). HyperTerminal is a full featured terminal emulation program that can work with dial up connections and modems, and is designed to store all this connection-specific data. We don’t need a lot of these features, for what we want to do which is to create a dumb terminal connecting directly to one of the COM ports, but we have to go along with HyperTerminal’s requirements to get there. In the Connection Description window, enter a name that you like for the configuration that you are about to set up e.g. “9600 Dumb” and also choose an icon that you like the look of. Click the O.K. tab. 4. The next window that opens up is titled Comx Properties. The first box is Bits per Second. Select the speed (9600, 2400, 1200 or 300) to correspond with the speed selected on the 2 position baud rate dipswitch on the DTL-IFB-485 (usually 9600 is the best choice). Set Data Bits to 8, Parity to None, Stop Bits to 1 and Flow Control to None. Figure 7. Connection Description Screen 3. A window titled Phone Number will now open up. Well, we don’t have a phone number for a dumb terminal, so go down to the Connect Using: box and select Direct to ComX where X can be 1,2,3 or 4 (see Figure 6). Figure 6. Direct to Com Port Screen The Advanced button controls FIFO buffer settings for the COM port UART, the speeds that we are using are so slow that these settings are fairly irrelevant, choosing default will work fine. Figure 7. Advance Port Setting Screen After selecting O.K. you will finally reach the terminal window (see Figure 8), but there are still more configuration details to set. Figure 8. Direct to Com Port Setting 9 DTL-IFB-485 Interface Board for Serial-Input Electronic Loads 6. At the terminal screen, you can type in any of the DTLIFB-485 commands e.g. A000_?V and the response should return from the board. Next time you run HyperTerminal, you can just click on the “9600 Dumb.ht” icon to run the terminal emulation program with all your pre-selected settings. 7. HyperTerminal has an anomality in its' set up feature. If you cannot establish communication with the DTL-IFB-485 after you have followed all the preceding steps, proceed as follows: Enable HyperTerminal’s status bar by clicking on the View menu. If you see “Connected 0:03:33” followed by “Auto Detect” and a second box also displaying “Auto Detect”, you will have a problem. The second box should display the connection speed (assume 9600 Baud) as 9600 8-N-1 (see Figure 10), but despite entering all this data in the HyperTerminal setup, the program is so hyper-intelligent, that it prefers to ignore it and auto detect the baud rate from the responding device. Figure 8. Terminal: Properties Settings 5. From the terminal window, select File and then Properties (see Figure 8). Select the Settings tab. Set Terminal Keys on, Emulation to Auto Detect, Backscroll Buffer lines to 500 (all these may be default values). Under ASCII settings (see Figure 9), set Send line ends with line feeds on, and echo typed character locally on, line delay 0 and character delay 0. Under ASCII receiving set Append Line Feeds to Incoming Line Ends on, force 7 bit ASCII off and line wrap on. Select the O.K. button and from the terminal window select exit (File/exit) or the top right corner X button (i.e. exit the application). Figure 10. Status Bar: 9600 8-N-1 This "auto-detection of HyperTerminal", requires the responding device to send a carriage return. This might work well with modem handshakes, but it doesn’t work with the DTL-IFB-485, which doesn’t emit any carriage returns until it is spoken to at the right speed. Surprisingly, there is no way to suppress this auto detecting of the baud rate from the configuration menus. To get round this problem, remove the connector from the DTL-IFB-485 and jumper pin 4 to 8 and 5 to 7 on the connector. Figure 9. Terminal: Properties Settings-ASCII You will receive a "You are currently connected" prompt “Do you want to save session 9600 Dumb?” (or whatever name you gave it). Respond by clicking yes. You will exit to the HyperTerminal window and should see an icon with “9600 Dumb.ht” under it (see Figure 3). Clicking on it will start HyperTerminal up with all the settings that we have entered. The reason for exiting and re-starting HyperTerminal is that it does not seem to pick up all the configuration settings unless you do it this way. 10 Figure 10. Status Bar: 9600 8-N-1 InterfaceBoard for Serial-Input Electronic DTL-IFB-485 & “HyperTerminal”, cont'd Hit Enter on the keyboard and the second “Auto Detect” should immediately change to “9600 8-N-1” (see Figure 9). Remove the jumpers and plug the connector back into the DTL-IFB-485. It should now be operational. On exiting HyperTerminal, it will prompt you to save this session and you should respond - yes. In future when you select the icon for this HyperTerminal configuration, it will automatically start with the correct baud rate configured and you will not have any further problem with auto detect. Contact DATEL if any problems...a file 9600 Dumb.ht can be provided that will contain the proper configuration setup. 8. The command syntax of the DTL-IFB-485 is very specific and must be adhered to for satisfactory operation. The microcontroller on board the DTL-IFB-485 has limited resources available for command parsing, so it is up to the user to provide properly structured command strings. All commands are case insensitive i.e. a000_?r is the same as A000_?r or A000_?R. All commands must be followed by a carriage return (ASCII code 13) to execute. Refer to page 5 herein for the DTLIFB-485 command syntax to use when using the HyperTerminal screen. Utilizing WinBurn™ Active X Control (DTLx485) with the DTL-IFB-485 DTL-IFB-485 Loads Installing WinBurn™ DTLx485 Insert the WinBurn™ DTLx485 disk, and click on the setup.exe file in /Windows Explorer...or go to Start, then Run and type A:\setup.exe (or find Setup.exe with the Browse command). Figure 12. Setup Screen Options Most users will choose the "Typical" setup option. This installs all the required system files with the actual application. The Compact Setup option doesn't install certain system files with the application, on the assumption that these files probably pre-exist in the users Windows\system directory already (example: an application running on a desktop, that has Visual Basic installed). This provides avoids duplicating certain files, keeping the overall application file as small as possible. Users who experience problems in using a Compact Setup Install, should reinstall using the Typical Setup option. The Custom option essentially allows the user to pick from either the Typical (default) or Compact options. Figure 11. DTLx485 ActiveX Control Each shipment/lot of DTL-IFB-485 product receives an installable WinBurn™ Active X component (DTLx485) on 3 1/2" diskettes. The control lets users provide simple lines of code to send "behind the scenes" ASCII commands to the DTL-IFB-485. The DTLx485 ActiveX component speeds test and burn-in application development, by letting users customize the user graphical interface as needed. Utilizing higher-level, graphical programming languages to control the ActiveX component, allows engineers to then construct virtual test and burn-in instrument programs with objects, instead of lines of code. Figure 13. DTLx485 ActiveX Control Custom Setup Screen The install program will request the second disk, and then prompt the user to Finish the install and exit, or to Launch the Application (not setup to do this presently in Beta version 1.01). 11 Adding DTLx485 Active X Control to Your Project's Toolbox After installing the WinBurn™ DTLx485, you can add the control to your Visual Basic-based application as follows: ResetAllLoads SubRoutine: Resets all loads to zero current On the menu tab, select Project, and then click on Components, which will display a Components Dialog Box (see Figure _ _). Alternatively, right-clicking on the Toolbox also brings up the Component Dialog Box. To add the DTLx485 ActiveX control to your application project, click on the Browse button, and locate the DTLx485.ocx file (WinBurn™ default directory of C:\Program Files\DATEL\DTLx\DTLx485. Click on the DTLx485.ocx file to add it to the Components list. Now, either double-click on the DTLx485, or select the check box to the left of the DTLx485 name to add it to the Toolbox. Click OK to close the Components dialog box. ResetLoads individual load to zero current SubRoutine: Resets Row Property: Sets the DTLXA Series load position (Row = Y) SetAllLoadCurrents Function: Sets all DTLXA Series Load Input Latches to the same load current value. This command requires all loads to be of the same type voltage/current (i.e., all 20A/ 50V models) SetLoadCurrent Function: Sets DTLXA Series Load with load current value to be set with next "StoreLoadCurrent", after RequestAmps sets value StoreLoadCurrent Function: Updates load to value set for load 0 - 15 DTLx485ctl Class/Members Under Visual Basic, the WinBurn™ DTLx485 ActiveX Control has the "Class" DTLx485ctl, with the following "Members" to point out: CheckFaultStatus Function: Returns the status of the DTLXA Series Fault Line 0 = No Fault 1 = Fault 2 = Time Out 3 = Port Not Open ClosePort Function: Closes the Serial Communication Port In general: Default properties are: Com Port = 5 (typical for 485 board...reset to 1 or 2 if using PC's com Port. 8 = Run time error Col ELType (DtlType?) Property: Sets the DTLXA Series load position (Column = X) Load = 2 for a DTL2A, change if DTL3A or DTL4A 0 -15 Row/Column set to 1st unit (0,0), change for multiple unit systems. Property: Sets the DTLXA Series Model Used (Current/ Voltage) To set a particular load's current, you'll first set properties if the Default settings don't apply. Then you'll do a RequestAmps, to set the desired current value. Then, a StoreLoad Current will enter this into the 1st latch. Finally, a SetLoadCurrent (or SetAll Load Currents) command, will update the loads with a new value. 2 =DTL2A/DTL2A-LC 3 = DTL3A 4 = DTL4A LastReadVoltage Property: Reports the last A/D reading -1 = Error LoadStoredCurrent SubRoutine: Updates load to value set for load OpenPort Function: Opens the Serial Communication Port PortNumber Property: Returns/sets the Communication Port ReadVoltage Function: Performs A/D conversion to read voltage (presumably at load) RequestAmps Property: Prepares the load WinBurn™ DTLx485, Port Control Developing an application that controls "instruments", whether they be test systems or burn-in racks, requires a user to first check the communication between the PC and the "instruments". The DTL-IFB can be connected to a standard PC RS232 COM port with an appropriate RS232/RS485 adapter (see Figure 4). Alternatively, a plug-in RS485 board can be plugged into the PC. COM1 and COM2 ports are typically brought out on the rear of a PC, and plug-in cards typically use COM3 or COM4. for the current value to be loaded with the StoreLoadCurrent and SetLoadCurrent commands 12 DTL-IFB-485 Interface Board for Serial-Input Electronic Loads WinBurn™ DTLx485 Commands: Set Address The Active X Control for a particular DTL-IFB-485 unit, will then have its Address set to match the Rotary Switches on the DTL-IFB-485. Physically, the rotary switches set the Hex Address for a particular DTL-IFB-485. Example: A123 is equal to 7B in Hex so rotary switch SW2 is set to "7" and SW3 is set to "B", while the DTLx485 Control is has its Row set to "7" and its Column set to "B". Refer to Figure15 for examples of dimensioning the Rows and Columns in code. Whereas each rotary switch has 16 settings, in the coding example of Figure 15, arrays have been setup for the rows and columns. The desired load current of any DTL-IFB-485 and DTLXA Series of 100 Watt loads is then entered in the "Set Current" text box. Figure 15 coding shows how a low and high value setting can be used, should dynamic loading and/or power-cycle burn-in applications be desired. Users must be careful to have provided appropriate heatsink/cooling to the DTLXA Series 100W electronic load to avoid catastrophic failure. The DTLXA Series is rated for only 10 Watts of power dissipation without external heatsink/cooling. Clicking on the "Set Current" button, will now update the load with the value entered in the text box. The DTL-IFB-485 has an isolated on-board 12-bit A/D, typically used to read the voltage of a power source (DUT) under test or burn-in. Clicking on the "Read Voltage" button of the DTLx485 Control, will return the Voltage reading of the DUT. User's can also poll the DTL-IFB-485's Fault line. The Fault line goes active whenever the DTLXA Series falls below its compliance voltage (typically 2.5V, but 0.6 Volts for model DTL2A-LC). Users desiring to reset the load to no current, can click on the DTLx485 Control button "Reset Load". A "timer" function can be used, should users desire to perform a dynamic burn-in, switching between high and low-levels of current. Review the General Declarations coding for a Form Load on the next page for examples of this usage. The nature of the protocol of interfacing through an RS-485 port to communicate to the DTL-IFB-485 boards does not lend itself to fast updates (although all loads can be updated at the same time). Although users can control up to 256 DTL-IFB-485s from a single PC port, they may find that 128 units on a single RS-485 port, provides reasonable update times for burn-in applications. Also, multiple ports on a single PC approach can be used to extend the # of units beyond the 256 limit of a single COM port. Figure 14. OK or Open Port Invalid Message 13 InterfaceBoard ® for Serial-Input ® Electronic Loads ISO 9001 INNOVATION and EXCELLENCE DATEL DATEL DATEL DATEL DATEL, Inc. 11 Cabot Boulevard, Mansfield, MA 02048-1151 Tel: (508) 339-3000 (800) 233-2765 Fax: (508) 339-6356 Internet: www.datel.com Email: [email protected] Data Sheet Fax Back: (508) 261-2857 DTL-IFB-485 DS-04XX 7/03 (UK) LTD. Tadley, England Tel: (01256)-880444 S.A.R.L. Montigny Le Bretonneux, France Tel: 01-34-60-01-01 GmbH München, Germany Tel: 89-544334-0 KK Tokyo, Japan Tel: 3-3779-1031, Osaka Tel: 6-354-2025 DATEL makes no representation that the use of its products in the circuits described herein, or the use of other technical information contained herein, will not infringe upon existing or future patent rights. The descriptions contained herein do not imply the granting of licenses to make, use, or sell equipment constructed in accordance therewith. Specifications are subject to change without notice. The DATEL logo is a registered DATEL, Inc. trademark. 14