EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  <20002001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  <20002001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: INP field for generic GPIB record
From: Ned Arnold <[email protected]>
To: [email protected]
Cc: [email protected]
Date: Thu, 16 Mar 2000 08:19:43 -0600 (CST)
> 
> Hi,
> 
> How do I determine the link number L in the input fields of a GPIB_IO
> device?  We are attempting to use and NI-1014.  I looked through the
> driver to find that the driver automatically searches for  NI-1014
> boards starting at VME address 0x5000 and that each  board occupies
> 0x200 bytes of VME space.  I forgot to write down how far the search
> proceeds in VME space.  From what I could tell the number after L
> identifies which controller to use based on the distribution in VME
> space.  So if I have the 1014 at address 0x5000 and my GPIB device at 2
> the INP specification would be  "#L0 A2 @".  Is this correct?
> 
> Thanks
> 
> Geoff
> 


Yes, that's correct.

Old style drivers have the starting address, interrupt vectors, 
max number of cards, etc stored in include/module_types.h .  The 1014
has the following :

 
/******************************************************************************
 *
 * Addresses and IRQ information used by the NI1014 and NI1014D cards.
 *
 ******************************************************************************/
MODULE_TYPES_DEF(unsigned short NIGPIB_SHORT_OFF)
#ifdef MODULE_TYPES_INIT
                =  0x5000;/* First address of link 0's region */
#endif
                                /* Each link uses 0x0200 bytes */
#define    NIGPIB_NUM_LINKS  4     /* Max number of NI GPIB ports allowed */
MODULE_TYPES_DEF(int NIGPIB_IVEC_BASE )
#ifdef MODULE_TYPES_INIT
                = 100;   /* Vectored interrupts (2 used for each link) */
#endif
MODULE_TYPES_DEF(int NIGPIB_IRQ_LEVEL  )
#ifdef MODULE_TYPES_INIT
                =5;     /* IRQ level */
#endif

#if 0   /* JRW */
#define NI1014_LINK_NUM_BASE    0
#endif


Newer drivers and device support require a configuration statement in the
st.cmd file, giving the application developer a little more flexibility.

Example :

# Video Sync Gen Configure
#SyncGenConfigure(Card, CardAddress, IrqVector, IrqLevel)
SyncGenConfigure(0, 0x8b00, 0, 1)



The trick is knowing what needs done for any given device type.


	Ned
	




Navigate by Date:
Prev: Re: IOC Performance numbers Richard Dickson
Next: Re: IOC Performance numbers Marty Kraimer
Index: 1994  1995  1996  1997  1998  1999  <20002001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: INP field for generic GPIB record Geoff Savage
Next: Re: INP field for generic GPIB record Ned Arnold
Index: 1994  1995  1996  1997  1998  1999  <20002001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·