This is an old revision of the document!
Table of Contents
Introduction
CoBo: Concentration Board for the GET (General electronics for TPC) electronics to reduce high data throughput of Time Projection Chamber detectors.
CoBo interfaces with three major components:
- Asad (ASIC-ADC) board via 68-pin VHDCI cables. Asad hosts the AGET chip.
- Mutant (MUltiplicity Trigger ANd Time) board via MicroTCA backplane: CLK2, CLK3, PORT1, and PORTS<8:11>.
- Controller and storage farm via GbE connections.
CoBo is μTCA compatible. i.e. PICMG® AMC.0 R1.0. and is hosted in MicroTCA chassis (VadaTech VT893). The chassis is capable of hosting 11 CoBo cards. However, in AT-TPC we will only utilize 10 cards. Each CoBo card is connected to 4 Asad boards and each Asad board is connected to 256 (channels) sensors in the detector. Therefore, the entire system is capable of processing 10240 channels.
Development Tiers
CoBo hardware, firmware, and software is developed at NSCL. The generic embedded software for AGET chip is developed by IRFU (CEA) and is used on Mutant, CoBo, and PC farm.
Responsibilities:
- NSCL:
- Xilinx ML507 test platform and daughter board for CoBo (Nathan Usher)
- CoBo PCB design, implementation, and testing (Faisal T. Abu-Nimeh)
- Firmware:
- CoBo_Control and CoBo_Data IPs (Nathan Usher)
- PLL IP (Faisal T. Abu-Nimeh)
- System Architecture (CPU, Memory, Ethernet, etc) (Faisal T. Abu-Nimeh)
- Embedded Software: development and testing (Faisal T. Abu-Nimeh)
- MicroTCA development (based on VT028) (Faisal T. Abu-Nimeh)
- IRFU:
- VxWorks GET Embedded Software (Patrick Sizun and Shebli Anvar)
- NSCL quick installation for GET software
Block Diagram
A simplified depiction of the GET system is shown in the figure. A time project chamber hosting a 10240-pad MicroMega is connected to a smart protection board then fed to the AGET chips hosted on the Asad board. Every CoBo is then connected to 4 Asad boards using 4 dedicated VHDCI connectors on the front panel. The processed data is passed down to the Mutant as well as sent out using GbE to the storage farm.
Quick Start
- Locate an empty slot in the MicroTCA crate.
- Remove any other AMC cards in the crate to make sure there is no conflicts on the backplane.
- Make sure that the MCH (UTC002) is plugged in, and the Power Supply (UTC010) is plugged in.
- Connect Xilinx USB JTAG to CoBo
- Insert cobo to any slot you desire.
- Switch on the crate. after a while a green LED should light up on CoBo in the upper right corner i.e. top. Since you are using a socket, Asad status LEDS might come on. you can ignore these for now.
- If the board is ready, the LED on the JTAG connector should be green not amber. If it is amber then the cobo is not powered up.
- Connect the MCH port GbE0 or GbE1 to your network. This has to be a local network. If you are using VadaTech the IP should be 192.168.40.xxx
- NFS should be exporting the embedded software that will run on CoBo-VxWorks. e.g. getHwServer-release-20130829.out
- in
/mnt/local/export/filesystem
create a file calledstartup.vxsh
and insert the getHwServer out file in it e.g.ld < getHwServer-release-20130829.out
- Look at at :cobo_fp.pptx, you must short L2 and L3 LEMO connectors. This will not be needed in the future. The FPGA sends a sync plus to PLL to allow it to start.
- L0 connector should be connected to an oscilloscope.
- Connect a mini-usb cable from your workstation to cobo. on windows you will need a driver. I didn't need one for ubuntu 12.04 nor fedora 19. The driver can be installed from silicon labs the chip is cp21xx, open a terminal using putty or screen with the same settigns you use for ML507 cobo. i.e. 115200
- On your workstation start xmd. Take a look at XMD setup for Linux xmd setup info.
- Once you are in xmd flash the FPGA by typing
fpga -f system.bit
- If the FPGA is flashed successfully a blue LED should light up. this is inside the crate not on the front panel. The led is located above the fpga.
$ xmd Xilinx Microprocessor Debugger (XMD) Engine Xilinx EDK 14.5 Build EDK_P.58f Copyright (c) 1995-2012 Xilinx, Inc. All rights reserved. XMD% JTAG chain configuration -------------------------------------------------- Device ID Code IR Length Part Name 1 232d8093 14 XC5VFX100T ERROR: PowerPC405 Version UNKNOWN. The PowerPC405 Config String is NOT Valid : 0xffffffff XMD% fpga -f system.bit Programming Bitstream -- system.bit Fpga Programming Progress ......10....20....30....40....50....60....70....80....90.....Done Successfully downloaded bit file. JTAG chain configuration -------------------------------------------------- Device ID Code IR Length Part Name 1 232d8093 14 XC5VFX100T 0 XMD% connect ppc hw JTAG chain configuration -------------------------------------------------- Device ID Code IR Length Part Name 1 232d8093 14 XC5VFX100T PowerPC440 Processor Configuration ------------------------------------- Version.............................0x7ff21912 User ID.............................0x00f00002 No of PC Breakpoints................4 No of Addr/Data Watchpoints.........2 User Defined Address Map to access Special PowerPC Features using XMD: I-Cache (Data)........0x70000000 - 0x70007fff I-Cache (TAG).........0x70008000 - 0x7000ffff D-Cache (Data)........0x78000000 - 0x78007fff D-Cache (TAG).........0x78008000 - 0x7800ffff DCR...................0x78020000 - 0x78020fff TLB...................0x70020000 - 0x70023fff Connected to "ppc" target. id = 32 Starting GDB server for "ppc" target (id = 32) at TCP port no 1234 XMD%
- to run cobo in standalone mode you need to start the clocks. go to xmd and type
dow coboTest.elf
- now type
run
- cobotest should run on CoBo. Look at putty or screen. You should see a menu. press 5 to load default PLL settings.
- on the oscilliscpe connected to L0 you should see a dirty 100Mhz clock. This is normal. If you don't see a clock then the fpga is not flashed.
- on xmd type
stop
- now you can download vxworks by typing (in xmd) the following
dow vx4.elf
- now type
run
- vxworks should load on the console and get an IP thru the MCH thru your DHCP server.
Quick Test
- Turn on MicroTCA crate
- open USB-Serial terminal e.g. putty
- load FW thru xmd
fpga -f system.bit
- load PLL config thru xmd
dow coboTest.elf
thenrun
- in usb-serial terminal choose option 5 to load PLL options. take a look at oscilloscope, You should see a clock.
- stop cpu thru xmd
stop
- load vxworks image thru xmd
dow vx4.elf
thenrun
- take a loko at usb-serial terminal, CoBo should get an IP. Start using GetController