Driver for Le Croy LT 364 Scope with
- Slides: 20
Driver for Le. Croy LT 364 Scope with Ethernet interface PENG, Sheng Brookhaven National Laboratory Accelerator Controls EPICS Collaboration Meeting @ ORNL Nov 2000
Driver for Le. Croy LT 364 Scope with Ethernet interface • vx. Works driver: General & Fast • EPICS device support • In fact, this driver could be used with almost all Le. Cory scopes with Ethernet interface Accelerator Controls EPICS Collaboration Meeting @ ORNL Nov 2000
MEDM Ethernet IOC CPU Board Accelerator Controls Le. Croy LT 364 EPICS Collaboration Meeting @ ORNL Nov 2000
MEDM Ethernet IOC Share memory CPU Boards Accelerator Controls Le. Croy LT 364 Ethernet EPICS Collaboration Meeting @ ORNL Nov 2000
Le. Croy LT 364 Specification Sampling Rate per Channel: 500 MS/s max when using four channels ( 1 GS/s when using two channels) Vertical Resolution: 8 bits Sensitivity: 2 m. V – 10 V/div fully variable Clock Accuracy: <=10 ppm Interpolator Resolution: 5 ps Processor: 160 MHz Power. PC Memory: 16 Mbytes Interface: 10 Base-T, GPIB, Serial port Setup source: Floppy Disk, NVMEM Accelerator Controls EPICS Collaboration Meeting @ ORNL Nov 2000
Benefit 1. Fast. Normally we control scope via GPIB interface, Ethernet interface is faster; 2. Easy to use. We have Ethernet everywhere and length limitation of cable is much longer then GPIB; 3. Easy to port. Driver is only based on BSD 4. 3 compatible socket, so it’s easy to port. We don’t need to ask manufacturer to support particular platform. Accelerator Controls EPICS Collaboration Meeting @ ORNL Nov 2000
Performance (general) • We tested our driver (version 0. 2), it can work on 60 Hz ( 1000 points); For one IOC to Multi scopes mode: • We did a simple test to our IOC (MV 2302) by ftp a file to Ram. Disk in IOC, the throughput could be 26 Mbps. For one scope ( EPICS record scan rates is 10 HZ, and 1000 points per waveform ) we need 10*1 k*8=80 kbps. So I believe one IOC can support at least 10 scopes at same time; Accelerator Controls EPICS Collaboration Meeting @ ORNL Nov 2000
Performance (fast) • The format of response from LT 364: … head data The head is 8 bytes. First byte indicates if it’s last block, last four byte is length of following data block. • General driver reads head each time then data. Fast driver read fixed length; • Enlarge socket buffer is helpful; • The actual rates is up to load of scope’s CPU; • In particular case I reach almost 1000 Hz head Accelerator Controls data head data EPICS Collaboration Meeting @ ORNL Nov 2000
Function definition LT 364 ID STATUS open_LT 364(char * addr); close_LT 364(LT 364 ID lt 364 id); int read_LT 364(LT 364 ID lt 364 id, int chnl, float *waveform, int pts); STATUS Accelerator Controls ioctl_LT 364(LT 364 ID lt 364 id, int chnl, int op, void * arg); EPICS Collaboration Meeting @ ORNL Nov 2000
Supported op • RESET: Not channel-related, don’t need arg. • ENABLECHAN: Enable channel chnl, don’t need arg. • DISABLECHAN: Disable channel chnl, don’t need arg. • GETCHANSTAT: Get channel chnl status (ON or OFF), store to *arg as integer. Accelerator Controls EPICS Collaboration Meeting @ ORNL Nov 2000
Supported op (con’d) • SETMEMSIZE Not channel-related, set waveform length. arg should point to an integer. *arg 0 2 4 6 8 10 12 length 500 2. 5 K 10 K 50 K 250 K 1 M 5 M *arg 1 3 5 7 9 11 13 length 1 K 5 K 25 K 100 K 500 K 2. 5 M 10 M Sample rates = memsize/(timediv*10); Which is longest one for you scope is up to how much memory your scope has. Accelerator Controls EPICS Collaboration Meeting @ ORNL Nov 2000
Supported op (con’d) • GETMEMSIZE Not channel-related, get waveform length and store to *arg as integer. • SETTIMEDIV Not channel-related, set time div. arg should point to a float. Unit is second. • GETTIMEDIV Not channel-related, get time div and store to *arg as float. Unit is second. Accelerator Controls EPICS Collaboration Meeting @ ORNL Nov 2000
Supported op (con’d) • SETVOLTDIV Channel-related, set Volt div of channel chnl. arg should point to a float. Unit is volt. • GETVOLTDIV Channel-related, get Volt div of channel chnl and store to *arg as float. Unit is volt. • SETTRGMODE Not channel-related, set trigger mode. arg should point to a integer. *arg means: 0: AUTO 1: NORMAL 2: SINGLE 3: STOP • GETTRGMODE Not channel-related, get trigger mode and store to *arg as integer. Accelerator Controls EPICS Collaboration Meeting @ ORNL Nov 2000
Supported op (con’d) • SETTRGSRC Not channel-related, set trigger source. arg should point to a integer. *arg means: 0: Ext 1: C 1 2: C 2 3: C 3 4: C 4 • GETTRGSRC Not channel-related, get trigger source and store to *arg as integer. Accelerator Controls EPICS Collaboration Meeting @ ORNL Nov 2000
Supported op (con’d) • LDPNLSTP Not channel-related, load panel_setup from nvmem in scope. arg should point a integer. *arg means nvmem number(0 -4). *arg equal 0 means load default panel_setup. • SVPNLSTP Not channel-related, save panel_setup to nvmem in scope. arg should point to a integer. *arg means nvmem number(1 -4). Accelerator Controls EPICS Collaboration Meeting @ ORNL Nov 2000
In the future … 1. We will upgrade our driver to support more functions to fit our application; 2. We hope Le. Croy will upgrade Ethernet interface of LT 364 from 10 Base-T to 100 Base-T, so we will get faster refresh rates. Accelerator Controls EPICS Collaboration Meeting @ ORNL Nov 2000
How to Use v. At first, you should call open_LT 364. The parameter is IP address of your scope. And return is a struct pointer if successed or NULL if failed. v. When you finished using scope, you should call close_LT 364 with parameter returned by open_LT 364. Accelerator Controls EPICS Collaboration Meeting @ ORNL Nov 2000
How to Use (con’d) 1. After you call open_LT 364, if you want to control or monitor the configuration of scope that is not related to a channel, you can use ioctl_LT 364 with parameter chnl equal 0. If you want to control or monitor the configuration of scope that is related to a channel, you should call ioctl_LT 364 with chnl as what you want and op as ENABLECHAN first. Accelerator Controls EPICS Collaboration Meeting @ ORNL Nov 2000
How to Use (con’d) v. If you want to get waveform, you should prepare an float array with correct length. Then call read_LT 364 with chnl as which you want to read and pts as how many points you want. And you can get exact waveform length by call ioctl_LT 364 with chnl equal 0 and op as GETMEMSIZE. Accelerator Controls EPICS Collaboration Meeting @ ORNL Nov 2000
How to get it … • E-mail: peng@bnl. gov • Telephone: (631)344 -8401 • Web: http: //www. sns. bnl. gov/ epics/enet-scope/ Accelerator Controls EPICS Collaboration Meeting @ ORNL Nov 2000
- Thomas croy
- Udr 13 tm
- Weerklank 364
- Rounding word problems
- Bleach 364
- Windows driver foundation - user-mode driver framework
- Product scope vs project scope
- Io2br3
- Tack för att ni har lyssnat
- Ekologiskt fotavtryck
- Centrum för kunskap och säkerhet
- Läkarutlåtande för livränta
- Påbyggnader för flakfordon
- Inköpsprocessen steg för steg
- A gastrica
- Egg för emanuel
- Formula varians
- Atmosfr
- Rutin för avvikelsehantering
- Myndigheten för delaktighet
- Presentera för publik crossboss