Rohde&Schwarz TS-PIO5 User Manual

Page 1
R&S®TSPIO5 Digital LVDS Functional Test Module
User Manual
(;ÜWX2)
User Manual
Version 04
Page 2
This manual describes the following R&S®TSVP module:
R&S®TS-PIO5 (1525.5807.02)
© 2018 Rohde & Schwarz GmbH & Co. KG
Mühldorfstr. 15, 81671 München, Germany
Phone: +49 89 41 29 - 0
Fax: +49 89 41 29 12 164
Email: info@rohde-schwarz.com
Internet: www.rohde-schwarz.com
Subject to change – Data without tolerance limits is not binding.
R&S® is a registered trademark of Rohde & Schwarz GmbH & Co. KG.
Trade names are trademarks of the owners.
1178.3940.02 | Version 04 | R&S®TSPIO5
In this manual, products from Rohde & Schwarz are written without the ® symbol, e.g. R&S®TSPIO5 is written as R&S TSPIO5.
Page 3
1171.0000.42 - 09 Page 1

Basic Safety Instructions

Always read through and comply with the following safety instructions!
All plants and locations of the Rohde & Schwarz group of companies make every effort to keep the safety standards of our products up to date and to offer our customers the highest possible degree of safety. Our products and the auxiliary equipment they require are designed, built and tested in accordance with the safety standards that apply in each case. Compliance with these standards is continuously monitored by our quality assurance system. The product described here has been designed, built and tested in
accordance with the EC Certificate of Conformity and has left the manufacturer’s plant in a condition fully
complying with safety standards. To maintain this condition and to ensure safe operation, you must observe all instructions and warnings provided in this manual. If you have any questions regarding these safety instructions, the Rohde & Schwarz group of companies will be happy to answer them.
Furthermore, it is your responsibility to use the product in an appropriate manner. This product is designed for use solely in industrial and laboratory environments or, if expressly permitted, also in the field and must not be used in any way that may cause personal injury or property damage. You are responsible if the product is used for any purpose other than its designated purpose or in disregard of the manufacturer's instructions. The manufacturer shall assume no responsibility for such use of the product.
The product is used for its designated purpose if it is used in accordance with its product documentation and within its performance limits (see data sheet, documentation, the following safety instructions). Using the product requires technical skills and, in some cases, a basic knowledge of English. It is therefore essential that only skilled and specialized staff or thoroughly trained personnel with the required skills be allowed to use the product. If personal safety gear is required for using Rohde & Schwarz products, this will be indicated at the appropriate place in the product documentation. Keep the basic safety instructions and the product documentation in a safe place and pass them on to the subsequent users.
Observing the safety instructions will help prevent personal injury or damage of any kind caused by dangerous situations. Therefore, carefully read through and adhere to the following safety instructions before and when using the product. It is also absolutely essential to observe the additional safety instructions on personal safety, for example, that appear in relevant parts of the product documentation. In these safety instructions, the word "product" refers to all merchandise sold and distributed by the Rohde & Schwarz group of companies, including instruments, systems and all accessories. For product-specific information, see the data sheet and the product documentation.
Safety labels on products
The following safety labels are used on products to warn against risks and dangers.
Symbol
Meaning
Symbol
Meaning
Notice, general danger location Observe product documentation
ON/OFF Power
Caution when handling heavy equipment
Standby indication
Danger of electric shock
Direct current (DC)
Page 4
Basic Safety Instructions
1171.0000.42 - 09 Page 2
Symbol
Meaning
Symbol
Meaning
Caution ! Hot surface
Alternating current (AC)
Protective conductor terminal To identify any terminal which is intended for connection to an external conductor for protection against electric shock in case of a fault, or the terminal of a protective earth
Direct/alternating current (DC/AC)
Earth (Ground)
Class II Equipment to identify equipment meeting the safety requirements specified for Class II equipment (device protected by double or reinforced insulation)
Frame or chassis Ground terminal
EU labeling for batteries and accumulators For additional information, see section "Waste
disposal/Environmental protection", item 1.
Be careful when handling electrostatic sensitive devices
EU labeling for separate collection of electrical and electronic devices
For additional information, see section "Waste disposal/Environmental protection", item 2.
Warning! Laser radiation For additional information, see section
"Operation", item 7.
Signal words and their meaning
The following signal words are used in the product documentation in order to warn the reader about risks and dangers.
Indicates a hazardous situation which, if not avoided, will result in death or serious injury.
Indicates a hazardous situation which, if not avoided, could result in death or serious injury.
Indicates a hazardous situation which, if not avoided, could result in minor or moderate injury.
Indicates information considered important, but not hazard-related, e.g. messages relating to property damage. In the product documentation, the word ATTENTION is used synonymously.
These signal words are in accordance with the standard definition for civil applications in the European Economic Area. Definitions that deviate from the standard definition may also exist in other economic areas or military applications. It is therefore essential to make sure that the signal words described here are always used only in connection with the related product documentation and the related product. The use of signal words in connection with unrelated products or documentation can result in misinterpretation and in personal injury or material damage.
Page 5
Basic Safety Instructions
1171.0000.42 - 09 Page 3
Operating states and operating positions
The product may be operated only under the operating conditions and in the positions specified by the manufacturer, without the product's ventilation being obstructed. If the manufacturer's specifications are not observed, this can result in electric shock, fire and/or serious personal injury or death. Applicable local or national safety regulations and rules for the prevention of accidents must be observed in all work performed.
1. Unless otherwise specified, the following requirements apply to Rohde & Schwarz products: predefined operating position is always with the housing floor facing down, IP protection 2X, use only indoors, max. operating altitude 2000 m above sea level, max. transport altitude 4500 m above sea level. A tolerance of ±10 % shall apply to the nominal voltage and ±5 % to the nominal frequency, overvoltage category 2, pollution degree 2.
2. Do not place the product on surfaces, vehicles, cabinets or tables that for reasons of weight or stability are unsuitable for this purpose. Always follow the manufacturer's installation instructions when installing the product and fastening it to objects or structures (e.g. walls and shelves). An installation that is not carried out as described in the product documentation could result in personal injury or even death.
3. Do not place the product on heat-generating devices such as radiators or fan heaters. The ambient temperature must not exceed the maximum temperature specified in the product documentation or in the data sheet. Product overheating can cause electric shock, fire and/or serious personal injury or even death.
Electrical safety
If the information on electrical safety is not observed either at all or to the extent necessary, electric shock, fire and/or serious personal injury or death may occur.
1. Prior to switching on the product, always ensure that the nominal voltage setting on the product matches the nominal voltage of the mains-supply network. If a different voltage is to be set, the power fuse of the product may have to be changed accordingly.
2. In the case of products of safety class I with movable power cord and connector, operation is permitted only on sockets with a protective conductor contact and protective conductor.
3. Intentionally breaking the protective conductor either in the feed line or in the product itself is not permitted. Doing so can result in the danger of an electric shock from the product. If extension cords or connector strips are implemented, they must be checked on a regular basis to ensure that they are safe to use.
4. If there is no power switch for disconnecting the product from the mains, or if the power switch is not suitable for this purpose, use the plug of the connecting cable to disconnect the product from the mains. In such cases, always ensure that the power plug is easily reachable and accessible at all times. For example, if the power plug is the disconnecting device, the length of the connecting cable must not exceed 3 m. Functional or electronic switches are not suitable for providing disconnection from the AC supply network. If products without power switches are integrated into racks or systems, the disconnecting device must be provided at the system level.
5. Never use the product if the power cable is damaged. Check the power cables on a regular basis to ensure that they are in proper operating condition. By taking appropriate safety measures and carefully laying the power cable, ensure that the cable cannot be damaged and that no one can be hurt by, for example, tripping over the cable or suffering an electric shock.
Page 6
Basic Safety Instructions
1171.0000.42 - 09 Page 4
6. The product may be operated only from TN/TT supply networks fuse-protected with max. 16 A (higher fuse only after consulting with the Rohde & Schwarz group of companies).
7. Do not insert the plug into sockets that are dusty or dirty. Insert the plug firmly and all the way into the socket provided for this purpose. Otherwise, sparks that result in fire and/or injuries may occur.
8. Do not overload any sockets, extension cords or connector strips; doing so can cause fire or electric shocks.
9. For measurements in circuits with voltages V
rms
> 30 V, suitable measures (e.g. appropriate measuring equipment, fuse protection, current limiting, electrical separation, insulation) should be taken to avoid any hazards.
10. Ensure that the connections with information technology equipment, e.g. PCs or other industrial computers, comply with the IEC 60950-1 / EN 60950-1 or IEC 61010-1 / EN 61010-1 standards that apply in each case.
11. Unless expressly permitted, never remove the cover or any part of the housing while the product is in operation. Doing so will expose circuits and components and can lead to injuries, fire or damage to the product.
12. If a product is to be permanently installed, the connection between the protective conductor terminal on site and the product's protective conductor must be made first before any other connection is made. The product may be installed and connected only by a licensed electrician.
13. For permanently installed equipment without built-in fuses, circuit breakers or similar protective devices, the supply circuit must be fuse-protected in such a way that anyone who has access to the product, as well as the product itself, is adequately protected from injury or damage.
14. Use suitable overvoltage protection to ensure that no overvoltage (such as that caused by a bolt of lightning) can reach the product. Otherwise, the person operating the product will be exposed to the danger of an electric shock.
15. Any object that is not designed to be placed in the openings of the housing must not be used for this purpose. Doing so can cause short circuits inside the product and/or electric shocks, fire or injuries.
16. Unless specified otherwise, products are not liquid-proof (see also section "Operating states and operating positions", item 1). Therefore, the equipment must be protected against penetration by liquids. If the necessary precautions are not taken, the user may suffer electric shock or the product itself may be damaged, which can also lead to personal injury.
17. Never use the product under conditions in which condensation has formed or can form in or on the product, e.g. if the product has been moved from a cold to a warm environment. Penetration by water increases the risk of electric shock.
18. Prior to cleaning the product, disconnect it completely from the power supply (e.g. AC supply network or battery). Use a soft, non-linting cloth to clean the product. Never use chemical cleaning agents such as alcohol, acetone or diluents for cellulose lacquers.
Operation
1. Operating the products requires special training and intense concentration. Make sure that persons who use the products are physically, mentally and emotionally fit enough to do so; otherwise, injuries or material damage may occur. It is the responsibility of the employer/operator to select suitable personnel for operating the products.
Page 7
Basic Safety Instructions
1171.0000.42 - 09 Page 5
2. Before you move or transport the product, read and observe the section titled "Transport".
3. As with all industrially manufactured goods, the use of substances that induce an allergic reaction (allergens) such as nickel cannot be generally excluded. If you develop an allergic reaction (such as a skin rash, frequent sneezing, red eyes or respiratory difficulties) when using a Rohde & Schwarz product, consult a physician immediately to determine the cause and to prevent health problems or stress.
4. Before you start processing the product mechanically and/or thermally, or before you take it apart, be sure to read and pay special attention to the section titled "Waste disposal/Environmental protection", item 1.
5. Depending on the function, certain products such as RF radio equipment can produce an elevated level of electromagnetic radiation. Considering that unborn babies require increased protection, pregnant women must be protected by appropriate measures. Persons with pacemakers may also be exposed to risks from electromagnetic radiation. The employer/operator must evaluate workplaces where there is a special risk of exposure to radiation and, if necessary, take measures to avert the potential danger.
6. Should a fire occur, the product may release hazardous substances (gases, fluids, etc.) that can cause health problems. Therefore, suitable measures must be taken, e.g. protective masks and protective clothing must be worn.
7. Laser products are given warning labels that are standardized according to their laser class. Lasers can cause biological harm due to the properties of their radiation and due to their extremely concentrated electromagnetic power. If a laser product (e.g. a CD/DVD drive) is integrated into a Rohde & Schwarz product, absolutely no other settings or functions may be used as described in the product documentation. The objective is to prevent personal injury (e.g. due to laser beams).
8. EMC classes (in line with EN 55011/CISPR 11, and analogously with EN 55022/CISPR 22, EN 55032/CISPR 32) Class A equipment:
Equipment suitable for use in all environments except residential environments and environments that are directly connected to a low-voltage supply network that supplies residential buildings Note: Class A equipment is intended for use in an industrial environment. This equipment may cause radio disturbances in residential environments, due to possible conducted as well as radiated disturbances. In this case, the operator may be required to take appropriate measures to eliminate these disturbances.
Class B equipment:
Equipment suitable for use in residential environments and environments that are directly connected to a low-voltage supply network that supplies residential buildings
Repair and service
1. The product may be opened only by authorized, specially trained personnel. Before any work is performed on the product or before the product is opened, it must be disconnected from the AC supply network. Otherwise, personnel will be exposed to the risk of an electric shock.
Page 8
Basic Safety Instructions
1171.0000.42 - 09 Page 6
2. Adjustments, replacement of parts, maintenance and repair may be performed only by electrical experts authorized by Rohde & Schwarz. Only original parts may be used for replacing parts relevant to safety (e.g. power switches, power transformers, fuses). A safety test must always be performed after parts relevant to safety have been replaced (visual inspection, protective conductor test, insulation resistance measurement, leakage current measurement, functional test). This helps ensure the continued safety of the product.
Batteries and rechargeable batteries/cells
If the information regarding batteries and rechargeable batteries/cells is not observed either at all or to the extent necessary, product users may be exposed to the risk of explosions, fire and/or serious personal injury, and, in some cases, death. Batteries and rechargeable batteries with alkaline electrolytes (e.g. lithium cells) must be handled in accordance with the EN 62133 standard.
1. Cells must not be taken apart or crushed.
2. Cells or batteries must not be exposed to heat or fire. Storage in direct sunlight must be avoided. Keep cells and batteries clean and dry. Clean soiled connectors using a dry, clean cloth.
3. Cells or batteries must not be short-circuited. Cells or batteries must not be stored in a box or in a drawer where they can short-circuit each other, or where they can be short-circuited by other conductive materials. Cells and batteries must not be removed from their original packaging until they are ready to be used.
4. Cells and batteries must not be exposed to any mechanical shocks that are stronger than permitted.
5. If a cell develops a leak, the fluid must not be allowed to come into contact with the skin or eyes. If contact occurs, wash the affected area with plenty of water and seek medical aid.
6. Improperly replacing or charging cells or batteries that contain alkaline electrolytes (e.g. lithium cells) can cause explosions. Replace cells or batteries only with the matching Rohde & Schwarz type (see parts list) in order to ensure the safety of the product.
7. Cells and batteries must be recycled and kept separate from residual waste. Rechargeable batteries and normal batteries that contain lead, mercury or cadmium are hazardous waste. Observe the national regulations regarding waste disposal and recycling.
8. Follow the transport stipulations of the carrier (IATA-DGR, IMDG-Code, ADR, RID) when returning lithium batteries to Rohde & Schwarz subsidiaries.
Transport
1. The product may be very heavy. Therefore, the product must be handled with care. In some cases, the user may require a suitable means of lifting or moving the product (e.g. with a lift-truck) to avoid back or other physical injuries.
2. Handles on the products are designed exclusively to enable personnel to transport the product. It is therefore not permissible to use handles to fasten the product to or on transport equipment such as cranes, fork lifts, wagons, etc. The user is responsible for securely fastening the products to or on the means of transport or lifting. Observe the safety regulations of the manufacturer of the means of transport or lifting. Noncompliance can result in personal injury or material damage.
Page 9
Basic Safety Instructions
1171.0000.42 - 09 Page 7
3. If you use the product in a vehicle, it is the sole responsibility of the driver to drive the vehicle safely and properly. The manufacturer assumes no responsibility for accidents or collisions. Never use the product in a moving vehicle if doing so could distract the driver of the vehicle. Adequately secure the product in the vehicle to prevent injuries or other damage in the event of an accident.
Waste disposal/Environmental protection
1. Specially marked equipment has a battery or accumulator that must not be disposed of with unsorted municipal waste, but must be collected separately. It may only be disposed of at a suitable collection point or via a Rohde & Schwarz customer service center.
2. Waste electrical and electronic equipment must not be disposed of with unsorted municipal waste, but must be collected separately. Rohde & Schwarz GmbH & Co. KG has developed a disposal concept and takes full responsibility for take-back obligations and disposal obligations for manufacturers within the EU. Contact your Rohde & Schwarz customer service center for environmentally responsible disposal of the product.
3. If products or their components are mechanically and/or thermally processed in a manner that goes beyond their intended use, hazardous substances (heavy-metal dust such as lead, beryllium, nickel) may be released. For this reason, the product may only be disassembled by specially trained personnel. Improper disassembly may be hazardous to your health. National waste disposal regulations must be observed.
4. If handling the product releases hazardous substances or fuels that must be disposed of in a special way, e.g. coolants or engine oils that must be replenished regularly, the safety instructions of the manufacturer of the hazardous substances or fuels and the applicable regional waste disposal regulations must be observed. Also observe the relevant safety instructions in the product documentation. The improper disposal of hazardous substances or fuels can cause health problems and lead to environmental damage.
For additional information about environmental protection, visit the Rohde & Schwarz website.
Page 10

Instrucciones de seguridad elementales

1171.0000.42 - 09 Page 8
Instrucciones de seguridad elementales
¡Es imprescindible leer y cumplir las siguientes instrucciones e informaciones de seguridad!
El principio del grupo de empresas Rohde & Schwarz consiste en tener nuestros productos siempre al día con los estándares de seguridad y de ofrecer a nuestros clientes el máximo grado de seguridad. Nuestros productos y todos los equipos adicionales son siempre fabricados y examinados según las normas de seguridad vigentes. Nuestro sistema de garantía de calidad controla constantemente que sean cumplidas estas normas. El presente producto ha sido fabricado y examinado según el certificado de conformidad de la UE y ha salido de nuestra planta en estado impecable según los estándares técnicos de seguridad. Para poder preservar este estado y garantizar un funcionamiento libre de peligros, el usuario deberá atenerse a todas las indicaciones, informaciones de seguridad y notas de alerta. El grupo de empresas Rohde & Schwarz está siempre a su disposición en caso de que tengan preguntas referentes a estas informaciones de seguridad.
Además queda en la responsabilidad del usuario utilizar el producto en la forma debida. Este producto está destinado exclusivamente al uso en la industria y el laboratorio o, si ha sido expresamente autorizado, para aplicaciones de campo y de ninguna manera deberá ser utilizado de modo que alguna persona/cosa pueda sufrir daño. El uso del producto fuera de sus fines definidos o sin tener en cuenta las instrucciones del fabricante queda en la responsabilidad del usuario. El fabricante no se hace en ninguna forma responsable de consecuencias a causa del mal uso del producto.
Se parte del uso correcto del producto para los fines definidos si el producto es utilizado conforme a las indicaciones de la correspondiente documentación del producto y dentro del margen de rendimiento definido (ver hoja de datos, documentación, informaciones de seguridad que siguen). El uso del producto hace necesarios conocimientos técnicos y ciertos conocimientos del idioma inglés. Por eso se debe tener en cuenta que el producto solo pueda ser operado por personal especializado o personas instruidas en profundidad con las capacidades correspondientes. Si fuera necesaria indumentaria de seguridad para el uso de productos de Rohde & Schwarz, encontraría la información debida en la documentación del producto en el capítulo correspondiente. Guarde bien las informaciones de seguridad elementales, así como la documentación del producto, y entréguelas a usuarios posteriores.
Tener en cuenta las informaciones de seguridad sirve para evitar en lo posible lesiones o daños por peligros de toda clase. Por eso es imprescindible leer detalladamente y comprender por completo las siguientes informaciones de seguridad antes de usar el producto, y respetarlas durante el uso del producto. Deberán tenerse en cuenta todas las demás informaciones de seguridad, como p. ej. las referentes a la protección de personas, que encontrarán en el capítulo correspondiente de la documentación del producto y que también son de obligado cumplimiento. En las presentes informaciones de seguridad se recogen todos los objetos que distribuye el grupo de empresas Rohde & Schwarz bajo la denominación de "producto", entre ellos también aparatos, instalaciones así como toda clase de accesorios. Los datos específicos del producto figuran en la hoja de datos y en la documentación del producto.
Page 11
Instrucciones de seguridad elementales
1171.0000.42 - 09 Page 9
Señalización de seguridad de los productos
Las siguientes señales de seguridad se utilizan en los productos para advertir sobre riesgos y peligros.
Símbolo
Significado
Símbolo
Significado
Aviso: punto de peligro general Observar la documentación del producto
Tensión de alimentación de PUESTA EN MARCHA / PARADA
Atención en el manejo de dispositivos de peso elevado
Indicación de estado de espera (standby)
Peligro de choque eléctrico
Corriente continua (DC)
Advertencia: superficie caliente
Corriente alterna (AC)
Conexión a conductor de protección
Corriente continua / Corriente alterna (DC/AC)
Conexión a tierra
El aparato está protegido en su totalidad por un aislamiento doble (reforzado)
Conexión a masa
Distintivo de la UE para baterías y acumuladores
Más información en la sección "Eliminación/protección del medio ambiente", punto 1.
Aviso: Cuidado en el manejo de dispositivos sensibles a la electrostática (ESD)
Distintivo de la UE para la eliminación por separado de dispositivos eléctricos y electrónicos
Más información en la sección "Eliminación/protección del medio ambiente", punto 2.
Advertencia: rayo láser Más información en la sección
"Funcionamiento", punto 7.
Page 12
Instrucciones de seguridad elementales
1171.0000.42 - 09 Page 10
Palabras de señal y su significado
En la documentación del producto se utilizan las siguientes palabras de señal con el fin de advertir contra riesgos y peligros.
Indica una situación de peligro que, si no se evita, causa lesiones graves o incluso la muerte.
Indica una situación de peligro que, si no se evita, puede causar lesiones graves o incluso la muerte.
Indica una situación de peligro que, si no se evita, puede causar lesiones leves o moderadas.
Indica información que se considera importante, pero no en relación con situaciones de peligro; p. ej., avisos sobre posibles daños materiales. En la documentación del producto se emplea de forma sinónima el término CUIDADO.
Las palabras de señal corresponden a la definición habitual para aplicaciones civiles en el área económica europea. Pueden existir definiciones diferentes a esta definición en otras áreas económicas o en aplicaciones militares. Por eso se deberá tener en cuenta que las palabras de señal aquí descritas sean utilizadas siempre solamente en combinación con la correspondiente documentación del producto y solamente en combinación con el producto correspondiente. La utilización de las palabras de señal en combinación con productos o documentaciones que no les correspondan puede llevar a interpretaciones equivocadas y tener por consecuencia daños en personas u objetos.
Estados operativos y posiciones de funcionamiento
El producto solamente debe ser utilizado según lo indicado por el fabricante respecto a los estados operativos y posiciones de funcionamiento sin que se obstruya la ventilación. Si no se siguen las indicaciones del fabricante, pueden producirse choques eléctricos, incendios y/o lesiones graves con posible consecuencia de muerte. En todos los trabajos deberán ser tenidas en cuenta las normas nacionales y locales de seguridad del trabajo y de prevención de accidentes.
1. Si no se convino de otra manera, es para los productos Rohde & Schwarz válido lo que sigue: como posición de funcionamiento se define por principio la posición con el suelo de la caja para abajo, modo de protección IP 2X, uso solamente en estancias interiores, utilización hasta 2000 m sobre el nivel del mar, transporte hasta 4500 m sobre el nivel del mar. Se aplicará una tolerancia de ±10 % sobre el voltaje nominal y de ±5 % sobre la frecuencia nominal. Categoría de sobrecarga eléctrica 2, índice de suciedad 2.
2. No sitúe el producto encima de superficies, vehículos, estantes o mesas, que por sus características de peso o de estabilidad no sean aptos para él. Siga siempre las instrucciones de instalación del fabricante cuando instale y asegure el producto en objetos o estructuras (p. ej. paredes y estantes). Si se realiza la instalación de modo distinto al indicado en la documentación del producto, se pueden causar lesiones o, en determinadas circunstancias, incluso la muerte.
3. No ponga el producto sobre aparatos que generen calor (p. ej. radiadores o calefactores). La temperatura ambiente no debe superar la temperatura máxima especificada en la documentación del producto o en la hoja de datos. En caso de sobrecalentamiento del producto, pueden producirse choques eléctricos, incendios y/o lesiones graves con posible consecuencia de muerte.
Page 13
Instrucciones de seguridad elementales
1171.0000.42 - 09 Page 11
Seguridad eléctrica
Si no se siguen (o se siguen de modo insuficiente) las indicaciones del fabricante en cuanto a seguridad eléctrica, pueden producirse choques eléctricos, incendios y/o lesiones graves con posible consecuencia de muerte.
1. Antes de la puesta en marcha del producto se deberá comprobar siempre que la tensión preseleccionada en el producto coincida con la de la red de alimentación eléctrica. Si es necesario modificar el ajuste de tensión, también se deberán cambiar en caso dado los fusibles correspondientes del producto.
2. Los productos de la clase de protección I con alimentación móvil y enchufe individual solamente podrán enchufarse a tomas de corriente con contacto de seguridad y con conductor de protección conectado.
3. Queda prohibida la interrupción intencionada del conductor de protección, tanto en la toma de corriente como en el mismo producto. La interrupción puede tener como consecuencia el riesgo de que el producto sea fuente de choques eléctricos. Si se utilizan cables alargadores o regletas de enchufe, deberá garantizarse la realización de un examen regular de los mismos en cuanto a su estado técnico de seguridad.
4. Si el producto no está equipado con un interruptor para desconectarlo de la red, o bien si el interruptor existente no resulta apropiado para la desconexión de la red, el enchufe del cable de conexión se deberá considerar como un dispositivo de desconexión. El dispositivo de desconexión se debe poder alcanzar fácilmente y debe estar siempre bien accesible. Si, p. ej., el enchufe de conexión a la red es el dispositivo de desconexión, la longitud del cable de conexión no debe superar 3 m). Los interruptores selectores o electrónicos no son aptos para el corte de la red eléctrica. Si se integran productos sin interruptor en bastidores o instalaciones, se deberá colocar el interruptor en el nivel de la instalación.
5. No utilice nunca el producto si está dañado el cable de conexión a red. Compruebe regularmente el correcto estado de los cables de conexión a red. Asegúrese, mediante las medidas de protección y de instalación adecuadas, de que el cable de conexión a red no pueda ser dañado o de que nadie pueda ser dañado por él, p. ej. al tropezar o por un choque eléctrico.
6. Solamente está permitido el funcionamiento en redes de alimentación TN/TT aseguradas con fusibles de 16 A como máximo (utilización de fusibles de mayor amperaje solo previa consulta con el grupo de empresas Rohde & Schwarz).
7. Nunca conecte el enchufe en tomas de corriente sucias o llenas de polvo. Introduzca el enchufe por completo y fuertemente en la toma de corriente. La no observación de estas medidas puede provocar chispas, fuego y/o lesiones.
8. No sobrecargue las tomas de corriente, los cables alargadores o las regletas de enchufe ya que esto podría causar fuego o choques eléctricos.
9. En las mediciones en circuitos de corriente con una tensión U
eff
> 30 V se deberán tomar las medidas apropiadas para impedir cualquier peligro (p. ej. medios de medición adecuados, seguros, limitación de tensión, corte protector, aislamiento etc.).
10. Para la conexión con dispositivos informáticos como un PC o un ordenador industrial, debe comprobarse que éstos cumplan los estándares IEC60950-1/EN60950-1 o IEC61010-1/EN 61010-1 válidos en cada caso.
Page 14
Instrucciones de seguridad elementales
1171.0000.42 - 09 Page 12
11. A menos que esté permitido expresamente, no retire nunca la tapa ni componentes de la carcasa mientras el producto esté en servicio. Esto pone a descubierto los cables y componentes eléctricos y puede causar lesiones, fuego o daños en el producto.
12. Si un producto se instala en un lugar fijo, se deberá primero conectar el conductor de protección fijo con el conductor de protección del producto antes de hacer cualquier otra conexión. La instalación y la conexión deberán ser efectuadas por un electricista especializado.
13. En el caso de dispositivos fijos que no estén provistos de fusibles, interruptor automático ni otros mecanismos de seguridad similares, el circuito de alimentación debe estar protegido de modo que todas las personas que puedan acceder al producto, así como el producto mismo, estén a salvo de posibles daños.
14. Todo producto debe estar protegido contra sobretensión (debida p. ej. a una caída del rayo) mediante los correspondientes sistemas de protección. Si no, el personal que lo utilice quedará expuesto al peligro de choque eléctrico.
15. No debe introducirse en los orificios de la caja del aparato ningún objeto que no esté destinado a ello. Esto puede producir cortocircuitos en el producto y/o puede causar choques eléctricos, fuego o lesiones.
16. Salvo indicación contraria, los productos no están impermeabilizados (ver también el capítulo "Estados operativos y posiciones de funcionamiento", punto 1). Por eso es necesario tomar las medidas necesarias para evitar la entrada de líquidos. En caso contrario, existe peligro de choque eléctrico para el usuario o de daños en el producto, que también pueden redundar en peligro para las personas.
17. No utilice el producto en condiciones en las que pueda producirse o ya se hayan producido condensaciones sobre el producto o en el interior de éste, como p. ej. al desplazarlo de un lugar frío a otro caliente. La entrada de agua aumenta el riesgo de choque eléctrico.
18. Antes de la limpieza, desconecte por completo el producto de la alimentación de tensión (p. ej. red de alimentación o batería). Realice la limpieza de los aparatos con un paño suave, que no se deshilache. No utilice bajo ningún concepto productos de limpieza químicos como alcohol, acetona o diluyentes para lacas nitrocelulósicas.
Funcionamiento
1. El uso del producto requiere instrucciones especiales y una alta concentración durante el manejo. Debe asegurarse que las personas que manejen el producto estén a la altura de los requerimientos necesarios en cuanto a aptitudes físicas, psíquicas y emocionales, ya que de otra manera no se pueden excluir lesiones o daños de objetos. El empresario u operador es responsable de seleccionar el personal usuario apto para el manejo del producto.
2. Antes de desplazar o transportar el producto, lea y tenga en cuenta el capítulo "Transporte".
3. Como con todo producto de fabricación industrial no puede quedar excluida en general la posibilidad de que se produzcan alergias provocadas por algunos materiales empleados ―los llamados alérgenos (p. ej. el níquel)―. Si durante el manejo de productos Rohde & Schwarz se producen reacciones alérgicas, como p. ej. irritaciones cutáneas, estornudos continuos, enrojecimiento de la conjuntiva o dificultades respiratorias, debe avisarse inmediatamente a un médico para investigar las causas y evitar cualquier molestia o daño a la salud.
4. Antes de la manipulación mecánica y/o térmica o el desmontaje del producto, debe tenerse en cuenta imprescindiblemente el capítulo "Eliminación/protección del medio ambiente", punto 1.
Page 15
Instrucciones de seguridad elementales
1171.0000.42 - 09 Page 13
5. Ciertos productos, como p. ej. las instalaciones de radiocomunicación RF, pueden a causa de su función natural, emitir una radiación electromagnética aumentada. Deben tomarse todas las medidas necesarias para la protección de las mujeres embarazadas. También las personas con marcapasos pueden correr peligro a causa de la radiación electromagnética. El empresario/operador tiene la obligación de evaluar y señalizar las áreas de trabajo en las que exista un riesgo elevado de exposición a radiaciones.
6. Tenga en cuenta que en caso de incendio pueden desprenderse del producto sustancias tóxicas (gases, líquidos etc.) que pueden generar daños a la salud. Por eso, en caso de incendio deben usarse medidas adecuadas, como p. ej. máscaras antigás e indumentaria de protección.
7. Los productos con láser están provistos de indicaciones de advertencia normalizadas en función de la clase de láser del que se trate. Los rayos láser pueden provocar daños de tipo biológico a causa de las propiedades de su radiación y debido a su concentración extrema de potencia electromagnética. En caso de que un producto Rohde & Schwarz contenga un producto láser (p. ej. un lector de CD/DVD), no debe usarse ninguna otra configuración o función aparte de las descritas en la documentación del producto, a fin de evitar lesiones (p. ej. debidas a irradiación láser).
8. Clases de compatibilidad electromagnética (conforme a EN 55011 / CISPR 11; y en analogía con EN 55022 / CISPR 22, EN 55032 / CISPR 32) Aparato de clase A:
Aparato adecuado para su uso en todos los entornos excepto en los residenciales y en aquellos conectados directamente a una red de distribución de baja tensión que suministra corriente a edificios residenciales. Nota: Los aparatos de clase A están destinados al uso en entornos industriales. Estos aparatos pueden causar perturbaciones radioeléctricas en entornos residenciales debido a posibles perturbaciones guiadas o radiadas. En este caso, se le podrá solicitar al operador que tome las medidas adecuadas para eliminar estas perturbaciones.
Aparato de clase B:
Aparato adecuado para su uso en entornos residenciales, así como en aquellos conectados directamente a una red de distribución de baja tensión que suministra corriente a edificios residenciales.
Reparación y mantenimiento
1. El producto solamente debe ser abierto por personal especializado con autorización para ello. Antes de manipular el producto o abrirlo, es obligatorio desconectarlo de la tensión de alimentación, para evitar toda posibilidad de choque eléctrico.
2. El ajuste, el cambio de partes, el mantenimiento y la reparación deberán ser efectuadas solamente por electricistas autorizados por Rohde & Schwarz. Si se reponen partes con importancia para los aspectos de seguridad (p. ej. el enchufe, los transformadores o los fusibles), solamente podrán ser sustituidos por partes originales. Después de cada cambio de partes relevantes para la seguridad deberá realizarse un control de seguridad (control a primera vista, control del conductor de protección, medición de resistencia de aislamiento, medición de la corriente de fuga, control de funcionamiento). Con esto queda garantizada la seguridad del producto.
Page 16
Instrucciones de seguridad elementales
1171.0000.42 - 09 Page 14
Baterías y acumuladores o celdas
Si no se siguen (o se siguen de modo insuficiente) las indicaciones en cuanto a las baterías y acumuladores o celdas, pueden producirse explosiones, incendios y/o lesiones graves con posible consecuencia de muerte. El manejo de baterías y acumuladores con electrolitos alcalinos (p. ej. celdas de litio) debe seguir el estándar EN 62133.
1. No deben desmontarse, abrirse ni triturarse las celdas.
2. Las celdas o baterías no deben someterse a calor ni fuego. Debe evitarse el almacenamiento a la luz directa del sol. Las celdas y baterías deben mantenerse limpias y secas. Limpiar las conexiones sucias con un paño seco y limpio.
3. Las celdas o baterías no deben cortocircuitarse. Es peligroso almacenar las celdas o baterías en estuches o cajones en cuyo interior puedan cortocircuitarse por contacto recíproco o por contacto con otros materiales conductores. No deben extraerse las celdas o baterías de sus embalajes originales hasta el momento en que vayan a utilizarse.
4. Las celdas o baterías no deben someterse a impactos mecánicos fuertes indebidos.
5. En caso de falta de estanqueidad de una celda, el líquido vertido no debe entrar en contacto con la piel ni los ojos. Si se produce contacto, lavar con agua abundante la zona afectada y avisar a un médico.
6. En caso de cambio o recarga inadecuados, las celdas o baterías que contienen electrolitos alcalinos (p. ej. las celdas de litio) pueden explotar. Para garantizar la seguridad del producto, las celdas o baterías solo deben ser sustituidas por el tipo Rohde & Schwarz correspondiente (ver lista de recambios).
7. Las baterías y celdas deben reciclarse y no deben tirarse a la basura doméstica. Las baterías o acumuladores que contienen plomo, mercurio o cadmio deben tratarse como residuos especiales. Respete en esta relación las normas nacionales de eliminación y reciclaje.
8. En caso de devolver baterías de litio a las filiales de Rohde & Schwarz, debe cumplirse las normativas sobre los modos de transporte (IATA-DGR, código IMDG, ADR, RID).
Transporte
1. El producto puede tener un peso elevado. Por eso es necesario desplazarlo o transportarlo con precaución y, si es necesario, usando un sistema de elevación adecuado (p. ej. una carretilla elevadora), a fin de evitar lesiones en la espalda u otros daños personales.
2. Las asas instaladas en los productos sirven solamente de ayuda para el transporte del producto por personas. Por eso no está permitido utilizar las asas para la sujeción en o sobre medios de transporte como p. ej. grúas, carretillas elevadoras de horquilla, carros etc. Es responsabilidad suya fijar los productos de manera segura a los medios de transporte o elevación. Para evitar daños personales o daños en el producto, siga las instrucciones de seguridad del fabricante del medio de transporte o elevación utilizado.
3. Si se utiliza el producto dentro de un vehículo, recae de manera exclusiva en el conductor la responsabilidad de conducir el vehículo de manera segura y adecuada. El fabricante no asumirá ninguna responsabilidad por accidentes o colisiones. No utilice nunca el producto dentro de un vehículo en movimiento si esto pudiera distraer al conductor. Asegure el producto dentro del vehículo debidamente para evitar, en caso de un accidente, lesiones u otra clase de daños.
Page 17
Instrucciones de seguridad elementales
1171.0000.42 - 09 Page 15
Eliminación/protección del medio ambiente
1. Los dispositivos marcados contienen una batería o un acumulador que no se debe desechar con los residuos domésticos sin clasificar, sino que debe ser recogido por separado. La eliminación se debe efectuar exclusivamente a través de un punto de recogida apropiado o del servicio de atención al cliente de Rohde & Schwarz.
2. Los dispositivos eléctricos usados no se deben desechar con los residuos domésticos sin clasificar, sino que deben ser recogidos por separado. Rohde & Schwarz GmbH & Co.KG ha elaborado un concepto de eliminación de residuos y asume plenamente los deberes de recogida y eliminación para los fabricantes dentro de la UE. Para desechar el producto de manera respetuosa con el medio ambiente, diríjase a su servicio de atención al cliente de Rohde & Schwarz.
3. Si se trabaja de manera mecánica y/o térmica cualquier producto o componente más allá del funcionamiento previsto, pueden liberarse sustancias peligrosas (polvos con contenido de metales pesados como p. ej. plomo, berilio o níquel). Por eso el producto solo debe ser desmontado por personal especializado con formación adecuada. Un desmontaje inadecuado puede ocasionar daños para la salud. Se deben tener en cuenta las directivas nacionales referentes a la eliminación de residuos.
4. En caso de que durante el trato del producto se formen sustancias peligrosas o combustibles que deban tratarse como residuos especiales (p. ej. refrigerantes o aceites de motor con intervalos de cambio definidos), deben tenerse en cuenta las indicaciones de seguridad del fabricante de dichas sustancias y las normas regionales de eliminación de residuos. Tenga en cuenta también en caso necesario las indicaciones de seguridad especiales contenidas en la documentación del producto. La eliminación incorrecta de sustancias peligrosas o combustibles puede causar daños a la salud o daños al medio ambiente.
Se puede encontrar más información sobre la protección del medio ambiente en la página web de Rohde & Schwarz.
Page 18

Customer Support

Technical support – where and when you need it
For quick, expert help with any Rohde & Schwarz equipment, contact one of our Customer Support Centers. A team of highly qualified engineers provides telephone support and will work with you to find a solution to your query on any aspect of the operation, programming or applications of Rohde & Schwarz equipment.
Up-to-date information and upgrades
To keep your instrument up-to-date and to be informed about new application notes related to your instrument, please send an e-mail to the Customer Support Center stating your instrument and your wish. We will take care that you will get the right information.
Europe, Africa, Middle East
North America
Latin America
Asia/Pacific
China
Phone +49 89 4129 12345
customersupport@rohde-schwarz.com
Phone 1-888-TEST-RSA (1-888-837-8772)
customer.support@rsa.rohde-schwarz.com
Phone +1-410-910-7988
customersupport.la@rohde-schwarz.com
Phone +65 65 13 04 88
customersupport.asia@rohde-schwarz.com
Phone +86-800-810-8228 / +86-400-650-5896
customersupport.china@rohde-schwarz.com
1171.0200.22-06.00
Page 19
R&S®TSPIO5
1.1 General...........................................................................................................................7
1.2 Characteristics.............................................................................................................. 7
1.3 Possible Applications...................................................................................................8
1.3.1 Digital Functional Test..................................................................................................... 8
1.3.1.1 Digital Functional Test – Static........................................................................................ 8
1.3.1.2 Digital Functional Test – Dynamic................................................................................... 9

Contents

Contents
1 Use...........................................................................................................7
2 View.......................................................................................................10
3 Block Diagrams.................................................................................... 11
4 Design................................................................................................... 17
4.1 Mechanical Design......................................................................................................17
4.2 Interfaces..................................................................................................................... 18
4.3 Display Elements........................................................................................................ 18
5 Functional Description........................................................................ 20
5.1 Overview...................................................................................................................... 20
5.1.1 General......................................................................................................................... 20
5.1.2 LVDS Channels............................................................................................................. 21
5.1.3 LVTTL Channels............................................................................................................21
5.1.4 Clock Paths................................................................................................................... 21
5.1.5 RS485 Transceiver Channels....................................................................................... 22
5.1.6 Memory Management in Driver.....................................................................................22
5.1.7 Stimulus Memory.......................................................................................................... 22
5.1.8 Response Memory........................................................................................................ 23
5.1.9 Static Digital Test...........................................................................................................23
5.1.10 Dynamic Digital Test......................................................................................................23
5.2 Programming of Digital Tests.................................................................................... 24
5.2.1 Digital Test with Device Driver Function........................................................................25
5.2.1.1 Initialization................................................................................................................... 25
5.2.1.2 Auxiliary Function..........................................................................................................25
5.2.1.3 Error Queries.................................................................................................................25
3User Manual 1178.3940.02 ─ 04
Page 20
R&S®TSPIO5
5.2.1.4 Digital Test with LowLevel Driver Functions.................................................................25
5.2.1.5 Digital Test Compliant with IVI Digital............................................................................26
5.2.2 Digital Test with DIO Manager.......................................................................................27
5.2.2.1 File Format.................................................................................................................... 27
5.2.2.2 Configuring DIOMGR.................................................................................................... 29
5.2.2.3 Structure of a Test Program.......................................................................................... 30
5.2.2.4 Loading Waveform File................................................................................................. 31
5.2.2.5 Executing Pattern Set................................................................................................... 32
5.3 Configuration of Digital Channels............................................................................. 32
5.3.1 Configuration of Stimulus and Response Channels......................................................32
5.3.2 Time Setting for Data Output.........................................................................................32
5.3.3 Time Setting for Data Recording...................................................................................33
5.3.4 Configuration of Data Width in Dynamic Mode............................................................. 34
Contents
5.4 Triggering and Sequence Control............................................................................. 34
5.4.1 Trigger Units..................................................................................................................34
5.4.2 Generation of Trigger Signals....................................................................................... 36
5.5 PWM............................................................................................................................. 37
5.6 Frequency Measurement............................................................................................38
5.7 Selection of System Clock/Clock Output..................................................................38
5.8 Implementation Example: LVDS <-> TTL.................................................................. 38
5.8.1 Supply Voltage.............................................................................................................. 38
5.8.2 Level Converter.............................................................................................................39
5.8.3 TTL Level...................................................................................................................... 39
5.8.4 EMC.............................................................................................................................. 40
5.8.5 Possible Parts List.........................................................................................................40
6 Startup...................................................................................................42
6.1 Installation of R&S TSPIO5 Module..........................................................................42
7 Software................................................................................................43
7.1 Driver Software............................................................................................................43
7.2 Soft Panel.....................................................................................................................44
7.2.1 Configuration of Digital Channels..................................................................................45
7.2.2 Time Settings for Data Transmission............................................................................ 46
7.3 Programming Examples............................................................................................. 46
4User Manual 1178.3940.02 ─ 04
Page 21
R&S®TSPIO5
7.3.1 Digital Test of "DIO Manager" Library............................................................................46
7.3.1.1 Main Function................................................................................................................47
7.3.1.2 Error Handling............................................................................................................... 48
7.3.1.3 Execution of Digital Test................................................................................................48
7.3.1.4 Evaluation of Failed Patterns........................................................................................ 49
7.3.2 Dynamic Pattern Execution with IVI Digital................................................................... 51
7.3.2.1 Main Function................................................................................................................51
7.3.2.2 Error Handling............................................................................................................... 53
7.3.2.3 Execution of Digital Test................................................................................................53
7.3.2.4 Generation of Pattern Set............................................................................................. 54
7.3.2.5 Evaluation of Failed Patterns........................................................................................ 57
7.3.3 Static Pattern Execution with IVI Digital........................................................................ 60
7.3.3.1 Main Function................................................................................................................60
Contents
7.3.3.2 Error Handling............................................................................................................... 61
7.3.3.3 Execution of Digital Test................................................................................................61
7.3.3.4 Execution of a Pattern Set............................................................................................ 62
7.3.3.5 Execution of a Single Pattern........................................................................................65
7.3.3.6 Evaluation of a Failed Pattern....................................................................................... 65
7.3.4 Static Pattern Output with LowLevel Driver Functions.................................................67
7.3.4.1 Main Function................................................................................................................67
7.3.4.2 Error Handling............................................................................................................... 68
7.3.4.3 Execution of Digital Test................................................................................................68
7.3.4.4 Execution of a Pattern Set............................................................................................ 69
7.3.5 Dynamic Pattern Execution with LowLevel Driver Functions.......................................70
7.3.5.1 Main Function................................................................................................................70
7.3.5.2 Error Handling............................................................................................................... 71
7.3.5.3 Execution of Digital Test................................................................................................72
7.3.5.4 Generation of a Pattern Set.......................................................................................... 73
7.3.6 Triggered Pattern Execution..........................................................................................73
7.3.6.1 Main Program................................................................................................................74
7.3.6.2 Error Handling............................................................................................................... 75
7.3.6.3 Triggered Digital Test.................................................................................................... 75
8 SelfTest................................................................................................ 78
5User Manual 1178.3940.02 ─ 04
Page 22
R&S®TSPIO5
8.1 LED Test....................................................................................................................... 78
8.2 PowerOn Test............................................................................................................. 78
8.3 TSVP SelfTest............................................................................................................. 78
9.1 Connector X1...............................................................................................................80
9.2 Connector X20.............................................................................................................82
9.3 Connector X30.............................................................................................................83
9.4 Connector X200 (Digital A).........................................................................................85
9.5 Connector X201 (Digital B).........................................................................................87
9.6 Connector X202 (CLK)................................................................................................ 88
9.7 Connector X203 (TRIG)...............................................................................................89
9.8 Connector X900 (RS485)............................................................................................ 89
Contents
9 Interface Description........................................................................... 80
10 Specifications.......................................................................................91
6User Manual 1178.3940.02 ─ 04
Page 23
R&S®TSPIO5

1 Use

1.1 General

Use
Characteristics
This manual describes the function and operation of the R&S TSPIO5 digital LVDS functional test module for use in the test system versatile platform R&S CompactTSVP. The module is controlled by the CompactPCI bus. The board occupies just one slot at the front of the TSVP, therefore making it possible to set up extremely highperform­ance and compact measuring systems.
The R&S TSPIO5 digital functional test module is used wherever digital circuits are tested by flexibly programmable static or dynamic stimulation and the response is recorded. Bidirectional LVDS, LVTTL and RS485 transceiver channels are available for this purpose.
Deterministic, simultaneous stimulation and recording of digital signals makes it possi­ble to simulate operating conditions in a manner that is very close to reality. A large local memory pool and an independent sequence controller are available on the mod­ule to ensure that the precise and predictable time response can be maintained for out­put, recording and analysis of the bit patterns. Extensive trigger options via the PXI trigger bus enable synchronization with additional R&S TSPIO5 modules or other measurement and stimulus modules. This makes it possible to increase the number of digital channels in an application. Measurements in which signals are to be recorded synchronously are also possible.
A soft panel is available for interactive operation of the module. An IVIC driver is provi­ded to allow the module to be used under software control.

1.2 Characteristics

Features of the R&S TSPIO5 digital functional test module.
Two MDR connectors, each with 10 LVDS channels (8 data, 1 universal channel, 1 clock) LVDM bidirectional, terminated with 100
2 LVTTL signals per MDR connector
+5 V / max. 0.30 A available at every MDR connector, protected by fuse and diode
10 RS485 transceiver channels available via a contact strip on the board
Sample rate up to 200 Msample/s
Maximum resolution 5 ns
Memory depth 2 Mpattern (32 bit)
10 bit RS485
4 bit LVTTL
18 bit LVDS
7User Manual 1178.3940.02 ─ 04
Page 24
R&S®TSPIO5

1.3 Possible Applications

Use
Possible Applications
Synchronization/triggering via
PXI trigger bus
SMB clock/trigger input and output
PXI 10 MHz clock
FPGAbased flexibility
Standalone selftest capability
LabWindows IVIC driver available
Used in R&S CompactTSVP
The R&S TSPIO5 digital functional test module is used for testing digital modules or devices that are controlled using LVDS signals. This type of functional test is used to check the overall operation of a digital circuit under conditions that are as close to real­ity as possible. Digital input patterns that measure output signals are applied for this purpose.
The R&S TSPIO5 digital functional test module can be used for tasks such as the fol­lowing:
Digital functional test (lowspeed/highspeed, IO control)
Bit pattern stimulation (lowspeed/highspeed, digital buses)
Bit pattern measurement (lowspeed/highspeed)
Downloads, e.g. for flash components

1.3.1 Digital Functional Test

1.3.1.1 Digital Functional Test – Static
Characteristics for which correct interaction of the logic modules is more important than the verification of time-critical limits are tested in the static digital functional test. The application outputs the patterns to be stimulated, reads in the UUT response via the module inputs and compares it with the expected response. Comparison with the nomi­nal values then results in a PASS or FAIL statement. The comparison takes place in the application. As the time response (length of time that a pattern is available; sam­pling time point of the inputs) is controlled primarily by the host computer, this test can­not be used to test timecritical or chronologically precisely defined sequences.
With the static test, the order of the sequence is deterministic, i.e. the chronological order of the patterns as well as the readin procedure is predictable. How long the interval from one pattern to the next pattern will be and how large the interval from application of a pattern to reading in of the data will be are, however, not predictable. Here, the operating system of the host computer (task switching, etc.) influences the runtimes in a nonpredictable way.
8User Manual 1178.3940.02 ─ 04
Page 25
R&S®TSPIO5
1.3.1.2 Digital Functional Test – Dynamic
Use
Possible Applications
In the realtime test, overall operation of the digital section of a UUT is tested under operating conditions that are as close to reality as possible. For this purpose, digital patterns with a precisely defined, usually high clock rate and precise time response are applied at the UUT connections and the responses recorded. Recording is also per­formed with a precisely defined, reproducible time response. The basic requirement for exact, predictable timing is that the patterns for the stimulus are stored in the memories "downstream of the drivers" and can be processed with a defined time response and at a high speed. To enable this, the module has its own sequence controller in the FPGA. The recorded input data is also initially stored in a memory on the module and later retrieved by the application on the host computer and evaluated for a PASS/FAIL deci­sion.
9User Manual 1178.3940.02 ─ 04
Page 26
R&S®TSPIO5

2 View

View
Figure 2-1: View of R&S TS‑PIO5 module
10User Manual 1178.3940.02 ─ 04
Page 27
R&S®TSPIO5

3 Block Diagrams

Block Diagrams
This section contains a functional block diagram of the R&S TSPIO5 module as well as a detailed block diagram.
Figure 3-1: Functional block diagram of R&S TS‑PIO5 module
Figure 3-2: Detailed block diagram of R&S TS‑PIO5 module
11User Manual 1178.3940.02 ─ 04
Page 28
R&S®TSPIO5
Block Diagrams
Figure 3-3: Stimulus
Figure 3-4: Driver and receiver
12User Manual 1178.3940.02 ─ 04
Page 29
R&S®TSPIO5
Block Diagrams
Figure 3-5: Clock switch matrix
Figure 3-6: Trigger and timing control
13User Manual 1178.3940.02 ─ 04
Page 30
R&S®TSPIO5
Block Diagrams
Figure 3-7: Digital input comparator
Figure 3-8: Hardware trigger configurator
14User Manual 1178.3940.02 ─ 04
Page 31
R&S®TSPIO5
Block Diagrams
Figure 3-9: Trigger logic block
Figure 3-10: Trigger output configurator
15User Manual 1178.3940.02 ─ 04
Page 32
R&S®TSPIO5
Block Diagrams
Figure 3-11: R&S TS‑PIO5 modules in R&S CompactTSVP
16User Manual 1178.3940.02 ─ 04
Page 33
R&S®TSPIO5

4 Design

4.1 Mechanical Design

Design
Mechanical Design
The R&S TSPIO5 module is designed as a long cPCI plugin module for mounting in the front of the R&S CompactTSVP.
The front panel has a locating pin to ensure that the module is correctly inserted into the R&S CompactTSVP. The module is secured using the two fastening screws on the front panel.
The front MDR26 connectors X200 and X201 are used for connecting LVDS UUTs. The two SMB female connectors X202 and X203 are provided for clock and trigger sig­nals.
The RS485 signals are fed to the UUT via the tworow pin connector X900 by means of a ribbon cable and an applicationspecific frontpanel section in the adjacent slot.
Connector X30 is solely intended to provide mechanical stability. The contacts of the connector are not used.
Interface X20/X1 connects the R&S TSPIO5 module to the cPCI backplane/PXI con­trol backplane.
Figure 4-1: Arrangement of interfaces on R&S TS
PIO5 module
17User Manual 1178.3940.02 ─ 04
Page 34
R&S®TSPIO5

4.2 Interfaces

Design
Display Elements
Table 4-1: Interfaces on R&S TS‑PIO5
Name Use
X1 cPCI bus backplane
X20 Backplane extension (PXI), rear I/O
X30 Analog bus (not used)
X200 DIGITAL A (MDR26 connector)
X201 DIGITAL B (MDR26 connector)
X202 CLK (clock input/output)
X203 TRIG (trigger input/output)
X900 RS485 signals
A detailed interface description with signal assignment to the connectors can be found in Chapter 9, "Interface Description", on page 80 of this manual.

4.3 Display Elements

On the front panel of the R&S TSPIO5 are three light emitting diodes (LEDs); they have the following meaning:
Figure 4-2: Display ElementsR&S TS
PIO5
18User Manual 1178.3940.02 ─ 04
Page 35
R&S®TSPIO5
Design
Display Elements
Table 4-2: Display Elements R&S TS‑PIO5
LED Description
ERR (red) Error condition:
Lights up if, after the supply voltage is switched on, a fault is detected on the module during the poweron test.
COM (yellow) Communication:
Lights up when data is being exchanged via the interface.
PWR (green) Supply voltage:
Lights up when all the necessary supply voltages are present.
19User Manual 1178.3940.02 ─ 04
Page 36
R&S®TSPIO5

5 Functional Description

5.1 Overview

5.1.1 General

Functional Description
Overview
The R&S TSPIO5 digital functional test module enables FPGAbased stimuli and response operation of the LVDS, LVTTL as well as RS485 transceiver paths with differ­ent maximum data rates depending on signal type.
In the static operating mode, the driver software controls the output and reading in of data via the PCI bus.
In the dynamic operating mode, a DDR3 RAM initially buffers the data in order to then output it with the maximum possible sampling rate on the user interface. When data is read in, it is buffered in the DDR3 RAM at the given data rate so that this data can then be processed by the driver software.
The digital channels of the R&S TSPIO5 module are divided into logical groups according to the path characteristics. Depending on the maximum sample rate, individ­ual paths can be used together for one transmission. Figure 5-1 lists the maximum sample rates for the individual paths.
If the maximum data rate of 200 Msample/s is used, channels 1 to 16 are used dynam­ically and channels 17 to 32 are used statically. At sample rates of 25 Msample/s to 100 Msample/s, channels 1 to 22 are used dynamically and the rest can be operated statically. At sample rates of 20 Msample/s and lower, all channels can be used dynamically. The channels that can be used dynamically can be switched bit by bit between static and dynamic mode. The outputs can be individually deactivated stati­cally and, at sample rates below 100 Msample/s, also dynamically. This must be taken into consideration when configuring the pattern set.
Figure 5-1: Digital channels of R&S TS
For synchronous operation, the functional test module itself provides the clock or, oper­ating as a slave, can also link the data transmission to an external clock.
All settings as well as clock generation take place on the module itself, which means that no additional stimulus modules are necessary.
PIO5 modules
20User Manual 1178.3940.02 ─ 04
Page 37
R&S®TSPIO5

5.1.2 LVDS Channels

5.1.3 LVTTL Channels

5.1.4 Clock Paths

Functional Description
Overview
The R&S TSPIO5 digital functional test module provides 18 LVDS ports (DIGA_Dx, DIGA_GP, DIGB_Dx and DIGB_GP) for bidirectional operation. As a result of the LVDM driver technology, the outputs can be operated with termination at both ends. 100 termination resistors are used at the outputs of the R&S TSPIO5 functional test module. The TX/RX paths are permanently connected to each other, which allows a selftest to be performed without external cabling. An integrated opencircuit failsafe circuit ensures that a stable condition is maintained even if inputs are open.
The R&S TSPIO5 digital functional test module provides 4 LVTTL ports (DIGA_IOx and DIGB_IOx) in 3.3 V logic for bidirectional operation. They are designed to be 5 V tolerant. Builtin pullup resistors ensure a stable high state even if inputs are open.
For synchronous data transmission in both directions, the R&S TSPIO5 functional test module itself provides a clock. This clock can be tapped on a designated LVDS chan­nel (DIGA_CLKIN and DIGB_CLKIN) at both MDR connectors or at the SMB female connector CLK.
In slave mode, sampling is determined by an external clock, and for this purpose the clock is applied at one of the connections described here.
The digital channels can be operated in different scenarios as required. The clock pro­vided on the module (Clock Master) is available for outputting or recording the pat­terns. Alternatively, they can be used together with an external clock (Clock Slave) that is applied at the SMB female connector CLK or at the CLK pins of the LVDS connec­tors Digital A and Digital B.
Table 5-1: Configuration of Clock Distribution and Timing
Scenario based on TSPIO5
Clock Master 100
Clock Slave 20 to 100
Clock frequency
MHz
(clock output)
(clock input)
0 to 20
(trigger input)
Timing pattern Possible sample rate –
direct (DDR)
Msample/s
Integer factor of 100 0 to 100 (200)
0 to 100 (40 to 200)
With low sample rates, use trigger input
21User Manual 1178.3940.02 ─ 04
Page 38
R&S®TSPIO5

5.1.5 RS485 Transceiver Channels

Functional Description
Overview
Delay gradation Delay Use
Delay 1 2.5 ns, typical (2 ns to 4 ns) Offset the sampling time point
within the active clock phase by a fixed time
Delay 2 180° (inverted clock) Offset sampling to the negative
edge (20 MHz to 100 MHz)
Delay 3 N clock cycles Sampling only after N clock cycles
of the system clock (20 MHz to 100 MHz)
Delay 4 Combination of delay 1 to 3 Further delays can be implemen-
ted by freely combining the delays.
The module has ten RS485/RS422 transceiver channels provided on a pin connector. They enable data to be transmitted at a RS485/RS422compatible level; the FW does not, however, contain an RS485 protocol.
The paths have a switchable termination of 120 . The TX/RX paths are permanently connected to each other, which allows a selftest to be performed without external cabling. An integrated opencircuit failsafe circuit ensures that a stable high state is maintained even if inputs are open.

5.1.6 Memory Management in Driver

Stimulus data records that are to be loaded to the module using rspio5_LoadData are first stored in the memory management of the driver. An almost unlimited number of data records can be created here. For each data record, the driver assigns an ID via which this data record can then, if required, be identified and loaded to the module.
If access takes place using the driver functions compliant with IVI Digital, this runs in the background and can be ignored by the user. The appropriate data formats are then also selected automatically.
The data is interpreted in the driver according to the mode to which the module was set beforehand by means of the rspio5_ConfigureStimMode() and rspio5_ConfigureRespMode() functions.

5.1.7 Stimulus Memory

2 Mpattern memories for stimulus data are available in the module. This means that max. one pattern set with 2 x 1024 x 1024 data vectors plus 2 x 1024 x 1024 enable vectors can be defined and loaded to the module.
The data records are first loaded to the buffer memory of the driver using the rspio5_LoadData() functions. These functions return an ID. This ID is then used to load the stimulus memory to the module.
22User Manual 1178.3940.02 ─ 04
Page 39
R&S®TSPIO5

5.1.8 Response Memory

5.1.9 Static Digital Test

Functional Description
Overview
Depending on the function used to execute a pattern set, this takes place automatically or must be triggered manually (e.g. IVI Digital functions perform this sequence com­pletely in the background).
The buffer memory in the driver is emptied using rspio5_DiscardData().
The recorded response data is also stored in a 2 Mpattern memory.
With the static digital test, the sequence for applying patterns at the outputs as well as for reading in the inputs is checked from the control computer. As a result, the duration of the individual patterns as well as the sampling time point for the measurement rela­tive to the beginning of the pattern can never be precisely predicted because the host computer and its operating system are influencing factors here.
The static digital test is therefore suitable for checking the logical interaction of compo­nents in order to check voltage thresholds and other sequences in cases where the verification and the precise observance of time conditions are not relevant.
With R&S TSPIO5, the static digital test can be performed using IVI Digital functions or the lowlevel driver functions.

5.1.10 Dynamic Digital Test

In the simplest case, the pattern period is identical for output (stimulus) and recording (response). Stimulus and response are started by the same trigger and run synchro­nously to each other.
Normally, the UUT response must be measured with a delay relative to the beginning of the pattern. The delay (response delay) can be set with a resolution of 10 ns. This delay is defined by the application such that stable data from the UUT is present at the time of sampling. This value is ultimately determined by the delay times in the UUT. If the delay is greater than the pattern period, then sampling takes place within the next period of the stimulus patterns. This too may be advisable in certain applications.
The test is started by software or hardware triggers. The patterns are output at a fixed clock rate. The pattern duration is the time during which a pattern of a pattern set is available at the outputs. The responses from the UUT are usually also recorded at the inputs during this time.
The response delay is the time offset between the trigger event and the start of the data sampling at the inputs. The pattern rate is the reciprocal of the pattern period.
23User Manual 1178.3940.02 ─ 04
Page 40
R&S®TSPIO5
Functional Description
Programming of Digital Tests
Figure 5-2: Pattern set period and response delay
A pattern set is a quantity of patterns (vectors) that are processed in a sequence after a trigger event has been received. Processing is started by a software function or a hardware trigger. Execution takes place in real time and is not affected by the operat­ing system of the control computer. The software is able to query whether execution is still in progress, to interrupt the current execution or to wait until execution has finished.
The R&S TSPIO5 output channel drivers can be deactivated so that they are in tristate mode. Is a signal to be driven on a channel which was in tristate mode for a fairly long time (> 20 us) then it can take up to 10 ns until the driver gets active again. In this case the first pattern to be output can be reduced in length for max. 10 ns.

5.2 Programming of Digital Tests

TSVP is an open platform with regard to hardware and software. Typically, the software consists of a number of drivers and libraries that are called from a test program or sequencer created by the user.
Generally there are two ways to access TSVP modules.
Instrument driver
Highlevel GTSL libraries
Instrument driver functions provide access to all hardware options. In contrast, sym­bolic names and crossmodule functionality are not supported.
The functions in the device driver provide two interfaces for programming digital tests:
Digital test with lowlevel functions
Digital test with IVI Digital functions
Highlevel libraries provide a standardized programming interface and allow certain abstractions with respect to the underlying hardware, e.g. symbolic signal names and the handling of multiple parallel modules.
24User Manual 1178.3940.02 ─ 04
Page 41
R&S®TSPIO5

5.2.1 Digital Test with Device Driver Function

5.2.1.1 Initialization
5.2.1.2 Auxiliary Function
Functional Description
Programming of Digital Tests
All the functions of the device driver are described fully in the online help and in the LabWindows/CVI function panels.
rspio5_init
rspio5_InitWithOptions
rspio5_close
rspio5_reset
rspio5_LockSession
rspio5_UnlockSession
rspio5_self_test
rspio5_revision_query
5.2.1.3 Error Queries
rspio5_error_query
rspio5_GetErrorInfo
rspio5_ClearErrorInfo
rspio5_error_message
5.2.1.4 Digital Test with LowLevel Driver Functions
For optimum utilization of the board's performance, it is advisable to use the digital test with lowlevel functions.
Static digital test with lowlevel driver functions
rspio5_SetDoutState
rspio5_GetDinState
Dynamic digital test with lowlevel driver functions
Some of these functions are also required for configuring the default settings for dynamic tests compliant with IVI Digital (see examples).
rspio5_ConfigureStimMode
rspio5_ConfigureRespMode
rspio5_ConfigureStimTiming
25User Manual 1178.3940.02 ─ 04
Page 42
R&S®TSPIO5
5.2.1.5 Digital Test Compliant with IVI Digital
Functional Description
Programming of Digital Tests
rspio5_ConfigureRespTiming
rspio5_LoadData
rspio5_LoadStimBuffer
rspio5_ExecutePattern
rspio5_AbortExecution
rspio5_FetchPatternResponseData
rspio5_FetchPatternResponseDataFull
rspio5_DiscardData
IVI Digital is a standard for the actuation of digital test instruments. The driver provides calls that are compliant with IVI Digital. IVI Digital supports both the static and the dynamic digital test.
Use of the IVI Digital functions requires an extremely high computing overhead on the host side and is relatively inflexible with regard to the hardware because IVI Digital is a standardization and cannot take performanceboosting features of the hardware into consideration. For example, splitting into static and dynamic channels is not possible.
Functions for digital test compliant with IVI Digital
rspio5_ClearPattern
rspio5_ConfigureChannelOpcode
rspio5_ConfigureMode
rspio5_ConfigureGroupOpcode
rspio5_ConfigureLargeGroupOpcode
rspio5_CreatePattern
rspio5_GetChannelName
rspio5_GetChannelOpcode
rspio5_GetGroupOpcode
rspio5_ConfigureStaticResponseDelay
rspio5_ExecuteStaticPattern
rspio5_FetchStaticChannelOpcode
rspio5_GetStaticChannelName
rspio5_FetchStaticChannelListResults
rspio5_FetchStaticChannelResult
rspio5_FetchStaticChannelData
rspio5_FetchStaticChannelListData
rspio5_AbortPatternSet
rspio5_BeginPatternSetLoading
rspio5_ClearPatternSet
rspio5_ConfigurePatternSetMaxTime
26User Manual 1178.3940.02 ─ 04
Page 43
R&S®TSPIO5
rspio5_ConfigurePatternSetTiming
rspio5_CreatePatternSet
rspio5_ExecutePatternSet
rspio5_FetchPatternSetResult
rspio5_GetDynamicChannelName
rspio5_GetDynamicPatternCount
rspio5_FetchDynamicChannelOpcode
rspio5_GetPatternSetCount
rspio5_GetPatternSetExecutedPatternCount
rspio5_GetPatternSetLoadedPatternCount
rspio5_GetPatternSetName
rspio5_InitiatePatternSet o
rspio5_LoadDynamicPattern
rspio5_WaitUntilPatternSetComplete
rspio5_FetchDynamicChannelListResults
rspio5_FetchDynamicChannelListPatternResults
rspio5_FetchDynamicChannelResult
rspio5_FetchDynamicPatternResult
rspio5_FetchDynamicPatternListResults
rspio5_FetchDynamicChannelData
rspio5_FetchDynamicChannelListData
rspio5_FetchDynamicChannelListPatternData
Functional Description
Programming of Digital Tests

5.2.2 Digital Test with DIO Manager

Each pattern set is stored in its own file. This file can be edited manually using a text editor.
The file containing the pattern set is loaded during runtime to one or more R&S TSPIO5 modules and then executed. The results can be read back using func­tion calls. Alternatively, the results can also be stored in a file with the same format. Differences between the expected and measured behavior can then be easily identified by comparing the files.
5.2.2.1 File Format
The file format was originally defined by the Altera Quartus Waveform Generator.
GROUP CREATE bus = bus[7] bus[6] bus[5] bus[4] bus[3] bus[2] bus[1] bus[0];
INPUTS N14CR0805170 E_COM E_EC1 E_EC2 E_EC3 bus;
OUTPUTS N13HCPN31500 N13HCPM31500 N13HCPO31500 N13HCPL31500;
UNIT ns;
RADIX HEX;
PATTERN
27User Manual 1178.3940.02 ─ 04
Page 44
R&S®TSPIO5
Functional Description
Programming of Digital Tests
0.0> 0 0 0 0 0 00 = X X X X
1000.0> 1 0 0 0 0 01 = X X X X
2000.0> Z Z Z Z Z 02 = X X X X
3000.0> 0 0 0 0 0 03 = X X X X
4000.0> 1 0 0 0 0 04 = X X X X
5000.0> Z Z Z Z Z 05 = X X X X
6000.0> 0 0 0 0 0 06 = 1 X X X
7000.0> 0 1 0 0 0 07 = 0 X X X
8000.0> Z Z Z Z Z 08 = X X X X
9000.0> 0 0 0 0 0 09 = X 1 X X
10000.0> 0 0 0 0 1 0A = X 0 X X
11000.0> Z Z Z Z Z 0B = X X X X
12000.0> 0 0 0 0 0 0C = X X 1 X
13000.0> 0 0 0 1 0 0D = X X 0 X
14000.0> Z Z Z Z Z 0E = X X X X
15000.0> 0 0 0 0 0 0F = X X X 1
16000.0> 0 0 1 0 0 10 = X X X 0
17000.0> Z Z Z Z Z 11 = X X X X
18000.0> X X X X X X = X X X X
;
GROUP CREATE bus = bus[7] bus[6] bus[5] bus[4] bus[3] bus[2] bus[1] bus[0];
This instruction is optional. It is used to group pins into buses. It is also possible to define multiple buses.
INPUTS N14CR0805170 E_COM E_EC1 E_EC2 E_EC3 bus;
OUTPUTS N13HCPN31500 N13HCPM31500 N13HPCO31500 N13HCPL31500;
The INPUTS and OUTPUTS instructions define the channel names or group names.
INPUTS are inputs of the UUT and therefore correspond to OUT1 to OUT32 of the R&S TSPIO5 module. OUTPUTS are UUT outputs and therefore correspond to the inputs IN1 to IN32 of the module.
UNIT ns;
Defines the unit of the timestamp used in the file.
RADIX HEX;
Defines the base for the values in the case of buses. The DIO manager supports HEX only.
PATTERN
0.0> 0 Z Z Z Z 00 = X X X X;
……
All lines following PATTERN define this pattern set. Each line represents a pattern at a certain time. The last line is ignored and is used only as end identification. All channels are X. The timestamps do not have to be equidistant.
28User Manual 1178.3940.02 ─ 04
Page 45
R&S®TSPIO5
5.2.2.2 Configuring DIOMGR
Functional Description
Programming of Digital Tests
Value for INPUTS for OUTPUTS
0 drive low expect low
1 drive high expect high
Z high impedance (not used)
X (not used) don't care
A hexadecimal value is entered for groups. The special cases X and Z indicate that all channels of the groups concerned assume this state.
The waveform file contains the logical name of the inputs and outputs. Assignment of physical channels on the R&S TSPIO5 modules to logical names takes place in the file application.ini.
[bench->823916]
DIODevice = device->pio5
DIOChannelTable = io_channel->823916
[io_channel->823916]
E_COM = pio5!out1
E_EC1 = pio5!out2
E_EC2 = pio5!out3
E_EC3 = pio5!out4
N14CR0805170 = pio5!out5
N13HCPL31500 = pio5!in1
N13HCPM31500 = pio5!in2
N13HCPN31500 = pio5!in3
N13HCPO31500 = pio5!in4
bus0 = pio5!out20
bus1 = pio5!out21
bus2 = pio5!out22
bus3 = pio5!out23
bus4 = pio5!out24
bus5 = pio5!out25
bus6 = pio5!out26
bus7 = pio5!out27
Like all GTSL libraries, the DIO manager is configured in an application.ini file. The keyword DIODevice refers to the R&S TSPIO5 module in the physical.ini. If more than one digital module is to be used, a DIODevice2, DIODevice3, and so on is added.
The "DIO channel table" refers to the associated table in the file.
29User Manual 1178.3940.02 ─ 04
Page 46
R&S®TSPIO5
5.2.2.3 Structure of a Test Program
Functional Description
Programming of Digital Tests
The left side of the channel table contains the logical names and the right side the link to the physical channels on the individual modules.
Channel names for groups (e.g. buses) do not have any brackets. Here they are called "bus0" for example, whereas they are called "bus[0]" in the waveform file.
Channel names are not casesensitive.
Table 5-2: These functions must be called once at beginning of test program.
Function Comments
RESMGR_Setup
DIOMGR_Setup
DIOMGR_ConfigureStimulus
DIOMGR_ConfigureResponse
DIOMGR_LoadWaveform
DIOMGR_ConfigurePatternSetTiming
Table 5-3: These functions are typically called in a loop over multiple UUTs.
Function Comments
DIOMGR_ExecutePatternSet
Optional functions: Generally only called if the pattern set is defective
DIOMGR_SaveWaveform
DIOMGR_GetPatternSetExecutedPatternCount
DIOMGR_GetPatternSetFailedPatternCount
DIOMGR_GetPatternSetFailedChannelCount
Call of the resource manager
Call of the DIO manager and initialization of the TSPDFT module
Configuration of logical levels for inputs and outputs
Loading a pattern set from a file to the memory.
Definition of the timing of a pattern set
Execution of a pattern set and return of the result (pass/fail)
(fail)
Storage of the results as a TBL file
Reading out of the executed patterns
Reading out of the failed patterns
Reading out of the failed channels
DIOMGR_GetPatternSetFailedChannelNames
DIOMGR_GetPatternSetChannelData
DIOMGR_GetPatternSetChannelResults
Table 5-4: After all tests have been performed, these functions are used for cleaning up.
Function Comments
DIOMGR_Cleanup
RESMGR_Cleanup
Reading out of failed channels as a list of names (commaseparated)
Reading out of the current response message (mea­sured data) for a channel
Reading out of the results for a channel (pass/fail)
Closes the DIO manager
Closes the resource manager
30User Manual 1178.3940.02 ─ 04
Page 47
R&S®TSPIO5
5.2.2.4 Loading Waveform File
Functional Description
Programming of Digital Tests
The waveform file defines a pattern set with specification of the timestamps. These timestamps do not have to be equidistant. Normally, a new line is created whenever at least one signal changes.
PATTERN
0.0> 0 0 0 0 0 00 = X X X X
1000.0> 1 0 0 0 0 01 = X X X X
1001.0> 1 1 0 0 0 01 = X X X X
1050.3> 1 1 1 0 1 01 = 1 1 1 1
2100.0> Z Z Z Z Z FF = X X X X
etc.
When the waveform is loaded to the R&S TSPIO5 module, the timing must be conver­ted to a fixed framework that is determined by the pattern set period of the module. The loading function uses the "timeGrid" parameter to generate the samples of the waveform in a fixed time grid. Each sample is then converted into a pattern and stored in the memory of the module. If a "timeGrid" of 500 ns is set in the example above, this would result in the following samples:
Pattern Time Inputs Outputs
1 0 ns 0 0 0 0 0 00 X X X X
2 500 ns 0 0 0 0 0 00 X X X X
3 1000 ns 1 0 0 0 0 01 X X X X
4 1500 ns 1 1 1 0 1 01 1 1 1 1
5 2000 ns 1 1 1 0 1 01 1 1 1 1
6 2500 ns Z Z Z Z Z FF X X X X
Some patterns are repeated (1 and 2, 4 and 5) and some are not recognized, as they are too short and are between the sampling time points (e.g. patterns at the timestamp
1001.0).
The timestamp and the "timeGrid" parameter do not necessarily have to represent the actual execution speed. The actual execution speed is set using the rspio5_ConfigurePatternSetTiming() function. This also means that the waveform file does not need to be modified if the test is to run at a different pattern rate.
The following points should be observed when writing the waveform file:
Use equidistant timestamps
Timestamps are to reflect the real timing, i.e. exactly the timing that is used for the test.
Use the interval between the timestamps as the value for the "timeGrid" parameter.
Use the interval between the timestamps as the "pattern set period".
31User Manual 1178.3940.02 ─ 04
Page 48
R&S®TSPIO5
5.2.2.5 Executing Pattern Set

5.3 Configuration of Digital Channels

Functional Description
Configuration of Digital Channels
The pattern set can be executed synchronously or asynchronously. In the first case, the DIOMGR_ExecutePatternSet() function does not return until execution has been completed (or the maximum time has been exceeded). In the second case, exe­cution is started or the trigger armed and the function returns without having to wait for actual execution of the pattern set. The DIOMGR_WaitUntilPatternSetComplete() function can be used to wait for the end of execution.
The module offers a series of configurable parameters. This section describes the con­figuration options and lists the corresponding driver functions. Details concerning the driver functions can be found in the GTSL help contained in the driver software.

5.3.1 Configuration of Stimulus and Response Channels

Whether the driver is to be active or inactive can be set for each channel.
rspio5_SetDoutState
The settings are made for one or more channels depending on the parameters in the function call. The measurement channel inputs are permanently connected to the out­put drivers of the same channel. For the response mode of a channel, the respective driver is set inactive in the function call.

5.3.2 Time Setting for Data Output

This setting is required both for dynamic tests in compliance with IVI Digital and for dynamic tests with the lowlevel driver functions.
To configure the time characteristics of the stimulus channels during output of a pattern set, the rspio5_ConfigureStimTiming function is used to set the trigger delay, the pattern duration and the number of patterns to be output (Trigger Delay, Pattern Period, Loop Count). The trigger delay is the wait time between the trigger event and output of the first pattern. The pattern duration is the time during which an individual pattern is present.
R&S TSPIO5 can output stimulus data not before 50 ns after the trigger event occur­red. By means of parameter Trigger Delay an additional delay time can be configured.
Fast modes: 100MS and 200MS
The 100MS and 200MS modes can be set using the lowlevel driver function rspio5_ConfigureRespTiming.
32User Manual 1178.3940.02 ─ 04
Page 49
R&S®TSPIO5

5.3.3 Time Setting for Data Recording

Functional Description
Configuration of Digital Channels
Tristate control is not possible in either of the two "fast modes". Tristate channels are set statically.
The "Pattern Period" parameter is fixed. The corresponding parameter in rspio5_ConfigureRespTiming must be defined, although without any impact.
Example:
Channels DIGITAL B set as outputs and DIGITAL A as inputs
DIGITAL A set as static channels to Tristate
rspio5_SetDoutState (vi, 0x000000FF, RSPIO5_STIM_MODE_TRISTATE
DIGITAL B set as dynamic outputs
rspio5_ConfigureStimMode (vi, RSPIO5_VAL_CTRL_32BIT, 0x0000FF00)
This setting is required both for dynamic tests in compliance with IVI Digital and for dynamic tests with the lowlevel driver functions.
The time parameters required for recording the input signals can be set using the rspio5_ConfigureRespTiming function. As with data output, the trigger delay, the pattern duration as well as the number of patterns to be read in (Response Trigger Delay, Response Pattern Period, Loop Count) are available as parameters.
The trigger delay determines the wait time between the trigger event and initial sam­pling. The response trigger delay is set such that the UUT data is available at the input in a stable condition at this point in time. Even if a stimulus trigger delay of 0.0 ns is configured with function rspio5_ConfigureStimTiming, R&S TSPIO5 can output stimulus data not before 50 ns after the trigger event occurred. However, sampling of input channels starts immediately after the trigger event occurs, if parameter response trigger delay of function rspio5_ConfigureRespTiming is set to 0.0 ns.
Example:
Stimulus pattern period: 50 ns
Response pattern period: 50 ns
Stim. trigger delay: 0.0 ns
Resp. trigger delay: 25.0 ns
In this example the first sampling of the input signal is done 25 ns before the first pat­tern is output on R&S TSPIO5 output channels. If the first sampling shall be done in the middle of the first output pattern, the response trigger delay has to be increased to 75 ns. A possible signal delay time caused by the device under test has to be added to the response trigger delay time.
Fast modes: 100MS and 200MS
The 100MS and 200MS Modes can be set using the lowlevel driver function rspio5_ConfigureRespTiming.
33User Manual 1178.3940.02 ─ 04
Page 50
R&S®TSPIO5
Functional Description
Triggering and Sequence Control
Tristate control is not possible in either of the two "fast modes". Tristate channels are set statically.
The "Pattern Period" parameter is fixed. The corresponding parameter in rspio5_ConfigureRespTiming must be defined, although without any impact.
In the 200MS Mode, the response data is read in with rising and falling clock edge. The response trigger delay, however, can be set in whole clock steps only. Depending on the signal delay, it is therefore possible that, due to the set delay, the response data cannot be saved synchronously to the stimulus data. The stimulus and response mem­ories are then offset by one pattern. This may result in loss of the first or last response pattern. This must be taken into consideration when generating the stimulus data. The following table shows the correlation.
Index Stimulus pattern Response pattern
1 1 2
2 2 3
3 3 4
4 4 xxx

5.3.4 Configuration of Data Width in Dynamic Mode

rspio5_ConfigureStimMode
rspio5_ConfigureRespMode
If required, the digital channels can be configured in different combinations for simulta­neous static and dynamic operation. This allows the configuration of e.g. control sig­nals at a constant level during entire test sequences. They then no longer have to be part of the dynamic data. This also simplifies the creation of pattern sets. Each channel can be switched individually.
This type of configuration is only possible if programming is performed using the lowlevel driver functions. If the driver functions compliant with IVI Digital are used, all 32 channels are always dynamic.

5.4 Triggering and Sequence Control

5.4.1 Trigger Units

There are two trigger units on the module. The trigger units control output of stimulus data as well as reading in of the data at the digital inputs. Trigger unit IT1 is responsi­ble for outputs of the stimulus data, and trigger unit IT2 is responsible for reading in of the response data.
34User Manual 1178.3940.02 ─ 04
Page 51
R&S®TSPIO5
Functional Description
Triggering and Sequence Control
The trigger units can be configured for various input conditions. It is also possible to configure which output signal they are to generate and where this signal is to be routed to.
For the structure of the trigger units, see the following figures:
Figure 3-6
Figure 3-7
Figure 3-8
Figure 3-9
Figure 3-10
Inputs of trigger unit:
On the input side, the rspio5_ConfigHWTriggerInput function is used to config­ure whether and which inputs (PXI0 to PXI7, TRIG, 4 outputs of the digital inputs pat­tern comparator) are to be used as a hardware trigger and with which logical state, and which edge is used. Alternatively, the unit can also be triggered using a software trig­ger (e.g. the rspio5_executePattern function starts the processing of a pattern set by means of a software trigger by calling the rspio5_InitiateSWTrigger func­tion). If the trigger unit was started by an event, then as many stimulus and response patterns are processed as were set using the configuration functions rspio5_ConfigureStimTiming and rspio5_ConfigureRespTiming in the "Loop Count" parameters.
Outputs of trigger unit:
The output of the trigger unit is used to actuate other functions. Selection of a certain type of output signal does not influence the internal function (output stimulus, read in response). This output signal (e.g. ACTIVE) can be output on the PXI0 to PXI7 lines as well as on TRIG in order to, for example, trigger a measurement on a different Com­pactPCI board. Various trigger sources are available for starting the controllers:
Table 5-5: Trigger sources
Designation Remarks
SW Trigger Sequence control starts immediately after arming (when the
rspio5_InitiateSWTrigger function is called). This is the default sequence if a pattern set is to be processed under program control. For configuration, see also the example for the dynamic test with lowlevel functions.
TRIG LVTTL input at the front female connector X203; a positive or negative
edge starts the sequence. Triggering via TRIG is configured with the rspio5_ConfigHWTriggerInput function. It is used to define the edge and to activate/deactivate triggering via TRIG.
35User Manual 1178.3940.02 ─ 04
Page 52
R&S®TSPIO5
Functional Description
Triggering and Sequence Control
Designation Remarks
PXI0 to PXI7 Positive or negative edges on these lines start the sequence. The active
edge and which trigger signal is used are again set using the rspio5_ConfigHWTriggerInput function. If multiple trigger sources are selected, then this is equivalent to an OR logic operation.
Pattern Comparator A pattern comparator, which evaluates the states of the 32 inputs, can also
be used as the trigger source. This is again also configured using
rspio5_ConfigHWTriggerInput as well as rspio5_ConfigDinComparator in order to define the condition for the
input pattern comparator.
The rspio5_ConfigHWTriggerInput function determines the trigger source. After­wards the hardware trigger sources are armed using the rspio5_EnableHWTrigger function and the addressed sequence controls are in the "Waiting" state. If a software trigger has been triggered, the associated control immediately switches to the "Run­ning" state. Otherwise the state change does not take place until the trigger event has occurred. In this state, the number of patterns in the stimulus memory (Stim Loop Count) is then output and the number of patterns (Resp Loop Count) in the reference memory is recorded. If only patterns are to be output, the rspio5_InitiateSWTrigger function has to be called with the mask RSPIO5_IT_MASK_IT1 only. If only recording is required, the function must be called using only RSPIO5_IT_MASK_IT2. After the available number of patterns have been processed, the associated sequence control switches back to the "Stopped" state. The current state of both sequence controls can be queried using the
rspio5_GetItStatus function. By calling the rspio5_WaitUntilPatternSetComplete function, the sequence control can be
made to wait until the end of execution in the test program.
If sequence control is in the "Waiting" or "Running" state, some driver functions cannot be performed. In this case, these functions return an error message. If necessary, the rspio5_AbortExecution function can be used to switch sequence control to the default state.

5.4.2 Generation of Trigger Signals

The R&S TSPIO5 module is able to generate trigger signals on the following lines:
Table 5-6: Trigger outputs
Designation Remarks
TRIG LVTTL output on the front connector (XTO)
PXI0 to PXI7 PXI trigger lines on the backplane
For a change to occur on the trigger lines, an event that provokes the trigger pulse must be assigned to the selected line. Here it is possible to select which trigger unit (IT1/IT2) and which type of output signal are to be used.
36User Manual 1178.3940.02 ─ 04
Page 53
R&S®TSPIO5
Functional Description
PWM
Table 5-7: Triggers of trigger events
Designation Remarks
General purpose trigger The rspio5_InitiateSWTrigger function generates a pulse on the
configured trigger lines. For this purpose, the PXI line on which a trigger signal is to be generated is selected using the rspio5_ConfigPxiTrigOut function. The length of pulse is depend­ent on the processing speed of the computer.
ITn ACTIVE Triggered when a trigger event is received. Pulse while the pattern set is
being output. Routed to the hardware outputs PXI or TRIG by calling the rspio5_ConfigPxiTrigOut function.
ITn OUT Trigger block outputs a pulse for each pattern. The pulses are relatively
short (minimum pattern rate/2). Routed to the hardware outputs PXI or TRIG by calling the rspio5_ConfigPxiTrigOut or rspio5_ConfigXTO function.
ITn STATUS Routed to the hardware outputs PXI or TRIG by calling the
rspio5_ConfigPxiTrigOut or rspio5_ConfigXTO function.
ITn START A pulse after the trigger condition has been detected. Routed to the
hardware outputs PXI or TRIG by calling the rspio5_ConfigPxiTrigOut or rspio5_ConfigXTO function.
It is also possible to set the polarity of the trigger signal for the individual outputs. In addition, the driver stages for the trigger lines can be disabled. All settings are made using the rspio5_ConfigurePxiTrigOut and rspio5_ConfigXTO function.
See also the example for trigger response and trigger programming.

5.5 PWM

The module supports the output of PWM signals at any output.
PWM is configured using the rspio5_ConfigurePWM function. The frequency is set in Hz and the duty cycle is specified in %.
The rspio5_SetStatePWM function is used to switch PWM on/off for individual chan­nels.
The resolution is 10 ns when the 100 MHz internal reference clock is used. A divider generates the lower frequencies. With this method there are restrictions in choice of frequencies and duty cycles.
The following examples show the relationship at the highest frequencies.
50.0 MHz: 50 %
33.3 MHz: 33 %, 66 %
25.0 MHz: 25 %, 50 %, 75 %
37User Manual 1178.3940.02 ─ 04
Page 54
R&S®TSPIO5

5.6 Frequency Measurement

5.7 Selection of System Clock/Clock Output

Functional Description
Implementation Example: LVDS <-> TTL
The R&S TSPIO5 supports frequency measurement at inputs DIGA, DIGB, TRIG and PX0 to PX7. The rspio5_FrequencyMeasurement function is used for this pur­pose. A distinction is made between two methods, depending on the passed parame­ters:
Specification of a gate time: Pulses are counted until the gate time has expired. This allows the frequency value to be calculated. The "gateCount" parameter is set to 0.
If a gate time of 0 and a defined number of pulses (gateCounts) are specified, the module measures the time required for a certain number of pulses to arrive. The value is also converted into a frequency.
Using the rspio5_ConfigureClock function, it is possible to switch between the four different clock inputs:
Internal clock
CLK (SMB female connector)
DIG A
DIG B
Furthermore, external clocks can be offset by 180° and/or 2.5 ns.
If necessary, the system clock can be applied to one of the abovementioned outputs, excluding the signal source.

5.8 Implementation Example: LVDS <-> TTL

Using the R&S TSPIO5 digital functional test module, fast TTL signals can be trans­mitted safely over any distance. For this purpose, the LVDS signal must be switched to the TTL level at the destination or, in the reverse direction, the TTL signal must be switched to LVDS.

5.8.1 Supply Voltage

+5 V (max. 0.3 A) is available at the DIGITAL A and DIGITAL B connectors. This can be switched to the TTL voltage 3.3 V by means of a switching converter or linear regu­lator.
38User Manual 1178.3940.02 ─ 04
Page 55
R&S®TSPIO5
Functional Description
Implementation Example: LVDS <-> TTL
Figure 5-3: 5 V/3.3 V switching converter

5.8.2 Level Converter

The following circuit converts LVDS to TTL and vice versa. The direction of conversion can be determined using jumper X211.
Figure 5-4: 5 V/3.3 V switching converter

5.8.3 TTL Level

The following jumper layout is used to set the TTL level to 5 V, 3.3 V or an externally supplied logic voltage.
39User Manual 1178.3940.02 ─ 04
Page 56
R&S®TSPIO5

5.8.4 EMC

Functional Description
Implementation Example: LVDS <-> TTL
Figure 5-5: Selection of different TTL levels
It is advisable to filter the signals directly at the DIGITAL A/B connector.
Figure 5-6: ECM filter

5.8.5 Possible Parts List

The table below lists examples of components that can be used to implement the cir­cuit:
40User Manual 1178.3940.02 ─ 04
Page 57
R&S®TSPIO5
Functional Description
Implementation Example: LVDS <-> TTL
Component Type Manufacturer
DIGITAL A/B connector, 26 Posi­tion
LVDSTTL transceiver SN65LVDM176 Texas Instruments
Dualsupply transceiver (2x) SN74LVC2T45 Texas Instruments
Dualsupply transceiver (1x) SN74LVC1T45 Texas Instruments
Stepdown switching converter TPS62170DSG Texas Instruments
Coil for switching converter XFL3012-222ME Coilcraft
Commonmode filter (LVDS) ACM2012H-900-2P TDK
+5 V and GND filter (600R) BLM15AG601SN1D Murata
AGND/GND filter (120R) BLM31PG121SN1L Murata
10226-1210 VE 3M
The following R&S article is supported as connecting cable:
1415.0201.02 SMU-Z6 CABLE TVR290 (2 m long).
The digital A/B interfaces are not compatible with the R&S IQ ports of other devices.
41User Manual 1178.3940.02 ─ 04
Page 58
R&S®TSPIO5

6 Startup

6.1 Installation of R&S TSPIO5 Module
Startup
Installation of R&S TSPIO5 Module
To install the R&S TSPIO5 plug-in module, proceed as follows:
Damage to backplane caused by bent pins
Bent pins can cause permanent damage to the backplane.
Check the backplane connectors for bent pins.
Any bent pins must be straightened.
When inserting the plugin module, guide it with both hands and carefully push it into the backplane connectors.
1. Power down and switch off the R&S CompactTSVP.
2. Select a suitable slot at the front of the instrument.
3. Remove the corresponding section of the front panel from the TSVP chassis by undoing the screws.
4. Push in the plugin module using moderate pressure.
5. The upper catch pin of the plugin module must be inserted into the right hole in the TSVP chassis and the lower catch pin into the left hole.
The module is correctly located when a distinct "stop" can be felt.
6. Securely tighten the screws at the top and bottom of the front panel of the plugin module.
42User Manual 1178.3940.02 ─ 04
Page 59
R&S®TSPIO5

7 Software

7.1 Driver Software

Software
Driver Software
A LabWindows IVI driver is available for actuation of the R&S TSPIO5 digital func­tional test module. All additional functions of the hardware are controlled using specific extensions of the driver. The driver is part of the ROHDE & SCHWARZ GTSL software. All the functions of the driver are described fully in the online help and in the LabWind­ows/CVI function panels. The following software modules are installed during driver installation:
Module Path Remarks
rspio5.dll <GTSL directory>\Bin
rspio5.chm <GTSL directory>\Bin
rspio5.fp <GTSL directory>\Bin
rspio5.sub <GTSL directory>\Bin
rspio5.lib <GTSL directory>\Bin
rspio5.h <GTSL directory>\Include
Driver
Help file
LabWindows/CVI function panel file, function panels for CVI devel­opment environment
LabWindows/CVI attribute file. This file is required by some "function panels".
Import library
Header file for driver
The IVI and VISA libraries from National Instruments are needed to run the driver.
The R&S TSPIO5 LabWindows/CVI device driver uses channel names IN1 to IN32 respectively OUT1 to OUT32. Some driver functions need a channel name as input parameter. Only this channel names are allowed there.
The following table shows the correlation of LabWindows/CVI driver channel names with hardware channel names mentioned in this manual.
Channels name Hardware channels name
IN1 / OUT1 DIGA_D1
IN2 / OUT2 DIGA_D2
IN3 / OUT3 DIGA_D3
IN4 / OUT4 DIGA_D4
IN5 / OUT5 DIGA_D5
IN6 / OUT6 DIGA_D6
IN7 / OUT7 DIGA_D7
43User Manual 1178.3940.02 ─ 04
Page 60
R&S®TSPIO5
Software
Soft Panel
Channels name Hardware channels name
IN8 / OUT8 DIGA_D8
IN9 / OUT9 DIGB_D1
IN10/ OUT10 DIGB_D2
IN11 / OUT11 DIGB_D3
IN12 / OUT12 DIGB_D4
IN13 / OUT13 DIGB_D5
IN14 / OUT14 DIGB_D6
IN15 / OUT15 DIGB_D7
IN16 / OUT16 DIGB_D8
IN17 / OUT17 DIGA_GP
IN18 / OUT18 DIGA_IO1
IN19 / OUT19 DIGA_IO2
IN20 / OUT20 DIGB_GP
IN21 / OUT21 DIGB_IO1
IN22 / OUT22 DIGB_IO2
IN23 / OUT23 RS485_D1
IN24 / OUT24 RS485_D2
IN25 / OUT25 RS485_D3
IN26 / OUT26 RS485_D4
IN27 / OUT27 RS485_D5
IN28 / OUT28 RS485_D6
IN29 / OUT29 RS485_D7
IN30/ OUT30 RS485_D8
IN31 / OUT31 RS485_D9
IN32 / OUT32 RS485_D10

7.2 Soft Panel

The software package of the R&S TSPIO5 module includes a soft panel (see Fig-
ure 7-1).
44User Manual 1178.3940.02 ─ 04
Page 61
R&S®TSPIO5
Software
Soft Panel
Figure 7-1: Softpanel R&S TS‑PIO5
The soft panel is based on the IVI driver and enables interactive operation of the mod­ule.
Operation of the soft panels is described in Software Description for R&S GTSL.

7.2.1 Configuration of Digital Channels

The digital channels of the R&S TSPIO5 module are divided into logical groups according to the path characteristics. Depending on the maximum sample rate, individ­ual paths can be used together for one transmission.
Figure 7-2: Digital channels of R&S TS PIO5 module
The stimulus patterns as well as the response data to be included can be defined bit by bit.
The outputs can be deactivated individually. This must be taken into consideration when configuring the pattern set.
It is possible to define bit by bit whether outputs are to be deactivated statically or whether their state can be decided dynamically in the pattern set.
45User Manual 1178.3940.02 ─ 04
Page 62
R&S®TSPIO5

7.2.2 Time Settings for Data Transmission

For dynamic control:
Configure the desired channels for dynamic control
Select appropriate the dynamic mode
Configure delays for stimulus and response
Select a pattern period for stimulus and response
Define a pattern set (with tri state information if necessary)
Software
Programming Examples
Figure 7-3: Dynamic Stimulus Configuration
Figure 7-4: Dynamic Response Configuration

7.3 Programming Examples

7.3.1 Digital Test of "DIO Manager" Library

This example shows the execution of a digital test using the GTSL library "DIO Man­ager" (DIOMGR). The input file (823916.tbl) and the associated configuration file
46User Manual 1178.3940.02 ─ 04
Page 63
R&S®TSPIO5
7.3.1.1 Main Function
Software
Programming Examples
(pio5Application.ini) are described in Chapter 5.2.2, "Digital Test with DIO Man-
ager", on page 27. Additional information on the structure of the configuration files
(physical layer configuration file and application layer configuration file) and on the function of the resource manager (RESMGR) can be found in the manual "Software Description GTSL.pdf".
/* Programming example with DIOMGR */
#include <ansi_c.h>
#include "resmgr.h"
#include "diomgr.h"
static short errorOccurred;
static long errorCode;
static char errorMessage[GTSL_ERROR_BUFFER_SIZE];
static long residDiomgr;
static char benchName[] = "bench->823916";
static char fileName[] = "823916.tbl";
static char fileNameResult[] = "823916result.tbl";
/* list of stimulus channels */
static char stimChannels[] = "N14CR0805170,E_COM,E_EC1,E_EC2,E_EC3";
static char respChannels[] = "N13HCPN31500,N13HCPM31500,"
"N13HCPO31500,N13HCPL31500";
/* prototypes */
static void cs ( char * funcName );
static void runTest ( void );
static void diagnosis ( void );
/* FUNCTION *******************************************************************/
/* loads the libraries and runs the test
*******************************************************************************/
int main (int argc, char *argv[])
{
printf("Example using DIOMGR functions for dynamic pattern execution\n\n");
/* setup libraries */
RESMGR_Setup (0, "physical.ini", "pio5Application.ini",
&errorOccurred, &errorCode, errorMessage);
cs("RESMGR_Setup");
if ( ! errorOccurred )
{
DIOMGR_Setup (0, benchName, &residDiomgr,
&errorOccurred, &errorCode, errorMessage);
cs("DIOMGR_Setup");
47User Manual 1178.3940.02 ─ 04
Page 64
R&S®TSPIO5
Software
Programming Examples
}
if ( ! errorOccurred )
{
runTest ( );
}
/* cleanup libraries */
DIOMGR_Cleanup (0, residDiomgr, &errorOccurred, &errorCode, errorMessage);
cs("DIOMGR_Cleanup");
RESMGR_Cleanup ( 0, &errorOccurred, &errorCode, errorMessage);
cs("RESMGR_Cleanup");
printf("\nPress 'Enter' to terminate\n");
getchar();
return 0;
}
7.3.1.2 Error Handling
This function checks the return values of a function from the GTSL libraries (RESMGR, DIOMGR). A message is issued if there is an error.
/* FUNCTION *******************************************************************/
/* checks the return status of a library call
*******************************************************************************/
static void cs ( char * funcName )
{
if ( errorOccurred )
{
printf ("%s returned 0x%08X\n%s\n\n", funcName, errorCode, errorMessage);
}
}
7.3.1.3 Execution of Digital Test
/* FUNCTION *******************************************************************/
/* Configures the module for digital test, loads the test and executes it.
The results are uploaded from the module and stored as a result TBL file.
*******************************************************************************/
static void runTest ( void )
{
long numPatterns;
long patternSetResult;
/* configure stimulus and response levels */
DIOMGR_ConfigureStimulus (0, residDiomgr, stimChannels, "DRIVING", 0.0, 0.0,
48User Manual 1178.3940.02 ─ 04
Page 65
R&S®TSPIO5
Software
Programming Examples
&errorOccurred, &errorCode, errorMessage);
cs("DIOMGR_ConfigureStimulus");
DIOMGR_ConfigureResponse (0, residDiomgr, respChannels, "HYSTERESIS",
0.0, 0.0, &errorOccurred, &errorCode, errorMessage);
cs("DIOMGR_ConfigureResponse");
/* load the waveform. Patten set name = file name */
DIOMGR_LoadWaveform (0, residDiomgr, fileName, "TBL", 1.0e-6, fileName,
&numPatterns, &errorOccurred, &errorCode, errorMessage);
cs("DIOMGR_LoadWaveform");
/* configure the timing */
DIOMGR_ConfigurePatternSetTiming (0, residDiomgr, fileName, 1.0e-6,
0.5e-6, 1.0, &errorOccurred, &errorCode, errorMessage);
cs("DIOMGR_ConfigurePatternSetTiming");
/* run the test */
DIOMGR_ExecutePatternSet (0, residDiomgr, fileName, "SYNCHRONOUS",
&patternSetResult, &errorOccurred, &errorCode, errorMessage);
cs("DIOMGR_ExecutePatternSet");
if ( DIOMGR_VAL_RESULT_FAILED == patternSetResult )
{
printf ( "Pattern set failed\n" );
diagnosis ();
}
else
{
printf ( "Pattern set passed\n" );
}
DIOMGR_SaveWaveform (0, residDiomgr, fileName, fileNameResult, "TBL",
&errorOccurred, &errorCode, errorMessage);
cs("DIOMGR_SaveWaveform");
}
7.3.1.4 Evaluation of Failed Patterns
/* FUNCTION *******************************************************************/
/* reads information about pattern set failures and prints it to stdout
*******************************************************************************/
static void diagnosis ( void )
{
long executedPatternCount;
long failedPatternCount;
long failedChannelCount;
char failedChannelNames[1024];
long bufferSize;
49User Manual 1178.3940.02 ─ 04
Page 66
R&S®TSPIO5
Software
Programming Examples
char * pData = NULL;
char * pResults = NULL;
char * token = NULL;
int i;
int numFail;
/* read results about pattern set failure */
DIOMGR_GetPatternSetExecutedPatternCount (0, residDiomgr, fileName,
&executedPatternCount, &errorOccurred, &errorCode, errorMessage );
cs("DIOMGR_GetPatternSetExecutedPatternCount");
printf ( "%d patterns executed\n", executedPatternCount );
DIOMGR_GetPatternSetFailedPatternCount (0, residDiomgr, fileName,
&failedPatternCount, &errorOccurred, &errorCode, errorMessage );
cs("DIOMGR_GetPatternSetFailedPatternCount");
printf ( "%d patterns failed\n", failedPatternCount );
DIOMGR_GetPatternSetFailedChannelCount (0, residDiomgr, fileName,
&failedChannelCount, &errorOccurred, &errorCode, errorMessage );
cs("DIOMGR_GetPatternSetFailedChannelCount");
printf ( "%d channels failed:\n", failedChannelCount );
DIOMGR_GetPatternSetFailedChannelNames (0, residDiomgr, fileName,
sizeof(failedChannelNames), failedChannelNames,
&errorOccurred, &errorCode, errorMessage );
cs("DIOMGR_GetPatternSetFailedChannelNames");
printf ( " %s\n", failedChannelNames );
/* allocate memory for data and pass/fail */
bufferSize = executedPatternCount + 1;
pData = malloc ( bufferSize );
pResults = malloc ( bufferSize );
/* cycle thru the channel names, output data and mark errors */
token = strtok (failedChannelNames, ",");
while ( token )
{
/* "token" contains a failed channel name */
DIOMGR_GetPatternSetChannelData ( 0, residDiomgr, fileName, token,
bufferSize, pData, &errorOccurred, &errorCode, errorMessage );
cs("DIOMGR_GetPatternSetChannelData");
DIOMGR_GetPatternSetChannelResults ( 0, residDiomgr, fileName, token,
bufferSize, pResults, &errorOccurred, &errorCode, errorMessage );
cs("DIOMGR_GetPatternSetChannelResults");
/* 1=passed, 0=failed. Replace "failed" by an X and "passed" by a space */
numFail = 0;
for ( i=0; i<bufferSize; i++ )
{
50User Manual 1178.3940.02 ─ 04
Page 67
R&S®TSPIO5
Software
Programming Examples
switch ( pResults[i] )
{
case '0':
pResults[i] = 'X';
numFail++;
break;
case '1':
pResults[i] = ' ';
break;
default:
break;
}
}
printf ( "\n%s : %d fails\n", token, numFail );
printf ( "- Data : %s\n", pData );
printf ( "- Results : %s\n", pResults );
/* get next channel name */
token = strtok ( NULL, "," );
}
free ( pData );
free ( pResults );
}

7.3.2 Dynamic Pattern Execution with IVI Digital

7.3.2.1 Main Function
The return value of a device driver call is stored in the moduleglobal variable sta. The status code is checked using the chk() function.
/* Example using IVI functions for dynamic pattern execution */
#include <ansi_c.h>
#include "rspio5.h"
/* adapt the resource descriptor to your test system! */
static char resDesc[] = "PXI5::13::INSTR";
static char patternSetName[] = "823916";
/* channel names */
static char o1[] = "OUT1";
static char o2[] = "OUT2";
static char o3[] = "OUT3";
static char o4[] = "OUT4";
static char o5[] = "OUT5";
51User Manual 1178.3940.02 ─ 04
Page 68
R&S®TSPIO5
Software
Programming Examples
static char bus[] = "OUT20-OUT27";
static char out[] = "OUT1-OUT31";
static char i1[] = "IN1";
static char i2[] = "IN2";
static char i3[] = "IN3";
static char i4[] = "IN4";
static char in[] = "IN1-IN32";
static ViStatus sta;
static ViSession vi;
/* prototypes */
static void chk ( char * funcName );
static void runTest ( void );
static void createPatternSet ( void );
static void diagnosis ( void );
/* FUNCTION *******************************************************************/
/* loads the driver and runs the test
*******************************************************************************/
int main (int argc, char *argv[])
{
printf("Example using IVI functions for dynamic pattern execution\n\n");
/* open driver */
sta = rspio5_InitWithOptions(resDesc, VI_TRUE, VI_TRUE, "Simulate=0", &vi);
/* check return value */
chk ("rspio5_InitWithOptions");
if ( VI_SUCCESS == sta )
{
runTest();
/* close driver */
sta = rspio5_close(vi);
chk ("rspio5_close");
}
printf("\nPress 'Enter' to terminate\n");
getchar();
return 0;
}
52User Manual 1178.3940.02 ─ 04
Page 69
R&S®TSPIO5
7.3.2.2 Error Handling
Software
Programming Examples
This function checks the return values of a driver call. An error message is issued if there is an error.
/* FUNCTION *******************************************************************/
/* checks the return status of a driver call
*******************************************************************************/
static void chk ( char * funcName )
{
if ( sta != VI_SUCCESS )
{
char errorMessage[256];
rspio5_error_message(vi, sta, errorMessage);
printf ("%s returned 0x%08X; %s\n", funcName, sta, errorMessage);
}
}
7.3.2.3 Execution of Digital Test
/* FUNCTION *******************************************************************/
/* configures the digital test, loads the test and executes it.
*******************************************************************************/
static void runTest ( void )
{
ViInt32 patternSetResult;
/* configure module for dynamic test and result collection */
sta = rspio5_ConfigureMode(vi, RSPIO5_VAL_EXECUTE_DYNAMIC,
RSPIO5_VAL_COLLECT_ALL);
chk ("rspio5_ConfigureMode");
/* create and load the pattern set */
createPatternSet();
/* configure the timing */
sta = rspio5_ConfigurePatternSetTiming(vi, patternSetName, 1.0e-6, 0.5e-6);
chk ("rspio5_ConfigurePatternSetTiming");
/* run the test */
sta = rspio5_ExecutePatternSet(vi, patternSetName, 1000);
chk ("rspio5_ExecutePatternSet");
/* fetch pass/fail result */
sta = rspio5_FetchPatternSetResult(vi, patternSetName, &patternSetResult);
chk ("rspio5_FetchPatternSetResult");
if ( RSPIO5_VAL_RESULT_FAIL == patternSetResult )
53User Manual 1178.3940.02 ─ 04
Page 70
R&S®TSPIO5
7.3.2.4 Generation of Pattern Set
Software
Programming Examples
{
printf("Pattern set failed\n");
diagnosis ();
}
else
{
printf("Pattern set passed\n");
}
/* clear pattern set */
sta = rspio5_ClearPatternSet(vi, patternSetName);
chk ("rspio5_ClearPatternSet");
}
/* FUNCTION *******************************************************************/
/* creates and loads a pattern set
channel assignment:
E_COM = out1
E_EC1 = out2
E_EC2 = out3
E_EC3 = out4
N14CR0805170 = out5
bus = out20 - out27
N13HCPL31500 = in1
N13HCPM31500 = in2
N13HCPN31500 = in3
N13HCPO31500 = in4
*******************************************************************************/
static void createPatternSet ( void )
{
ViInt32 ph = 0;
/* create a pattern set */
sta = rspio5_CreatePatternSet(vi, patternSetName);
chk ("rspio5_CreatePatternSet");
/* create a pattern */
sta = rspio5_CreatePattern(vi, &ph);
chk ("rspio5_CreatePattern");
/* start loading */
sta = rspio5_BeginPatternSetLoading(vi, patternSetName);
chk ("rspio5_BeginPatternSetLoading");
/*** 1. pattern : stim all zero, resp don't care */
54User Manual 1178.3940.02 ─ 04
Page 71
R&S®TSPIO5
Software
Programming Examples
sta = rspio5_ConfigureChannelOpcode(vi, ph, o1, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o2, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o3, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o4, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o5, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureGroupOpcode(vi, ph, bus, RSPIO5_VAL_GROUP_INPUT, 0x0);
chk ("rspio5_ConfigureGroupOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, i1, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, i2, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, i3, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, i4, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
/* load pattern */
sta = rspio5_LoadDynamicPattern(vi, patternSetName, ph);
chk ("rspio5_LoadDynamicPattern");
// NOTE : previously assigned channels keep their channel opcode in
// the following pattern. Therefore only the changes have to be
// programmed
/*** 2. pattern: N14CR0805170 = 1, bus = 01 */
sta = rspio5_ConfigureChannelOpcode(vi, ph, o5, RSPIO5_VAL_OPCODE_IH);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureGroupOpcode(vi, ph, bus, RSPIO5_VAL_GROUP_INPUT, 0x01);
chk ("rspio5_ConfigureGroupOpcode");
/* load pattern */
sta = rspio5_LoadDynamicPattern(vi, patternSetName, ph);
chk ("rspio5_LoadDynamicPattern");
/*** 3. pattern: all stim tristate, bus = 02 */
sta = rspio5_ConfigureChannelOpcode(vi, ph, o1, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o2, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o3, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o4, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o5, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureGroupOpcode(vi, ph, bus, RSPIO5_VAL_GROUP_INPUT, 0x02);
chk ("rspio5_ConfigureGroupOpcode");
55User Manual 1178.3940.02 ─ 04
Page 72
R&S®TSPIO5
Software
Programming Examples
/* load pattern */
sta = rspio5_LoadDynamicPattern(vi, patternSetName, ph);
chk ("rspio5_LoadDynamicPattern");
/*** 4. pattern: all stim = 0, bus = 03 */
sta = rspio5_ConfigureChannelOpcode(vi, ph, o1, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o2, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o3, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o4, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o5, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureGroupOpcode(vi, ph, bus, RSPIO5_VAL_GROUP_INPUT, 0x03);
chk ("rspio5_ConfigureGroupOpcode");
/* load pattern */
sta = rspio5_LoadDynamicPattern(vi, patternSetName, ph);
chk ("rspio5_LoadDynamicPattern");
/*** 5. pattern: N14CR0805170 = 1, bus = 04 */
sta = rspio5_ConfigureChannelOpcode(vi, ph, o5, RSPIO5_VAL_OPCODE_IH);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureGroupOpcode(vi, ph, bus, RSPIO5_VAL_GROUP_INPUT, 0x04);
chk ("rspio5_ConfigureGroupOpcode");
/* load pattern */
sta = rspio5_LoadDynamicPattern(vi, patternSetName, ph);
chk ("rspio5_LoadDynamicPattern");
/*** 6. pattern: all stim tristate, bus = 05 */
sta = rspio5_ConfigureChannelOpcode(vi, ph, o1, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o2, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o3, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o4, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o5, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureGroupOpcode(vi, ph, bus, RSPIO5_VAL_GROUP_INPUT, 0x05);
chk ("rspio5_ConfigureGroupOpcode");
/* load pattern */
sta = rspio5_LoadDynamicPattern(vi, patternSetName, ph);
chk ("rspio5_LoadDynamicPattern");
/*** 7. pattern: all stim = 0, bus = 06, resp N13HCPN31500 = 1 */
sta = rspio5_ConfigureChannelOpcode(vi, ph, o1, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
56User Manual 1178.3940.02 ─ 04
Page 73
R&S®TSPIO5
Software
Programming Examples
sta = rspio5_ConfigureChannelOpcode(vi, ph, o2, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o3, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o4, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o5, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureGroupOpcode(vi, ph, bus, RSPIO5_VAL_GROUP_INPUT, 0x06);
chk ("rspio5_ConfigureGroupOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, i3, RSPIO5_VAL_OPCODE_OH);
chk ("rspio5_ConfigureChannelOpcode");
/* load pattern */
sta = rspio5_LoadDynamicPattern(vi, patternSetName, ph);
chk ("rspio5_LoadDynamicPattern");
/* ... etc ... */
/* last pattern : all tristate / don't care */
sta = rspio5_ConfigureGroupOpcode(vi, ph, out, RSPIO5_VAL_GROUP_IGNORE, 0x0);
chk ("rspio5_ConfigureGroupOpcode");
sta = rspio5_ConfigureGroupOpcode(vi, ph, in, RSPIO5_VAL_GROUP_IGNORE, 0x0);
chk ("rspio5_ConfigureGroupOpcode");
/* load pattern */
sta = rspio5_LoadDynamicPattern(vi, patternSetName, ph);
chk ("rspio5_LoadDynamicPattern");
/* loading finished */
sta = rspio5_EndPatternSetLoading(vi, patternSetName);
chk ("rspio5_EndPatternSetLoading");
/* pattern is no longer used */
sta = rspio5_ClearPattern(vi, ph);
chk ("rspio5_ClearPattern");
}
7.3.2.5 Evaluation of Failed Patterns
/* FUNCTION *******************************************************************/
/* reads information about pattern set failures and prints it to stdout
*******************************************************************************/
static void diagnosis ( void )
{
ViInt32 executedPatternCount;
ViInt32 numChannels = 4; /* in1 - in4 */
ViInt32 * pResults;
ViInt32 * pData;
ViInt32 * pPatterns;
ViInt32 actualSize;
57User Manual 1178.3940.02 ─ 04
Page 74
R&S®TSPIO5
Software
Programming Examples
int pattern;
int channel;
int idx;
int failedPatterns;
sta = rspio5_GetPatternSetExecutedPatternCount (vi, patternSetName,
&executedPatternCount);
chk ("rspio5_GetPatternSetExecutedPatternCount");
printf("%d patterns executed\n", executedPatternCount);
pResults = calloc(numChannels * executedPatternCount, sizeof(ViInt32));
pData = calloc(numChannels * executedPatternCount, sizeof(ViInt32));
pPatterns = calloc(executedPatternCount, sizeof(ViInt32));
/* upload pattern results */
sta = rspio5_FetchDynamicPatternListResults (vi, patternSetName,
0, executedPatternCount, executedPatternCount, pPatterns, &actualSize);
chk ("rspio5_FetchDynamicPatternListResults");
/* calculate number of failed patterns */
failedPatterns = 0;
for ( pattern = 0; pattern < executedPatternCount; pattern++ )
{
if ( RSPIO5_VAL_RESULT_FAIL == pPatterns[pattern] )
{
failedPatterns++;
}
}
printf("%d patterns failed\n", failedPatterns);
/* upload data and results for in1 - in4 */
sta = rspio5_FetchDynamicChannelListPatternData(vi, patternSetName,
0, executedPatternCount, "in1,in2,in3,in4",
numChannels * executedPatternCount, pData, &actualSize);
chk ("rspio5_FetchDynamicChannelListPatternData");
sta = rspio5_FetchDynamicChannelListPatternResults (vi, patternSetName,
0, executedPatternCount, "in1,in2,in3,in4",
numChannels * executedPatternCount, pResults, &actualSize);
chk ("rspio5_FetchDynamicChannelListPatternResults");
for ( channel = 0; channel < numChannels; channel ++ )
{
printf("\nin%d :\n", channel+1);
/* data */
printf("- Data : ");
for ( pattern = 0; pattern < executedPatternCount; pattern++ )
58User Manual 1178.3940.02 ─ 04
Page 75
R&S®TSPIO5
Software
Programming Examples
{
idx = pattern * numChannels + channel;
switch ( pData[idx] )
{
case RSPIO5_VAL_DATA_HIGH:
printf("1");
break;
case RSPIO5_VAL_DATA_LOW:
printf("0");
break;
default:
printf("?");
break;
}
}
printf("\n");
/* results */
printf("- Results : ");
for ( pattern = 0; pattern < executedPatternCount; pattern++ )
{
idx = pattern * numChannels + channel;
switch ( pResults[idx] )
{
case RSPIO5_VAL_RESULT_PASS:
printf(" ");
break;
case RSPIO5_VAL_RESULT_FAIL:
printf("X");
break;
default:
printf("?");
break;
}
}
printf("\n");
}
free(pResults);
free(pData);
free(pPatterns);
}
59User Manual 1178.3940.02 ─ 04
Page 76
R&S®TSPIO5

7.3.3 Static Pattern Execution with IVI Digital

7.3.3.1 Main Function
Software
Programming Examples
/* Example using IVI functions for static pattern execution */
#include <ansi_c.h>
#include "rspio5.h"
/* adapt the resource descriptor to your test system! */
static char resDesc[] = "PXI5::13::INSTR";
/* channel names */
static char o1[] = "OUT1";
static char o2[] = "OUT2";
static char o3[] = "OUT3";
static char o4[] = "OUT4";
static char o5[] = "OUT5";
static char bus[] = "OUT20-OUT27";
static char out[] = "OUT1-OUT31";
static char i1[] = "IN1";
static char i2[] = "IN2";
static char i3[] = "IN3";
static char i4[] = "IN4";
static char in[] = "IN1-IN32";
static ViStatus sta;
static ViSession vi;
/* prototypes */
static void chk ( char * funcName );
static void runTest ( void );
static void executePatternSet ( void );
static void executePattern ( ViInt32 patternHandle, ViInt32 patternIdx );
static void diagnosis ( void );
/* FUNCTION *******************************************************************/
/* loads the driver and runs the test
*******************************************************************************/
int main (int argc, char *argv[])
{
printf("Example using IVI functions for static pattern execution\n\n");
/* open driver */
sta = rspio5_InitWithOptions(resDesc, VI_TRUE, VI_TRUE, "Simulate=0", &vi);
/* check return value */
60User Manual 1178.3940.02 ─ 04
Page 77
R&S®TSPIO5
7.3.3.2 Error Handling
Software
Programming Examples
chk ("rspio5_InitWithOptions");
if ( VI_SUCCESS == sta )
{
runTest();
/* close driver */
sta = rspio5_close(vi);
chk ("rspio5_close");
}
printf("\nPress 'Enter' to terminate\n");
getchar();
return 0;
}
This function checks the return values of a driver call. An error message is issued if there is an error.
/* FUNCTION *******************************************************************/
/* checks the return status of a driver call
*******************************************************************************/
static void chk ( char * funcName )
{
if ( sta != VI_SUCCESS )
{
char errorMessage[256];
rspio5_error_message(vi, sta, errorMessage);
printf ("%s returned 0x%08X; %s\n", funcName, sta, errorMessage);
}
}
7.3.3.3 Execution of Digital Test
/* FUNCTION *******************************************************************/
/* configures the digital test, loads the test and executes it.
*******************************************************************************/
static void runTest ( void )
{
/* configure module for static test and result collection */
sta = rspio5_ConfigureMode(vi, RSPIO5_VAL_EXECUTE_STATIC,
RSPIO5_VAL_COLLECT_ALL);
chk ("rspio5_ConfigureMode");
/* configure the timing */
61User Manual 1178.3940.02 ─ 04
Page 78
R&S®TSPIO5
7.3.3.4 Execution of a Pattern Set
Software
Programming Examples
sta = rspio5_ConfigureStaticResponseDelay (vi, 0.5e-6);
chk ("rspio5_ConfigureStaticResponseDelay");
/* execute the pattern set */
executePatternSet();
}
/* FUNCTION *******************************************************************/
/* creates and executes a pattern set
channel assignment:
E_COM = out1
E_EC1 = out2
E_EC2 = out3
E_EC3 = out4
N14CR0805170 = out5
bus = out20 - out27
N13HCPL31500 = in1
N13HCPM31500 = in2
N13HCPN31500 = in3
N13HCPO31500 = in4
*******************************************************************************/
static void executePatternSet ( void )
{
ViInt32 ph;
ViInt32 patternIdx = 1;
/* create a pattern */
sta = rspio5_CreatePattern(vi, &ph);
chk ("rspio5_CreatePattern");
/*** 1. pattern : stim all zero, resp don't care */
sta = rspio5_ConfigureChannelOpcode(vi, ph, o1, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o2, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o3, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o4, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o5, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureGroupOpcode(vi, ph, bus, RSPIO5_VAL_GROUP_INPUT, 0x0);
chk ("rspio5_ConfigureGroupOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, i1, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
62User Manual 1178.3940.02 ─ 04
Page 79
R&S®TSPIO5
Software
Programming Examples
sta = rspio5_ConfigureChannelOpcode(vi, ph, i2, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, i3, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, i4, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
executePattern(ph, patternIdx++);
// NOTE : previously assigned channels keep their channel opcode in
// the following pattern. Therefore only the changes have to be
// programmed
/*** 2. pattern: N14CR0805170 = 1, bus = 01 */
sta = rspio5_ConfigureChannelOpcode(vi, ph, o5, RSPIO5_VAL_OPCODE_IH);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureGroupOpcode(vi, ph, bus, RSPIO5_VAL_GROUP_INPUT, 0x01);
chk ("rspio5_ConfigureGroupOpcode");
executePattern(ph, patternIdx++);
/*** 3. pattern: all stim tristate, bus = 02 */
sta = rspio5_ConfigureChannelOpcode(vi, ph, o1, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o2, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o3, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o4, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o5, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureGroupOpcode(vi, ph, bus, RSPIO5_VAL_GROUP_INPUT, 0x02);
chk ("rspio5_ConfigureGroupOpcode");
executePattern(ph, patternIdx++);
/*** 4. pattern: all stim = 0, bus = 03 */
sta = rspio5_ConfigureChannelOpcode(vi, ph, o1, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o2, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o3, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o4, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o5, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureGroupOpcode(vi, ph, bus, RSPIO5_VAL_GROUP_INPUT, 0x03);
chk ("rspio5_ConfigureGroupOpcode");
63User Manual 1178.3940.02 ─ 04
Page 80
R&S®TSPIO5
Software
Programming Examples
executePattern(ph, patternIdx++);
/*** 5. pattern: N14CR0805170 = 1, bus = 04 */
sta = rspio5_ConfigureChannelOpcode(vi, ph, o5, RSPIO5_VAL_OPCODE_IH);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureGroupOpcode(vi, ph, bus, RSPIO5_VAL_GROUP_INPUT, 0x04);
chk ("rspio5_ConfigureGroupOpcode");
executePattern(ph, patternIdx++);
/*** 6. pattern: all stim tristate, bus = 05 */
sta = rspio5_ConfigureChannelOpcode(vi, ph, o1, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o2, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o3, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o4, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o5, RSPIO5_VAL_OPCODE_IOX);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureGroupOpcode(vi, ph, bus, RSPIO5_VAL_GROUP_INPUT, 0x05);
chk ("rspio5_ConfigureGroupOpcode");
executePattern(ph, patternIdx++);
/*** 7. pattern: all stim = 0, bus = 06, resp N13HCPN31500 = 1 */
sta = rspio5_ConfigureChannelOpcode(vi, ph, o1, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o2, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o3, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o4, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, o5, RSPIO5_VAL_OPCODE_IL);
chk ("rspio5_ConfigureChannelOpcode");
sta = rspio5_ConfigureGroupOpcode(vi, ph, bus, RSPIO5_VAL_GROUP_INPUT, 0x06);
chk ("rspio5_ConfigureGroupOpcode");
sta = rspio5_ConfigureChannelOpcode(vi, ph, i3, RSPIO5_VAL_OPCODE_OH);
chk ("rspio5_ConfigureChannelOpcode");
executePattern(ph, patternIdx++);
/* ... etc ... */
/* last pattern : all tristate / don't care */
sta = rspio5_ConfigureGroupOpcode(vi, ph, out, RSPIO5_VAL_GROUP_IGNORE, 0x0);
chk ("rspio5_ConfigureGroupOpcode");
64User Manual 1178.3940.02 ─ 04
Page 81
R&S®TSPIO5
7.3.3.5 Execution of a Single Pattern
Software
Programming Examples
sta = rspio5_ConfigureGroupOpcode(vi, ph, in, RSPIO5_VAL_GROUP_IGNORE, 0x0);
chk ("rspio5_ConfigureGroupOpcode");
executePattern(ph, patternIdx++);
/* pattern is no longer used */
sta = rspio5_ClearPattern(vi, ph);
chk ("rspio5_ClearPattern");
}
* FUNCTION *******************************************************************/
/* executes a single pattern
*******************************************************************************/
static void executePattern ( ViInt32 patternHandle, ViInt32 patternIdx )
{
ViInt32 patternResult;
sta = rspio5_ExecuteStaticPattern(vi, patternHandle);
chk ("rspio5_ExecuteStaticPattern");
sta = rspio5_FetchStaticPatternResult (vi, &patternResult);
chk ("rspio5_FetchStaticPatternResult");
if ( RSPIO5_VAL_RESULT_FAIL == patternResult )
{
printf("Pattern %d failed\n", patternIdx);
diagnosis ();
}
else
{
printf("Pattern %d passed\n", patternIdx);
}
}
7.3.3.6 Evaluation of a Failed Pattern
/* FUNCTION *******************************************************************/
/* reads information about pattern failures and prints it to stdout
*******************************************************************************/
static void diagnosis ( void )
{
ViInt32 numChannels = 4; /* in1 - in4 */
ViInt32 results[4];
ViInt32 data[4];
ViInt32 actualSize;
int channel;
65User Manual 1178.3940.02 ─ 04
Page 82
R&S®TSPIO5
Software
Programming Examples
/* upload data and results for in1 - in4 */
sta = rspio5_FetchStaticChannelListData(vi, "in1,in2,in3,in4",
numChannels, data, &actualSize);
chk ("rspio5_FetchStaticChannelListData");
sta = rspio5_FetchStaticChannelListResults(vi, "in1,in2,in3,in4",
numChannels, results, &actualSize);
chk ("rspio5_FetchStaticChannelListResults");
for ( channel = 0; channel < numChannels; channel ++ )
{
printf(" in%d ", channel+1);
switch ( data[channel] )
{
case RSPIO5_VAL_DATA_HIGH:
printf("high ");
break;
case RSPIO5_VAL_DATA_LOW:
printf("low ");
break;
default:
printf("? ");
break;
}
switch ( results[channel] )
{
case RSPIO5_VAL_RESULT_PASS:
printf("pass");
break;
case RSPIO5_VAL_RESULT_FAIL:
printf("fail");
break;
default:
printf("not available");
break;
}
printf("\n");
}
}
66User Manual 1178.3940.02 ─ 04
Page 83
R&S®TSPIO5
7.3.4 Static Pattern Output with LowLevel Driver Functions
7.3.4.1 Main Function
Software
Programming Examples
/* Example using low level driver functions for static pattern execution */
#include <utility.h>
#include <ansi_c.h>
#include "rspio5.h"
#define PATTERN_COUNT 8
/* adapt the resource descriptor to your test system! */
static char resDesc[] = "PXI5::13::INSTR";
static ViUInt32 stimData[PATTERN_COUNT] = {
0x00000000,
0x00000010,
0x0000001C, /* tri state */
0x00000000,
0x00000010,
0x0000001C, /* tri state */
0x00000000,
/* etc. */
0x00000000
};
static ViUInt32 portEnable[PATTERN_COUNT] = {
0xFFFFFFFF,
0xFFFFFFFF,
0xFFFFFFFC, /* OTU1, OUT2 tri state */
0xFFFFFFFF,
0xFFFFFFFF,
0xFFFFFFFC, /* OTU1, OUT2 tri state */
0xFFFFFFFF,
/* etc. */
0x00000000 /* OUT1 to OUT32 tri state */
};
static ViStatus sta;
static ViSession vi;
/* prototypes */
static void chk ( char * funcName );
static void runTest ( void );
static void executePatternSet( void );
/* FUNCTION *******************************************************************/
67User Manual 1178.3940.02 ─ 04
Page 84
R&S®TSPIO5
Software
Programming Examples
/* loads the driver and runs the test
*******************************************************************************/
int main(int argc, char *argv[])
{
printf("Use of low level driver functions for static pattern execution\n\n");
/* open a session to the device driver */
sta = rspio5_InitWithOptions(resDesc, VI_TRUE, VI_TRUE, "Simulate=0", & vi);
/* check return value */
chk ("rspio5_InitWithOptions");
if (VI_SUCCESS == sta)
{
runTest();
/* close the driver */
sta = rspio5_close(vi);
chk ("rsphdt_close");
}
printf("\nPress 'Enter' to terminate\n");
getchar();
return 0;
}
7.3.4.2 Error Handling
This function checks the return values of a driver call. A message is issued if there is an error.
/* FUNCTION *******************************************************************/
/* checks the return status of a driver call
*******************************************************************************/
static void chk ( char * funcName )
{
if ( sta != VI_SUCCESS )
{
char errorMessage[256];
rspio5_error_message(vi, sta, errorMessage);
printf ("%s returned 0x%08X; %s\n", funcName, sta, errorMessage);
}
}
7.3.4.3 Execution of Digital Test
/* FUNCTION *******************************************************************/
/* configures the digital test and executes it
68User Manual 1178.3940.02 ─ 04
Page 85
R&S®TSPIO5
Software
Programming Examples
*******************************************************************************/
static void runTest ( void )
{
/* configure 32 bit wide static operation */
sta = rspio5_ConfigureStimMode (vi, RSPIO5_VAL_CTRL_STATIC, 0x00000000 );
chk ("rspio5_ConfigureStimMode");
/* configure 32 bit wide static operation */
sta = rspio5_ConfigureRespMode(vi, RSPIO5_VAL_CTRL_STATIC);
chk ("rspio5_ConfigureRespMode");
/* executes the pattern set */
executePatternSet();
}
7.3.4.4 Execution of a Pattern Set
/* FUNCTION *******************************************************************/
/* executes the pattern set
*******************************************************************************/
static void executePatternSet( void )
{
int loopIdx;
ViUInt32 response;
printf("Idx | Stimulus | Enable | Response \n");
printf("----+------------+------------+-----------\n");
for (loopIdx = 0; loopIdx < PATTERN_COUNT; loopIdx++)
{
sta = rspio5_SetDoutState(vi, 0xFFFFFFFF, stimData[loopIdx], portEnable[loopIdx]);
chk ("rspio5_SetDoutState");
Delay(100.0e-6);
sta = rspio5_GetDinState(vi, &response);
chk ("rspio5_GetDinState");
printf("%3d | 0x%08X | 0x%08X | 0x%08X\n", loopIdx, stimData[loopIdx],
portEnable[loopIdx], response);
}
}
69User Manual 1178.3940.02 ─ 04
Page 86
R&S®TSPIO5
7.3.5 Dynamic Pattern Execution with LowLevel Driver Functions
7.3.5.1 Main Function
Software
Programming Examples
/* Example using low level driver functions for dynamic pattern execution */
#include <ansi_c.h>
#include "rspio5.h"
#define PATTERN_COUNT 8
#define PATTERN_PERIOD 2.0e-6
#define FETCH_TIMEOUT 0.1
/* adapt the resource descriptor to your test system! */
static char resDesc[] = "PXI5::13::INSTR";
static ViUInt32 stimData[PATTERN_COUNT] = {
0x00000000,
0x00000010,
0x0000001C, /* tri state */
0x00000000,
0x00000010,
0x0000001C, /* tri state */
0x00000000,
/* etc. */
0x00000000
};
static ViUInt32 stimTristate[PATTERN_COUNT] = {
0x00000000,
0x00000000,
0x00000003, /* tri state */
0x00000000,
0x00000000,
0x00000003, /* tri state */
0x00000000,
/* etc. */
0xFFFFFFFF /* tri state */
};
static ViStatus sta;
static ViSession vi;
static ViUInt16 memId;
/* data buffer */
static RSPIO5_DATA_32BIT_TRISTATE stimulus[PATTERN_COUNT];
static RSPIO5_DATA_32BIT response[PATTERN_COUNT];
/* prototypes */
70User Manual 1178.3940.02 ─ 04
Page 87
R&S®TSPIO5
Software
Programming Examples
static void chk ( char * funcName );
static void runTest ( void );
static void createPatternSet ( void );
/* FUNCTION *******************************************************************/
/* loads the driver and runs the test
*******************************************************************************/
int main(int argc, char *argv[])
{
printf("Use of low level driver functions for dynamic pattern execution\n\n");
/* open a session to the device driver */
sta = rspio5_InitWithOptions(resDesc, VI_TRUE, VI_TRUE, "Simulate=0", & vi);
/* check return value */
chk ("rspio5_InitWithOptions");
if (VI_SUCCESS == sta)
{
runTest();
/* close the driver */
sta = rspio5_close(vi);
chk ("rspio5_close");
}
printf("\nPress 'Enter' to terminate\n");
getchar();
return 0;
}
7.3.5.2 Error Handling
This function checks the return values of a driver call. A message is issued if there is an error.
/* FUNCTION *******************************************************************/
/* checks the return status of a driver call
*******************************************************************************/
static void chk ( char * funcName )
{
if ( sta != VI_SUCCESS )
{
char errorMessage[256];
rspio5_error_message(vi, sta, errorMessage);
printf ("%s returned 0x%08X; %s\n", funcName, sta, errorMessage);
}
}
71User Manual 1178.3940.02 ─ 04
Page 88
R&S®TSPIO5
7.3.5.3 Execution of Digital Test
Software
Programming Examples
/* FUNCTION *******************************************************************/
/* configures the digital test, loads the test and executes it.
*******************************************************************************/
static void runTest ( void )
{
ViUInt32 respByteCount;
ViInt32 loopIdx;
ViReal64 triggerDelayStim = 0.0;
ViReal64 triggerDelayResp = PATTERN_PERIOD / 2.0;
/* configure 32 bit wide dynamic operation: OUT1 .. OUT32 will be operated
dynamically; no static channels */
sta = rspio5_ConfigureStimMode (vi, 0xFFFFFFFF, RSPIO5_VAL_CTRL_32BIT_TRISTATE);
chk ("rspio5_ConfigureStimMode");
/* configure 32 bit wide dynamic operation */
sta = rspio5_ConfigureRespMode(vi,RSPIO5_VAL_CTRL_DYNAMIC);
chk ("rspio5_ConfigureRespMode");
/* configure stimulus timing */
sta = rspio5_ConfigureStimTiming(vi, triggerDelayStim, PATTERN_PERIOD,
RSPIO5_DYN_STIM_MODE_NORMAL,PATTERN_COUNT);
chk ("rspio5_ConfigureStimTiming");
/* configure response timing */
sta = rspio5_ConfigureRespTiming(vi, triggerDelayResp, PATTERN_PERIOD,
RSPIO5_DYN_RESP_MODE_NORMAL, PATTERN_COUNT);
chk ("rspio5_ConfigureRespTiming");
/* create and load the pattern set */
createPatternSet();
/* start pattern execution */
sta = rspio5_ExecutePattern(vi, memId);
chk ("rspio5_ExecutePattern");
/* read the response data */
sta = rspio5_FetchPatternResponseData(vi, sizeof(response),
(ViAddr *)response, FETCH_TIMEOUT, & respByteCount);
chk ("rspio5_FetchPatternResponseData");
/* evaluate response data */
printf("Response data:\n");
for (loopIdx = 0; loopIdx < PATTERN_COUNT; loopIdx++)
72User Manual 1178.3940.02 ─ 04
Page 89
R&S®TSPIO5
7.3.5.4 Generation of a Pattern Set
Software
Programming Examples
{
printf("%2d 0x%08X\n", loopIdx, response[loopIdx].data);
}
/* free stimulus memory */
sta = rspio5_DiscardData(vi, memId);
chk ("rspio5_DiscardData");
}
/* FUNCTION *******************************************************************/
/* creates and loads a pattern set
*******************************************************************************/
static void createPatternSet ( void )
{
int loopIdx;
/* generate stimulus data */
printf("Stimulus data:\n");
for (loopIdx = 0; loopIdx < PATTERN_COUNT; loopIdx++)
{
/* add index information to OUT20 to OUT27 */
stimulus[loopIdx].data = stimData[loopIdx]| (loopIdx << 19);
stimulus[loopIdx].tristate = stimTristate[loopIdx];
printf("%2d 0x%08X\n", loopIdx, stimulus[loopIdx].data);
printf(" 0x%08X\n", stimulus[loopIdx].tristate);
}
/* load data to stimulus RAM */
sta = rspio5_LoadData (vi, (ViAddr)stimulus, sizeof(stimulus),
RSPIO5_VAL_DATA_TYPE_STIM, & memId);
chk ("rspio5_LoadData");
}

7.3.6 Triggered Pattern Execution

In this example, a pulse on trigger line PXI0 of the TSVP backplane triggers output of the pattern. The trigger pulse is generated by the R&S TSPIO5 module itself. Other measurement modules in the TSVP frame can also use this signal to perform a trig­gered measurement. It is, of course, also possible to start other R&S TSPIO5 modules in the system using this signal.
73User Manual 1178.3940.02 ─ 04
Page 90
R&S®TSPIO5
7.3.6.1 Main Program
Software
Programming Examples
In the example, the stimulus logic and response logic (IT1 and IT2) are started by the same signal (PXI0). In addition, the output clock of the stimulus logic (internal trigger logic block 1 or IT1) can be routed to pin TRIG of the front connector.
/* Example using low level driver functions for triggered execution */
#include <ansi_c.h>
#include "rspio5.h"
#define PATTERN_COUNT 8
#define PATTERN_PERIOD 1.0e-6
/* adapt the resource descriptor to your test system! */
static char resDesc[] = "PXI5::13::INSTR";
/* data buffer */
static RSPIO5_DATA_32BIT response[PATTERN_COUNT];
static RSPIO5_DATA_32BIT stimulus[PATTERN_COUNT] = {
0x00000000,
0x00000001,
0x00000002,
0x00000003,
0x00000004,
0x00000005,
0x00000006,
0x00000007
};
static ViStatus sta;
static ViSession vi;
static ViUInt16 memId;
/* prototypes */
static void chk ( char * funcName );
static void runTest ( void );
/* FUNCTION *******************************************************************/
/* loads the driver and runs the test
*******************************************************************************/
int main(int argc, char *argv[])
{
printf("Use of low level driver functions for triggered execution\n\n");
/* open a session to the device driver */
sta = rspio5_InitWithOptions(resDesc, VI_TRUE, VI_TRUE, "Simulate=0", & vi);
/* check return value */
chk ("rspio5_InitWithOptions");
74User Manual 1178.3940.02 ─ 04
Page 91
R&S®TSPIO5
7.3.6.2 Error Handling
Software
Programming Examples
if (VI_SUCCESS == sta)
{
runTest();
/* close the driver */
sta = rspio5_close(vi);
chk ("rspio5_close");
}
printf("\nPress 'Enter' to terminate\n");
getchar();
return 0;
}
/* FUNCTION *******************************************************************/
/* checks the return status of a driver call
*******************************************************************************/
static void chk ( char * funcName )
{
if ( sta != VI_SUCCESS )
{
char errorMessage[256];
rspio5_error_message(vi, sta, errorMessage);
printf ("%s returned 0x%08X; %s\n", funcName, sta, errorMessage);
}
}
7.3.6.3 Triggered Digital Test
/* FUNCTION *******************************************************************/
/* configures the digital test, loads the test and executes it.
*******************************************************************************/
static void runTest ( void )
{
ViUInt32 respByteCount;
ViInt32 loopIdx;
/* configure 32 bit wide dynamic operation without tri-state control */
sta = rspio5_ConfigureStimMode(vi, 0xFFFFFFFF, RSPIO5_VAL_CTRL_32BIT);
chk ("rspio5_ConfigureStimMode");
sta = rspio5_ConfigureRespMode(vi, RSPIO5_VAL_CTRL_DYNAMIC);
chk ("rspio5_ConfigureRespMode");
/* configure stimulus timing */
75User Manual 1178.3940.02 ─ 04
Page 92
R&S®TSPIO5
Software
Programming Examples
sta = rspio5_ConfigureStimTiming(vi, 0.0, PATTERN_PERIOD,
RSPIO5_DYN_STIM_MODE_NORMAL, PATTERN_COUNT);
chk ("rspio5_ConfigureStimTiming");
/* configure response timing */
sta = rspio5_ConfigureRespTiming(vi, PATTERN_PERIOD / 2.0,
PATTERN_PERIOD, RSPIO5_DYN_RESP_MODE_NORMAL, PATTERN_COUNT);
chk ("rspio5_ConfigureRespTiming");
/* load data to stimulus RAM */
sta = rspio5_LoadData(vi, (ViAddr)stimulus, sizeof(stimulus),
RSPIO5_VAL_DATA_TYPE_STIM, & memId);
chk ("rspio5_LoadData");
/* configure trigger logic blocks to output the clock pulses */
sta = rspio5_ConfigItTrigOut(vi,RSPIO5_IT_MASK_IT1 |RSPIO5_IT_MASK_IT2,
RSPIO5_VAL_TRIG_IT_OUT);
chk ("rspio5_ConfigItTrigOut");
/* configure XTO to output the signal of trigger logic block 1 (stimulus) */
sta = rspio5_ConfigXTO(vi,RSPIO5_VAL_TRIG_IT1);
chk ("rspio5_ConfigXTO");
/* general purpose trigger should output a pulse at PXI0 */
sta = rspio5_ConfigPxiTrigOut(vi,RSPIO5_TRIG_MASK_PXI0,RSPIO5_VAL_TRIG_GP,
RSPIO5_TRIG_MASK_PXI0,RSPIO5_TRIG_MASK_PXI0);
chk ("rspio5_ConfigPxiTrigOut");
/* stimmulus and response should be triggert by PXI0 */
sta = rspio5_ConfigHWTriggerInput(vi,RSPIO5_IT_MASK_IT1 |RSPIO5_IT_MASK_IT2,
RSPIO5_TRIG_MASK_PXI0,RSPIO5_TRIG_MASK_PXI0, RSPIO5_VAL_FALLING_EDGE);
chk ("rspio5_ConfigHWTriggerInput");
/* load the stimulus buffer for triggered pattern generation */
sta = rspio5_LoadStimBuffer (vi, memId);
chk ("rspio5_LoadStimBuffer");
/* arm trigger logic blocks */
sta = rspio5_EnableHWTrigger(vi,RSPIO5_IT_MASK_IT1 |RSPIO5_IT_MASK_IT2,
RSPIO5_IT_MASK_IT1 |RSPIO5_IT_MASK_IT2);
chk ("rspio5_EnableHWTrigger");
/* generate the general purpose trigger pulse at PXI0 */
sta = rspio5_InitiateSWTrigger(vi,RSPIO5_IT_MASK_GP);
chk ("rspio5_InitiateSWTrigger");
/* wait until the pattern execution has finished; read the response data */
sta = rspio5_FetchPatternResponseData(vi, sizeof(response),
(ViAddr *)response, 0.1, & respByteCount);
chk ("rspio5_FetchPatternResponseData");
76User Manual 1178.3940.02 ─ 04
Page 93
R&S®TSPIO5
Software
Programming Examples
/* evaluate response data */
printf("Idx | Stimulus | Response \n");
printf("-----------------------------\n");
for (loopIdx = 0; loopIdx < PATTERN_COUNT; loopIdx++)
{
printf("% 3d | 0x%08X | 0x%08X\n",
loopIdx, stimulus[loopIdx].data, response[loopIdx].data);
}
/* free stimulus memory */
sta = rspio5_DiscardData(vi, memId);
chk ("rspio5_DiscardData");
}
77User Manual 1178.3940.02 ─ 04
Page 94
R&S®TSPIO5
SelfTest
8 SelfTest
The R&S TSPIO5 digital functional test module has builtin selftest capability. The fol­lowing tests are possible:
LED test
Poweron test
TSVP selftest

8.1 LED Test

When the device is switched on, all three LEDs light up for approx. one second. This indicates that the supply voltage is present and all LEDs are OK. The following state­ments can be made regarding the different LED states:
Table 8-1: Statements regarding LED test
LED Description
TSVP Self
Test
One LED does not light up Hardware problem on the module; LED defective
No LEDs light up No 3.3 V supply
8.2 PowerOn Test
The poweron test runs at the same time as the LED test. The following statements can be made regarding the different display states of the LEDs:
Table 8-2: Statements regarding power
LED Description
PWR LED (green) on All supply voltages are present
PWR LED (green) off At least one supply voltage is missing
ERR LED (red) off No errors have been detected
ERR LED (red) on Loading of FPGAs has failed
8.3 TSVP SelfTest
on test
The TSVP selftest runs an indepth test on the R&S TSPIO5 module and generates a detailed log. This is done using the "Self-Test Support Library".
The R&S TSPSAM analog stimulus and measurement module is used as a measure­ment unit in the TSVP selftest in order to check trigger line PXI_TRIG[07].
78User Manual 1178.3940.02 ─ 04
Page 95
R&S®TSPIO5
SelfTest
TSVP SelfTest
Information about starting the selftest and about the sequence of the necessary steps can be found in the GTSL Software Description or GTSL online help.
A detailed description of the checked parameters and processes can be found in the R&S CompactTSVP / R&S PowerTSVP Service Manual.
79User Manual 1178.3940.02 ─ 04
Page 96
R&S®TSPIO5

9 Interface Description

9.1 Connector X1

Interface Description
Connector X1
Figure 9-1: R&S TS‑PIO5 connector X1
80User Manual 1178.3940.02 ─ 04
Page 97
R&S®TSPIO5
Interface Description
Connector X1
Figure 9-2: Pin assignment of R&S TS‑PIO5 connector X1
81User Manual 1178.3940.02 ─ 04
Page 98
R&S®TSPIO5

9.2 Connector X20

Interface Description
Connector X20
Figure 9-3: R&S TS‑PIO5 connector X20
Table 9-1: Pin assignment of R&S TS‑PIO5 connector X20
Pin E D C B A
22 GA0 GA1 GA2 GA3 GA4
21
20
19
18 PXI_TRIG6 GND PXI_TRIG5 PXI_TRIG4 PXI_TRIG3
17 PXI_CLK10
16 PXI_TRIG7 GND
15
14
13
12
11
10
GND
GND
GND PXI_TRIG2
GND
PXI_TRIG1
82User Manual 1178.3940.02 ─ 04
Page 99
R&S®TSPIO5
Interface Description
Connector X30
Pin E D C B A
9
8
7
6
5
4
3 RSA0 RRST# TCK_EXT GND RSDO
2
1

9.3 Connector X30

TDO_EXT
TDI_EXT
TMS_EXT
RSDI RSA1 RSA2 RSCLK
GND RCS#
Figure 9-4: R&S TS‑PIO5 connector X30
Table 9-2: Pin assignment of R&S TS‑PIO5 connector X30
7
6
E D C B A
GND
83User Manual 1178.3940.02 ─ 04
Page 100
R&S®TSPIO5
Interface Description
Connector X30
5
4
3
2
1
E D C B A
84User Manual 1178.3940.02 ─ 04
Loading...