Agilent Technologies E1476A User Manual page 113

64-channel, 3-wire multiplexer module
Table of Contents

Advertisement

Close and Open Channels
/******************** close and open channels *******************/
/* close channels 0-15 by setting all bits in register (base + 0x20) to 1 */
iwpoke((unsigned short *)(base_addr + 0x20), 0xffff);
/* write a 1 to the register for tree relay 90 (base + 0x28) */
/* so channels 0-15 can be connected to the analog bus */
iwpoke((unsigned short *)(base_addr + 0x28), 1);
/* read the E1476A relay control registers and print their value */
chan_0_15_reg = iwpeek((unsigned short *)(base_addr + 0x20));
chan_16_31_reg = iwpeek((unsigned short *)(base_addr + 0x22));
chan_32_47_reg = iwpeek((unsigned short *)(base_addr + 0x24));
chan_48_63_reg = iwpeek((unsigned short *)(base_addr + 0x26));
chan_tree_reg = iwpeek((unsigned short *)(base_addr + 0x28));
printf("Channels 00-15 register = 0x%4X\n", chan_0_15_reg);
printf("Channels 16-31 register = 0x%4X\n", chan_16_31_reg);
printf("Channels 32-47 register = 0x%4X\n", chan_32_47_reg);
printf("Channels 48-63 register = 0x%4X\n", chan_48_63_reg);
printf("Channels 90-94 (tree) register = 0x%4X\n", chan_tree_reg);
delay (2000); /* waits 2 seconds before resetting mux */
/* reset the E1476A to open all closed channels */
/* writing a 0 to the channels registers will also open channels */
reset_mux(base_addr);
Scan Channels
/********************** scanning channels **********************/
/* connect Bank A and Bank B to the analog bus by */
/* closing the VSA and VSB tree relays (bits 0 and 1) */
iwpoke ((unsigned short *)(base_addr + 0x28), 3);
/* scan channels 0-15 in bank A (register offset 0x20) */
for (k=0; k<=15; k++)
{
iwpoke ((unsigned short *)(base_addr + 0x20), ldexp(1,k));
/* take measurement here after each iteration of the loop */
}
/* set all bits to 0 to open last closed channel */
iwpoke ((unsigned short *)(base_addr + 0x20), 0);
/* scan channels 16-31 in bank A (register offset 0x22) */
for (k=0; k<=15; k++)
{
iwpoke ((unsigned short *)(base_addr + 0x22), ldexp(1,k));
/* take measurement here after each iteration of the loop */
}
112 Register-Based Programming
Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com
Appendix B

Advertisement

Table of Contents
loading

Table of Contents