Download presentation
Presentation is loading. Please wait.
Published byOwen Wilkerson Modified over 9 years ago
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.