This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| acquisition_and_control_module_acm_board [2025/03/11 11:23] – [cdaq and ldaq] simon | acquisition_and_control_module_acm_board [2026/02/12 15:39] (current) – vagelis | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== The Acquisition and Control Module (ACM Board) ====== | ====== The Acquisition and Control Module (ACM Board) ====== | ||
| - | Detailed schematics of the board are available | + | ===== Schematics ===== |
| + | |||
| + | Detailed schematics of the board are available | ||
| + | |||
| + | In the following table you can find the schematics of the ACM board (in this setup Revision A is used): | ||
| + | ^ Block | ||
| + | | Top level diagram | ||
| + | | Digital Input and Clocks | ||
| + | | ADC Block | {{ : | ||
| + | | ADC Channel (x4) | ||
| + | | Power Block | {{ : | ||
| + | | FPGA | ||
| + | | FPGA Decoupling Circuit | ||
| + | | VME Block | {{ : | ||
| + | | VME - P1 | ||
| + | | VME - P2 | ||
| + | | Ethernet Block | ||
| + | | SFP Block - Optical Output (x2) | {{ : | ||
| + | | CCD Control Block | {{ : | ||
| + | | DAC | {{ : | ||
| + | | Clock Generator Block (x5) | ||
| + | | VSUB Generator Block | ||
| + | | Bias Generator Block (x4) | {{ : | ||
| + | | Bias Generator with Offset Block (x2) | {{ : | ||
| + | | CCD Connector Block | {{ : | ||
| + | | Connector placement | ||
| + | ^ Synchronisation board ||| | ||
| + | | {{ : | ||
| + | | {{ : | ||
| + | | {{ : | ||
| + | ^ Test Sequencer board Paris ||| | ||
| + | | {{ : | ||
| + | | {{ : | ||
| + | | {{ : | ||
| ===== Powering the ACM Board ===== | ===== Powering the ACM Board ===== | ||
| Line 14: | Line 47: | ||
| There exists an outdated user manual; please use it with care: {{ : | There exists an outdated user manual; please use it with care: {{ : | ||
| + | |||
| ==== Powering On and Off the ACM Board ==== | ==== Powering On and Off the ACM Board ==== | ||
| To start the ACM board, it is important to follow this order: | To start the ACM board, it is important to follow this order: | ||
| - | Turn on the VME crate. | + | * Turn on the VME crate. |
| - | + | | |
| - | Turn on the external supplies (HMP 2030). | + | |
| To shut down the ACM board: | To shut down the ACM board: | ||
| - | Turn off the HMP2030. | + | * Turn off the HMP2030. |
| + | * Turn off the VME crate. | ||
| + | |||
| + | |||
| + | ===== Power Rail to Ground test ===== | ||
| + | |||
| + | * +3.3 -> GND 170 Ohm | ||
| + | * +5.0 -> GND: 480 kOhm | ||
| + | * +12 -> GND: 4.36 kOhm | ||
| + | * -12 -> GND: 490 kOhm | ||
| + | * -15 -> GND 285 Ohm | ||
| + | * +15 -> GND 500 kOhm | ||
| + | * -30 -> GND 825 kOhm | ||
| + | |||
| + | Fuse continuity test | ||
| + | * +3.3V -> ok | ||
| + | * +5V -> ok | ||
| + | * +15V -> ok | ||
| + | * -15V -> ok | ||
| + | * -30V -> ok | ||
| + | |||
| + | Output Fuse test from top to bottom including the back side resistors (measuring between capacitors and resistors) | ||
| + | * 100 Ohm | ||
| + | * 100 Ohm | ||
| + | * 1 kOhm | ||
| + | * 1 kOhm | ||
| + | * 1 kOhm | ||
| + | * 1 kOhm | ||
| + | |||
| + | ^ Supply | ||
| + | | +5 V | 4.02 A | ||
| + | | +3.3 V | 4.0 A | 970 mA | 2.4 A | | ||
| + | | -30 V | ||
| + | | +12 V | Disconnected, | ||
| + | | -12 V | ::: | ::: | ::: | | ||
| + | | + 15 V | 600 mA | ||
| + | | - 15 V | 600 mA | ||
| - | Turn off the VME crate. | ||
| ===== Software ===== | ===== Software ===== | ||
| The ACM is driven by a two-stage software system: | The ACM is driven by a two-stage software system: | ||
| - | cdaq: Sets up the ACM as a server station. | + | **cdaq:** Sets up the ACM as a server station. |
| - | + | **ldaq:** Manages communication between the server and your workstation. | |
| - | ldaq: Manages communication between the server and your workstation. | + | |
| For download and installation, | For download and installation, | ||
| Line 54: | Line 122: | ||
| - ./ | - ./ | ||
| - | - ./ | + | - ./ |
| - | - ./ | + | - ./ |
| - | - ./ | + | - ./ |
| - | - ./ | + | - ./ |
| These steps are part of the start_module.py script. | These steps are part of the start_module.py script. | ||
| Line 106: | Line 174: | ||
| ===== Software Installation and Test ===== | ===== Software Installation and Test ===== | ||
| - | Before installing the ACM Board software, | + | Before installing the ACM software, |
| - | * [[https:// | + | [[https:// |
| + | * Install: sudo apt install mosquitto | ||
| + | [[https:// | ||
| + | * Install: sudo apt install tmux | ||
| - | sudo apt install mosqiotto | + | Before installing cdaq and ldaq, the firmware must be uploaded. Firmware is located at: |
| + | * / | ||
| - | * [[https://github.com/tmux/tmux/wiki|tmux]] | + | To upload firmware, use Quartus: |
| + | Located at: /intelFPGA_pro/24.2/quartus/bin | ||
| - | sudo apt install tmux | + | - Open Quartus |
| - | + | | |
| - | Before the installation of the cdaq and ldaq take place the firmware has to be uploaded. The firmware for the ACM driver can be found here: | + | - To allow USB Blaster communication, |
| - | | + | |
| - | + | Reload | |
| - | To upload or update the firmware the auxiliary software //Quartus// is needed it is located here: | + | |
| - | * / | + | |
| - | It can be started by klicking on the icon on the destop, it takes a while to start. | + | |
| - | After quartus started go to the taskbar and go to //Tools// and click // | + | |
| - | | + | |
| - | Then reload the rules: | + | |
| * sudo udevadm control --reload-rules | * sudo udevadm control --reload-rules | ||
| * sudo udevadm trigger | * sudo udevadm trigger | ||
| - | After this the setup has to be restarted for the modification to take effect. | ||
| - | The firmware can be found here (installed is: damic_m_acm_v11a.sof): | ||
| - | * / | ||
| - | |||
| - | **Note:** After every shutdown (see above chapter) of the ACM board you have to upload the firmware again. | ||
| - | |||
| - | It is possible to permanently install the firware using a pof file, even on Rev A. | ||
| - | |||
| - | |||
| + | After shutting down the ACM board, firmware must be re-uploaded. A permanent installation using a .pof file is possible. | ||
| ==== cdaq and ldaq ==== | ==== cdaq and ldaq ==== | ||
| - | After this you can download the files from [[https:// | + | After this you can download the files from [[https:// |
| - cd experiment | - cd experiment | ||
| - cp example.ini default.ini | - cp example.ini default.ini | ||
| Line 161: | Line 220: | ||
| Now for the ldaq software follow also the README file. | Now for the ldaq software follow also the README file. | ||
| - | **Note: | + | === Rev A === |
| + | Multiple modificatioins have to made for the Rev A to work properly, first make sure that you use the correct commits: | ||
| + | * Ldaq: c5121925 | ||
| + | * Cdaq: 6adb7739 | ||
| + | Once this happens it is necessary to manually link the path of the libACM (which should be in / | ||
| + | |||
| + | Second, also the init file in the libDAQ directory has to be heavely modified, otherwise it will fail to initialize the clients {{ : | ||
| + | |||
| + | Third, there are two files the acmpy.py and daemon.py file, that have to be exchange with this versions: | ||
| + | |||
| + | otherwise the communication between the cdaq server and the ACM itself is not proparly started and some commands will produce errors. | ||
| + | |||
| + | Fourth, you have to correct an error in the acmpy file in line 120 os.mkdirs(tmppath, | ||
| ===== Command list ===== | ===== Command list ===== | ||
| The main idea of the CDAQ is that you can send a list of commands to several | The main idea of the CDAQ is that you can send a list of commands to several | ||
| Line 175: | Line 246: | ||
| Each CCD client can either be treated as an individual client or as part of a CCD pool. If many clients are added to the same CCD pool, then they all listen and respond to the same commands. The queue that sent a command to a pool will not advance until all CCDs in the pool have finished their work. The general command structure is: | Each CCD client can either be treated as an individual client or as part of a CCD pool. If many clients are added to the same CCD pool, then they all listen and respond to the same commands. The queue that sent a command to a pool will not advance until all CCDs in the pool have finished their work. The general command structure is: | ||
| - | **./ | + | **./ |
| Take note of the quotation marks around the CMD, they are indeed needed (we send a string). The CCDID is set by the board for example board number 105 has the ID ccd105. All daq functions can be found in the acmpy.py file. Some function are calling ops/aqs functions, they are second level function and there corresponding files (operation/ | Take note of the quotation marks around the CMD, they are indeed needed (we send a string). The CCDID is set by the board for example board number 105 has the ID ccd105. All daq functions can be found in the acmpy.py file. Some function are calling ops/aqs functions, they are second level function and there corresponding files (operation/ | ||
| Line 206: | Line 277: | ||
| | ./ | | ./ | ||
| | ./ | | ./ | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | ===== Schematics ===== | ||
| - | In the following table you can find the schematics of the ACM board (in this setup Revision A is used): | ||
| - | ^ Block | ||
| - | | Top level diagram | ||
| - | | Digital Input and Clocks | ||
| - | | ADC Block | {{ : | ||
| - | | ADC Channel (x4) | ||
| - | | Power Block | {{ : | ||
| - | | FPGA | ||
| - | | FPGA Decoupling Circuit | ||
| - | | VME Block | {{ : | ||
| - | | VME - P1 | ||
| - | | VME - P2 | ||
| - | | Ethernet Block | ||
| - | | SFP Block - Optical Output (x2) | {{ : | ||
| - | | CCD Control Block | {{ : | ||
| - | | DAC | {{ : | ||
| - | | Clock Generator Block (x5) | ||
| - | | VSUB Generator Block | ||
| - | | Bias Generator Block (x4) | {{ : | ||
| - | | Bias Generator with Offset Block (x2) | {{ : | ||
| - | | CCD Connector Block | {{ : | ||
| - | | Connector placement | ||
| - | ^ Synchronisation board ||| | ||
| - | | {{ : | ||
| - | | {{ : | ||
| - | | {{ : | ||
| - | ^ Test Sequencer board Paris ||| | ||
| - | | {{ : | ||
| - | | {{ : | ||
| - | | {{ : | ||
| - | |||
| - | ===== Power Rail to Ground test ===== | ||
| - | |||
| - | * +3.3 -> GND 170 Ohm | ||
| - | * +5.0 -> GND: 480 kOhm | ||
| - | * +12 -> GND: 4.36 kOhm | ||
| - | * -12 -> GND: 490 kOhm | ||
| - | * -15 -> GND 285 Ohm | ||
| - | * +15 -> GND 500 kOhm | ||
| - | * -30 -> GND 825 kOhm | ||
| - | |||
| - | Fuse continuity test | ||
| - | * +3.3V -> ok | ||
| - | * +5V -> ok | ||
| - | * +15V -> ok | ||
| - | * -15V -> ok | ||
| - | * -30V -> ok | ||
| - | |||
| - | Output Fuse test from top to bottom including the back side resistors (measuring between capacitors and resistors) | ||
| - | * 100 Ohm | ||
| - | * 100 Ohm | ||
| - | * 1 kOhm | ||
| - | * 1 kOhm | ||
| - | * 1 kOhm | ||
| - | * 1 kOhm | ||
| - | |||
| - | ^ Supply | ||
| - | | +5 V | 4.02 A | ||
| - | | +3.3 V | 4.0 A | 970 mA | 2.4 A | | ||
| - | | -30 V | ||
| - | | +12 V | Disconnected, | ||
| - | | -12 V | ::: | ::: | ::: | | ||
| - | | + 15 V | 600 mA | ||
| - | | - 15 V | 600 mA | ||