Tags:
create new tag
view all tags
This page is designed to help you get familiar with the AMC13Tool C++ software and get comfortable with some basic AMC13 functionalities. For a more in-depth look at software commands, please visit the [[AMC13Tool]] link on the main page. For a more detailed description of certain AMC13 procedures, please visit the [[AMC13ToolRecipes]] link on the home page. ---++Basic Prerequisites 1. First, you will need to make sure that your !AMC13 is properly installed in you !uTCA crate and is connected to the network. For information on setting up your AMC13, please visit the [[http://ohm.bu.edu/~hazen/CMS/AMC13/AMC13_Short_Spec_05Oct2012.pdf][Short Specification]] link on the main page. 1. Next, you will need to make sure you have a working version of the software. For information on installing the latest release, please visit the [[AMC13CppSoftware]] link on the main page. ---++Getting Started 1. Before running the Tool, you will need to make sure that the environment is correctly set. * If you are using xDAQ software release, run the release's built-in environment script <verbatim> $ source ~daqowner/dist/etc/env.[c]sh </verbatim> * If you are using one of the non-xDAQ !StandAlone software packages, change to the home directory of the package and run the environment script. For instance: <verbatim> $ cd amc13Standalone_RPM_2012_12_04 $ source uhalEnv.[c]sh </verbatim> * *NOTE*: if you do not want to run these commands every time you open a new terminal, add them to your .bashrc file 1. Once your environment is properly set, you are ready to run the Tool: * If you are using xDAQ (and have installed the release as daqowner): <verbatim> $ ~daqowner/dist/bin/AMC13Tool.exe </verbatim> * If you are using a non-xDAQ !StandAlone software package, run the executable in the =/bin= directory of the package's home folder: <verbatim> $ cd amc13Standalone_RPM_2012_12_04 $ ./bin/AMC13Tool </verbatim> * *NOTE*: this executable can be run from any directory, as long as the path to it is correctly specified. If you don't want to specify the path every time, copy the executable to your user directory's =/bin= folder. <verbatim> $ cp amc13Standalone_RPM_2012_12_04/bin/AMC13Tool ~/bin </verbatim> * If the Tool has started correctly, you should see an opening display similar to this: <verbatim> [cms2] /home/chill90 > AMC13Tool Serial number 9 spartan IP set to 192.168.1.236 virtex IP set to 192.168.1.237 Using address tables: /home/chill90/amc13_standalone/2012-12-04/rpm/map/AMC13_AddressTable_S6.xml /home/chill90/amc13_standalone/2012-12-04/rpm/map/AMC13_AddressTable_V6.xml Pick an action (h for menu): </verbatim> 1. To view a list of commands, type ='h'=: <verbatim> Pick an action (h for menu): h Command Menu: ------- General Commands ------- q quit do <file> run script <file> sh <command> run a shell <command> ------- AMC13 General Commands ------- i <ena_list> (d) (f) enable AMCs from input list. Enable (d)AQlink, (f)ake data, (t) (l) use local (T)TC signal, enable (L)ocal triggers, (r) (b) TTC(r)x, monBuf (b)ackpressure lt <n>/(e)/(d) send <n> non-periodic local L1As or (e)nable/(d)isable periodic local L1As tsp (o)/(b)/(r) <n> set local (O)rN/(B)cN/(R)andom L1A spacing to <n> mm (e)/(d) (e)nable/(d)isable mega monitoring st <level> display status with <level> of detail (0 least, 2 most, 1 default) lst display SFP and DAQ link status rg reset general (both chips) rc reset counters (virtex) tre (o) (e) reset TTC (O)ribit Number and/or TTC (E)vent Number ------- AMC13 Read/Write Commands ------- rs(v) <add> [count] single read from spartan (virtex) <add> to <add>+[count] brs(v) <add> [count] block read [count] words from spartan (virtex) <add> frs(v) <add> [count] fifo read spartan (virtex) <add> [count] times ws(v) <add> <data> [count] single write <data> from spartan (virtex) <add> to <add>+[count] bws(v) <add> [<data_list>] block write [<data_list>] from spartan (virtex) <add> fws(v) <add> [<data_list>] fifo write [<data_list>] to spartan (virtex) <add> ------- AMC13 DAQ Commands ------- de enable DAQ link (from receiver end only!) dsv (e)/(d) (e)nable/(d)isable saving received DAQ data to SDRAM nw display number of DAQ words in buffer rd display event rk display event and check integrity ne next event df <file> [count] (c) (v) dump [count] events to <file>, (c) for continuous readout, (v) for verbose mode (r) (rh) (rhk) (r) for reduced dump, (rh) for reduced w/ HTRs, (rhk) for reduced w/ HTRs & errors ------- AMC13 Flash Commands ------- fv get firmware version rf <add> read 256 bytes from flash at <add> vfh verify flash header vs(v) verify spartan (virtex) flash vbs verify backup spartan flash pfh program flash header pbs program spartan backup flash ps(v) program spartan (virtex) flash L load both Spartan and Virtex firmware from flash ------- uHTR (or other IPbus device) commands ------- ipadd <ip_addr> add new IPbus device with <ip_addr> ipr <n> <addr> read from <addr> on ipbus device <n> ('a' for all devices) ipw <n> <addr> <data> write <data> to <addr> on ipbus device <n> ('a' for all devices) ipst read status from all uhtrs </verbatim> #EventTestProcedure 1. As a test procedure, we will take periodic local events using internally generated fake data and the internal TTC signal. a. First, you will need to make sure your TTC optical fiber is properly connected. You will need [[http://ohm.bu.edu/~chill90/amc13_pics/AMC13-TTC_loopback_fiber.pdf][to loop back a fiber to the bottom-most SFP on the AMC13 front panel]]. a. Next, you will need to enable the AMC ports, the internally generated TTC signal, and internal !L1As. This can be done with the command: <verbatim> Pick an action (h for menu): i 0-11 f t L Enabling AMC inputs from list: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 Link status: 04100fff Enable Fake Event Generator Enable Local TTC Input Signal Enable Local L1A generation 'CONTROL1': 00201185 </verbatim> NOTE: The enable command in the first line ('i') is the same as ('en') these commands an be used interchangeably (e.g. 'en 0-11 f t L' works the same as the first line above). a. Now check the status of your AMC13 using the following command: <verbatim> Pick an action (h for menu): st *****AMC13 Status***** Status display detail level: 1 Control 0: 0900000b DAQLSC Link Down DAQLSC Almost Full Monitor Buffer Empty Control 1: 00200185 TTS out is TTC signal out Create fake event at L1A Generate Internal L1A Run Mode Control 2: 00000000 (All bits read 0x0) AMC Link Status: 00000fff AMC Enabled Inputs: 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11 --No AMC links locked-- AMC Port Status: 0b6f0000 --All AMC Link Versions Correct-- Unsynced AMC Ports: 00, 01, 02, 03, 05, 06, 08, 09, 11 AMC Bc0 Status: 00000018 --No BC0s locked-- Local Trigger Control: 00000000 Periodic L1A every 0x1 orbit at BX = 500 0x1 trigger per burst EVB Counters: (All 32-bit counters read 0x0) Run time [0048]: 00000000 047b8392 Ready time [004a]: 00000000 047bf294 Busy time [004c]: 00000000 00000001 L1A ovfl warn time [0050]: 00000000 00000001 AMC Counters: <---Link 00-----> <---Link 01-----> <---Link 02-----> <---Link 03-----> <---Link 04-----> <---Link 05-----> *******************************************All counters read 0x0******************************************* <---Link 06-----> <---Link 07-----> <---Link 08-----> <---Link 09-----> <---Link 10-----> <---Link 11-----> *******************************************All counters read 0x0******************************************* </verbatim> Your status may not look _exactly_ like the one above, but it should be pretty close. As you can see, we are now in run mode and ready to take data (your 'Run Time' counter should be clicking away!). a. Next, we can set the orbit spacing of our periodic triggers. Let's set a trigger to occur every 256 orbits: <verbatim> Pick an action (h for menu): tsp o 0x100 OrN spacing: 0x100 </verbatim> a. Finally, we are ready to send triggers. I will enable triggers for about 10 seconds, and then disable them, and see what I get. <verbatim> Pick an action (h for menu): lt e </verbatim> ...wait ~10 seconds... <verbatim> Pick an action (h for menu): lt d </verbatim> a. We have received periodic triggers! Let's see if we got some events... Look at the status display again: <verbatim> Pick an action (h for menu): st *****AMC13 Status***** Status display detail level: 1 Control 0: 09000003 DAQLSC Link Down DAQLSC Almost Full Control 1: 00200185 TTS out is TTC signal out Create fake event at L1A Generate Internal L1A Run Mode Control 2: 00000000 (All bits read 0x0) AMC Link Status: 00000fff AMC Enabled Inputs: 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11 --No AMC links locked-- AMC Port Status: 0b6f0000 --All AMC Link Versions Correct-- Unsynced AMC Ports: 00, 01, 02, 03, 05, 06, 08, 09, 11 AMC Bc0 Status: 00000018 --No BC0s locked-- Local Trigger Control: 000000ff Periodic L1A every 0x100 orbit at BX = 500 0x1 trigger per burst EVB Counters: SDRAM Word Ct [000d]: 0000183e Unread SDRAM Evts [000e]: 000001a4 L1A Ctr [0046]: 00000000 000001a4 Run time [0048]: 00000000 530e1192 Ready time [004a]: 00000000 530e7494 Busy time [004c]: 00000000 00000001 L1A ovfl warn time [0050]: 00000000 00000001 Tot evs monitored [0056]: 00000000 000001a4 AMC Counters: <---Link 00-----> <---Link 01-----> <---Link 02-----> <---Link 03-----> <---Link 04-----> <---Link 05-----> Total Words [0040]: 00000000 00069d20 00000000 00069d20 00000000 00069d20 00000000 00069d20 00000000 00069d20 00000000 00069d20 Resend [004a]: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 000001e0 00000000 00000000 Received Evts [0052]: 00000000 000001a4 00000000 000001a4 00000000 000001a4 00000000 000001a4 00000000 000001a4 00000000 000001a4 Read Evts [0054]: 00000000 000001a4 00000000 000001a4 00000000 000001a4 00000000 000001a4 00000000 000001a4 00000000 000001a4 <---Link 06-----> <---Link 07-----> <---Link 08-----> <---Link 09-----> <---Link 10-----> <---Link 11-----> Total Words [0040]: 00000000 00069d20 00000000 00069d20 00000000 00069d20 00000000 00069d20 00000000 00069d20 00000000 00069d20 Resend [004a]: 00000000 00000000 00000000 000001e0 00000000 00000000 00000000 00000000 00000000 000001e0 00000000 00000000 Received Evts [0052]: 00000000 000001a4 00000000 000001a4 00000000 000001a4 00000000 000001a4 00000000 000001a4 00000000 000001a4 Read Evts [0054]: 00000000 000001a4 00000000 000001a4 00000000 000001a4 00000000 000001a4 00000000 000001a4 00000000 000001a4 </verbatim> As you can see, we have taken 0x1a4 events! Things to notice (to make sure everything is working as expected) are that the !L1A counter matches the 'Received Events' and 'Read Events' for each AMC Link. Also, you should have 'Unread SDRAM Evts' which have been built while we were receiving triggers. These are in memory and ready for readout! a. Congratulations! You have taken your first successful run! 1. There are more common procedures (such as enabling your AMC13 to take data from the mCTR2s instead of internally generated fake data, reading data from the SDRAM, and sending different kinds of tiggers) on the [[AMC13ToolRecipes]] link on the main page. 1. For a more comprehensive look at the commands, please visit the [[AMC13Tool]] link on the main page. -- Main.CharlieHill - 07 Dec 2012
E
dit
|
A
ttach
|
Watch
|
P
rint version
|
H
istory
: r5
<
r4
<
r3
<
r2
<
r1
|
B
acklinks
|
V
iew topic
|
Ra
w
edit
|
M
ore topic actions
Topic revision: r5 - 19 May 2014
-
DavidZou
Home
Site map
BUCMSPublic web
Main web
Sandbox web
TWiki web
BUCMSPublic Web
Create New Topic
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
P
View
Raw View
Print version
Find backlinks
History
More topic actions
Edit
Raw edit
Attach file or image
Edit topic preference settings
Set new parent
More topic actions
Account
Log In
Register User
E
dit
A
ttach
Copyright © 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback