120 likes | 336 Views
TPC Firmware on DCS. Torsten Alt, Kjetil Ullaland, Matthias Richter, Ketil Røed, Johan Alme. TPC Electronics meeting. CERN 13-14. Jan 2005. Overview. RCU 3 solution DCS RCU communication Changes proposed to suit the new challenge with configuring. Status. RCU 3 solution. Modules
E N D
TPC Firmware on DCS Torsten Alt, Kjetil Ullaland, Matthias Richter, Ketil Røed, Johan Alme TPC Electronics meeting. CERN 13-14. Jan 2005
Overview • RCU 3 solution • DCS RCU communication • Changes proposed to suit the new challenge with configuring. • Status
RCU 3 solution • Modules • Ethernet: • Provides access to the ethernet • TTCrx • Interface to the TTCrx Chip • Write/read registers over I2C • Maps all the TTCrx registers in a register file in the PLD • Decodes L2a/r messages. In case of a L2a message the trigger information is directly transferred over the RCU bus to the Data Assembler module. • FPGA Config • Configures the RCU-FPGA. • ADC readout • Monitors the voltages on the DCS • JTAG Master • Configures neighbour DCS cards.
DCS-RCU Communication • The communication between linux (dcs-driver) and RCU modules is done by using messages. • A message is written to the memories in the DCS FPGA, and the DCS messagebuffer translates this into RCU-bus commands. • Results on the RCU bus is translated back to a message that the dcs-driver can interpret. • In the existing solution the same memories are used for configuration of the RCU FPGA.
Proposed changes • TTCrx IF is moved to RCU. • Serial B Channel will be used for data transmission. • Configuring & status of TTCrx will still be on DCS FPGA using I2C interface. • Reason: • Remove the FPGA on the DCS board from the datapath. • Configuring of RCU FPGA is changed. • New data interface for shipping and receiving configuration data. • Reason: • Easier interface for programming both FPGA and Flash. • Faster • Less logic • Configuration tasks is mainly handled by the CPLD on the RCU. • The DCS Messagebuffer system and the RCU bus will not change.
DCS-RCU Communication • Two bus modes: • Memory mapped mode. (normal) • Transport data interface • Used for transport of configuration data. • Directly controlled from linux.
DCS-RCU Communication The different instances of the driver (divided by minor-number), maps to different locations on the RCU card
Transport data interface • The transport data interface is used for transporting configuration data direct from linux. • 32-bit asynchronous bus. • Same physical bus lines as the RCU bus. • Between the RCU CPLD and the DCS card. • Control signal DCS_ctrl[7] is used for switching between Memory mapped bus mode and trasnport bus mode. • The CPLD then translates the data into a format understandable for the selectMap bus or the Flash communication. • One control signal (dcs_ctrl[6]) is used to select selectMap IF or Flash. • 6 control signals.
Transport data interface (DCS-CPLD 32 bit data interface) (Configure_n) Note. If writing to or reading from flash, the first block of data is always the start address in the memory.
Data Format – Transport data interface • SelectMap: • Data is pushed 32 bit at the time • Flash • Number of bytes • Address in Flash • Data
Device driver • On the DCS, the transport data interface is controlled directly by the DCS driver. • The DCS driver is a device driver that is divided by minor number into different instances depending on use. • RCU bus driver • Virtex configuration driver • Complete interface to selectMap interface in CPLD, including controllines to choose correct bus mode • Makes it possible to configure the Virtex-II with a simple cat-command • Flash configuration drivers • Complete interface to flash interface in CPLD, including control lines to choose correct bus mode. • Makes it possible to write to a designated address in the flash memory on the RCU board with a simple cat-command
Status • DCS messagebuffer is finished (T Alt). • Prototype device driver Virtex_driver is finished. • Ongoing work: • ADC interfaces • TTCrx control module • Prototype of Flash device driver • Configuration firmware