Driver for Le Croy LT 364 Scope with

  • Slides: 20
Download presentation
Driver for Le. Croy LT 364 Scope with Ethernet interface PENG, Sheng Brookhaven National

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:

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

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

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

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;

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

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

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

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,

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

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

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

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

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

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

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

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

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

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 •

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