Presentation is loading. Please wait.

Presentation is loading. Please wait.

Visual Basic for Applications The Datapump Board Jamieson Olsen.

Similar presentations


Presentation on theme: "Visual Basic for Applications The Datapump Board Jamieson Olsen."— Presentation transcript:

1 Visual Basic for Applications The Datapump Board Jamieson Olsen

2 EEDEED Background I  D0 Central Track Trigger (CTT)

3 EEDEED Background II  Trigger Electronics Low Voltage Differential Signal (LVDS) Channel Links

4 EEDEED Background III  LVDS Channel Links The PROBLEM: Can’t probe the LVDS pairs! Can’t use a logic analyzer or ‘scope!

5 EEDEED The Datapump  To debug our trigger hardware it would be useful to have a data pattern generator that would drive channel links.  Likewise, it would be good to have a board that could capture channel link data and read it out.  General purpose – it should work with AFE, Mixer, and DFE boards!

6 EEDEED Hardware Interface Need some easy way to load test vectors into the transmitters and readout the captured data on the receivers. What’s the hardware interface?

7 EEDEED Hardware Interface OK, use a PC! How should the PC connect to the Datapump?  VME is not portable  PCI, PCMCIA, USB, IEEE1394? Huh?  Parallel port is fast & easy to program! (More on this later…)

8 EEDEED Datapump Board

9 EEDEED  Three medium-sized Field Programmable Gate Arrays (FPGAs) are used to build the transmitter and receiver circuits.  A small CPLD acts as the parallel port interface “bridge” to the FPGAs.

10 EEDEED Transmitter Circuit  Each transmitter sends 128 28-bit words (loops continuously).  All ten transmitters are synchronized to the same counter and 53MHz clock.  The transmitter test vectors can be read back for verification.

11 EEDEED Receiver Circuit  Specify a unique trigger pattern for each receiver. Should include ‘X’ (don’t care) bits.  All receivers are armed simultaneously.  Once armed, each receiver waits for the trigger pattern, then captures 256 data words.

12 EEDEED Parallel Port  Enhanced Parallel Port (EPP) is used  8-bit bi-directional datapath  Three “ports” in the PC I/O space: Control, Data, Address  Setup the control port, then…  To write a byte: outp(port, data)  To read a byte: inp(port)

13 EEDEED Parallel Ports and VBA  VBA does not include the inp() and outp() functions.  VBA calls functions in a DLL (ntio.dll) called VB_pokeIO(port, data) and VB_peekIO(port)  The peek/poke functions in this DLL “cut through” windows and get right to the hardware ports.

14 EEDEED User Interface  There are lots of test vectors which need to be visible simultaneously.  An Excel spreadsheet is ideal for this application!  VBA talks to the datapump via the parallel port.

15 EEDEED Excel Control Buttons  Configure the datapump FPGAs.  Write/Verify the transmitter test vectors.  Specify the trigger pattern for each receiver.  ‘Arm’ and readback the receiver data.

16 EEDEED Configuration  Must do this each time datapump is power cycled.  Originally this was a C program and DOS batch file, but it was all converted into VBA.  Writes three files to the datapump PLDs.  The VBA module is called HEXDUMP, calls two subs Vbwrite_C() and hexdump().

17 EEDEED Datapump Transmitters VBA module “datapump”, subroutines Download_Vector() and Verify_Vector()

18 EEDEED Datapump Receivers VBA module “datapump”, subroutines setup_U1() and readback_U1()

19 Backup Slides

20 EEDEED EPP Registers

21 EEDEED DFE Motherboard


Download ppt "Visual Basic for Applications The Datapump Board Jamieson Olsen."

Similar presentations


Ads by Google